Erste Vorlesung Graphen und Optimierung Sommersemester 2011 Steffen Lange 0/1, Folie 1 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Organisatorisches Vorlesung • • • wöchentlich; zwei Blöcke Folien im Netz (/* bitte zur Vorlesung mitbringen */) Übungsblätter im Netz (/* bitte anschauen und bearbeiten */) http://www.fbi.h-da.de/~slange Anregungen / Kommentare / Fragen • • 0/1, Folie 2 per e-Mail: per Telefon: © 2011 Prof. Steffen Lange [email protected] 06151–16 –8417 - HDa/FbI - Graphen und Optimierung Erste Vorlesung Literatur ... • • • 0/1, Folie 3 U. Schöning: Algorithmik, Spektrum Akademischer Verlag, 2001. Th.H. Cormen, Ch.E. Leiserson, R. Rivest, C. Stein: Algorithmen - Eine Einführung, 2. Auflage, Oldenbourg Verlag, 2007. S.O. Krumke, H. Noltemeier: Graphentheoretische Konzepte und Algorithmen, 2. Auflage, Vieweg + Teubner, 2009 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele Zielstellung • • einige graphentheoretische Fragestellungen illustrieren einige einfache algorithmische Ideen vorstellen ... damit sie ein Gefühl dafür bekommen, was sie in der Vorlesung erwartet ... einige dieser Fragestellungen werden wie später aufgreifen und im Detail diskutieren 0/1, Folie 4 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Haus vom Nikolaus 1 2 3 4 5 ... beim obigen „Rätsel“ geht es darum, diese Figur zu zeichnen, ohne den Bleistift vom Papier zu heben und ohne eine Linie doppelt zu zeichnen 0/1, Folie 5 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Doppeltes Haus vom Nikolaus 1 2 3 4 5 6 7 8 ... beim obigen „Rätsel“ geht es darum, diese Figur zu zeichnen, ohne den Bleistift vom Papier zu heben und ohne eine Linie doppelt zu zeichnen 0/1, Folie 6 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen 1 Relevante Begriffe 0/1, Folie 7 2 3 4 5 • die betrachten Figuren nennen wir Graphen (/* sie bestehen aus Knoten und Kanten, wobei Kanten die Knoten verbinden */) • ein Weg zwischen zwei Knoten ist eine Verkettung von Kanten, beginnend bei dem einen Knoten und endend bei dem anderen Knoten (/* Anfangs- und Endknoten können gleich sein */) • ein Graph ist zusammenhängend, wenn es von jedem Knoten einen Weg zu jedem anderen Knoten gibt • • ein Eulerweg ist ein Weg, der jede Kante genau einmal durchläuft ein zusammenhängender Graph ist ein Eulergraph, wenn es in ihm einen Eulerweg gibt • der Grad eines Knotens ist die Anzahl der Kanten, die in diesem Knoten beginnen © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen 1 Interessierende Fragestellung • gegeben: • • 3 4 5 ein zusammenhängender Graph gesucht: • 0/1, Folie 8 2 © 2011 Prof. Steffen Lange Antwort auf die Frage, ob der Graph ein Eulergraph ist (/* falls ja, sollte man auch einen Eulerweg angeben */) - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen 1 Diskussion 2 3 • • 4 es sei ein Eulergraph gegeben es e1,...,en ein Eulerweg in diesem Graphen und v1,...,vn+1 die zugehörigen Knoten (/* d.h. die Kante ei hat den Anfangsknoten vi und den Endknoten vi+1 */) 5 • für alle i = 2,..,n-1 gilt: vi ist gleichzeitig Endknoten der Kante ei und Anfangsknoten der von ei verschiedenen Kante ei+1 • es sei v irgendein Knoten im Graphen ... falls v nicht Anfangs- bzw. Endknoten des Eulerweges ist, so hat der Knoten v offenbar einen geraden Grad ... falls v gleichzeitig Anfangs- bzw. Endknoten des Eulerweges ist, so hat der Knoten v offenbar einen geraden Grad ... sonst hat der Knoten v einen ungeraden Grad 0/1, Folie 9 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen ... auf den Punkt gebracht • es sei ein Eulergraph gegeben Dann hat der Graph keinen oder genau zwei Knoten mit einem ungeraden Grad. ... interessanterweise gilt auch die Umkehrung ... Anmerkung: wenn der Fall eintritt, dass jeder Knoten einen geraden Grad hat, hat jeder Eulerweg ein und den selben Knoten als Startknoten (/* einen solchen Eulergraphen nennen wir später Eulergraphen* */) 0/1, Folie 10 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen ... die umgekehrte Richtung • es sei ein zusammenhängender Graph, der keinen oder genau zwei Knoten mit einem ungeraden Grad hat, gegeben Dann hat der Graph einen Eulerweg. ... wir werden diesen Zusammenhang „konstruktiv“ beweisen, d.h. wir geben einen Algorithmus an, mit dem man einen Eulerkreis bestimmen kann ... um uns das Leben einfacher zu machen, betrachten wir zunächst nur den Fall, dass der Graph genau zwei Knoten mit einem ungeraden Grad hat 0/1, Folie 11 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Algorithmische Idee (/* erst einmal am Beispiel */) 1 2 3 4 5 6 7 8 9 10 11 ... bestimme die Knoten mit ungeradem Grad und einen Weg zwischen den beiden Knoten ... markiere die verwendeten Knoten und Kanten und merke dir den Weg 0/1, Folie 12 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Algorithmische Idee (/* erst einmal am Beispiel */) 1 2 3 4 5 6 7 8 9 10 11 { 5,4 },{ 4,7 } ... falls an einem der markierten Knoten noch eine unmarkierte Kante beginnt, bestimme einen Weg von diesem Knoten zu sich selbst, der nur unmarkierte Kanten benutzt (/* sonst stoppe */) ... ergänze den bisher gemerkten Weg entsprechend 0/1, Folie 13 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Algorithmische Idee (/* erst einmal am Beispiel */) 1 2 3 4 5 6 7 8 9 10 11 { 5,4 },{ 4,2 },{ 2,1},{ 2,4},{ 4,7 } ... falls an einem der markierten Knoten noch eine unmarkierte Kante beginnt, bestimme einen Weg von diesem Knoten zu sich selbst, der nur unmarkierte Kanten benutzt (/* sonst stoppe */) ... ergänze den bisher gemerkten Weg entsprechend 0/1, Folie 14 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Algorithmische Idee (/* erst einmal am Beispiel */) 1 2 3 4 5 6 7 8 9 10 11 { 5,4 },{ 4,2 },{ 2,1},{ 2,4},{ 4,7 },{ 7,10},{10,11},{11,8},{8,7} ... falls an einem der markierten Knoten noch eine unmarkierte Kante beginnt, bestimme einen Weg von diesem Knoten zu sich selbst, der nur unmarkierte Kanten benutzt (/* sonst stoppe */) ... ergänze den bisher gemerkten Weg entsprechend 0/1, Folie 15 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Algorithmische Idee (/* erst einmal am Beispiel */) 1 2 3 4 5 6 7 8 9 10 11 { 5,4 },{ 4,2 },{ 2,1},{ 2,4},{ 4,7 },{ 7,10},{10,11},{11,8},{8,9},{9,6},{6,5},{5,8},{8,7} ... da an keinem der markierten Knoten noch eine unmarkierte Kante beginnt, wird gestoppt 0/1, Folie 16 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Algorithmische Idee (/* ein wenig genauer */) 1) 2) 3) bestimme die beiden Knoten mit ungeradem Grad bestimme einen Weg zwischen diesen beiden Knoten (/* markiere alle Knoten und Kanten und merke dir den Weg */) falls es einen markierten Knoten v gibt, an dem eine unmarkierte Kante beginnt, so bestimme einen nur aus unmarkierten Kanten bestehenden Weg von v nach v (/* markiere alle besuchten Knoten und alle verwendeten Kanten und ergänze den gemerkten Weg um diesen Teilweg */) und gehe zu 3); sonst stoppe ... offenbar ist in Schritt 3) der Restgraph (/* d.h. der Graph mit den noch unmarkierten Kanten */) stets ein Graph, der nur Knoten mit einem geraden Grad hat 0/1, Folie 17 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Anmerkungen (/* Korrektheit */) Beobachtung 1: in Schritt 2) findet man stets einen Weg, der die beiden Knoten mit ungeradem Grad verbindet 1 2 3 4 5 6 7 8 9 10 11 ... der gegebene Graph ist zusammenhängend 0/1, Folie 18 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Anmerkungen (/* Korrektheit */) Beobachtung 2: das Stopp-Kriterium in Schritt 3) ist ok 1 2 3 4 5 6 7 8 9 10 11 ... wenn eine andere Kante nicht markiert ist (/* d.h. eine Kante mit unmarkiertem Anfangs- und Endknoten */), so gibt es von jedem bereits markierten Knoten einen Weg zum Anfangsknoten dieser Kante (/* auf diesem Weg muss es wenigstens eine unmarkierte Kante geben, deren Anfangsknoten markiert ist */) 0/1, Folie 19 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Anmerkungen (/* Korrektheit */) Beobachtung 3: in Schritt 3) findet man immer einen „passenden“ Weg 1 2 3 4 5 6 7 8 9 10 11 ... wenn in einem markierten Knoten v eine unmarkierte Kante beginnt, dann beginnen dort auch zwei unmarkierte Kanten ... also gibt es zwei Knoten v1 und v2, die von v aus auf Wegen aus nur unmarkierten Kanten erreichbar sind ... falls v1 = v2 gilt, sind wir fertig (/* guter Fall */) 0/1, Folie 20 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Anmerkungen (/* Korrektheit */) Beobachtung 3: in Schritt 3) findet man immer einen „passenden“ Weg 1 2 3 4 5 6 7 8 9 10 11 ... im schlechten Fall beginnt in v1 und v2 je eine andere unmarkierte Kante ... also gibt es zwei zusätzliche Knoten v‘1 und v‘2, die von v aus auf Wegen aus nur unmarkierten Kanten erreichbar sind ... falls v1 = v‘2, v2 = v‘1 oder v‘1 = v‘2 gilt, sind wir fertig (/* guter Fall */) ... da der gegebene Graph endlich ist, kann der schlechte Fall natürlich nicht beliebig oft auftreten 0/1, Folie 21 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Eulergraphen Anmerkungen (/* falls der Graph keine Knoten mit ungeradem Grad hat */) 1) 2) wähle einen Knoten und markiere ihn falls es einen markierten Knoten v gibt, an dem eine unmarkierte Kante beginnt, so bestimme einen nur aus unmarkierten Kanten bestehenden „neuen“ Weg von v nach v (/* markiere alle besuchten Knoten und alle verwendeten Kanten und ergänze den gemerkten Weg um diesen „neuen“ Weg */) und gehe zu 3); sonst stoppe ... dass das ebenfalls funktioniert, sollte klar sein ... Hinweis: Eulergraphen, die keine Knoten mit ungeradem Grad haben , haben nur Eulerwege, deren Anfangs- und Endknoten der gleiche Knoten ist 0/1, Folie 22 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Interessierende Fragestellung • gegeben: • • • gesucht: • 0/1, Folie 23 ein zusammenhängender Graph, wobei an den Kanten Zahlen größer gleich 0 stehen (/* die Zahlen geben an, wie lang die jeweilige Kante ist */) ein Startknoten u und Zielknoten v © 2011 Prof. Steffen Lange bestimme die Länge eines kürzesten Weges von u nach v - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 9 2 A 7 B 2 6 E 3 D 5 3 6 C 8 4 G F ... Startknoten A; Zielknoten G ... ein Knoten u ist Nachbar eines Knotens v, falls es eine Kante mit den Ecken u und v gibt (/* Hilfsbegriff */) 0/1, Folie 24 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 7 B 3 9 E 3 8 0 2 A 2 6 D 6 C 5 3 4 G F ... markiere den Startknoten A mit 0 und kennzeichne ihn als vollständig bearbeitet ... bestimme alle Nachbarn von A und markiere sie mit der Länge der jeweiligen Kante und kennzeichne sie als in Arbeit 0/1, Folie 25 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 7 B 3 9 E 3 8 0 2 A 2 6 D 6 C 5 3 4 G F 6 ... bestimme unter allen Knoten, die in Arbeit sind, einen mit einer minimalen Markierung und kennzeichne ihn als vollständig bearbeitet ... bestimme alle Nachbarn des Knotens, der gerade als vollständig bearbeitet gekennzeichnet wurde, und passe ihre Markierungen an 0/1, Folie 26 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 3+7 7 9 0 E 3 8 3+9 2 A 2 6 D 6 C 5 3 4 G F min { 6,3+2 } 0/1, Folie 27 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 10 7 9 0 E 3 8 12 2 A 2 6 D 6 C 5 3 4 G F 5 ... bestimme unter allen Knoten, die in Arbeit sind, einen mit einer minimalen Markierung und kennzeichne ihn als vollständig bearbeitet ... bestimme alle Nachbarn des Knotens, der gerade als vollständig bearbeitet gekennzeichnet wurde, und passe ihre Markierungen an 0/1, Folie 28 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 2 2 6 D 6 C 5 0/1, Folie 29 © 2011 Prof. Steffen Lange E 9 3 min { 12,5+2 } 0 A 10 7 - 8 5 3 4 G F 5+6 HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 10 7 9 0 E 3 8 7 2 A 2 6 D 6 C 5 5 3 4 G F 11 ... bestimme unter allen Knoten, die in Arbeit sind, einen mit einer minimalen Markierung und kennzeichne ihn als vollständig bearbeitet ... bestimme alle Nachbarn des Knotens, der gerade als vollständig bearbeitet gekennzeichnet wurde, und passe ihre Markierungen an 0/1, Folie 30 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 7 B 3 9 0 E 3 8 7 2 A 2 6 D 6 C 5 0/1, Folie 31 min { 10,7+3 } © 2011 Prof. Steffen Lange - 5 3 4 G F min { 11,7+3 } HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 10 7 9 0 E 3 8 7 2 A 2 6 D 6 C 5 5 3 4 G F 10 ... bestimme unter allen Knoten, die in Arbeit sind, einen mit einer minimalen Markierung und kennzeichne ihn als vollständig bearbeitet ... bestimme alle Nachbarn des Knotens, der gerade als vollständig bearbeitet gekennzeichnet wurde, und passe ihre Markierungen an 0/1, Folie 32 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 9 0 E 3 8 7 2 A 2 6 D 6 C 5 0/1, Folie 33 10 7 © 2011 Prof. Steffen Lange - 10+8 5 3 4 G F min { 10,10+5 } HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 10 7 9 0 E 3 8 7 2 A 2 6 D 6 C 5 18 5 3 4 G F 10 ... und noch zweimal so weiter !!! 0/1, Folie 34 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Algorithmische Idee (/* nur am Beispiel */) 3 B 3 10 7 9 0 E 3 8 7 2 A 2 6 D 6 C 5 14 5 3 4 G F 10 ... falls der Zielknoten als vollständig bearbeitet gekennzeichnet wurde, kann aufgehört werden (/* die Markierung des Zielknotens entspricht der Länge eines kürzesten Weges vom Startknoten zum Zielknoten */) 0/1, Folie 35 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Anmerkungen • intuitiv sollte klar sein, dass der Algorithmus korrekt arbeitet (/* das sauber zu beweisen, ist etwa anstrengend und länglich ... */) man muss zeigen, dass für alle Knoten v gilt: • 0/1, Folie 36 sobald v als vollständig bearbeitet gekennzeichnet wird, entspricht die Markierung des Knotens v der Länge eines kürzesten Weges vom Startknoten zum Knoten v © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Kürzeste Wege Anmerkungen • man kann den vorgestellten Algorithmus auch benutzen, um einen kürzesten Weg zu bestimmen • • sobald man v als in Arbeit gekennzeichnet hat, notiert man sich parallel am Knoten v, von welchem Knoten v‘ man v erreicht hat falls sich die Markierung von v ändert, passt man diese Information an (/* man wählt genau den Knoten v‘, dessen Kante zu v bei der Änderung der Markierung berücksichtigt wurde */) 3,A B 3 9 0 2 2 6 C 3 D 6 5,B © 2011 Prof. Steffen Lange - HDa/FbI E 8 7,C A 0/1, Folie 37 10,A 7 - Graphen und Optimierung 14,F 5 3 4 F 10,C G Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Interessierende Fragestellung • gegeben: • • • ein zusammenhängender Graph, wobei an den Kanten Zahlen größer gleich 0 stehen (/* die Zahlen geben an, wie lang die jeweilige Kante ist */) ein Startknoten u gesucht: • bestimme die Länge einer kürzesten Tour von u nach u, die jede Kante wenigstens einmal besucht ... der Startknoten entspricht dem Postamt (/* wo der Postbote die Post abholt und seine hoffentlich leere Tasche wieder abgibt */) ... die Kanten entsprechen den Straßen, in denen der Postbote die Post austragen muss */) 0/1, Folie 38 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Anmerkungen • falls der gegebene Graph ein Eulergraph* ist, so ist alles klar (/* jeder Eulerweg ist eine Tour, bei der jede Kante genau einmal besucht wird; alle Eulerwege sind gleich lang; welcher Knoten als Startknoten benutzt wird, ist vollkommen egal */) • „kritisch“ ist es, wenn der gegebene Graph kein Eulergraph* ist (/* dann müssen Kanten mehrfach durchlaufen werden, um zu erreichen, dass man eine Tour alle Kanten wenigstens einmal besucht und vom Startknoten zum Endknoten führt */) ... die Idee besteht darin, den gegebenen Graphen so zu erweitern, dass ein Eulergraph* entsteht (/* dann wären wir wieder im einfach zu lösenden Fall */) ... Hinweis: ein Eulergraph* ist ein Eulergraph, in dem jeder Knoten einen geraden Grad hat !!! 0/1, Folie 39 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Anmerkung • wenn der gegebene Graph kein Eulergraph* ist, hat er Knoten mit ungeradem Grad • um den gegebenen Graphen zu einem Eulergraphen* zu erweitern • • spendiert man jedem Knoten u mit ungeraden Grad genau eine „neue“ Kante zu einem anderen Knoten v mit ungeradem Grad (/* diese Kante „steht“ für einem Weg von u nach v im gegeben Graphen und hat dieselbe Länge wie dieser Weg */) die Länge eines Eulerwegs im so konstruierten Eulergraph* entspricht der Längen aller Kanten im gegeben Graphen plus der Längen der „neuen“ Kanten ... wenn man die „neuen“ Kanten so wählt, dass die Gesamtlänge aller „neuen“ Kanten minimal ist, hat der Eulerweg selbst minimale Länge 0/1, Folie 40 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Algorithmische Idee (/* am Beispiel */) 1 2 3 2 7 1 8 4 2 3 2 4 1 3 9 3 12 4 4 5 4 5 2 10 2 13 3 5 2 6 6 2 11 4 14 ... markiere alle Knoten mit ungeradem Grad im gegebenen Graphen 0/1, Folie 41 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Algorithmische Idee (/* am Beispiel */) 4 5 1 2 3 1 2 3 9 3 3 10 2 4 12 4 5 1 2 8 2 4 4 2 7 3 5 13 2 6 6 2 11 4 14 ... bestimme für jedes Paar markierter Knoten die Länge eines kürzesten Weges im gegebenen Graphen, der diese Knoten verbindet 0/1, Folie 42 © 2011 Prof. Steffen Lange - 1 7 11 13 1 - 9 7 7 7 9 - 9 8 11 7 9 - 5 13 7 8 5 - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Algorithmische Idee (/* am Beispiel */) 1 7 11 13 1 - 9 7 7 7 9 - 9 8 11 7 9 - 5 13 7 8 5 - ... bestimme alle Zerlegungen der Menge der markierten Knoten in Paare und die Gesamtlänge der zugehörigen kürzesten Wege im gegebenen Graphen • • • 0/1, Folie 43 { 1,7 } und { 11,13 } ⇒ Gesamtlänge der Wege: 9 + 5 = 14 { 1,11 } und { 7,13 } ⇒ Gesamtlänge der Wege: 7 + 8 = 15 { 1,13 } und { 7,11 } ⇒ Gesamtlänge der Wege: 7 + 9 = 16 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Algorithmische Idee (/* am Beispiel */) ... wähle die Zerlegung aus, für die die Gesamtlänge der zugehörigen kürzesten Wege im gegebenen Graphen minimal ist { 1,7 } und { 11,13 } ⇒ Gesamtlänge des Weges: 9 + 5 = 14 ... jedes Paar in der ausgewählten Zerlegung erzeugt eine „neue“ Kante (/* die Länge jeder „neuen“ Kante entspricht der Länge des zugehörigen kürzesten Weges im gegebenen Graphen*/) 1 9 2 3 2 1 7 8 4 2 3 4 1 9 3 12 0/1, Folie 44 © 2011 Prof. Steffen Lange - HDa/FbI - 2 Graphen und Optimierung 3 4 4 5 4 5 2 10 2 13 3 5 2 6 6 2 11 4 14 5 Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Algorithmische Idee (/* am Beispiel */) ... bestimme im Graphen mit den „neuen“ Kanten einen Eulerweg (/* das geht jetzt, da jeder Knoten einen geraden Grad hat */) 9 2 1 8 3 2 3 7 4 1 4 4 2 1 2 9 3 12 5 4 5 2 3 4 10 2 13 2 6 6 2 3 5 11 4 14 5 ... alle Eulerwege haben dieselbe Länge (/* 64 + 14 = 78 */) und es ist egal, an welchem Knoten die Tour (/* im Graph mit den „neuen“ Kanten */) gestartet wird 0/1, Folie 45 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Algorithmische Idee (/* etwas genauer */) 1) 2) 3) 4) 5) 0/1, Folie 46 bestimme die Menge M aller Knoten mit ungeradem Grad bestimme für jedes Paar aus Knoten in M einen kürzesten Weg im gegebenen Graphen, der diese Knoten verbindet bestimme alle Zerlegungen Z1, ...,Zn der Menge M in Paare von Knoten und zu jedem Z die Gesamtlänge der dieser Zerlegung zugeordneten kürzesten Wege im gegebenen Graphen wähle eine in 3) bestimmte Zerlegung Z mit minimaler Gesamtlänge und erweitere den gegebenen Graphen um entsprechende Kanten (/* jedes Paar von Knoten ergibt eine „neue“ Kante der Länge des zugehörigen kürzesten Weges im gegebenen Graphen */) bestimme einen Eulerweg im Graphen mit den „neuen“ Kanten und bestimme seine Länge © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Anmerkungen (/* zur Korrektheit */) • intuitiv sollte klar sein, dass der vorgestellte Algorithmus (/* wenn er überhaupt ein Ergebnis liefert */) die Länge einer kürzesten Tour berechnet, die im Startknoten beginnt und dort auch endet • noch zu klären ist, ob der vorgestellte Algorithmus immer ein Ergebnis berechnet ... zu hinterfragen ist also, ob es - in jedem Fall - Zerlegungen der Menge der Knoten mit ungeradem Grad in Paare von Knoten gibt 0/1, Folie 47 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Anmerkungen (/* zur Korrektheit */) • falls es im gegebenen Graphen eine gerade Anzahl von Knoten mit ungeradem Grad gibt, ist alles klar • kritisch wäre es, falls es im gegebenen Graphen eine ungerade Anzahl von Knoten mit ungeradem Grad geben würde ... es genügt, jedem Knoten eine „neue“ Kante zu „spendieren“ 0/1, Folie 48 © 2011 Prof. Steffen Lange - HDa/FbI - ... mindestens einem Knoten müssen zwei „neue“ Kanten spendiert werden Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem ... zum „Glück“ gilt folgender Zusammenhang • es sei irgendein Graph gegeben Dann gilt: Die Anzahl der Knoten mit ungeradem Grad ist gerade. 0/1, Folie 49 © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Einführende Beispiele - Das Postbotenproblem Begründung • • • es seien Z die Anzahl der Kanten im Graphen und V die Menge aller Knoten zu jedem Knoten v bezeichne g(v) den Grad des Knotens v es seien M die Menge der Knoten mit ungeradem Grad und M‘ die Menge der Knoten mit geradem Grad • dann gilt offenbar: 2*Z = ∑ g(v) = ∑ g(v) + ∑ g(v‘) v∈V 0/1, Folie 50 v∈M v‘ ∈ M‘ • • 2*Z ist eine gerade Zahl die „blaue“ Summe ist auch eine gerade Zahl (/* da in dieser Summe nur gerade Zahlen aufaddiert werden */) • damit muss auch die „gelbe“ Summe eine gerade Zahl sein (/* da 2*Z eine gerade Zahl ist */) • dann muss die Anzahl der Elemente in M auch gerade sein (/* da in dieser Summe nur ungerade Zahlen aufaddiert werden */) © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Zielstellungen der Vorlesung ... • • • • 0/1, Folie 51 Verständnis grundlegender Begriffe und Zusammenhänge aus der Graphentheorie Verständnis der Beziehungen zwischen graphentheoretischen Problemstellungen und der linearen Optimierung Kenntnis von grundlegenden Algorithmen für unterschiedliche graphentheoretische Problemstellungen und deren Anwendungen Fähigkeit, Algorithmen in Bezug auf ihre Korrektheit und Laufzeit zu analysieren © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung Erste Vorlesung Gliederung 1. 2. 3. 4. 5. 6. 7. 8. 0/1, Folie 52 Fallstudie: Bipartite Graphen Grundbegriffe Elementare Graphalgorithmen und Anwendungen Minimal spannende Bäume Kürzeste Wege Traveling Salesman Problem Flüsse in Netzwerken und Anwendungen Netzplantechnik © 2011 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung