Algorithmen und Datenstrukturen 2-1. Seminar -

Ähnliche Dokumente
Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

1 topologisches Sortieren

Graphen: Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen (WS 2007/08) 63

8 Diskrete Optimierung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Das Briefträgerproblem

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Anmerkungen zur Übergangsprüfung

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

WS 2009/10. Diskrete Strukturen

Konzepte der Informatik

Statistische Untersuchungen zu endlichen Funktionsgraphen

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Breiten- und Tiefensuche in Graphen

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

4 Greedy-Algorithmen (gierige Algorithmen)

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Datenstrukturen & Algorithmen

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Vorlesung 3 MINIMALE SPANNBÄUME

Graphen. Seminar Bioinformatik. Franziska Schwabe. 3. Juli Fakultät Statistik TU Dortmund 1 / 45

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

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

Kapitel 6: Graphalgorithmen Gliederung

Informatik I WS 07/08 Tutorium 24

Kombinatorische Optimierung

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Praktikum Planare Graphen

Algorithmen und Datenstrukturen

Bäume und Wälder. Bäume und Wälder 1 / 37

Graphentheorie Mathe-Club Klasse 5/6

Algorithmische Methoden der Netzwerkanalyse

15 Optimales Kodieren

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Die in den Suchverfahren konstruierten Graphen waren zusammenhängend und enthielten keine Kreise. Also vereinbaren wir:

Fully dynamic algorithms for the single source shortest path problem.

Algorithmen und Datenstrukturen Suchbaum

Guten Morgen und Willkommen zur Saalübung!

Codierung, Codes (variabler Länge)

Algorithmen II Vorlesung am

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Property Testing in Graphen mit beschränktem Maximalgrad

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Kapiteltests zum Leitprogramm Binäre Suchbäume

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Grundwissen Informatik Q11/12 Fragenkatalog

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

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

Alles zu seiner Zeit Projektplanung heute

Erzeugung zufälliger Graphen und Bayes-Netze

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Modelle und Statistiken

Die k kürzesten Wege in gerichteten Graphen

Bäume und Wälder. Bäume und Wälder 1 / 37

16. All Pairs Shortest Path (ASPS)

Wissensbasierte Systeme

Formelsammlung Mathematische Grundlagen für die Informatik

Grundlagen der Programmierung 2. Bäume

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Algorithmentheorie Maximale Flüsse

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester

Netzwerkmodelle. Seminar Netzwerkanalyse. Sommersemester 2005 Jasmine Metzler

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Unterscheidung: Workflowsystem vs. Informationssystem

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Diskrete Mathematik für Informatiker

Prof. Dr. Jürgen Dassow Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik P E T R I N E T Z E. Vorlesungsskript

WS 2013/14. Diskrete Strukturen

Einführung in die Lineare und Kombinatorische Optimierung

8. Uninformierte Suche

Datenstrukturen und Algorithmen SS07

Wissensbasierte Systeme

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

Schulinterner Lehrplan für das Fach Informatik der Sekundarstufe II an der Bettine von Arnim Gesamtschule

Kapitel MK:IV. IV. Modellieren mit Constraints

Discrete Exterior Calculus im Maschinellen Lernen

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Graphentheorie. Graphen sind Modelle für Netzwerke.

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Graphen und Netze als Planungsmodelle. von: Prof. Dr. rer. nat. habil. Günter Nägler

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Duplikatfilterung und Sampling von Webseiten

Diplomprüfung. Operations Research I WS 2007/2008 (4 Punkte)

Transkript:

Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010

Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8 Punkte) A2 Graphen, Eigenschaften (11 Punkte) A3 Graphen, Traversierung (9 Punkte)

Themen: 1. Graphenalgorithmen Vorlesung ADS2 2. Verarbeitung von Zeichenketten: Suche, Vergleich, Kompression 3. Dynamische Programmierung

Wiederholung: Graphen Ein Tupel G = (V, E) heißt (ungerichteter) Graph, wenn V eine endliche Menge (von Knoten) und E eine Menge von (ungeordneten) Paaren von Elementen in V ist (Kanten).

