Das Briefträgerproblem



Ähnliche Dokumente
1 topologisches Sortieren

Algorithmentheorie Maximale Flüsse

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

Primzahlen und RSA-Verschlüsselung

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Anmerkungen zur Übergangsprüfung

Kombinatorische Optimierung

7 Rechnen mit Polynomen

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

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Grundlagen der Theoretischen Informatik, SoSe 2008

WS 2009/10. Diskrete Strukturen

Informationsblatt Induktionsbeweis

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

8 Diskrete Optimierung

Konzepte der Informatik

WS 2013/14. Diskrete Strukturen

Algorithmen II Vorlesung am

Einführung in die Algebra

Mathematischer Vorbereitungskurs für Ökonomen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Graphentheorie Mathe-Club Klasse 5/6

Algorithmen und Datenstrukturen 2

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

Beispiellösungen zu Blatt 111

Musterlösungen zur Linearen Algebra II Blatt 5

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Statistische Untersuchungen zu endlichen Funktionsgraphen

1 Mathematische Grundlagen

Beweisbar sichere Verschlüsselung

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Kapiteltests zum Leitprogramm Binäre Suchbäume

Informatik I WS 07/08 Tutorium 24

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

PROSEMINAR ONLINE ALGORITHMEN

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

Professionelle Seminare im Bereich MS-Office

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Lineare Gleichungssysteme

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

8. Quadratische Reste. Reziprozitätsgesetz

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

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

