Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
|
|
- Mathias Kirchner
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen II Suchen in Texten Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: :32 Inhaltsverzeichnis Ein Text Das Suchproblem Suche in dynamischen Texten 3 Das naive Verfahren zur Textsuche Naheliegende Verbesserung des naiven Verfahrens Beispiel Das Verfahren von Knuth-Morris-Pratt Allgemeine Situation beim Mismatch Das Verfahren von Knuth-Morris-Pratt Das Verfahren von Boyer-Moore Minimale Verschiebung des Textzeigers Beispiele Boyer-Moore Berechnung der Verschiebung bei einem Bad-Character Verschiebung des Textzeigers Fall 1: M j + 1 > delta 1(c) Beispiel für Fall Fall 2: M j + 1 delta 1(c) Beispiel für Fall Im schlimmsten Fall naiv Berechnung der Verschiebung bei einem Good-Suffix Formalisierung Beispiel
2 Berechnung der delta 2-Tabelle für banana Das Verfahren von Boyer-Moore Signaturen Beispiel für Signaturen: Verfahren von Karp und Rabin Suchen in statischen Texten 14 Aufbereitung von Texten Suffix-Bäume Einschub: Tries Suffix-Tries Suffix-Bäume Konstruktion von Suffix-Bäumen Naiver Algorithmus Begriffe zur Beschreibung des naiven Verfahrens Naives Verfahren zur Konstruktion des Suffix-Baumes Beispiel Naives Verfahren zur Konstruktion des Suffix-Baumes Beispiel Effiziente Implementierung durch kompakte Repräsentation Ein Text Texte spielen in vielen Anwendungen eine zentrale Rolle z.b. in Texteditoren, Literaturdatenbanken, Systemen zur Symbolmanipulation Texte sind nicht weiter strukturierte Folgen beliebiger Länge über einem endlichen Alphabet das Alphabet kann Buchstaben, Ziffern und zahlreiche Sonderzeichen enthalten der zugrundeliegende Datentyp kann auf verschiedene Arten realisiert sein z.b. Array-of-Characters, verkettete Liste von Zeichen Zeichenkette soll nicht-negative, ganzzahlige Länge zugeordnet sein Zugriff auf das i. Zeichen für jedes i 1 soll möglich sein Das Suchproblem Gegeben sind eine Zeichenkette (Text) a 1...a N von Zeichen aus einem endlichen Alphabet Σ und eine Zeichenkette, das Muster (Pattern), b 1...b M, mit b i Σ, 1 i M Gesucht sind ein oder alle Vorkommen von b 1...b M und a 1...a N, d.h. Indizes i mit 1 i (N M + 1) und a i = b 1, a i+1 = b 2,..., a i+m 1 = b M Letzte Änderung: :32 2
3 in der Regel ist N sehr viel größer als M wir unterscheiden Suche in statischen Texten und in dynamischen Texten Suche in dynamischen Texten Das naive Verfahren zur Textsuche Idee: Muster wird, beginnend beim ersten Zeichen des Textes, der Reihe nach an jeden Teilstring des Textes angelegt wird zeichenweise verglichen bei einem Mismatch wird vom nächsten Zeichen an weiter probiert das Muster B muss im worst-case (N M +1)-mal an den Text A angelegt werden und dann jeweils ganz durchlaufen werden das bedeutet es müssen (N M + 1) M Vergleiche ausgeführt werden Laufzeit also von der Größenordnung Θ(N M) Naheliegende Verbesserung des naiven Verfahrens Muster wird nur bis zum ersten Mismatch durchlaufen und nicht (trotzdem) komplett Wahrscheinlichkeit ist am höchsten, dass das Muster an der ersten Stelle nicht passt in der Praxis reichen dann oft nur noch O(M + N) Vergleiche im worst case schlägt es immer erst beim letzten Zeichen fehl: Ω(N M) naives Verfahren ist gedächtnislos Beispiel er sprach abrakadabra, es bewegte sich aber nichts a a a... ab... Letzte Änderung: :32 3
4 abe a... a aber Das Verfahren von Knuth-Morris-Pratt Idee: Tritt an der j-ten Stelle ein Mismatch auf, haben die vorangegangenen j 1 Stellen übereingestimmt mit dieser Information soll das Muster soweit wie möglich nach rechts verschoben werden Beispiel i Text: Muster: wird das Muster um nur eine Stelle verschoben, tritt sofort wieder ein Mismatch auf offensichtlich kann es gleich um zwei Stellen verschoben werden Allgemeine Situation beim Mismatch 1. Die letzten j 1 gelesenen Zeichen im Text stimmen mit den ersten j 1 Zeichen im Muster überein. 2. Das gerade gelesene i-te Zeichen im Text ist verschieden vom j-ten Zeichen im Muster. Frage Mit welchem Zeichen im Muster kann man das i-te Textzeichen als nächstes vergleichen, so dass man kein Vorkommen im Text übersieht? Das Verfahren von Knuth-Morris-Pratt vom Anfangsstück des Musters mit der Länge j 1 ein längstes Endstück suchen, das ebenfalls Anfangsstück des Musters ist hat Endstück die Länge l, dann nennen wir die Position l + 1 next[j] next[j] muss als nächstes mit Position i verglichen werden Beispiel: Text abababb, Muster ababb Letzte Änderung: :32 4
5 Mismatch beim 5. Zeichen, also Anfangsstück des Musters ist abab Endstück ab ist zugleich Anfangsstück d.h. Muster kann sofort zwei Stellen weiter verschoben werden Das Verfahren von Boyer-Moore Zeichen im Muster werden nicht von links nach rechts, sondern von rechts nach links mit den Zeichen im Text verglichen das Muster wird zwar trotzdem der Reihe nach von links nach rechts an wachsende Textpositionen angelegt, aber der Vergleich beginnt immer mit dem letzten Zeichen des Textes tritt bis zum Vergleich des ersten Zeichens im Muster kein Mismatch auf, ist ein Vorkommen gefunden tritt ein Mismatch auf, wird eine (möglichst große) Verschiebung des Musters berechnet Minimale Verschiebung des Textzeigers seien i der aktuelle Wert des Textzeigers j der aktuelle Wert des Musterzeigers M die Länge des Musters erfolgt ein Mismatch bei i und j kann das Muster um eine Position nach rechts geschoben werden damit der Textzeiger auf das Zeichen zeigt das nach der Verschiebung mit dem letzten Zeichen des verglichen wird, muss er um M j + 1 Stellen nach rechts verschoben werden, also i = i + M j + 1 Beispiel: i... Wettervorhersage... Alter j neuer Wert von i muss auf das v zeigen Letzte Änderung: :32 5
6 Beispiele Boyer-Moore Beispiel 1: er sprach... aber als erstes wird s mit r verglichen Mismatch da s im gesamten Muster nicht vorkommt, kann das Muster gleich um die Musterlänge verschoben werden Beispiel 2: abrakadabra... aber Vergleich a mit r Mismatch da a im Muster vorkommt, kann man es nur so weit verschieben, bis erstmals das Text- und das Musterzeichen untereinander stehen Berechnung der Verschiebung bei einem Bad-Character für die Weite der Sprünge wird, nur abhängig vom Muster und vom Alphabet, aber nicht vom Text, eine delta-1-tabelle erstellt delta 1-Funktion berechnet für jedes c Σ die Entfernung c vom letzten Zeichen und delta 1(c) = M, falls c in b 1...b M nicht vorkommt delta 1(c) = M j, falls c = b j und c b k mit j < k M das Vorgehen heisst auch Vorkommens-Heuristik bzw. Bad-Character-Shift Verschiebung des Textzeigers eigentlich wollen wir nicht das Muster verschieben, sondern den Textzeiger möglichst weit nach rechts Textzeiger soll mindestens über die Position hinaus geschoben werden auf die er gerade zeigt kann aus delta 1-Wert berechnet werden Letzte Änderung: :32 6
7 sei im Folgenden c das den Mismatch verursachende Zeichen und i und j die aktuellen Positionen im Text bzw. im Muster bei einem Mismatch an Position j kann der Textzeiger mindestens so verschoben werden, dass 2 Fälle beim Mismatch c kommt rechts vom Mismatch im Muster bereits vor c kommt nicht rechts vom Mismatch vor Fall 1: M j + 1 > delta 1(c) c kommt rechts vom Mismatch im Muster bereits vor wir wissen außerdem, dass die Zeichen im Muster rechts von c ungleich c sind also können wir den Textzeiger um den Abstand von c vom letzten Zeichen weiter verschieben d.h. i = i + M j + delta 1(c) und j = M Letzte Änderung: :32 7
8 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 8
9 Beispiel für Fall 1 TODO: Beispiel passt nicht!! i... Datenstrukturen... Tinktur j j M j + 1 = = 5 delta 1(u) = M j = 7 6 = 1 also i = i = i + 5 und j = M i... Datenstrukturen... Tinktur j Fall 2: M j + 1 delta 1(c) c kommt nicht rechts vom Mismatch vor (vielleicht sogar nicht im Muster) setze i = i + delta 1(c) und j = M Letzte Änderung: :32 9
10 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 10
11 Beispiel für Fall 2 i... Wasserstelle... Tankstelle j M j + 1 = = 7 delta 1(r) = M = 10 also i = i + 10 und j = M i... Wasserstelle... Tankstelle j Im schlimmsten Fall naiv im schlechtesten Fall nicht besser als das naive Verfahren Beispiel: Text besteht nur aus Nullen, Muster i j * M j + 1 = , delta 1(0) = M M = 0 i = i + 10 i j Verbesserung durch zweite Heuristik: Match-Heuristik Berechnung der Verschiebung bei einem Good-Suffix ähnlich Knuth-Morris-Pratt Beispiel: orange ananas banana banana Letzte Änderung: :32 11
12 Annahme: die letzten m Zeichen stimmen überein und an Position j von rechts ist erster Mismatch nennen wir die letzten m Zeichen das Submuster dann suchen wir von rechts her nach einem weiteren Vorkommen des Submusters im Muster haben wir so ein Vorkommen gefunden, können wir das Muster so weit nach rechts verschieben, dass das weitere Vorkommen dem entsprechenden Text gegenüber steht im Beispiel können wir um 2 Positionen nach rechts schieben orange ananas banana banana Formalisierung sei wrw(j) die Position an der das von rechts her nächste Vorkommen des Submusters beginnt j ist die Position des Mismatches das Submuster also b j+1...b M Annahme: das dem weiteren Vorkommen vorangehende Zeichen ist verschieden von dem das am Mismatch beteiligt war die Funktion delta 2 gibt an um welche Distanz der Zeiger i im Text bewegt werden kann: delta 2(j) = M + 1 wrw(j) Beispiel i orange ananas banana banana j j = 3, wrw(3) = 2 und delta 2(3) = = 5 i orange ananas banana banana j Letzte Änderung: :32 12
13 Berechnung der delta 2-Tabelle für banana j Suffix vorangehend weiteres Vorkommen wrw(j) delta 2(j) 5 a n banana na a **banana ana n banana nana a ****banana anana b *****banana Anfügen von don t care-symbolen rechts, wenn kein Vorkommen im Muster Position j: Muster:... * * * * * b a n a n a Submuster: n a n a Das Verfahren von Boyer-Moore Verknüpfung der beiden Heuristiken i wird um max{delta 1(a i ) + 1, delta 2(j)} verschoben j wird M gesetzt Hoorspool hat gezeigt, dass die delta 2-Tabelle in der Praxis kaum zur Schnelligkeit beiträgt in der Praxis kommen oft kurze Muster vor, bei denen gar keine mehrfach auftretenden Submuster enthalten sind man kann erwarten, dass das Verfahren für genügend kurze Muster und hinreichend große Alphabete etwas O(N/M) Schritte ausführt und fast immer um die gesamte Musterlänge nach rechts verschoben werden kann Signaturen weiteres Verfahren zur Mustersuche in einem Text Muster der Länge M, Text der Länge N von dem Muster wird ein Hashwert berechnet von allen Teilstrings des Textes der Länge N wird auch der Hashwert berechnet nur wenn der Hashwert gleich ist, kann ein Vorkommen gefunden worden sein Letzte Änderung: :32 13
14 Beispiel für Signaturen: Verfahren von Karp und Rabin Muster über einem Alphabet der Größe d wird als d-adische Zahl interpretiert als Hashfunktion dient dann h(k) = k mod p für eine geeignet gewählte, große Primzahl man kann zeigen, dass das Verfahren mit hoher Wahrscheinlichkeit nur O(M + N) Schritte benötigt Suchen in statischen Texten Aufbereitung von Texten Suffix-Bäume wenn häufig der selbe Text σ nach vielen verschiedenen Mustern durchsucht wird, kann es sich lohnen für σ einen Suchindex aufzubauen ein Suffix-Baum ist ein in linearer Zeit konstruierbare Baum, der linearen Platz benötigt und folgendes effizient ausführt: Teilwortsuche in Zeit O( α ) mit Teilword α, d.h. unabhängig von der Textlänge! Präfixsuche: findet alle Stellen in σ an denen Worte mit dem Präfix α vorkommen Bereichs-Suche: findet alle Stellen in σ, die Worte enthalten, die lexikographisch zwischen zwei Grenzen fallen Beispiel: der Bereich [abc, acc] enthält abrakadarba, acacia, aber nicht abacus ein Suffix-Baum unterstützt auch Anfragen an σ selbst, z.b. Was ist das längste wiederholt auftretende Teilwort von σ, das an mindestens 2 Stellen auftritt? Einschub: Tries Tries (gesprochen wie das englische Wort try) sind Suchbäume und repräsentieren eine Menge M von Schlüsseln Schlüssel sind Zeichenketten über einem endlichen Alphabet Σ jede Kante eines Tries T ist mit einem Zeichen aus Σ beschriftet benachbarte Kanten müssen mit verschiedenen Zeichen beschriftet sein maximaler Grad eines Knoten ist damit Σ Letzte Änderung: :32 14
15 einem einfachen Weg von der Wurzel zu einem Knoten v wird eine Zeichenkette als Konkatenation der Beschriftungen zugeordnet damit repräsentiert jeder Knoten eine eindeutige Zeichenkette um zu testen, ob ein Wort α = a 1 a 2...a n in M enthalten ist, stellt man fest, ob es einen Weg von der Wurzel zu einem Blatt gibt, dessen Beschriftung gleich α ist Suffix-Tries Suffix-Tries (auch Position-Trees) sind Tries die alle Suffixe einer Zeichenkette σ repräsentieren Beispiel für σ = ababc Letzte Änderung: :32 15
16 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 16
17 Suffix-Bäume Wege die nur aus unären Knoten bestehen, werden zu einer Kante zusammengezogen, Beispiel: Suffix-Trie zu σ = ababc damit erhält man einen Suffix-Baum (=kontrahierter Suffix-Trie) Beispiel für σ = ababc Letzte Änderung: :32 17
18 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 18
19 Konstruktion von Suffix-Bäumen zunächst naiver Algorithmus das Verfahren setzt voraus, dass kein Suffix Prafix eines anderen Suffix ist d.h. jedem Suffix entspricht eindeutig ein Blatt dies ist automatisch gewährleistet, wenn das letzte Zeichen von σ nirgends sonst in σ auftritt ggfs. wird ein neues Endezeichen $ ergänzt Naiver Algorithmus Voraussetzung: Das letzte Zeichen von σ tritt nirgends sonst in σ auf sei n = σ damit der zu σ konstruierende Suffix-Baum T eine lineare Größe in n hat, fordert man für T : jede Kante in T repräsentiert ein nicht-leeres Teilwort von σ die Teilworte, die benachbarten Kanten zugeordnet sind, beginnen mit verschiedenen Buchstaben jeder innere Knoten (außer der Wurzel) hat wenigstens zwei Nachfolger jedes Blatt repräsentiert ein nicht-leeres Suffix von σ damit Anzahl Blätter gleich n und Anzahl der inneren Knoten höchstens gleich n 1 Speicherbedarf also O(n) Begriffe zur Beschreibung des naiven Verfahrens eine zusammenhängende Folge, bei der Wurzel beginnender Kanten, heisst partieller Weg endet ein partieller Weg bei einem Blatt, heisst er Weg der Knoten am Ende des mit α bezeichneten Weges heisst Ort einer Zeichenkette α (falls er existiert) jede Zeichenkette, die α als Präfix hat, heisst Erweiterung von α der Ort der kürzesten Zeichenkette, die α als Präfix hat und deren Ort definiert ist, heisst erweiterter Ort der Zeichenkette α Letzte Änderung: :32 19
20 der Ort des längsten Präfix von α, dessen Ort definiert ist, heisst kontrahierter Ort der Zeichenkette α mit suf i bezeichnen wir das an der Position i beginnende Suffix von σ, also suf 1 = σ und suf n = $ mit head i bezeichnen wir das längste Präfix von suf i, das auch Präfix für ein suf j für ein j < i ist Naives Verfahren zur Konstruktion des Suffix-Baumes wir beginnen mit dem leeren Baum T 0 T i+1 entsteht aus T i durch Einfügen des Suffixes suf i+1 in T i haben alle Suffixe suf j, j < i bereits einen Ort head i ist das längste Präfix von suf i, dessen erweiterter Ort in T i 1 existiert tail i = suf i head i, d.h. suf i = head i tail i tail i ϵ da letztes Zeichen nirgends sonst in σ auftreten darf Letzte Änderung: :32 20
21 Letzte Änderung: :32 21
22 Beispiel Letzte Änderung: Quelle: Ottmann & 06:32 Widmayer, Algorithmen und Datenstrukturen 22
23 Naives Verfahren zur Konstruktion des Suffix-Baumes T i+1 kann aus T i wie folgt konstruiert werden (head i+1 ϵ) bestimme den erweiterten Ort von head i+1 in T i teile die letzte zu diesem Ort führende Kante in zwei neue auf (durch Einfügen eines neuen Knotens) schaffe ein neues Blatt als Ort für suf i+1 = head i+1 tail i+1 Letzte Änderung: :32 23
24 Letzte Änderung: :32 24
25 Beispiel Letzte Änderung: Quelle: Ottmann & 06:32 Widmayer, Algorithmen und Datenstrukturen 25
26 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 26
27 Letzte Änderung: :32 27
28 Effiziente Implementierung durch kompakte Repräsentation Letzte Änderung: Quelle: Ottmann & 06:32 Widmayer, Algorithmen und Datenstrukturen 28
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 4 Suchen in Texten Version vom: 15. November 2016 1 / 39 Vorlesung 8 15. November
MehrTU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume
TU München Hauptseminar: WS 2002 / 2003 Einführung in Suffix - Bäume Bearbeiterin: Shasha Meng Betreuerin: Barbara König Inhalt 1. Einleitung 1.1 Motivation 1.2 Eine kurze Geschichte 2. Tries 2.1 Basisdefinition
MehrZeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41
Zeichenketten Michael Fularczyk 17.05.2011 Michael Fularczyk Zeichenketten 17.05.2011 1 / 41 Inhalt Zeichenketten Zeichensätze Darstellung Suchverfahren naive Stringsuche Knuth-Morris-Pratt Boyer-Moore
MehrEffiziente Algorithmen 2
Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
MehrSuchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz
Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Suchen Bisher: Sequentielle Suche Binäre Suche Interpolationssuche Jetzt: Suchen in Zeichenfolgen 2 1 Suchen in Zeichenfolgen Das Problem:
MehrAlgorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 8. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suche in Texten Einführung Suche in dynamischen
MehrString - Matching. Kapitel Definition
Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der
MehrAlgorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrUniversität Bremen. Textsuche. Thomas Röfer. Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz
Textsuche Thomas Röfer Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz Rückblick Graphenalgorithmen Scan-Line-Prinzip Adjazenzmatrix Adjazenzlisten
Mehr2.2 Der Algorithmus von Knuth, Morris und Pratt
Suchen in Texten 2.1 Grundlagen Ein Alphabet ist eine endliche Menge von Symbolen. Bsp.: Σ a, b, c,..., z, Σ 0, 1, Σ A, C, G, T. Wörter über Σ sind endliche Folgen von Symbolen aus Σ. Wörter werden manchmal
MehrBoyer Moore Algorithmus
LMU, CIS, SoSe 2006 Veranstaltung: Programmierung von Stringmatchingalgorithmen in C Kursleiter: Max Hadersbeck Referenten: Galina Hinova Stefan Partusch Andreas Neumann Die Erfinder J Strother Moore J.
MehrAlgorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
Mehr1.8 Shift-And-Algorithmus
.8 Shift-And-Algorithmus nutzt durch Bitoperationen mögliche Parallelisierung Theoretischer Hintergrund: Nichtdeterministischer endlicher Automat Laufzeit: Θ(n), falls die Länge des Suchwortes nicht größer
MehrProseminar String Matching
Proseminar Textsuche Proseminar String Matching PD Dr. habil. Hanjo Täubig Lehrstuhl für Theoretische Informatik (Prof. Dr. Susanne Albers) Institut für Informatik Technische Universität München Wintersemester
Mehr8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen
8.4 Suffixbäume Ziel: Datenstruktur, die effiziente Operationen auf (langen) Zeichenketten unterstützt: - Suche Teilzeichenkette (Substring) - Präfix - längste sich wiederholende Zeichenkette -... Anwendungen:
MehrAlgorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
MehrPraktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt
Praktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt Team A Rot Daniel Baldes (Nr. 11041002, ai688@gm.fh-koeln.de) Holger Pontius
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Texten Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
MehrKapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113
Kapitel 2 Suche nach endlich vielen Wörtern R. Stiebe: Textalgorithmen, Winter 2005/06 113 Übersicht Aufgabenstellung Gegeben: Text T und eine endliche Menge von Wörtern P = {P 1,..., P r }; Gesucht: alle
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät Vorlesung Sommer 2009 Teil I Algorithmen zur exakten Suche in Texten Die Klasse String Zeichenketten sind in Java Objekte.
MehrZeichenketten. Hallo Welt für Fortgeschrittene Daniel Wust Informatik 2 Programmiersysteme Martensstraße Erlangen
Zeichenketten Hallo Welt für Fortgeschrittene Daniel Wust 23.04.2013 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Zeichenketten ASCII Regionsspezifische Erweiterungen Unicode Speicherung
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Kap. 19: Suffixbäume Faculty of Technology robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Sommer 2011 Bekannte Verfahren zur exakten Suche in Zeichenreihen Exakte
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrIndexieren und Suchen
Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Indexieren und Suchen Tobias Scheffer Index-Datenstrukturen, Suchalgorithmen Invertierte Indizes Suffix-Bäume und -Arrays Signaturdateien
MehrEffiziente Algorithmen und Komplexitätstheorie
1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung III: D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009,
MehrKapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11
Kapitel 1 Exakte Suche nach einem Wort R. Stiebe: Textalgorithmen, WS 2003/04 11 Überblick Aufgabenstellung Gegeben: Text T Σ, Suchwort Σ mit T = n, = m, Σ = σ Gesucht: alle Vorkommen von in T Es gibt
MehrAlgorithmen zur exakten Suche in Texten
Kapitel 4 Algorithmen zur exakten Suche in Texten In diesem Kapitel wird ein Problem aus der Sequenzanalyse näher betrachtet, die exakte Textsuche: Gegeben ein Text und ein Muster, finde alle Vorkommen
MehrAlgorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen
Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2006/2007 February 5, 2007 Kapitel 6: Algorithmen
Mehr4.9.7 Konstruktion der Suffixbäume
.9.7 Konstruktion der Suffixbäume Beipiel: xabxa (siehe Abbildung.27) Man beginnt mit der Konstruktion eines Suffixbaumes für gesamten String und schreibt eine 1 am Blatt, weil der Suffix xabxa an der
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 9. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Invertierte Listen Nutzung vor allem zur Textsuche
Mehr4. Suche in Texten. Suche in (weitgehend) statischen Texten -> Indexierung 4-1. Einführung
Einführung 4. Suche in Texten Suche in dynamischen Texten (ohne Indexierung) - Naiver Algorithmus (Brute Force) - Knuth-Morris-Pratt (KMP) - Algorithmus - Boyer-Moore (BM) - Algorithmus - Signaturen Suche
MehrAlgorithmen auf Zeichenketten
Algorithmen auf Zeichenketten Rabin-Karp Algorithmus Christoph Hermes hermes@hausmilbe.de Zeichenketten: Rabin-Karp Algorithmus p. 1/19 Ausblick auf den Vortrag theoretische Grundlagen... Zeichenketten:
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016
Mehr13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)
AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode
MehrÜbungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrAlgorithmen auf Sequenzen
Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen
MehrString Matching 2. Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen.
1 2 1. Strings Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen. Ein String über S ist eine endliche Folge S = S(1)S(2)...S(n) von Zeichen S(i) aus S, dessen Länge n wir mit S
MehrProjektdokumentation String-Searching KMP-Algorithmus Boyer-Moore-Algorithmus
Algorithmische Anwendungen Wintersemester 2005/06 Projektdokumentation String-Searching KMP-Algorithmus Boyer-Moore-Algorithmus Stand: 25.01.2006 Gruppe: A-Lila Hicham Settah Dieter Galinowski Inhalt:
Mehr12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
MehrStrings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.
Strings Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Suche Substring Häufiges Problem Relevante Beispiele: Suche ein Schlagwort in einem Buch Alphabet: A-Za-z0-9 Suche Virussignatur auf der
MehrKlausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
MehrEinleitung. Kapitel 1
Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 4
Grundlagen der Algorithmen und Datenstrukturen Kapitel 4 Christian Scheideler + Helmut Seidl SS 2009 06.05.09 Kapitel 4 1 Wörterbuch-Datenstruktur S: Menge von Elementen Jedes Element e identifiziert über
Mehr6. Sich selbst organisierende Datenstrukturen
6. Sich selbst organisierende Datenstrukturen 6.1 Motivation einfach, wenig Verwaltungsoverhead effizient im amortisierten Sinn EADS 6.1 Motivation 201/598 6.2 Sich selbst organisierende lineare Listen
MehrDatenstrukturen und Algorithmen 2. Klausur SS 2001
UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................
MehrText Analytics. Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk
Text Analytics Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk Nils Alberti & Jürgen Eicher, 12. Juni 2008 Einführung Stringmatching bisher: Analyse des Patterns zum schnellen
MehrAlgorithmentheorie. 15 Suchen in Texten (1)
Algorithmentheorie 15 Suhen in Texten (1) Prof. Dr. S. Alers Suhe in Texten Vershiedene Szenrien: Sttishe Texte Literturdtennken Biliothekssysteme Gen-Dtennken WWW-Verzeihnisse Dynmishe Texte Texteditoren
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 8. März
MehrKapitel 5. Textalgorithmen. 5.1 Grundbegriffe
Kapitel 5 Textalgorithmen 5.1 Grundbegriffe Wir beschäftigen uns hauptsächlich mit Textsuche (und Varianten). Gegeben: Alphabet Σ (mindestens zwei Buchstaben). Text S = s 1... s n Σ in Array S[1..n]. Muster
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen
MehrMathematisches Praktikum - SoSe 2014
Mathematisches Praktikum - SoSe 2014 Prof. Dr. Wolfgang Dahmen Felix Gruber, M. Sc., Christian Löbbert, M. Sc., Yuanjun Zhang, M. Sc., Klaus Kaiser, M. Sc. Aufgabe 3 Bearbeitungszeit: zwei Wochen (bis
MehrMathematisches Praktikum - SoSe 2015
Mathematisches Praktikum - SoSe 2015 Prof. Dr. Wolfgang Dahmen Felix Gruber, Igor Voulis Aufgabe 4 Bearbeitungszeit: drei Wochen (bis Freitag, 5. Juni 2015) Mathematischer Hintergrund: String-Matching-Algorithmen,
MehrIsomorphie von Bäumen
Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 18. März
MehrBeweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens
Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
Mehr5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)
5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrGeometrische Algorithmen Segmentschnitt
Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des
MehrGeometrische Algorithmen Segmentschnitt
Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente! Lage zweier Segmente! Prüfung auf Schnittfreiheit! Formeln zum Geradenschnitt! Feststellen
MehrDatenstrukturen und Algorithmen D-INFK
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
MehrAlgorithmen und Datenstrukturen I Bruder-Bäume
Algorithmen und Datenstrukturen I Bruder-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 11.12.2017 10:50 Algorithmen und Datenstrukturen I, Bruder-Bäume 1/24 Definition ein binärer Baum heißt ein Bruder-Baum,
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrVerkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
MehrFibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005
Fibonacci-Suche Informatik I Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 4. Mai 005 Grundidee wie bei der Binärsuche, aber andere Aufteilung Fibonacci-Zahlen: F 0 = 0 F 1 = 1 F m
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphdarstellungen Maike Buchin 0.6.017 Graphen Motivation: Graphen treten häufig als Abstraktion von Objekten (Knoten) und ihren Beziehungen (Kanten) auf. Beispiele: soziale
Mehr4.4 Anwendungen von Suffixbäumen und Suffix-Arrays
4.4 Anwendungen von Suffixbäumen und Suffix-Arrays exakte Suche in unveränderlichen Texten (schon besprochen) inexakte Suche in unveränderlichen Texten Finden von Regelmäßigkeiten (z.b. längste Wiederholungen)
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
MehrDatenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
MehrDiskrete Strukturen Kapitel 4: Graphentheorie (Bäume)
WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
Mehr4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java
Inhaltsverzeichnis 1 Grundlagen 1 1.1 Algorithmen und ihre formalen Eigenschaften 1 1.2 Beispiele arithmetischer Algorithmen 5 1.2.1 Ein Multiplikationsverfahren 5 1.2.2 Polynomprodukt 8 1.2.3 Schnelle
MehrAlgorithmen & Datenstrukturen. 3. Suchen
Algorithmen & Datenstrukturen 3. Suchen 1 Exponentielle Suche Gesucht wird ein Element mit Schlüssel k. Die exponentielle Suche eignet sich zum Suchen in nach den Schlüsselwerten sortierten Feldern, deren
Mehr5. Mustererkennung. Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild. gegeben: endliches Alphabet Σ. Muster p Σ m, m IN
5. Mustererkennung Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild gegeben: endliches Alphabet Σ Text t Σ n, n IN Muster p Σ m, m IN gesucht: erste (bzw. jede) Position von
MehrEs sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:
Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
MehrGrundlagen der theoretischen Informatik
Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)
MehrMehrwegbäume Motivation
Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung
MehrAlgorithmische Geometrie: Schnittpunkte von Strecken
Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010, 3.11.2009 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben
MehrAlgorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 1 186.089 VO 3.0 Vorlesungsprüfung 19. Oktober
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
MehrUntersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen
MehrRelationen und DAGs, starker Zusammenhang
Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind
MehrInformatik B Sommersemester Musterlösung zur Klausur vom
Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (25 Sortieren vorsortierter Daten) 1 Untere Schranke für allgemeine Sortierverfahren Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen
MehrInformatik II: Algorithmen und Datenstrukturen SS 2015
Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik
Mehr1 Kürzeste Pfade in Graphen
Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G
MehrDiskrete Strukturen Wiederholungsklausur
Technische Universität München (I7) Winter 2013/14 Prof. J. Esparza / Dr. M. Luttenberger LÖSUNG Diskrete Strukturen Wiederholungsklausur Beachten Sie: Soweit nicht anders angegeben, ist stets eine Begründung
MehrDas Problem des Handlungsreisenden
Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme
MehrGrundlagen der Informatik
Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken
MehrDie Nerode-Relation und der Index einer Sprache L
Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p
MehrDatenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
Mehr