Wiederholung: Graphen

Wiederholung: Graphen Hypergraph:

Wiederholung: Graphen Motivation:

Wiederholung: Graphen Terminologie: Weg, Pfad, Zyklus, Zusammenhang, Bäume, Wälder Teilgraph, spannender Teilgraph, induzierter Teilgraph

Wiederholung: Graphen Weg, Pfad, Zyklus, Zusammenhang, Bäume, Wälder:

Wiederholung: Graphen Weg, Pfad, Zyklus, Zusammenhang, Bäume, Wälder:

Wiederholung: Graphen Teilgraph, spannender Teilgraph, induzierter Teilgraph: G1, G2, G3 sind Teilgraphen von G, nur G2 und G3 sind induzierte Teilgraphen. (spannender Teilgraph: Die beiden Knotenmengen stimmen überein)

Wiederholung: Graphen Neu: Minor. Ein Graph G 1 wird Minor des Graphen G 2 genannt, falls G 1 isomorph aus einem Untergraphen von G 2 durch Knotenverschmelzung entsteht.

Wiederholung: Graphen Handshaking-Lemma: Auf einer Party begrüßen sich alle Gäste per Händedruck, jeder merkt sich wie oft er bzw. sie jmd. die Hand gegeben hat. Wie oft wurden insgesamt Hände geschüttelt? Graphentheorie: Vollständiger Graph, jeder Knoten weist eine Kante zu jedem anderen auf. Frage: Wie groß ist die Summe über alle Knoten-Grade. Handshaking-Lemma: d(v) = 2 E v V (Summe über die Knoten-Grade ist stets gleich der doppelten Zahl von Kanten.) Beweis?

Wiederholung: Graphen Handshaking-Lemma: d(v) = 2 E v V Beweis: Induktion über V IA: sei n = 1, in Graph mit 1 Knoten existiert entweder 0 oder 1 Kante (Schleife), stimmt. IS: n n + 1, Behauptung gelte für induzierten Teilgraph mit n Knoten. Sei k die Zahl der Kanten, die v n+1 berühren. Jede dieser Kanten erhöht jeweils im Start- und Zielknoten den Grad um 1. Somit wird die Summe über alle Grade um 2k erhöht.

Serie 1

Aufgabe 1 Gegeben sei der folgende ungerichtete gewichtete Graph G. (a) Finden Sie einen minimalen Spannbaum von G mit dem Algorithmus von Kruskal. Schreiben Sie als Resultat die Kanten des Baums in der Reihenfolge hin, in der sie hinzugefügt werden. (4 Punkte)

Spannbaum? Geg.: Gewichteter zusammenhängender Graph G = (V, E, w) mit V 2. Ges.: Spannbaum T = (V, F ) mit min. Kantensumme. Wähle also die Kantenmenge F E so, daß w(e) möglichst klein wird. e F Kruskal-Algorithmus.

Aufgabe 1

Aufgabe 1 Warteschlange Q = [{1, 2}, {1, 3}, {5, 6}, {4, 6}, {2, 3}, {1, 6}, {4, 5}, {2, 4}, {3, 5}]

Aufgabe 1 Warteschlange Q = [{1, 2}, {1, 3}, {5, 6}, {4, 6}, {2, 3}, {1, 6}, {4, 5}, {2, 4}, {3, 5}] T = (V, F ), Kanten F = {{1, 2}, {1, 3}, {5, 6}, {4, 6}, {1, 6}}

Aufgabe 1 F = {{1, 2}, {1, 3}, {5, 6}, {4, 6}, {1, 6}}

Aufgabe 1 F = {{1, 2}, {1, 3}, {5, 6}, {4, 6}, {1, 6}} (b) Ist der gefundene min. Spannbaum eindeutig?. (1 Punkt)

Aufgabe 1 F = {{1, 2}, {1, 3}, {5, 6}, {4, 6}, {1, 6}} (b) Ist der gefundene min. Spannbaum eindeutig?. (1 Punkt) JA :-)

