Pattern Matching. Maik Windhorst Universität Bremen Abstract. 1. Pattern Matching Was ist das?

Größe: px
Ab Seite anzeigen:

Download "Pattern Matching. Maik Windhorst Universität Bremen Abstract. 1. Pattern Matching Was ist das?"

Transkript

1 Pattern Matching Maik Windhorst Universität Bremen Abstract In diesem Dokument soll das Thema Pattern Matching betrachtet werden, insbesondere die Anwendungen im Bereich der Informatik. Dafür werden wir zunächst allgemein klären was Pattern Matching ist und wie es definiert ist. Anschließend wird die einfachste und wahrscheinlich bekannteste Anwendung des Pattern Matching in der Informatik betrachtet, die Sequenzen oder auch Strings. Aufbauend auf dem Wissen das wir aus der Betrachtung der Strings gewonnen haben werden wir Pattern Matching auf Bäumen betrachten. Als letztes das Pattern Matching auf Graphen. In allen drei Anwendungsgebieten werden wir einen genaueren Blick auf die Algorithmen und den benötigten Aufwand werfen. 1. Pattern Matching Was ist das? Um zu beantworten was Pattern Matching ist, ist der einfachste Weg, sich weitere Fragen zu stellen, die durch Pattern Matching beantwortet werden. Wie ähnlich ist ein gegebenes Objekt mit einem oder mehreren anderen Objekten? Intuitiv erscheint diese Frage jedem klar, natürlich sind Äpfel und Birnen überhaupt nicht ähnlich. Nehmen wir das berühmte Beispiel aus der Schule, wenn wir im Physikunterricht einmal vergessen haben die Einheiten mit aufzuschreiben: Was vergleichst du denn da? Äpfel mit Birnen? Allerdings kann die Antwort auch anders lauten, wenn wir den Abstraktionsgrad der Betrachtung erhöhen. Sowohl ein Apfel als auch eine Birne sind Früchte, sie haben beide Kerne, können beide grün sein. So können wir eventuell eine gewisse Ähnlichkeit zwischen beiden erkennen. Und genau das ist Pattern Matching. Wir definieren zunächst ein Muster (Pattern), welches einen beliebigen Abstraktionsgrad haben darf, welcher die Genauigkeit unserer anschließenden Findung (Matching) bestimmt. Eine andere Frage die sich durch Pattern Matching beantworten lässt lautet Welche Objekte sind gleich genug, um vergleichbar zu sein. Wieder können wir auf unser Beispiel von Apfel und Birne nehmen. Manch einer würde sofort sagen, Äpfel und Birnen sind nicht zu vergleichen. Doch durch Anhebung der Abstraktion der Betrachtung können wir diese Aussage erneut relativieren. Natürlich sind beides Obstsorten, die gewisse Eigenschaften haben, die gleich sind. Die Frage ist nur, wann haben die beiden genug gleiche Eigenschaften dieses zu vergleichen. Auch dieses Problem läst sich im Pattern definieren und die Suche dementsprechend durchführen. Bisher haben wir lediglich Dinge miteinander auf Gleichheit überprüft. Doch auch die Fragen: Ist ein Muster ein Bestandteil von einem oder mehrerer Objekte lässt sich mit Pattern Matching beantworten. Ob ein Apfel ein Teil einer Birne ist, erscheint keine sinnvolle Frage zu sein. Doch nehmen wir nur einen Kern des Apfels, kann diese Frage positiv beantwortet werden. Die letzte zu beantwortende Frage lautet: Hat ein Objekt eine gegebene Struktur? Auch ein Apfel hat eine Struktur, z.b. innen der Kern, dann das Fleisch und aussen die Schale. Auf diese Struktur können wir nun jeden anderen Apfel überprüfen. Dabei ist die Struktur unser Pattern das wir versuchen auf die anderen Äpfel zu Matchen. Natürlich waren all die gegebenen Beispiele extrem abstrakt und nicht wirklich für die Anwendung von Pattern Matching zu gebrauchen, doch sind die verschiedenen Aufgaben, die durch Pattern Matching gelöst werden können, klar geworden. Versuchen wir als Pattern Matching anhand dieser gewonnen Erkenntnisse zu definieren: Definition Pattern Matching: Pattern Matching ist der Vorgang, bei dem die Existenz eines gegebenen Musters (Pattern) überprüft oder die Qualität der Gleichheit zum gegebenen Muster bewertet wird

2 1.1 Die zwei Arten des Pattern Matching Anhand unserer Definition von Pattern Matching kann man schon erkennen, dass es zwei verschiedene Arten des Pattern Matching gibt, welche im folgenden Abschnitt vorgestellt werden Weiche Vergleiche Die weichen Vergleiche geben Informationen dazu aus, welche Qualität der Vergleich hatte. Sie decken also den zweiten Teil unserer Definition ab. Die wohl bekanntesten Anwendungen hierfür kommen aus der Kriminologie, DNA-Analyse und Vergleich von Fingerabrücken. Hierbei wird die am Tatort gefundene DNA bzw. der am Tatort gefundene Fingerabdruck mit einer Datenbank voll anderer DNA-Proben bzw. Fingerabrücken durch Pattern Matching verglichen und eine prozentuale Wahrscheinlichkeit für die Gleichheit zurückgegeben Harte Vergleiche Die für die Informatik wesentlich interessanteren Vergleiche gliedern sich in die Kategorie des harten Vergleichs ein. Sie geben eine exakte Aussage darüber, ob ein Vergleich erfolgreich war oder nicht. Sie decken den ersten Teil unserer Definition ab und gliedern sich noch einmal in zwei Untergruppen, wie sie in den Fragestellungen schon vorgekommen sind. Eine Untergruppe sind die harten Vergleiche, bei denen die genaue Äquivalenz des gegeben Muster mit anderen Objekten überprüft wird, wie z.b. der einfache Vergleich von zwei Strings. Die andere Untergruppe überprüft das Enthaltensein eines Musters in anderen Objekten, was in heutigen höheren Programmiersprachen zumeist als Pattern Matching bezeichnet wird. Der Spamfilter sucht z.b. im gesamten Text das Vorkommen bestimmter Wörter, die auf seiner Blacklist stehen. 2. Anwendungen in der Informatik Nachdem nun ein grober Überblick darüber verschaffen wurde, was Pattern Matching ist und welche Arten des Pattern Matching verwendet werden, wollen wir uns speziell die Anwendungen in der Informatik anschauen. Wir beginnen mit den Sequenzen, zu denen unter anderem Strings gehören, um an einfachen Algorithmen auf die späteren Komplikationen vorbereiten zu können. Doch zunächst eine kleine Einführung, welche Schritte für alle folgenden Anwendungen nötig sind. Das Pattern Matching besteht grundsätzlich aus zwei Schritten. Der erste Schritt besteht darin, das passende Muster für das angestrebte Ziel der Suche zu definieren, was sich bereits als schwere Aufgabe herausstellen kann. Der zweite Schritt ist die Findung und Durchführung eines Suchalgorithmus nach den gegebenen Mustern. 2.1 Sequenzen Die wohl berühmteste Vertretung der Gruppe der Sequenzen ist der String, von dem wir auch im Folgenden im Namen der Sequenz sprechen wollen. Für den ersten Schritt des Pattern Matchings, dem Finden des richtigen Musters, muss man sich zunächst das Ziel und den Zweck der Suche definieren, da die Muster für verschiedene Zwecke sehr verschiedene Muster aufweisen Äquivalenz Beginnen wir mit dem einfachsten Beispiel, der Ü- berprüfung der Gleichheit. Wollen wir genau wissen ob zwei Strings gleich sind, entspricht das Muster natürlich genau dem gesuchten String. Dieses Szenario ist wahrscheinlich das am häufigsten beim Programmieren verwendete, doch oftmals reicht es nicht aus. Der Algorithmus dazu ist auch kein großes Geheimnis. Man prüft von links nach rechts jeden einzelnen Buchstaben, erhält man einen Missmatch (Ungleichheit), sind die Strings nicht gleich. Eine einfache Darstellung für einen noch viel einfacheren Algorithmus ist ein endlicher Automat. Abbildung 1: Endliche Automat der "Hallo" erkennt Hierbei handelt es sich um einen deterministischen endlichen Automaten, der lediglich das Wort Hallo erkennt. Der Aufwand für einen deterministischen endlichen Automaten ist immer linear. Das ist in unserem Beispiel auch sehr gut daran zu sehen, dass jedes Zeichen maximal einmal überprüft werden muss Reguläre Ausdrücke Eine etwas komplexere Art der Suche ist das Finden von Strings, die eine bestimmte Struktur aufweisen. Ein Beispiel dafür ist z.b. eine adresse. Diese sollte einer bestimmten Struktur entsprechen, beginnend mit einer beliebigen Anzahl von Zeichen, gefolgt von ei-

