finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
3 Diskrete Optimierungsprobleme<br />
Zur Notationsvereinfachung werden wir in Zukunft einfach kombinatorisches Optimierungsproblem<br />
sagen, wenn wir ein Problem <strong>des</strong> Typs (3.2) meinen. Da ein derartiges<br />
Problem durch die Grundmenge E, die zulässigen Lösungen I und die Zielfunktion c definiert<br />
ist, werden wir kurz von einem kombinatorischen Optimierungsproblem (E, I, c)<br />
sprechen.<br />
Die Zielfunktion haben wir durch Formulierung (3.2) bereits sehr speziell strukturiert.<br />
Aber Problem (3.2) ist algorithmisch immer noch irrelevant, falls wir eine explizite Angabe<br />
von I unterstellen. Wir werden nachfolgend (und im Verlaufe der Vorlesung noch<br />
sehr viel mehr) Beispiele <strong>des</strong> Typs (3.2) kennenlernen. Fast alle der dort auftretenden<br />
zulässigen Mengen lassen sich auf folgende Weise charakterisieren:<br />
I = {I ⊆ E | I hat Eigenschaft Π}.<br />
Wir werden uns damit beschäftigen, welche Charakteristika die Eigenschaft Π haben<br />
muss, damit die zugehörigen Probleme (E, I, c) auf einfache Weise gelöst werden können.<br />
Nehmen wir an, dass E insgesamt n Elemente enthält, dann führt natürlich jede<br />
Eigenschaft Π, die impliziert, dass I (relativ zu n) nur sehr wenige Elemente enthält, dazu,<br />
dass (E, I, c) einfach lösbar ist, falls man die Elemente von I explizit angeben kann.<br />
Typischerweise haben jedoch die interessanten kombinatorischen Optimierungsprobleme<br />
eine Anzahl von Lösungen, die exponentiell in n ist, etwa n! oder 2 n . Eine vollständige<br />
Enumeration der Elemente solcher Mengen ist offenbar auch auf den größten Rechnern<br />
(für z. B. n ≥ 40) nicht in „vernünftiger Zeit“ durchführbar. Das Ziel der kombinatorischen<br />
Optimierung besteht — kurz und vereinfachend gesagt — darin, Algorithmen zu<br />
entwerfen, die (erheblich) schneller als die Enumeration aller Lösungen sind.<br />
3.2 Klassische Fragestellungen der Graphentheorie<br />
Nachfolgend werden eine Reihe von graphentheoretischen Problemen skizziert, die die<br />
Entwicklung der Graphentheorie nachhaltig beeinflusst haben.<br />
(3.3) Euler und das Königsberger Brückenproblem. Fast je<strong>des</strong> Buch über Graphentheorie<br />
(Geben Sie einfach einmal “Königsberg bridges” in Google ein.) enthält einen<br />
Stadtplan von Königsberg und erläutert, wie Euler die Königsberger Karte zu dem Graphen<br />
aus Abbildung 3.1 “abstrahiert” hat.<br />
Euler hat die Frage untersucht, ob es in diesem “Königsberger Brückengraphen” einen<br />
geschlossenen Pfad gibt, der alle Kanten genau einmal enthält. Heute nennen wir einen<br />
solchen Pfad Eulertour. Er hat das Problem nicht nur für den Graphen aus Abbildung 3.1<br />
gelöst, sondern für alle Graphen: Ein Graph enthält eine Eulertour genau dann, wenn er<br />
zusammenhängend ist und jeder Knoten einen geraden Grad hat. Diesen Satz hat Euler<br />
1736 bewiesen und damit die Graphentheorie begründet. Hinweise zur Geschichte <strong>des</strong><br />
Königsberger Brückenproblems und zu verwandten Optimierungsproblemen finden Sie<br />
u. a. in Grötschel and Yuan (2012). △<br />
(3.4) Das Haus vom Nikolaus. Jeder kennt die Aufgabe aus dem Kindergarten:<br />
Zeichne das Haus <strong>des</strong> Nikolaus, siehe Abbildung 3.2, in einem Zug!<br />
38