!(0) + o 1("). Es ist damit möglich, dass mehrere Familien geschlossener Orbits gleichzeitig abzweigen.

Bestimmung einer ersten

Bericht vom 1. Leipziger Seminar am 25. November 2006

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Approximation durch Taylorpolynome

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

Die reellen Lösungen der kubischen Gleichung

6.2 Scan-Konvertierung (Scan Conversion)

Der Zwei-Quadrate-Satz von Fermat

Lineare Gleichungssysteme

Wir machen neue Politik für Baden-Württemberg

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

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

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

16. All Pairs Shortest Path (ASPS)

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Anleitung über den Umgang mit Schildern

Algorithmische Mathematik

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

Sollsaldo und Habensaldo

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Repetitionsaufgaben Wurzelgleichungen

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

WS 2008/09. Diskrete Strukturen

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

Modellbildungssysteme: Pädagogische und didaktische Ziele

Guten Morgen und Willkommen zur Saalübung!

Plotten von Linien ( nach Jack Bresenham, 1962 )

Zeichen bei Zahlen entschlüsseln

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Erstellen von x-y-diagrammen in OpenOffice.calc

Statuten in leichter Sprache

Kombinatorische Optimierung

A Lösungen zu Einführungsaufgaben zu QueueTraffic

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

15 Optimales Kodieren

AutoCAD Dienstprogramm zur Lizenzübertragung

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

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

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Korrigenda Handbuch der Bewertung

Thema: Winkel in der Geometrie:

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Unterscheidung: Workflowsystem vs. Informationssystem

Grundbegriffe der Informatik

Erfahrungen mit Hartz IV- Empfängern

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Transkript:

Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung............................. 2 2 Lösung 2 2.1 Lösung für eulersche Graphen.................... 2 2.2 Lösung für Bäume.......................... 2 2.3 Generelle Lösung (nach [8])..................... 2 2.3.1 Theoretische Lösung..................... 3 2.3.2 Algorithmus.......................... 3 2.3.3 Korrektheit des Algorithmus................ 3 3 Verwendete Algorithmen 5 3.1 Kürzeste Pfade: Algorithmus von Floyd-Warshall......... 5 3.2 Minimales perfektes Matching: Edmonds Matching Algorithmus. 7 3.3 Euler-Tour: Algorithmus von Hierholzer.............. 7 4 Beispiele 7 4.1 Beispiel 1............................... 7 4.2 Beispiel 2............................... 9 1

1 Problemstellung und Modellierung 1.1 Problem Das Problem wurde erstmals 1962 von dem chinesischen Mathematiker Mei Ko Kwan untersucht, der ihm den Namen Chinese Postman Problem gab. Ein (chinesischer) Briefträger soll über den kurzmöglichsten Weg alle Straßen einer Stadt besuchen, und am Ende wieder an seinem Startpunkt angelangen. 1.2 Modellierung Für die Modellierung des Problems betrachtet man einen zusammenhängenden ungerichteten Graphen G = (V, E), wobei die Kantenmenge E(G) die Straßen der Stadt sind und die Knotenmenge V (G) die Kreuzungen der Straßen darstellen. Die Längen der Straßen werden durch eine Gewichtsfunktion der Kanten modelliert: w : E R 0. Gesucht ist ein minimaler (minimal bezüglich der Kanten-Gewichte) Zyklus, der jede Kante mindestens einmal enthält. 2 Lösung Die Lösung des Problems ist von dem modellierten Graphen abhängig. Für eulersche Graphen und Bäume gibt es eine triviale Lösung. Für beliebige Graphen stellen wir ein Lösungsverfahren vor und beweisen dessen Richtigkeit. 2.1 Lösung für eulersche Graphen Ein Graph heißt eulersch, wenn er eine geschlossene Tour enthält, die jede Kante genau einmal enthält. Eine Tour heißt geschlossen, wenn sie wieder an ihrem Startpunkt endet (so wie es auch bei unserem Problem verlangt wird). In eulerschen Graphen ist der gesuchte Zyklus genau die Euler-Tour des Graphen. Gefordert ist ein Zyklus, der jede Kante mindestens einmal enthält, also ist die Euler-Tour, die jede Kante genau einmal enthält, auf jeden Fall minimal bezüglich der Kantengewichte. 2.2 Lösung für Bäume Mit Induktion lässt sich schnell zeigen, dass in Bäumen jede Kante genau zwei mal in dem gesuchten Zyklus vorkommt. 2.3 Generelle Lösung (nach [8]) Zunächst betrachten wir die theoretische Lösung des Briefträgerproblems. Dann stellen wir einen konkreten Algorithmus vor, mit dem diese Lösung erzielt werden kann und beweisen dessen Korrektheit. 2

2.3.1 Theoretische Lösung Sei X die Menge der Knoten aus G mit ungeradem Grad. Wir fügen eine neue Menge von Kanten E zu dem Graphen hinzu, so dass folgende drei Bedingungen erfüllt sind: a) Jede Kante e E ist parallel zu einer Kante e E. (Das heißt, die Kante e verläuft zwischen den gleichen Knoten wie e und w(e ) = w(e)) b) In G(V, E ) haben genau die Knoten aus X ungeraden Grad. c) w(e ) ist minimal; Es gilt w(e ) w(e ) für alle Kantenmengen E, die 1. und 2. erfüllen. Der so konstruierte Graph G(V, E E ) ist ein eulerscher Multigraph (d.h. ein eulerscher Graph, in dem Mehrfachkanten erlaubt sind). Jeder Euler-Tour dieses Graphen hat die minimale Länge w(e)+w(e ). Wenn man sich vor Augen führt, dass das Konstruieren eines solchen eulerschen Multigraphen äquivalent zur Frage ist, welche Kanten (Straßen) mehrfach durchlaufen werden müssen, ist klar, dass sich jede Lösung des Problems so darstellen lässt. 2.3.2 Algorithmus Wir stellen jetzt den Algorithmus für die Lösung vor. Sei G(V, E) ein zusammenhängender Graph mit Gewichtsfunktion w : E R 0. Sei weiters d G : V V R 0 die Funktion, die jedes 2-Tupel von Knoten auf die Länge des kürzesten Pfades in G zwischen den Knoten abbildet. 1. Bestimme X := {v V : deg(v) ungerade}. 2. Bestimme d G (x, y) x, y V. 3. Sei H der vollständige Graph über X. Bestimme ein perfektes Matching M in H mit minimalem Gewicht bezüglich d G. 4. Bestimme für alle (x, y) M einen kürzesten Weg W xy zwischen x und y in G. Füge dann für jede Kante in W xy eine neue Kante mit selbem Gewicht zu G hinzu. Sei G der so definierte Multigraph. 5. Bestimme eine Euler-Tour C in G. Ersetze jede Kante aus C, die nicht in G enthalten ist, durch die dazugehörige parallele Kante in G mit selbem Gewicht. Sei C die so konstruierte Euler-Tour in G. Genauere Erklärungen der Teilschritte folgen im nächsten Abschnitt, zunächst zeigen wir die Korrektheit des Algorithmus. 2.3.3 Korrektheit des Algorithmus In Schritt 4. wird für jedes Matching M von H (der vollständige Graph über X mit Gewichtsfunktion d G ) eine Knotenmenge E zu G hinzugefügt, so dass die Bedingungen a) und b) aus der theoretischen Lösung erfüllt sind. Der so entstehende Zyklus hat die Länge w(e) + d G (M); deshalb ist es klar, 3