3 gefolgt von einer weitern beliebigen Anzahl von Zeichen, gefolgt von einem Punkt und einer abschließenden weitern beliebigen Anzahl von Zeichen. Zur Erfüllung dieser Aufgabe gibt es eine eigene Grammatik zur Definition von Mustern, die regulären ausdrücke (Regular Expressions). Das Muster zur Erkennung einer adresse würde mit regulären Ausdrücken wie folgt aussehen: Auch reguläre Ausdrücke beschreiben eine Grammatik für einen endlichen Automaten. Abbildung 2: Endliche Automat für den regulären Ausdruck Auf den ersten Blick sollte dieser Automat exakt adressen erkennen. Allerdings ist dieser Automat nicht deterministisch. Der Automat hat z.b. im Zustand S 1 keinen fest vorgeschriebenen Weg, sondern hat zwei mögliche Wege die er einschlagen kann. So könnte die adresse karl@mustermann.de bereits im Zustand S 1 komplett durchlaufen werden, da ebenfalls ein beliebiges ist und in der Schleife abgehandelt werden kann. Dasselbe gilt für den Punkt. Um dieses Problem zu Lösen und den Aufwand zu bestimmen können wir uns Dank der Darstellung als endlichen Automaten auf eine alte Regel aus der theoretischen Informatik stützen: Zu jedem endlichen Automaten A lässt sich effektiv ein deterministischer Automat P(A) konstruieren, der dieselbe Sprache erkennt. Der Beweis zu diesem Theorem befindet sich im Skript zu Theoretische Informatik 1 von Prof. Dr. Hans Jörg Kreowski und wird daher an dieser Stelle nicht durchgeführt. Da dort zusätzlich noch bewiesen ist, dass die Transformation einer nicht-deterministischen in einen deterministischen Automaten in linearer Zeit möglich ist, können wir gleich eine Aussage über den Aufwand treffen. Der Vergleich eines Musters der Länge n mit einem Wort der Länge m liegt in der Aufwandsklasse O(n+m), da sowohl die Transformation als auch der Vergleich in linearer Zeit abgehandelt werden. Somit ist der Gesamtaufwand ebenfalls linear Exaktes Pattern Matching Beim exakten Pattern Matching untersucht man das Vorkommen eines fest vorgegebenen Musters, z.b. ein String, in einem anderen String. Ein Beispiel sieht wie folgt aus: String: a b b a b a b a c b a Im ersten Moment sieht das nicht nach einem schwierigeren Problem als die regulären Ausdrücke aus, allerdings erkennt man das Problem bei genauerer Betrachtung des oberen Beispiels. Ist das Pattern an der Position 2 zum Vergleich angekommen, so geht zunächst alles gut. Bis zum Vergleich an der Position 6, dort gibt es einen Missmatch. String: a b b a b a b a c b a Man kann nun nicht einfach bei Position 7 fortfahren, da der Match im vorherigen String anfangen könnte. Im Beispiel ist dies sogar der Fall, beginnt man an Position 4, so ist der Match erfolgreich. Daraus folgt, dass wir nur eine Position voranschreiten dürfen und wir Buchstaben aus dem String mehrfach vergleichen müssen. Dieses zurückgehen um sämtliche Möglichkeiten durchzuprobieren nennt man Backtracking. Beim Backtracking probiert man jede Möglichkeit bis die richtige gefunden wurde. Wenn man eine Möglichkeit ausprobiert, die auf dem Weg nicht funktioniert, springt man zurück zur Position der Wahl und probiert die nächste Möglichkeit. Solange bis man die richtige Lösung gefunden hat. Die Komplexität des Becktracking kann extrem hoch sein, wie z.b. in diesem einfachen Beispiel: String: a a a a a a a a a a a a a a a a a a a a Pattern: a a a a b In diesem Fall müssen wir 16 mal 5 Vergleiche durchführen, also insgesamt 160 Vergleiche die alle zu keinem Ergebnis führen. Ein Buchstabe des Strings wird bis zu 5mal für einen Vergleich hergezogen. Das ist natürlich alles andere als linear. Im schlechtesten Fall hat Backtracking einen exponentiellen Laufzeit, worauf im Kapitel über Graphen noch genauer eingehen werde. In unserem Fall liegt der schlechteste Fall bei O(mn) Vergleiche bei einem Pattern der Länge m und einem Wort der Läge n. Für das exakte Pattern Matching gibt es allerdings schon diverse Algorithmen mit einer wesentlich besseren Laufzeit haben können, wovon nun einer kurz vorgestellt werden soll.