Aufgabe 1 (c) Von einem ungerichteten gewichteten zusammenhängenden Graphen G = (V, E, w) sei nur die Anzahl der Knoten n = V und die Menge der benutzten Kantengewichte B = {w(e) e E} bekannt. Geben Sie ein hinreichendes Kriterium dafür an, daß G einen eindeutigen minimalen Spannbaum hat. Das Kriterium soll außer B und n keine weitere Information über den Graphen verwenden. (2 Punkte)

Aufgabe 1 (c) Von einem ungerichteten gewichteten zusammenhängenden Graphen G = (V, E, w) sei nur die Anzahl der Kanten m = E und die Menge der benutzten Kantengewichte B = {w(e) e E} bekannt. Geben Sie ein hinreichendes Kriterium dafür an, daß G einen eindeutigen minimalen Spannbaum hat. Das Kriterium soll außer B und m keine weitere Information über den Graphen verwenden. (2 Punkte)

Aufgabe 1 Fehler in der Aufgabenstellung: Gemeint war, dass die Anzahl der Kanten m = E bekannt ist und (wie gegeben) die Gewichtsmenge B. Dann folgt aus B = m, dass der minimale Spannbaum eindeutig ist. Die reverse Implikation gilt nicht, der Graph aus 1a ist ein Gegenbeispiel.

Aufgabe 1 Fehler in der Aufgabenstellung: Gemeint war, dass die Anzahl der Kanten m = E bekannt ist und (wie gegeben) die Gewichtsmenge B. Dann folgt aus B = m, dass der minimale Spannbaum eindeutig ist. Die reverse Implikation gilt nicht, der Graph aus 1a ist ein Gegenbeispiel. Will man die Aufgabe lösen wie gegeben, so kann man z.b. für den Spezialfall eines vollständigen Graphen doch noch ein hinreichendes Kriterium angeben: Ist B = n(n 1)/2, dann sind die Kantengewichte auch paarweise verschieden und deshalb der minimale Spannbaum eindeutig.

Aufgabe 1 (d) Der Algorithmus von Kruskal werde auf einen nicht-zusammenhängenden gewichteten Graphen G mit n Knoten angewendet und liefere eine Kantenmenge T mit r = T Kanten. Ist (V, T ) ein Spannbaum von G? Welche Information über G entnehmen Sie r und n? (3 Punkte)

Aufgabe 1 (d) Der Algorithmus von Kruskal werde auf einen nicht-zusammenhängenden gewichteten Graphen G mit n Knoten angewendet und liefere eine Kantenmenge T mit r = T Kanten. Ist (V, T ) ein Spannbaum von G? Welche Information über G entnehmen Sie r und n? (3 Punkte) (V, T ) ist kein Spannbaum, da nicht zusammenhängend. n r ist die Zahl der Zusammehangskomponenten von G.

Aufgabe 2 Der folgende gerichtete Graph sei durch seine Kantenliste gegeben: 7, 10, 1, 7, 1, 4, 1, 5, 2, 1, 2, 3, 3, 6, 6, 5, 4, 5, 5, 2, 7, 4 (a) Geben Sie die Adjazenzmatrix des Graphen an. (3 Punkte)

Wiederholung: Speicherung v. G. Knoten-/Kantenliste Adjazenzmatrix (Inzidenzmatrix) Adjazenzliste

Wiederholung: Knotenliste

Wiederholung: Kantenliste

Wiederholung: Adjazenzmatrix

Wiederholung: Inzidenzmatrix

Wiederholung: Adjazenzliste

Aufgabe 2 Der folgende gerichtete Graph sei durch seine Kantenliste gegeben: 7, 10, 1, 7, 1, 4, 1, 5, 2, 1, 2, 3, 3, 6, 6, 5, 4, 5, 5, 2, 7, 4 (a) Geben Sie die Adjazenzmatrix des Graphen an. (3 Punkte)