dass das Matching M aus Schritt 3. minimal sein soll. Um zu zeigen, dass die Minimalitätsbedingung c) aus der Theoretischen Lösung erfüllt ist, muss allerdings noch gezeigt werden, dass sich keine andere Kantenmenge E finden lässt, mit der sich ein noch kleinerer Zyklus konstruieren lässt. Dafür brauchen wir das folgende Lemma und den folgenden Satz (bewiesen von D. Jungnickel in [1]): Lemma 1. Sei G(V, E) ein zusammenhängender Graph mit Gewichtsfunktion w : E R 0. Sei X V mit X gerade und H der vollständige Graph über X. Die Kanten von H haben die Gewichte d G (x, y). Für jedes minimale, perfekte Matching M von H und für jedes E 0 mit d (V,E) (a, b) = d (V,E0)(a, b) ( a, b X :) gilt: d G (M) w(e 0 ) Beweis. Sei M = {x 1 y 1,..., x 2 y 2 } ein minimales perfektes Matching von H. Dann ist d G (M) = d G (x 1, y 1 )+ +d G (x n, y n ). Sei weiters P i ein kürzester Pfad von x i zu y i in (V, E 0 ). Dann gilt aufgrund unserer Forderung an E 0 : w(p i ) = d G (x, y). Wir wollen nun zeigen, dass keine Kante e in mehr als einem der Pfade P i enthalten sein kann. Daraus folgt dann die Aussage unseres Lemmas. Annahme: Es existiert eine Kante e, die in zwei Pfaden (P 1 und P 2 ) enthalten ist. P 1 und P 2 haben dann folgende Form: Es folgt: P 1 = (x 1, P 1, u, e, v, P 1, y 1 ) P 2 = (x 2, P 2, u, e, v, P 2, y 2 ) d G (x 1, y 1 ) + d G (x 2, y 2 ) = d G (x 1, u) + w(e) + d G (v, y 1 ) + d G (x 2, u) + w(e) + d G (v, y 2 ) > d G (x 1, u) + d G (x 2, u) + d G (v, y 1 ) + d G (v, y 2 ) d G (x 1, x 2 ) + d(y 1, y 2 ) Das ist aber ein Widerspruch zu der Annahme, dass unser Matching M minimal ist, denn würde man in M {x 1 y 1, y 2 y 2 } durch {x 1 x 2, y 1 y 2 } ersetzen, erhielte man ein Matching von kleinerem Gewicht. Satz. Der Algorithmus zum Lösen des Briefträgerproblems ist korrekt. Beweis. Sei M ein minimales perfektes Matching von (H, d G ), wobei H der vollständige Graph über der Menge von Knoten auf G mit ungeradem Grad ist. Dann liefert unser Algorithmus einen Zyklus der Länge w(e) + d G (M). Sei E eine Menge von Kanten, die die Bedingungen a), b) und c) unserer theoretischen Lösung erfüllt. Der so konstruierbare Zyklus hat dann die Länge w(e) + w(e ). Wir müssen zeigen, dass w(e ) d G (M) gilt. Sei Z eine Zusammenhangskomponente von (V, E ) mit mindestens zwei Knoten und X wie üblich die Menge der Knoten aus G mit ungeradem Grad. Der Schnitt Z X kann dann nicht leer sein, denn sonst könnten wir alle Kanten aus E, die in Z enthalten sind einfach weglassen, und erhielten so eine kleinere 4