4 Der Boyer-Moore-Algorithmus ist einer der bekanntesten und am häufigsten eingesetzten Algorithmus in Anwendungen wie z.b. der Suchfunktion in Texteditoren. Er hat als schlechtesten Fall ebenfalls eine Komplexität von O(mn) Vergleichen, doch ist im Schnitt wesentlich schneller. Die Grundidee liegt darin, das Muster von rechts nach links zu Überprüfen und somit die Möglichkeit zu erlangen es um mehr als nur eine Position shiften zu können. Im besten Fall ist bereits das erste verglichene Textsymbol ein Symbol, das im Muster überhaupt nicht vorkommt, dann kann das Pattern um die Länge des Musters verschoben werden, da das Muster in keiner anderen Position in dem dieser Buchstabe vorkommt einen Match erbringen kann. String: a b b a d a b a c b a b a b a c In diesem Fall kommt das d an Position 4 nicht im Muster vor, daher kann es an die Position 5 verschoben werden. Tritt immer dieser günstigste Fall beim Boyer- Moore-Algorithmus auf, so benötigt er O(n/m) Vergleiche. Diese Vorgehensweise wird auch als Schlechtestes Zeichen -Strategie beschrieben. Sie kann allerdings auch angewandt werden, wenn das gefundene Zeichen zwar zu einem Missmatch führt, aber an einer Stelle im Muster vorkommt. Dann kann das Muster allerdings nur so weit geshiftet werden, bis das Vorkommen auf das Zeichen ausgerichtet ist. String: a b b a b a b a c b a b a b a c Allerdings ist die Schlechtestes Zeichen -Strategie nicht immer die beste, im folgenden Beispiel würde sie z.b. ein negatives Shiften zur Folge haben. 3. Bäume Nachdem die Sequenzen soweit abgehandelt sind und durch relativ simple Algorithmen wie endliche Automaten oder den Boyer-Moore-Algorithmus zu lösen sind, gehen wir einen Schritt weiter und untersuchen das Pattern Matching auf Bäume. Dabei gehen wir wieder in derselben Reihenfolge der zwei nötigen Schritte vor. Zunächst definieren wir die zu suchenden Muster. Wie bei den Sequenzen gibt es hier den sehr trivialen Fall des exakten Vergleiches zweier Bäume. In diesem Fall entspricht das Muster dem zu suchenden Baum. Wir traversieren den Baum, auf die Methoden später eingegangen wird, und brechen ab sobald entweder ein Missmatch auftritt oder der Baum vollständig durchlaufen wurde. Es kann auf jeden Fall gesagt werden, dass dieses Problem mit linearem Aufwand gelöst werden kann, da jeder Knoten des Baumes nur einmal besucht werden muss, egal wie er traversiert wird. Auch bei den Bäumen wird es wieder schwer, wenn wir einen Teilbaum innerhalb eines anderen Baumes suchen wollen. Abbildung 3: Baum String: a b a a b a b a c b a Pattern: c a b a b c a b a b c a b a b (Schlecht) (Gut) Um das gute Ergebnis zu erreichen gibt es die Gutes Ende -Strategie. Man probiert ob das Suffix, welches übereingestimmt hat an anderer Stelle im Muster vorkommt und richtet diese aus. Abbildung 4: Muster Zunächst wollen wir uns einmal mit den beiden bekanntesten Algorithmen zum durchlaufen eines Baumes

5 beschäftigen. Zum einen gibt es die Tiefensuche, welche rekursiv die Kindknoten eines Knotens von links nach rechts traversiert. Da nun die verschiedenen Algorithmen zum Durchlaufen eines Baumes bekannt sind, können wir bestimmen, dass der Aufwand zum Finden eines einzelnen Knotens linearen Aufwand hat. Doch sobald das Muster, das wir finden wollen, aus mehr als einem Knoten besteht, kommt das Backtracking wieder ins Spiel. Das oben aufgeführte Beispiel ist wieder ein Beispiel an dem eine Menge Zeit und Aufwand verbraten wird, ohne etwas zu finden. Sobald wir unseren Wurzelknoten des Musters im Baum gefunden haben, müssen wir von diesem ausgehend die anderen Knoten des Musters mit den ausgehenden Knoten vom gefundenen Knoten im Baum vergleichen. Stoßen wir im Verlauf des Vergleiches auf einen Missmatch, gehen wir im schlechtesten Fall zum Ausgangsknoten zurück und probieren ie anderen möglichen Pfad aus. In unserem Fall ist dies nicht der Fall, hier muss von dem Knoten, bevor der Missmatch aufgetreten ist, jeder andere Kindknoten überprüft werden. 4. Graphen Abbildung 5: Tiefensuche Die zweite Variante ist die Breitensuche, bei der die Kindknoten eines Knotens zunächst von links nach rechts durchlaufen werden, ist das Ziel noch nicht erreicht, werden alle Kindknoten der bereits besuchten Knoten von links nach rechts durchlaufen. 1 B 3 A 2 C D E F G Abbildung 6: Breitensuche Die letzte Form des Pattern Matchings, die in diesem Dokument betrachtet wird, ist das Pattern Matching auf Graphen. Das finden von Mustern in Graphen ist der erste und wahrscheinlich auch schwierigste Teil der Graphtransformation. Der folgende Text wird sich auch den Hintergrund der Graphtransformation als Hauptthema nehmen. Grundsätzlich unterscheidet man drei verschiedene Arten von Algorithmen für Pattern Matching auf Graphen, welche sich wiederum in einzelne Unterformen aufgliedern. Dabei handelt es sich um die Algorithmen die einen Graphen exakte Übereinstimmung der Graphen voraussetzen, um die Algorithmen die nicht exakte Übereinstimmungen aufspüren sowie die Algorithmen, die sich mit den weiteren Übereinstimmungsproblemen auseinander setzen. Für die Graphtransformation sind die exakten Algorithmen interessant, daher werden wir dieses genauer betrachten. Diese unterteilen sich noch mal in sehr strenge und abgeschwächte Formen der Übereinstimmung. Die strengste Form des exakten Matching verlangt nach Graph-Isomorphismus. Das bedeutet, das jeder Knoten und jede Kante des Musters auf genau einen Knoten bzw. eine Kante im anderen Graphen abgebildet werden kann und das keine anderen Knoten oder Kanten existieren Kurz gesagt, die Äquivalenz zweier Graphen. Abbildung 7: Graph-Isomorphismus

6 Die zweite, eine etwas abgeschwächte Form des exakten Matchings, verlangt nach Subgraph- Isomorphismus. Das hei0t, es muss Graph- Isomorphismus zwischen dem Muster und einem Teilgraphen des anderen Graphen bestehen. Abbildung 8: Subgraph-Isomorphismus Die dritte und abgeschwächteste Form verlangt einen Homomorphismus zwischen den beiden Graphen. Beim Homomorphismus ist es zusätzlich zu den Eigenschaften des Subgraph-Isomorphismus erlaubt, mehrere Knoten des einen Graphen auf einen Knoten eines Subgraphen des anderen Graphen abzubilden. oder Breitensuche auf Graphen angewandt werden. Dabei wird überprüft, ob die durch die bisher gefundenen Knoten und Abbildungen gefundenen Graphen isomorph sind. Sollte das nicht der Fall sein, geht der Algorithmus im Suchbaum zurück zu der Stelle, an der er die letzte Abbildung eingefügt hat und überprüft die Alternativen zu dieser fehlgeschlagenen Entscheidung. Um von vorn herein möglichst viele Fehlentscheidungen auszuschließen, überprüft der Algorithmus zusätzlich, ob es von den Nachbarknoten des Knoten der als potenziellen Abbildung gefunden wurde, bereits mindestens eine Abbildung gefunden wurde. Dieser Algorithmus hat im besten Fall eine Komplexität von O(mn), wobei m die Anzahl der Knoten im ersten und n die Anzahl der Knoten im zweiten Graphen ist. Im schlechtesten Fall schneidet der Algorithmus allerdings mit einer Laufzeit von O(m n n²) ab. Eine andere Möglichkeit Pattern Matching auf Graphen auszuführen ist es, das gesuchte Muster in einen Entscheidungsbaum zu transformieren, wobei entweder ein Knotenpaar, oder eine Kante zwischen zwei Knoten als eine Entscheidung angesehen werden. Abbildung 10: Muster A->B Abbildung 9:Homomorphismus Ein Algorithmus, der sich schon früh mit allen drei beschriebenen Problemen befasst hat, war der Algorithmus von Ullmann. Dieser benutzt das Prinzip des Backtracking. Für jeden Knoten aus dem Graphen A wird sukzessiv überprüft, welche Knoten vom Graphen B als Abbildung in Frage kommen. Dazu müssen mindestens die Markierungen und der Grad der Knoten identisch sein. Dabei können die Verfahren der Tiefen- B->D B->C D->C C->D Abbildung 11: Entscheidungsbaum

