Algorithmische Graphentheorie

Ähnliche Dokumente
3-Färbbarkeit. Korollar: Zu Entscheiden, ob ein Graph k-färbbar ist mit k 3, ist NP-vollständig.

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

WS 2008/09. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

Knotenfärbung. Def.: Eine Knotenfärbung eines Graphen G=(V,E) mit k Farben ist eine Abbildung c:v {1,...,k}, so dass c(u) c(v) für alle {u,v} E.

Wie komme ich von hier zum Hauptbahnhof?

Graphen. Graphen und ihre Darstellungen

Weitere NP-vollständige Probleme

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Algorithmische Methoden für schwere Optimierungsprobleme

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Kapitel 9: Lineare Programmierung Gliederung

3 Klassifikation wichtiger Optimierungsprobleme

abgeschlossen unter,,,, R,

Polynomialzeit- Approximationsschema

Approximationsalgorithmen

Algorithmentheorie 1. Vorlesung

Teil III. Komplexitätstheorie

Anwendungen von Graphen

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen

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

Das Rucksackproblem. Definition Sprache Rucksack. Satz

Einführung in die Informatik 2

Algorithmen und Datenstrukturen 2-1. Seminar -

8 Diskrete Optimierung

Theoretische Informatik 1

durch Einfügen von Knoten konstruiert werden kann.

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

Theoretische Grundlagen der Informatik

Graphen und Bäume. A.1 Graphen

NP-vollständige Probleme. Michael Budahn - Theoretische Informatik 1

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Motivation Kap. 6: Graphen

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Informatik-Grundlagen

NP-vollständig - Was nun?

Für die Anzahl der Kanten in einem vollständigen Graphen (und damit für die maximale Anzahl von Kanten in einem einfachen Graphen) gilt:

Theoretische Grundlagen der Informatik

2. Repräsentationen von Graphen in Computern

15. Elementare Graphalgorithmen

Grundlagen der Informatik Kapitel 20. Harald Krottmaier Sven Havemann

Einführung in die Informatik 2

Grundbegriffe der Informatik

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Grundbegriffe der Informatik

Vorlesung: Algorithmische Diskrete Mathematik

Tutorium 23 Grundbegriffe der Informatik (7. Sitzung)

Einführung in Algorithmen und Komplexität

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

WS 2009/10. Diskrete Strukturen

Übungsblatt Nr. 5. Lösungsvorschlag

Theoretische Grundlagen der Informatik

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

4. Welchen Zusammenhang gibt es zwischen den Eckengraden und der Anzahl der Kanten eines ungerichteten Graphen?

Laufzeit einer DTM, Klasse DTIME

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten

Grundlagen: Begriffe zu Graphen

Übungsblatt Nr. 5. Lösungsvorschlag

Die Komplexitätsklassen P und NP

Graphen und Algorithmen

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Kap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Bemerkung: Der vollständige Graph K n hat n(n 1)

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Nachbarschaft, Grad, regulär, Inzidenz

Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn

Vorlesung Kombinatorische Optimierung (Wintersemester 2007/08)

P, NP und NP -Vollständigkeit

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

Das Briefträgerproblem

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

entheoretische Konzepte und Algorithmen

Seminar. Das Steinerbaumproblem

Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung.

Bäume und Wälder. Definition 1

Die Klassen P und NP. Formale Grundlagen der Informatik 1 Kapitel 11. Die Klassen P und NP. Die Klasse P

Approximation mit relativer Gütegarantie Überblick und einführende Beispiele

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Zentralübung zur Vorlesung Diskrete Strukturen

Wiederholung zu Flüssen

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Programmiertechnik II

6. Übung zur Linearen Optimierung SS08

3 Graphen - Grundlagen

1. Einführung. Grundbegriffe und Bezeichnungen. Beispiele. gerichtete Graphen. 1. Einführung Kapitelübersicht

Skript: Exakte Exponentialzeit-Algorithmen

Transkript:

Algorithmische Graphentheorie WS 2008/2009 Vorlesung: Dr. Felix Brandt, Dr. Jan Johannsen Übung: Markus Brill, Felix Fischer Institut für Informatik LMU München

Organisatorisches Vorlesung Donnerstag, 14.15-15.45 Uhr, Raum 1.39 Übung (ab 27.10.) Montag, 16.15-17.45, Raum 0.43 - Übungsblätter werden Donnerstags in der Vorlesung ausgegeben - Tutoraufgaben werden in der nächsten Übung vorgerechnet - Hausaufgaben müssen bis zum Montag der darauf folgenden Woche abgegeben werden Kriterium zur Erlangung eines Scheins mind. 50% der Hausaufgaben richtig ggf. mündliche Prüfung 2

Literatur Inhalt der Vorlesung Graphen sind kombinatorische Strukturen, die bei der Modellierung zahlreicher Probleme (z.b. in der Routenplanung, im Mobilfunk oder in der künstlichen Intelligenz) hilfreich sind. Algorithmische Aspekte grundlegender graphentheoretischer Konzepte wie Wege, Kreise, Färbungen, Überdeckungen oder Matchings Verbindungen zu Effiziente Algorithmen und Komplexitätstheorie Literatur Cormen, Leiserson, Rivest & Stein: Introduction to Algorithms (MIT Press) Diestel: Graphentheorie (Springer Verlag), elektronische Ausgabe Krumke & Noltemeier: Graphentheoretische Konzepte und Algorithmen (Teubner Verlag) 3

Vorläufige Themenübersicht Grundbegriffe Graphen, Speicherung von Graphen, Algorithmen, NP- Vollständigkeit, Approximationsalgorithmen Kürzeste Wege Eulerkreise, Hamiltonkreise Cliquen, unabhängige Mengen Färbungen, Überdeckungen Planare Graphen Matchings Steinerbäume Baumweite Graphisomorphie 4

Grundbegriffe Def.: Ein ungerichteter Graph ist ein Tupel G = (V, E) bestehend aus einer ( Knotenmenge ) V und einer Kantenmenge E V. 2 Beispiele: vollständige Graphen Kn, Pfade Pn, Kreise Cn Nachbarschaft: N(v) = {u V {u, v} E} Knotengrad: deg(v) = N(v) ( (G) = max (deg(v)) ) v V Ein Graph G=(V,E) heißt k-regulär wenn deg(v)=k für alle v V. Weitere wichtige Teilklassen: bipartite Graphen, planare Graphen Erweiterungen Graphen mit Schleifen dürfen auch Kanten der Form (v,v) enthalten. Bei Graphen mit Mehrfachkanten ist E eine Multimenge. Gewichtete Graphen besitzt zusätzlich eine Gewichtsfunktion g: E R. 5

Grundbegriffe (2) Adjazenz und Inzidenz Zwei Knoten u,v V heissen adjazent, wenn {u,v} E. Ein Knoten v V und eine Kante e E heissen inzident, wenn v e. Zwei Kanten e,f E heissen inzident, wenn e f. Isomorphie Zwei Graphen G1=(V1,E1), G2=(V2,E2) heissen isomorph, wenn es eine bijektive Abbildung f:v1 V2 gibt, so dass für alle u,v V1 gilt: {u,v} E1 {f(u),f(v)} E2. Satz: In jedem Graphen ist die Anzahl der Knoten mit ungeradem Grad gerade. Auf einem Empfang geben immer gerade viele Gäste ungerade vielen Gästen die Hand. Beweis: Tafel 6

Grundbegriffe (3) Teilgraphen G =(V,E ) ist ein Teilgraph von G=(V,E), wenn V V und E E ( ) V 2. G =(V,E ) ist ein induzierter Teilgraph von G=(V,E), kurz G =G[V ], wenn V V und E = E ( ) V. Komplementgraph Der Komplementgraph des Graphen G=(V,E) ist G=(V,E ) mit E = ( V 2) \ E. Kantengraph (line graph) Der Kantengraph des Graphen G=(V,E) ist L(G)=(V,E ) mit V =E und E ={ {u,v} u,v V und u v }. 2 7

Gerichtete Graphen Def.: Ein gerichteter Graph G=(V,A) ist ein Tupel bestehend aus einer Knotenmenge V und einer Kantenmenge A VxV. Im Gegensatz zu ungerichteten Graphen sind Kanten geordnete Paare. Wichtige Teilklasse: Turniergraphen (vollständige gerichtete Graphen ohne Doppelkanten und Schleifen) Relationen Für jeden gerichteten Graphen G=(V,A) ist A eine binäre Relation auf V. Für jeden ungerichteten Graphen G=(V,E) beschreibt E eine irreflexive, symmetrische binäre Relation auf V. 8

Anwendungen Routenplanung gerichteter Graph Deutschland: ca. 5 Mio. Kreuzungen und 6 Mio. Strassen, ca. 10^100 Wege von München nach Berlin kürzeste Wege Mobilfunk beschränkte Menge von Kanälen/Frequenzen ungerichteter Graph, Knoten: Antennen, Kanten: gleiche Frequenz sorgt für Interferenz Färbbarkeit 9

Anwendungen (2) Künstliche Intelligenz 3x3 Schiebepuzzle ungerichteter Graph, Knoten: Zustände, Kanten: mögliche Zustandsübergange kürzeste Wege mit Abschätzung des Restaufwands Wahlverfahren gerichteter Graph, Knoten: Kandidaten, Kanten: paarweise Mehrheitsrelation verschiedene Wahlverfahren, die nur paarweise Vergleiche in Betracht ziehen 10

Asymptotische Komplexität Berechnungsmodell der Vorlesung Unit-Cost RAM f wächst höchstens so schnell wie g O(g) = { f c, n 0 > 0 so dass n n 0 gilt f (n) c g(n)} f wächst mindestens so schnell wie g Ω(g) = { f c, n 0 > 0 so dass n n 0 gilt f (n) c g(n)} Θ(g) = O(g) Ω(g) f wächst genau so schnell wie g 11

Speicherung von Graphen V={v 1, v2,..., vn}, E={e1, e2,..., em} Adjazenzmatrix A=(a ij)i,j [n] a ij = {v i, v j } E Inzidenzmatrix B=(b ij)i [n],j [m] b ij = {v i } e j Adjazenzlisten Speicherung Speicherplatz (v,w) E? deg(v) v: deg(v)=0? Adjazenzmatrix Θ(n 2 ) O(1) O(n) O(n 2 ) Inzidenzmatrix Θ(nm) O(m) O(m) O(nm) Adjazenzliste Θ(n+m) O(min(deg(v),deg(w))) O(deg(v)) O(n) 12

Effiziente Algorithmen (1) Eine der wichtigsten Ressourcen eines Algorithmus ist Zeit. Algorithmen, deren Laufzeiten durch ein Polynom beschränkt sind, nennt man effizient. Laufzeit beschränkt durch n k für konstantes k Essentielle Frage: Existiert für ein gegebenes Problem ein effizienter Algorithmus? Wenn ja: Wie lautet die asymptotische Komplexität des Algorithmus? Warum ausgerechnet polynomielle Laufzeit? 13

Polynomielle vs. exponentielle Algorithmen [Garey & Johnson, 1979] 10 20 30 40 50 60 n 0.00001 Sek. 0.00002 Sek. 0.00003 Sek. 0.00004 Sek. 0.00005 Sek. 0.00006 Sek. n 2 0.0001 Sek. 0.0004 Sek. 0.0009 Sek. 0.0016 Sek. 0.0025 Sek. 0.0036 Sek. n 3 0.001 Sek. 0.008 Sek. 0.027 Sek. 0.064 Sek. 0.125 Sek. 0.216 Sek. n 5 1 Sek. 3.2 Sek. 24.3 Sek. 1.7 Min. 5.2 Min. 13.0 Min. 2 n 0.001 Sek. 1.0 Sek. 17.9 Min. 12.7 Tage 35.7 Jahre 366 Jahrhunderte 3 n 0.059 Sek. 58 Min. 6.5 Jahre 3855 Jahrhunderte 2 10 8 Jahrhunderte 1.3 10 13 Jahrhunderte 14

Effiziente Algorithmen (2) Wie findet man einen effizienten Algorithmus? Häufig mit Standardtechniken wie greedy, divide and conquer, dynamische Programmierung, lineare Optimierung, Reduktion auf ein Problem für das man einen effizienten Algorithmus kennt, usw. Wie kann man zeigen, dass kein effizienter Algorithmus existiert? In den meisten Fällen gar nicht. Aber häufig kann man eine ähnlich starke Aussage treffen: NP-Schwere. 15

16 [Garey & Johnson, 1979]

17

18

Algorithmen und Komplexität P (in polynomieller Zeit lösbar auf einer deterministischen Turingmaschine) Für Probleme in P existieren effiziente Algorithmen. NP (in polynomieller Zeit lösbar auf einer nicht-deterministischen Turingmaschine) In polynomieller Zeit verifizierbar Für NP-schwere Probleme existieren keine effizienten Algorithmen wenn P NP. NPvollständig NP P 19

Schwere und einfache Probleme Wie zeigt man, dass Problem A in P ist? - polynomieller Algorithmus für A NP-schwer ist? - Reduktionsbeweis - Formuliere A als Entscheidungsproblem. - Wähle ein NP-schweres Entscheidungsproblem B. - Gebe eine effizient berechenbare Funktion f an, die zu jeder Instanz eines B- Problems b eine Instanz eines A-Problems f(b) liefert, so dass f(b) genau dann wahr ist, wenn b wahr ist. SAT (Erfüllbarkeit einer prädikatenlogischen Formel) NP-vollständig, insbesondere für konjunktive Normalform, selbst wenn eine Klausel nur drei Literale enthält (3SAT). (v 1 v 2 v 3 ) ( v 1 v 2 v 3 )... B b A f(b) 20

NP-schwere Probleme NP-schwer mindestens so schwer wie alle Probleme in NP (bezüglich polynomieller Reduktionen) NP-vollständig NP-schwer und in NP Was macht man mit NP-schweren Problemen? Problemklasse einschränken Parametrisierung Heuristik Randomisierung Approximation 21

Approximation Bei schwierigen Optimierungsproblemen bietet es sich an, die Lösung zu approximieren. Maximierungsproblem Alg(I) c Opt(I) Minimierungsproblem Alg(I) c Opt(I) Beispiele für c-approximationen Maximale Clique (=vollständig verbundener Teilgraph) - 1/ V -Approximation MAX-SAT - 1/2-Approximation 22