Kantenmenge, die immer noch a) und b) erfüllt. Da X die Menge von Knoten von (V, E ) mit ungeradem Grad ist, ist X Z ebenfalls eine Menge von Knoten mit ungeradem Grad. Nach dem Handschlagslemma ist also Z X gerade. Das bedeutet, dass die Zusammenhangskomponenten (Z 1,..., Z k ) von (V, E ) eine Zerlegung (X 1,..., X k ) von X induzieren, so dass für alle i {1,..., k} gilt: X i ist gerade und zwei beliebige Knoten von X i sind immer durch einen Pfad in (V, E ) verbunden. Seien x, y X i und sei P xy der Pfad von x bis y in E. Dann ist P xy trivialerweise ein kürzester Pfad zwischen x in y in (V, E ). P xy ist aber auch ein kürzester Pfad zwischen x in y in G; Angenommen, es gäbe einen kürzeren Pfad P xy zwischen den zwei Knoten. Dann würde eine Kantenmenge E, in der alle Kanten aus P xy durch die Kanten aus P xy ersetzt wurden immer noch a) und b) erfüllen und wäre von kleinerem Gewicht. Sei E i die Menge von Kanten aus E, so dass beide Endknoten der Kanten in Z i (Zusammenhangskomponente, die X i induziert) enthalten sind. Sei H i nun der vollständige Graph über Z i mit Gewichtsfunktion d (Zi,E i ) (x, y) und sei M i ein minimales perfektes Matching von H i. Nach unserem Lemma gilt d (Zi,E i ) (M i ) w(e i ). Die Vereinigung aller Matchings M 1 M 2 M k ist ein perfektes Matching von H und E = E 1 E 2 E k. Daraus folgt: w(e ) = w(e 1) + + w(e k) d G (M 1 ) + + d G (M k ) d G (M) 3 Verwendete Algorithmen 3.1 Kürzeste Pfade: Algorithmus von Floyd-Warshall Der Algorithmus von Floyd-Warshall bestimmt die Länge eines kürzesten Pfades zwischen allen zwei Knoten x, y eines Graphen mit positiven Kantengewichten w ij (Wenn ij keine Kante des Graphen ist, setze w ij = ). Sei V = {1,..., n}. 5

Algorithm 1 Floyd-Warshall for i = 1 to n do for j = 1 to n do if i j then d(i, j) w ij else d(i, j) end if for k = 1 to n do for i = 1 to n do for j = 1 to n do if d(i, k) + d(j, k) < d(i, j) then d(i, j) d(i, k) + d(j, k)) end if Der Algorithmus kann so modifiziert werden, dass er neben der Längen der kürzesten Pfade ebenfalls die Pfade selbst liefert. Man muss sich dazu lediglich für alle Knotenpaare x, y den Knoten mit höchstem Index merken, den man durchlaufen muss, wenn man von x über einen kürzesten Pfad y erreichen möchte. Diesen Knoten nennen wir B xy. Der Algorithmus sieht dann so aus (Die Initialsierungsschleife wird hier nicht wieder angeführt): for k = 1 to n do for i = 1 to n do for j = 1 to n do if d(i, k) + d(j, k) < d(i, j) then d(i, j) d(i, k) + d(j, k)) B ij k end if Um dann den Pfad P ij Verfahren: zu konstruieren, benutzt man folgendes rekursive 6