7 Wir unterteilen das gesamte Problem einen Graphen in einem anderen Graphen zu finden in mehrere Teilprobleme. Wir beginnen die Suche nach der Kante in der Wurzel des Entscheidungsbaumes. Haben wir diese gefunden, sucht man von dort ausgehend eine Abbildung für die nächste Kante. Dabei benutzt man ebenfalls das Prinzip des Backtracking. Man probiert solange alle Möglichkeiten vom ersten gefundenen Problem aus, bis man entweder eine entsprechende Kante gefunden hat oder es keine weiteren Kanten mehr gibt. An dieser Stelle möchte ich zum Abschluss noch die Situation vorstellen, wo der Backtracking Algorithmus zu einem exponentiellen Aufwand führen kann. Es wird angenommen, es müsste eine Tiefensuche durchgeführt werden. Bei dieser gehen maximal k mögliche Verzweigungen von jeder Teillösung aus. [4] H.W. Lang, FH Flensburg, Boyer-Moore-Algorithmus, Fassung vom , URL: Zugriff am [5] G. Valentine, C. Martínez, An algorithm for graph pattern-matching, Fassung vom???, URL: pers/algorithms/valiente-graph-matching-wsp97.pdf, Zugriff am [6] C. Charras, T. Lecroq, Exact String Matching Algorithms, Fassung vom , URL: pers/algorithms/valiente-graph-matching-wsp97.pdf, Zugriff am Abbildung 12: Beispiel k=2, n=4 Aus dem Beispiel ergibt sich der Aufwand bei einem Lösungsbaum der Tiefe n im schlechtesten Fall von: n+ 1 n ( k 1) 1+ k + k² + k³ k = = O( k ( k 1) 4. Referenzen [1] A.B. Smith, C.D. Jones, and E.F. Roberts, Article Title, Journal, Publisher, Location, Date, pp [1] Hans-Jörg Kreowski, Universität Bremen, Theoretische Informatik 1, Fassung von Oktober 2005, URL: Zugriff am [2] Jan Omland, Applications of Graph Matching in Pattern Recognition, Dassund vom , URL: wnloads/gminpr.pdf, Zugriff am [3] Wikipedia, Verschiedene Themen, URL: Zugriff am: n )

Effiziente Algorithmen 2

Effiziente 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

Mehr

Algorithmische Bioinformatik 1

Algorithmische 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

Mehr

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

Mehr

String - Matching. Kapitel Definition

String - 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

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & 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

Mehr

Tutoraufgabe 1 (Suchen in Graphen):

Tutoraufgabe 1 (Suchen in Graphen): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS14 F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe 1 (Suchen in Graphen): a) Geben Sie die Reihenfolge an, in der die Knoten besucht werden, wenn

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur 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.

Mehr

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr

Bioinformatik Für Biophysiker

Bioinformatik Für Biophysiker Bioinformatik Für Biophysiker Wintersemester 2005 / 2006 Ulf Leser Wissensmanagement in der Bioinformatik Wissensmanagement in der Bioinformatik Lehrstuhl seit 10/2002 Schwerpunkte Algorithmen der Bioinformatik

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Hochschuldozent Dr. Christian Schindelhauer Paderborn, den 21. 2. 2006 Lösungen zur 1. Klausur in Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Name :................................

Mehr

Isomorphie von Bäumen

Isomorphie 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..............................

Mehr

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N 2 von 15 Aufgabe 1: Suchbäume (14 ) Betrachten Sie den folgenden Suchbaum. A B C D E F G H I J K L M N O P R (a) (1 Punkt ) Geben Sie die Höhe des Knotens F an. (b) (1 Punkt ) Geben Sie die Tiefe des Knotens

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

TU 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

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik Vorlesung am 2. November 27 2..27 Dorothea Wagner - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Vorlesung am 2. November 27 Helmholtz-Gemeinschaft

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 13: Flüsse und Zuordnungen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 9. Juni 2017 DURCHSATZ D(e) ist die maximale Flussmenge,