Aufgabe 2 Der folgende gerichtete Graph sei durch seine Kantenliste gegeben: 7, 10, 1, 7, 1, 4, 1, 5, 2, 1, 2, 3, 3, 6, 6, 5, 4, 5, 5, 2, 7, 4 (a) Geben Sie die Adjazenzmatrix des Graphen an. (3 Punkte) 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0

Aufgabe 2 (b) Zeichnen Sie den Graphen. (2 Punkte) 7, 10, 1, 7, 1, 4, 1, 5, 2, 1, 2, 3, 3, 6, 6, 5, 4, 5, 5, 2, 7, 4

Aufgabe 2 (b) Zeichnen Sie den Graphen. (2 Punkte) 7, 10, 1, 7, 1, 4, 1, 5, 2, 1, 2, 3, 3, 6, 6, 5, 4, 5, 5, 2, 7, 4 1 2 3 7 4 5 6

Aufgabe 2 1 2 3 7 4 5 6 (c) Besitzt dieser Graph einen Hamiltonschen Zyklus? Falls ja: Geben Sie einen an. Falls nein: Begründen Sie dies möglichst kurz. (2 Punkte)

Aufgabe 2 1 2 3 7 4 5 6 (c) Besitzt dieser Graph einen Hamiltonschen Zyklus? Falls ja: Geben Sie einen an. Falls nein: Begründen Sie dies möglichst kurz. (2 Punkte) Nein, es gibt keinen Hamiltonschen Zyklus in diesem Graphen. Nehmen wir an, es gäbe einen Hamiltonschen Zyklus h. Der Vorgänger des Knotens 3 in h ist in jedem Falle der Knoten 2, denn anders wird 3 nicht erreicht. Direkt nach 3 besucht h den Knoten 6, dann 5 und dann 2. Der betrachtete Kreis ist also (2, 3, 6, 5) im Widerspruch zu der Annahme, dass wir es mit einem Hamiltonschen Kreis zu tun haben. (Hamiltonscher Zyklus: Geschlossener Weg, der genau 1x durch jeden Knoten führt.)

Aufgabe 2 1 2 3 7 4 5 6 (d) Betrachten Sie die Knotenfolgen (2,1,5,2,1), (6,5,4,1), (2,1,5,6), (2,1,4,5,2) Geben Sie zu jeder Knotenfolge an, ob sie für den gegebenen Graphen eine Kantenfolge, ein Kantenzug, ein Pfad, ein Zyklus ist. (4 Punkte)

Aufgabe 2 1 2 3 7 4 5 6 (d) Betrachten Sie die Knotenfolgen (2,1,5,2,1), (6,5,4,1), (2,1,5,6), (2,1,4,5,2) Geben Sie zu jeder Knotenfolge an, ob sie für den gegebenen Graphen eine Kantenfolge, ein Kantenzug, ein Pfad, ein Zyklus ist. (4 Punkte) (2,1,5,2,1) (6,5,4,1) (2,1,5,6) (2,1,4,5,2) Kantenfolge???? Kantenzug???? Pfad???? Zyklus????

Aufgabe 2 1 2 3 7 4 5 6 (d) Betrachten Sie die Knotenfolgen (2,1,5,2,1), (6,5,4,1), (2,1,5,6), (2,1,4,5,2) Geben Sie zu jeder Knotenfolge an, ob sie für den gegebenen Graphen eine Kantenfolge, ein Kantenzug, ein Pfad, ein Zyklus ist. (4 Punkte) (2,1,5,2,1) (6,5,4,1) (2,1,5,6) (2,1,4,5,2) Kantenfolge ja nein nein ja

Aufgabe 2 1 2 3 7 4 5 6 (d) Betrachten Sie die Knotenfolgen (2,1,5,2,1), (6,5,4,1), (2,1,5,6), (2,1,4,5,2) Geben Sie zu jeder Knotenfolge an, ob sie für den gegebenen Graphen eine Kantenfolge, ein Kantenzug, ein Pfad, ein Zyklus ist. (4 Punkte) (2,1,5,2,1) (6,5,4,1) (2,1,5,6) (2,1,4,5,2) Kantenfolge ja nein nein ja Kantenzug nein nein nein ja

Aufgabe 2 1 2 3 7 4 5 6 (d) Betrachten Sie die Knotenfolgen (2,1,5,2,1), (6,5,4,1), (2,1,5,6), (2,1,4,5,2) Geben Sie zu jeder Knotenfolge an, ob sie für den gegebenen Graphen eine Kantenfolge, ein Kantenzug, ein Pfad, ein Zyklus ist. (4 Punkte) (2,1,5,2,1) (6,5,4,1) (2,1,5,6) (2,1,4,5,2) Kantenfolge ja nein nein ja Kantenzug nein nein nein ja Pfad nein nein nein nein

Aufgabe 2 1 2 3 7 4 5 6 (d) Betrachten Sie die Knotenfolgen (2,1,5,2,1), (6,5,4,1), (2,1,5,6), (2,1,4,5,2) Geben Sie zu jeder Knotenfolge an, ob sie für den gegebenen Graphen eine Kantenfolge, ein Kantenzug, ein Pfad, ein Zyklus ist. (4 Punkte) (2,1,5,2,1) (6,5,4,1) (2,1,5,6) (2,1,4,5,2) Kantenfolge ja nein nein ja Kantenzug nein nein nein ja Pfad nein nein nein nein Zyklus nein nein nein ja

Aufgabe 3 Führen Sie auf dem Graphen aus Aufgabe 2 folgende Traversierungen durch. (a) einen Breitendurchlauf beginnend bei Knoten 7 (b) einen Breitendurchlauf beginnend bei Knoten 5 (c) einen Tiefendurchlauf beginnend bei Knoten 5 Geben Sie die Knoten des Graphen in der Reihenfolge an, in der sie bearbeitet werden. Bei Mehrdeutigkeit wird der Knoten mit dem kleinsten Index zuerst bearbeitet.

Wiederholung: Traversierung Breitensuche/-durchlauf (Breadth First Search, BFS) ausgehend von Startknoten werden zunächst alle direkt erreichbaren Knoten bearbeitet danach die über mindestens zwei Kanten vom Startknoten erreichbaren Knoten, dann die über drei Kanten usw. es werden also erst die Nachbarn besucht, bevor zu den Söhnen gegangen wird. Bearbeite einen Knoten, der in n Schritten von u erreichbar ist, erst wenn alle Knoten abgearbeitet wurden, die in n 1 Schritten erreichbar sind.

Wiederholung: Breitensuche

Wiederholung: Traversierung Tiefensuche/-durchlauf (Depth First Search, DFS) ausgehend von Startknoten werden zunächst rekursiv alle Söhne (Nachfolger) bearbeitet; erst dann wird zu den Nachbarn gegangen kann mit Stack-Datenstruktur für noch zu bearbeitende Knoten realisiert werden

Wiederholung: Tiefensuche

Aufgabe 3 1 2 3 7 (a) Breitendurchlauf, beginnend bei 7: 4 5 6

Aufgabe 3 1 2 3 7 4 5 6 (a) Breitendurchlauf, beginnend bei 7: 7 4 5 2 1 3 6 (b) Breitendurchlauf, beginnend bei 5:

Aufgabe 3 1 2 3 7 4 5 6 (a) Breitendurchlauf, beginnend bei 7: 7 4 5 2 1 3 6 (b) Breitendurchlauf, beginnend bei 5: 5 2 1 3 4 7 6 (c) Tiefendurchlauf, beginnend bei 5:

Aufgabe 3 1 2 3 7 4 5 6 (a) Breitendurchlauf, beginnend bei 7: 7 4 5 2 1 3 6 (b) Breitendurchlauf, beginnend bei 5: 5 2 1 3 4 7 6 (c) Tiefendurchlauf, beginnend bei 5: 5 2 1 4 7 3 6 (Ordnung nach in-zeiten) 4 7 1 6 3 2 5 (Ordnung nach out-zeiten)