630 likes | 832 Views
traveling salesman problem. ZIP-Methode Kombinatorischer Ansatz einer optimalen Lösung symmetrischer Rundreiseprobleme. traveling salesman problem. Ziel: Vorstellung eines kombinatorischen Lösungsansatzes des Rundreiseproblems Voraussetzungen: Kenntnisse der vier Grundrechenarten
E N D
travelingsalesman problem ZIP-Methode Kombinatorischer Ansatz einer optimalen Lösung symmetrischer Rundreiseprobleme
traveling salesman problem • Ziel: • Vorstellung eines kombinatorischen Lösungsansatzes des Rundreiseproblems • Voraussetzungen: • Kenntnisse der vier Grundrechenarten • etwas Geduld mit dem Vortragenden ....
traveling salesman problem Anlass: Fachschullehrbuch: Mathematik für Wirtschaftswissenschaften Verlag die Wirtschaft, Berlin (DDR), 1983 - darin: Rundreiseproblem S. 418ff.
Agenda • das Rundreiseproblem • bisherige Lösungen • neue Überlegungen • Beispiel mit 6 Knoten • Beispiel mit 10 Knoten • Beispiel mit 26 Knoten (Ergebnisse) • Schlussfolgerungen und Ausblick
das Rundreiseproblem • das Rundreiseproblem • bisherige Lösungen • neue Überlegungen • Beispiel mit 6 Knoten • Beispiel mit 10 Knoten • Beispiel mit 26 Knoten (Ergebnisse) • Schlussfolgerungen und Ausblick
das Rundreiseproblem Formulierung des Rundreiseproblems: Gesucht wird die kürzeste Entfernung zwischen n verschiedenen Orten. Dabei soll jeder Ort nur einmal aufgesucht werden und die Rundreise wieder im Ausgangsort enden.
das Rundreiseproblem • graphentheoretische Beschreibung: • Graph G • Knoten xi • Kante u(xi,xj) bzw. u<xi,xj> • Knotengrad • Komponenten eines Graphs • Teilgraph eines Graphs (Kantenteilgraph) • Graphfamilie und Mächtigkeit
das Rundreiseproblem • Laufindexe: • i = Laufindex des Anfangsknoten xi • j = Laufindex des Endknoten xj • k = Laufindex des Platzes einer Kante innerhalb eines Graphen • Kurz-Schreibweise einer Kante: • u(ij) i-j (Beispiel: u(2;4) 2-4) • f(i-j) = Ausprägung der Kante; (z.B.: Länge)
das Rundreiseproblem • kleinster Graph: Problem ist nicht die Berechnung des einzelnen Graphen, sondern die mit wachsenden n Knoten um je eine Fakultät ansteigenden Zahl der Graphen. |G| = n ! bei beliebigem Anfangsknoten |G| = (n-1)! , wenn Anfangsknoten x1 ist. |G| = (n-1)! /2 bei Symmetrie
bisherige Lösungen • das Rundreiseproblem • bisherige Lösungen • neue Überlegungen • Beispiel mit 6 Knoten • Beispiel mit 10 Knoten • Beispiel mit 26 Knoten (Ergebnisse) • Schlussfolgerungen und Ausblick
bisherige Lösungen • bisherige allgemeine optimale Lösungen: (grundsätzlich: Überprüfung aller Lösungen) • Voll-Enumeration • begrenzte Enumeration • branch and bound • weitere .... alle allgemeinen optimalen Lösungen nur für kleine n
bisherige Lösungen • bisherige suboptimale Lösungen: • viele ... • viele gute ... • viele gute, für die Praxis völlig ausreichend ...
bisherige Lösungen • Fazit zu den bisherigen Lösungen: Soweit erkennbar, liegt das wissenschaftliche Interesse seit langem in der Entwicklung und Verbesserung von suboptimalen Lösungen, weil scheinbar optimale Lösungen erschöpfend erforscht sind.
neue Überlegungen ... • das Rundreiseproblem • bisherige Lösungen • neue Überlegungen • Beispiel mit 6 Knoten • Beispiel mit 10 Knoten • Beispiel mit 26 Knoten (Ergebnisse) • Schlussfolgerungen und Ausblick
neue Überlegungen ... • aber zuerst eine Aufgabe für Sie: • Bitte schreiben Sie in beliebiger Reihenfolge die Zahlen von 1 bis 6 auf. 5 3 6 2 1 4
neue Überlegungen ... • Verbindet man die Knoten, so entsteht: • 1-komponentiger G • mit 6 Kanten • mit 6 Knoten • jeder Knoten hat den Knotengrad 2 5 5 3 6 2 1 4
neue Überlegungen ... wir erinnern uns: bei n = 6 n! = 720 (n-1)! = 120 (n-1)! / 2 = 60 5 5 3 6 2 1 4
neue Überlegungen ... wir addieren nun die Werte der Kanten: dabei tritt jeder Knoten zweimal auf: 5 5 3 6 2 • alsAnfangsknoten einer Kante • und alsEndknoten einer Kante. 1 1 4 Und das ist vom Übel !
neue Überlegungen ... wenn jeder Knoten nur einmal auftritt, so entsteht aus dem ganzen Graphen: ein Teilgraph mit allen 6 Knoten, aber nur mit 3 Kanten: z.B. Kanten: 1-6, 5-3, 2-4 5 5 3 6 2 1 4
neue Überlegungen ... ... übrig bleibt ein Komplement-Teilgraph mit derselben Struktur wie der Teilgraph ! Kanten: 1-4, 2-3, 5-6 5 5 3 6 2 1 4
neue Überlegungen ... • Der Graph setzt sich also zusammen: • aus dem Teilgraphen mit Kanten:1-6,5-3,2-4 • und dem Teilgraphenmit Kanten:1-4,2-3,5-6 5 5 3 6 2 1 4
neue Überlegungen ... Wegen derselben Struktur der Teilgraphen muss die Zahl der Knoten gradzahlig sein. (ggf. ist ein Pseudo-Knoten einzufügen.) 5 5 3 6 2 1 4
neue Überlegungen ... • Symmetrie-Regel: • Der Anfangsknoten einer Kante hat den kleineren Laufindex als der Endknoten i < j: f(1-6) + f(5-3) + f(2-4) = f(1-6) + f(3-5) + f(2-4) 5 5 3 6 2 1 4
neue Überlegungen ... • Sortier-Regel: • die Kanten werden nach dem Laufindex ihres Anfangsknoten sortiert. • 1. Kante2. Kante3. Kantef(1-6)+ f(3-5) + f(2-4) = f(1-6)+ f(2-4) + f(3-5) 5 5 3 6 2 1 4
wir erinnern uns: Bei n = 6 gibt es insgesamt 120 Graphen bzw. 60 symmetrische Graphen wieviele Teilgraphen gibt es eigentlich ? 1. Teilgraph 1 - 2 3 - 4 5 - 6 2. Teilgraph 1 - 2 3 - 5 4 - 6 3. Teilgraph 1 - 2 3 - 6 4 - 5 neue Überlegungen ... 4. Teilgraph 1 - 3 2 - 4 5 - 6 5. Teilgraph 1 - 3 2 - 5 4 - 6 6. Teilgraph 1 - 3 2 - 6 4 - 5 7. Teilgraph 1 - 4 2 - 3 5 - 6 8. Teilgraph 1 - 4 2 - 5 3 - 6 9. Teilgraph 1 - 4 2 - 6 3 - 5 10. Teilgraph 1 - 5 2 - 3 4 - 6 11. Teilgraph 1 - 5 2 - 4 3 - 6 12. Teilgraph 1 - 5 2 - 6 3 - 4 13. Teilgraph 1 - 6 2 - 3 4 - 5 14. Teilgraph 1 - 6 2 - 4 3 - 5 15. Teilgraph 1 - 6 2 - 5 3 - 4 mehr nicht !
Bei Anwendung der Symmetrieregel und der Sortierregel läßt sich jeder der 120 Graphen in 2 der 15Teilgraphen zerlegen. 1. Teilgraph 1 - 2 3 - 4 5 - 6 2. Teilgraph 1 - 2 3 - 5 4 - 6 3. Teilgraph 1 - 2 3 - 6 4 - 5 4. Teilgraph 1 - 3 2 - 4 5 - 6 5. Teilgraph 1 - 3 2 - 5 4 - 6 6. Teilgraph 1 - 3 2 - 6 4 - 5 7. Teilgraph 1 - 4 2 - 3 5 - 6 8. Teilgraph 1 - 4 2 - 5 3 - 6 9. Teilgraph 1 - 4 2 - 6 3 - 5 10. Teilgraph 1 - 5 2 - 3 4 - 6 11. Teilgraph 1 - 5 2 - 4 3 - 6 12. Teilgraph 1 - 5 2 - 6 3 - 4 13. Teilgraph 1 - 6 2 - 3 4 - 5 14. Teilgraph 1 - 6 2 - 4 3 - 5 15. Teilgraph 1 - 6 2 - 5 3 - 4 neue Überlegungen ... Probieren Sie es bitte an Ihrem eigenen Beispiel aus.
Wie viele Teilgraphen „passen“ zu einem Teilgraphen, d.h. bilden zusammen wieder einen Gesamt-Graphen ? Beispiel: 1-2, 3-4, 5-6 1. Teilgraph 1 - 2 3 - 4 5 - 6 2. Teilgraph 1 - 2 3 - 5 4 - 6 3. Teilgraph 1 - 2 3 - 6 4 - 5 4. Teilgraph 1 - 3 2 - 4 5 - 6 5. Teilgraph 1 - 3 2 - 5 4 - 6 6. Teilgraph 1 - 3 2 - 6 4 - 5 7. Teilgraph 1 - 4 2 - 3 5 - 6 8. Teilgraph 1 - 4 2 - 5 3 - 6 9. Teilgraph 1 - 4 2 - 6 3 - 5 10. Teilgraph 1 - 5 2 - 3 4 - 6 11. Teilgraph 1 - 5 2 - 4 3 - 6 12. Teilgraph 1 - 5 2 - 6 3 - 4 13. Teilgraph 1 - 6 2 - 3 4 - 5 14. Teilgraph 1 - 6 2 - 4 3 - 5 15. Teilgraph 1 - 6 2 - 5 3 - 4 neue Überlegungen ... insgesamt 8 (= 2 x 4) Nr.5, 6, 8, 9, 10, 11, 13, 14
Wie erhält man den kleinsten Graphen ? 1. Schritt: man ermittelt den kleinsten Teilgraphen 2. Schritt: man ermittelt den zugehörigenkleinsten Kompl.-Teilgraphen. neue Überlegungen ... 1. Teilgraph 1 - 2 3 - 4 5 - 6 2. Teilgraph 1 - 2 3 - 5 4 - 6 3. Teilgraph 1 - 2 3 - 6 4 - 5 4. Teilgraph 1 - 3 2 - 4 5 - 6 5. Teilgraph 1 - 3 2 - 5 4 - 6 6. Teilgraph 1 - 3 2 - 6 4 - 5 7. Teilgraph 1 - 4 2 - 3 5 - 6 8. Teilgraph 1 - 4 2 - 5 3 - 6 9. Teilgraph 1 - 4 2 - 6 3 - 5 10. Teilgraph 1 - 5 2 - 3 4 - 6 11. Teilgraph 1 - 5 2 - 4 3 - 6 12. Teilgraph 1 - 5 2 - 6 3 - 4 13. Teilgraph 1 - 6 2 - 3 4 - 5 14. Teilgraph 1 - 6 2 - 4 3 - 5 15. Teilgraph 1 - 6 2 - 5 3 - 4
neue Überlegungen ... Damit ist vielleicht der kleinste Graph gefunden !aber nur: vielleicht!
neue Überlegungen ... Weitere Überlegungen: Der kleinste (Gesamt-)Graph setzt sich zusammen: entweder: aus den beiden gefundenen Teilgraphen(kleinster Teilgraph mit zugehörigem kleinsten Kompl.-Teilgraph) oder: aus zwei dazwischen liegenden Teilgraphen.
neue Überlegungen ... Zahlenbeispiel: • kleinster Teilgraph hat die Kantenlänge: 20 • der kleinste zugehörige Kompl.-Teilgraph: 40 • ergibt einen Gesamtgraphen: 60 interessant sind damit nur noch die Teilgraphen mit Kantenlängen zwischen 20 und 40.
neue Überlegungen ... Zahlenbeispiel: • kleinster Teilgraph hat die Kantenlänge: 20 • der kleinste zugehörige Kompl.-Teilgraph: 40 • ergibt einen Gesamtgraphen: 60 • Außerdem: • ein Gesamtgraph mit einer Kantenlänge < 60muß mindestens aus einem Teilgraphen mit einer Kantenlänge < 30 zusammengesetzt sein.
neue Überlegungen ... Zahlenbeispiel: • kleinster Teilgraph hat die Kantenlänge: 20 • der kleinste zugehörige Kompl.-Teilgraph: 40 • ergibt einen Gesamtgraphen: 60 • d.h., • nur Teilgraphen (und zugehörige Kompl.-Teilgraphen)mit Kantenlängen zwischen 20 und < 30 sind zu prüfen.
neue Überlegungen ... Zahlenbeispiel: • kleinster Teilgraph hat die Kantenlänge: 20 • der kleinste zugehörige Kompl.-Teilgraph: 40 • ergibt einen Gesamtgraphen: 60 • d.h., • (a+b) < c a und/oder b < (c/2) • und a < b oder a = b a < (c/2)
neue Überlegungen ... Weitere Iterationsschritte:(bis zur halben Kantenlänge des bisher kleinsten gefundenen Gesamt-Graphen) • ausgehend vom kleinsten Teilgraphen wird jeweils der nächst größere Teilgraph mit seinem Komplement-Teilgraph überprüft, ob daraus ein kleinerer Gesamt-Graph zusammengesetzt werden kann. • wenn ja, ist der neue Gesamt-Graph Ausgangswert für weitere Iterationsschritte. • wenn nein, ist der kleinste Graph bereits gefunden.
Beispiel mit 6 Knoten: • das Rundreiseproblem • bisherige Lösungen • neue Überlegungen • Beispiel mit 6 Knoten • Beispiel mit 10 Knoten • Beispiel mit 26 Knoten (Ergebnisse) • Schlussfolgerungen und Ausblick
Beispiel mit 6 Knoten: Gegeben seien 6 Knoten mit den zugehörigen Entfernungen: • nach 1 nach 2 nach 3 nach 4 nach 5 nach 6 von 1 - 12 25 30 28 22 von 2 - 16 20 22 10 von 3 - 23 26 21 von 4 - 31 18 von 5 - 14 von 6 -
Kleinster Teilgraph: Nr. 1 mit Kantenlänge = 49 Nr. 1.K.2.K.3.K.K.-Länge 1. 1 - 2 3 - 4 5 - 6 49 2. 1 - 2 3 - 5 4 - 6 56 3. 1 - 2 3 - 6 4 - 5 64 4. 1 - 3 2 - 4 5 - 6 59 5. 1 - 3 2 - 5 4 - 6 65 6. 1 - 3 2 - 6 4 - 5 66 7. 1 - 4 2 - 3 5 - 6 60 8. 1 - 4 2 - 5 3 - 6 73 9. 1 - 4 2 - 6 3 - 5 66 10. 1 - 5 2 - 3 4 - 6 62 11. 1 - 5 2 - 4 3 - 6 69 12. 1 - 5 2 - 6 3 - 4 61 13. 1 - 6 2 - 3 4 - 5 69 14. 1 - 6 2 - 4 3 - 5 68 15. 1 - 6 2 - 5 3 - 4 67 Beispiel mit 6 Knoten: Komp.-Teilgraphen: Nr. 5, 6, 8, 9, 10, 11, 13 u.14 davon der kleinste: Nr. 10 mit Kantenlänge = 62 Länge des Graphen: 111 (49 + 62) : 2 = 55,5 Þkleinster Graph
Beispiel mit 10 Knoten: • das Rundreiseproblem - Fragestellung • Problem und bisherige Lösungen • neue Überlegungen • Beispiel mit 6 Knoten • Beispiel mit 10 Knoten • Beispiel mit 26 Knoten (Ergebnisse) • Schlussfolgerungen und Ausblick
Beispiel mit 10 Knoten: Entwicklung der ZIP-Formel bei n = 10: 1 · 3 · 5 · 7 · 9 = 1 ·2· 3 · 4· 5 · 6 · 7 · 8 · 9 ————————————— = 2 · 4 · 6 · 8 9! ————————————— = (1 · 2) · (2 · 2) · (3 · 2) · (4 · 2) 9! ————————————— = ( 1 · 2 · 3 · 4 ) · ( 2·2·2·2) 9! ————————————— = 4! · 24
Beispiel mit 10 Knoten: (n – 1)! ————————— ( n/2 – 1 ) ! · 2 n/2 - 1 davon: { ( n/2 – 1 ) ! }(Sortierregel) Teilgraph: —— — — — (Kantenzahl =n/2)1 x2 x 2 x 2 x 2 (Symmetrie) Anfangsknoten = x1
min. TG min.TGkomp Sortierung der 945 Teilgraphen nach Kantenlänge Beispiel mit 10 Knoten: lfd.Nr. K.-Länge 1. Kante 2.Kante 3.Kante 4.Kante 5.Kante Bemerk. 1 76 1 - 2 3 - 7 4 - 6 5 - 8 9 -10 2 77 1 - 5 2 - 9 3 - 8 4 - 6 7 -10 3 79 1 - 5 2 -10 3 - 7 4 - 6 8 - 9 4 83 1 - 5 2 - 7 3 - 8 4 - 6 9 -10 92 1 - 2 3 - 5 4 - 6 7 -10 8 - 9 5 6 93 1 - 2 3 - 9 4 - 6 5 - 8 7 -10 7 96 1 - 2 3 - 6 4 - 9 5 - 8 7 -10 8 96 1 - 8 2 - 5 3 - 7 4 - 6 9 -10 9 97 1 - 5 2 - 3 4 - 6 7 -10 8 - 9 10 100 1 - 2 3 - 6 4 - 5 7 -10 8 - 9 11 100 1 - 5 2 - 7 3 - 6 4 -10 8 - 9 12 101 1 - 8 2 - 9 3 - 5 4 - 6 7 -10 13 103 1 - 3 2 - 9 4 - 6 5 - 8 7 -10 .... min. TG + min.Tgkomp = 176; 176 / 2 = 88 bis 945
Beispiel mit 10 Knoten: lfd.Nr. K.-Länge 1. Kante 2.Kante 3.Kante 4.Kante 5.Kante Bemerk. 1 76 1 - 2 3 - 7 4 - 6 5 - 8 9 -10 2 77 1 - 5 2 - 9 3 - 8 4 - 6 7 -10 3 79 1 - 5 2 -10 3 - 7 4 - 6 8 - 9 4 83 1 - 5 2 - 7 3 - 8 4 - 6 9 -10 92 1 - 2 3 - 5 4 - 6 7 -10 8 - 9 5 6 93 1 - 2 3 - 9 4 - 6 5 - 8 7 -10 7 96 1 - 2 3 - 6 4 - 9 5 - 8 7 -10 8 96 1 - 8 2 - 5 3 - 7 4 - 6 9 -10 9 97 1 - 5 2 - 3 4 - 6 7 -10 8 - 9 10 100 1 - 2 3 - 6 4 - 5 7 -10 8 - 9 11 100 1 - 5 2 - 7 3 - 6 4 -10 8 - 9 12 101 1 - 8 2 - 9 3 - 5 4 - 6 7 -10 13 103 1 - 3 2 - 9 4 - 6 5 - 8 7 -10 .... bis 945
Beispiel mit 10 Knoten: lfd.Nr. K.-Länge 1. Kante 2.Kante 3.Kante 4.Kante 5.Kante Bemerk. 1 76 1 - 2 3 - 7 4 - 6 5 - 8 9 -10 2 77 1 - 5 2 - 9 3 - 8 4 - 6 7 -10 3 79 1 - 5 2 -10 3 - 7 4 - 6 8 - 9 4 83 1 - 5 2 - 7 3 - 8 4 - 6 9 -10 92 1 - 2 3 - 5 4 - 6 7 -10 8 - 9 5 6 93 1 - 2 3 - 9 4 - 6 5 - 8 7 -10 7 96 1 - 2 3 - 6 4 - 9 5 - 8 7 -10 8 96 1 - 8 2 - 5 3 - 7 4 - 6 9 -10 9 97 1 - 5 2 - 3 4 - 6 7 -10 8 - 9 10 100 1 - 2 3 - 6 4 - 5 7 -10 8 - 9 11 100 1 - 5 2 - 7 3 - 6 4 -10 8 - 9 12 101 1 - 8 2 - 9 3 - 5 4 - 6 7 -10 13 103 1 - 3 2 - 9 4 - 6 5 - 8 7 -10 .... bis 945
min.TGkomp Beispiel mit 10 Knoten: lfd.Nr. K.-Länge 1. Kante 2.Kante 3.Kante 4.Kante 5.Kante Bemerk. 1 76 1 - 2 3 - 7 4 - 6 5 - 8 9 -10 2 77 1 - 5 2 - 9 3 - 8 4 - 6 7 -10 min. TG 3 79 1 - 5 2 -10 3 - 7 4 - 6 8 - 9 4 83 1 - 5 2 - 7 3 - 8 4 - 6 9 -10 92 1 - 2 3 - 5 4 - 6 7 -10 8 - 9 5 6 93 1 - 2 3 - 9 4 - 6 5 - 8 7 -10 7 96 1 - 2 3 - 6 4 - 9 5 - 8 7 -10 8 96 1 - 8 2 - 5 3 - 7 4 - 6 9 -10 9 97 1 - 5 2 - 3 4 - 6 7 -10 8 - 9 10 100 1 - 2 3 - 6 4 - 5 7 -10 8 - 9 11 100 1 - 5 2 - 7 3 - 6 4 -10 8 - 9 12 101 1 - 8 2 - 9 3 - 5 4 - 6 7 -10 13 103 1 - 3 2 - 9 4 - 6 5 - 8 7 -10 .... min. TG + min.Tgkomp = 175; 175 / 2 = 87,5 bis 945
opt. TG opt.TGkomp Beispiel mit 10 Knoten: lfd.Nr. K.-Länge 1. Kante 2.Kante 3.Kante 4.Kante 5.Kante Bemerk. 1 76 1 - 2 3 - 7 4 - 6 5 - 8 9 -10 2 77 1 - 5 2 - 9 3 - 8 4 - 6 7 -10 3 79 1 - 5 2 -10 3 - 7 4 - 6 8 - 9 4 83 1 - 5 2 - 7 3 - 8 4 - 6 9 -10 92 1 - 2 3 - 5 4 - 6 8 - 9 5 7 -10 6 93 1 - 2 3 - 9 4 - 6 5 - 8 7 -10 7 96 1 - 2 3 - 6 4 - 9 5 - 8 7 -10 8 96 1 - 8 2 - 5 3 - 7 4 - 6 9 -10 9 97 1 - 5 2 - 3 4 - 6 7 -10 8 - 9 10 100 1 - 2 3 - 6 4 - 5 7 -10 8 - 9 11 100 1 - 5 2 - 7 3 - 6 4 -10 8 - 9 12 101 1 - 8 2 - 9 3 - 5 4 - 6 7 -10 13 103 1 - 3 2 - 9 4 - 6 5 - 8 7 -10 .... bis 945
Beispiel mit 10 Knoten: Anzahl der Teilgraphen nach dem 1.Durchlauf: nur noch 11 von 945 Teilgraphen Summe der Kantenlängen bei insgesamt 181.440 Gesamt-Graphen
Beispiel mit 10 Knoten: • Von insgesamt 945 Teilgraphen scheiden beim back tracking der begrenzten Enumeration aus: • Abbruch nach der 5. Kante: 0 • Abbruch nach der 4. Kante: 1 • Abbruch nach der 3. Kante: 3 • Abbruch nach der 2. Kante: 15 • Abbruch nach der 1. Kante: 105 Þ möglichst frühzeitiger Abbruch !!
Beispiel mit 10 Knoten: Beziehung zwischen Anfangsknoten und Kantenplatz: 1. Kante2. Kante3. Kante4. Kante5. Kante 1-2...1-10 2-3...2-10 3-4...3-10 4-5...4-10 5-6...5-10oder oder oder oder 3-4...3-10 4-5...4-10 5-6...5-10 6-7...6-10oder oder oder 5-6...5-10 6-7...6-10 7-8...7-10oder oder oder 7-8...7-10 8-9...8-10oderi = k für k = 1 9-10. i = k, k + 1 , ... , 2k -1 für k > 1