Mehr

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen

André Krischke Helge Röpcke. Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen André Krischke Helge Röpcke Graphen und Netzwerktheorie Grundlagen Methoden Anwendungen 8 Grundbegriffe der Graphentheorie für die Kante, die die beiden Knoten und verbindet. Der linke Graph in Bild. kann

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete 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

Mehr

Automaten und Coinduktion

Automaten und Coinduktion Philipps-Univestität Marburg Fachbereich Mathematik und Informatik Seminar: Konzepte von Programmiersprachen Abgabedatum 02.12.03 Betreuer: Prof. Dr. H. P. Gumm Referentin: Olga Andriyenko Automaten und

Mehr

2.2 Der Algorithmus von Knuth, Morris und Pratt

2.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

Mehr

Proseminar String Matching

Proseminar 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

Mehr

Algorithmen und Datenstrukturen 1-5. Seminar -

Algorithmen und Datenstrukturen 1-5. Seminar - Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung

Mehr

Grundlagen der Informatik

Grundlagen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor Die Klausur besteht aus 6 Aufgaben und umfasst 60 Punkte. Bitte schreiben Sie die Lösungen auf die Aufgabenblätter. Vergessen

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Teil III. Komplexitätstheorie

Teil III. Komplexitätstheorie Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein

Mehr

4.9.7 Konstruktion der Suffixbäume

4.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

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 4 BETWEENNESS CENTRALITY Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/

Mehr

Algorithmen auf Sequenzen

Algorithmen 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

Mehr

Algorithmische Bioinformatik 1

Algorithmische 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

Mehr

Algorithmen und Datenstrukturen II

Algorithmen 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,

Mehr

Einleitung. Kapitel 1

Einleitung. 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

Mehr

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: Sprachen und Automaten 1 Deterministische endliche Automaten (DFA) Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: M = (Z,3,*,qo,E) Z = Die Menge der Zustände 3 = Eingabealphabet

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2) Graphen (2) 1 Topologisches Sortieren (1) Die Kanten eines gerichteten zyklenfreien Graphen bilden eine Halbordnung (die Ordnungsrelation ist nur für solche Knoten definiert die am gleichen Pfad liegen).

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die 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

Mehr

Backtracking mit Heuristiken

Backtracking mit Heuristiken Backtracking mit Heuristiken Thomas Dübendorfer thomas@duebendorfer.ch 14. September 2000 Inhalt und Ablauf 1. Einführendes Beispiel (4 min) 2. Konzepte zu Backtracking (8 min) 3. Eingesperrt im Labyrinth

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Praktische Grenzen der Berechenbarkeit

Praktische Grenzen der Berechenbarkeit Arno Schwarz Praktische Grenzen der Berechenbarkeit Während es im ersten Abschnitt um prinzipiell unlösbare Probleme ging, wenden wir uns nun Aufgaben zu, deren Lösbarkeit praktische Grenzen gesetzt sind.

Mehr

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008 Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 15: Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Algorithmen auf Zeichenketten

Algorithmen 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:

Mehr

1.8 Shift-And-Algorithmus

1.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

Mehr

Reguläre Grammatiken/Sprachen und endliche Automaten

Reguläre Grammatiken/Sprachen und endliche Automaten Reguläre Grammatiken/Sprachen und endliche Automaten Bei regulären Grammatiken ist die Form der Grammatikregeln am stärksten eingeschränkt. Trotzdem lassen sich bereits weite Teile einer natürlichen Sprache

Mehr

Bioinformatik Für Biophysiker

Bioinformatik Für Biophysiker Bioinformatik Für Biophysiker Sommersemester 2009 Silke Trißl / Ulf Leser Wissensmanagement in der Bioinformatik Wissensmanagement in der Bioinformatik Schwerpunkte Algorithmen der Bioinformatik Management

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Electronic Design Automation (EDA) Technology Mapping

Electronic Design Automation (EDA) Technology Mapping Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel

Mehr

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: 1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem

Mehr

THIA - Übungsblatt 2.

THIA - Übungsblatt 2. THIA - Übungsblatt 2. Aufgabe 12 (Eine einfache Sprache). Endliche Ziffernfolgen, die mit einer 0 beginnen, auf die mindestens eine weitere Ziffer folgt, wobei nur die Ziffern 0,..., 7 vorkommen, sollen

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Ausgabe 22. Dezember 2016 Abgabe 17. Januar 2017, 11:00 Uhr

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen

Mehr

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Diskrete Mathematik. Hamiltonsche Graphen Teil I. Karina Arndt

Diskrete Mathematik. Hamiltonsche Graphen Teil I. Karina Arndt Diskrete Mathematik Hamiltonsche Graphen Teil I Karina Arndt 21.06.2006 Übersicht Einleitung Hamiltonsch und eulersch Hamiltonsche Kreise Hamiltonsche Graphen neu zeichnen Kreise und Wege Reguläre Graphen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & 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

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte Suche in Java Informierte Suchverfahren Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2008/2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln 8-Damen-Problem Gegeben: Schachbrett

Mehr

4. Alternative Temporallogiken

4. Alternative Temporallogiken 4. Alternative Temporallogiken Benutzung unterschiedlicher Temporallogiken entsprechend den verschiedenen Zeitbegriffen LTL: Linear Time Logic Ähnlich der CTL, aber jetzt einem linearen Zeitbegriff entspechend

Mehr

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009 Theoretische Informatik Rainer Schrader nichtdeterministische Turingmaschinen Zentrum für Angewandte Informatik Köln 29. April 2009 1 / 33 2 / 33 Turingmaschinen das Konzept des Nichtdeterminismus nahm

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin Departement Mathematik und Informatik Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin 12. April 2017 Union-Find Datenstruktur Graphen I Robert E. Tarjan Algorithmen und Datenstrukturen,

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse

Mehr

Algorithmische Anwendungen WS 2005/2006

Algorithmische Anwendungen WS 2005/2006 Algorithmische Anwendungen WS 2005/2006 Sequenzalignment Gruppe F_lila_Ala0506 Allal Kharaz Yassine ELassad Inhaltsverzeichnis 1 Problemstellungen...................................... 3 1.1 Rechtschreibkorrektur...............................

Mehr

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S Minimale Graphentheorie Formale Grundlagen (WIN) Franz Binder Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Minimale Inhalt

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

8.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:

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lösungen zur Vorlesung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Das Problem des Handlungsreisenden

Das 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

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Algorithmen auf Sequenzen Paarweiser Sequenzvergleich: Alignments

Algorithmen auf Sequenzen Paarweiser Sequenzvergleich: Alignments Algorithmen auf Sequenzen Paarweiser Sequenzvergleich: Alignments Sven Rahmann Genominformatik Universitätsklinikum Essen Universität Duisburg-Essen Universitätsallianz Ruhr Einführung Bisher: Berechnung

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 10.06.2016 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP

Mehr

Algorithmen. Von Labyrinthen zu. Gerald Futschek

Algorithmen. Von Labyrinthen zu. Gerald Futschek Von Labyrinthen zu Algorithmen Gerald Futschek Wie kommt man aus einem Labyrinth (griechisch: Haus der Doppelaxt, wahrscheinlich Knossos auf Kreta) Labyrinth heraus? Labrys Grundriss des Palastes von Knossos

Mehr

Nichtdeterministische Platzklassen

Nichtdeterministische Platzklassen Sommerakademie 2010 Rot an der Rot AG 1: Wieviel Platz brauchen Algorithmen wirklich? Nichtdeterministische Platzklassen Ulf Kulau August 23, 2010 1 Contents 1 Einführung 3 2 Nichtdeterminismus allgemein

Mehr

Einführung in die Informatik 2

Einfü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.

Mehr

Reduktion. 2.1 Abstrakte Reduktion

Reduktion. 2.1 Abstrakte Reduktion 2 Reduktion In diesem Kapitel studieren wir abstrakte Eigenschaften von Regeln. In den ersten beiden Abschnitten betrachten wir nicht einmal die Regeln selbst, sondern nur abstrakte Reduktionssysteme,

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Diskrete Mathematik 1

Diskrete Mathematik 1 Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 2008/09 Blatt

Mehr

P, NP und NP -Vollständigkeit

P, NP und NP -Vollständigkeit P, NP und NP -Vollständigkeit Mit der Turing-Maschine haben wir einen Formalismus kennengelernt, um über das Berechenbare nachdenken und argumentieren zu können. Wie unsere bisherigen Automatenmodelle

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

10. Übungsblatt zu Algorithmen I im SS 2010

10. Übungsblatt zu Algorithmen I im SS 2010 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr