Graphen und Optimierung

Werbung
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
Herunterladen