Verfahren 2 getpath(i,j) if d(i, j) = then return kein Pfad zwischen i und j. end if B B ij if B = null then return /* {i, j} ist eine Kante. else return GetPath(i, B) + B + GetPath(B, j) end if 3.2 Minimales perfektes Matching: Edmonds Matching Algorithmus Edmonds Algorithmus liefert ein minimales perfektes Matching für vollständige Graphen mit gerader Knotenzahl. Da der Algorithmus fortgeschrittene Kenntnisse aus der Optimierung benötigt, sei hier nur auf [8] verwiesen. 3.3 Euler-Tour: Algorithmus von Hierholzer Mit dem Algorithmus von Hierholzer lässt sich eine Euler-Tour in einem eulerschen Graphen G(V, E) bestimmen. Der Algorithmus benutzt die Tatsache, dass sich eulersche Graphen in paarweise Kantendisjunkte Zyklen zerlegen lassen. Algorithm 3 Hierholzer 1. Konstruiere ausgehend von einem beliebigen Knoten v einen Kreis K in G, der jede Kante höchstens einmal enthält. 2. Wenn K ein Euler-Kreis breche ab, sonst: 3. Vernachlässige alle Kanten aus K. 4. Suche in in den Knoten aus K einen Knoten, dessen Grad größer als 0 ist. Starte von diesem Knoten aus einen neuen Kreis K, der keine Knoten aus K enthält und jede Kante aus G höchstens einmal enthält. 5. Füge den Kreis K in den Kreis K ein: Ersetze den Startpunkt von K in K durch alle Punkte von K (in korrekter Reihenfolge). Nenne den so konstruierten Kreis wieder K und gehe zu Schritt 2. 4 Beispiele 4.1 Beispiel 1 Wir betrachten den Graphen G aus Abbildung 1. Die Knoten aus G mit ungeradem Grad sind {a, b, c, d, h, i}. Sei H der vollständige Graph über diesen Knoten mit Gewichtsfunktion d G. Wir suchen jetzt ein minimales perfektes Matching von H. Man sieht schnell, dass unser gesuchtes Matching jenes aus Abbildung 2 ist. 7

Abbildung 1: Ungerichteter Graph mit positiven Kantengewichten Abbildung 2: M = {ab, cd, hi} Für jedes xy M fügen wir jetzt für jede Kante aus dem kürzesten Pfad P xy (In unserem Fall ist das genau eine Kante) eine parallele Kante zu G hinzu und erhalten so den Graphen G in Abbildung 3. Abbildung 3: Eulerscher Multigraph G In diesem Multi-Graphen G suchen wir jetzt eine Euler-Tour C und ersetzen darin jede Kante aus C, die nicht in G ist, durch die dazugehörige parallele Kante in G. So erhalten wir den gewünschten Euler-Zyklus. 8

Informell kann man auch sagen, die Mehrfachkanten geben an, welche Straßen der Briefträger zwei mal durchlaufen muss. 4.2 Beispiel 2 Wir betrachten den Graphen G aus Abbildung 4. Abbildung 4: Ungerichteter Graph mit positiven Kantengewichten Die Knoten aus G mit ungeradem Grad sind {a, c, e, g}. Sei H wieder der vollständige Graph über diesen Knoten mit Gewichtsfunktion d G. Das Matching M in Abbildung 5 ist ein minimales perfektes Matching von H. Abbildung 5: M = {ag, ce} Für jedes xy M fügen wir jetzt für jede Kante aus dem kürzesten Pfad P xy die entsprechende parallele Kante zu G hinzu und erhalten so den Multigraphen G in Abbildung 6. 9

Abbildung 6: Eulerscher Multigraph G Aus G können wir wie im vorherigen Beispiel den gesuchten Zyklus konstruieren. Literatur [1] Dieter Jungnickel: Graphs, Networks and Algorithms, Springer 2003 [2] http://de.wikipedia.org/wiki/briefträgerproblem [3] http://en.wikipedia.org/wiki/floyd-warshall algorithm [4] http://en.wikipedia.org/wiki/eulerian path [5] http://web.mit.edu/urban or book/www/book/chapter6/6.4.4.html [6] http://de.wikipedia.org/wiki/algorithmus von Hierholzer [7] http://de.wikipedia.org/wiki/eulerkreisproblem [8] B. Korte und J. Vygen: Kombinatorische Optimierung: Theorie und Algorithmen, Springer 2008 10