Operations Research Rundreiseaufgaben Marc Schwärzli SS 2011
Traveling-Salesman-Aufgabe Ein Möbellieferant soll die Orte 1-4 mindestens einmal besuchen und wieder zu 1 zurückkehren. Die Wegstrecke soll minimal sein.
Wird jeder Ort außer dem Start- und Zielort genau einmal besucht nennt man die Rundreise einen Hamiltonschen Zyklus. Hamiltonscher Zyklus: wenn jeder Ort genau einmal vorkommt (besucht wird)
Rundreise Beispiel Lötroboter: Ein Lötroboter soll die Punkte 1 bis 4 auf einer Platine auf dem kürzesten Weg einmal erreichen und wieder zum Ausgangspunkt zurückkehren.
Traveling-Salesman-Aufgabe Die Weglängen des Lötroboters zwischen den einzelnen Orten sind in folgender Distanzmatrix zusammen gefaßt: Beispiel: Von Ort 1 nach Ort 2 2 Von Ort 2 nach Ort 1 3
Traveling-Salesman-Aufgabe Nach Vorgabe einer Distanzmatrix gibt es verschiedene Verfahren um die kürzeste Tour herauszufinden: Die vollständige Enumeration Die Branch-and-Bound-Methode Die begrenzte Enumeration Die dynamische Optimierung Heuristische Verfahren
Die vollständige Enumeration Ist wegen des verbundenen Aufwandes nur für eine kleine Anzahl an Orten sinnvoll. Dabei werden alle denkbaren Hamiltonschen Zyklen bestimmt. Lfd.Nr. Hamiltonscher Zyklus (Orte) Länge 1 1 -2-3-4-1 2+4+3+5=14 2 1 - 2 - 4 - 3 - 1 2+1+3+5=11 3 1-3-2-4-1 6+2+1+5=14 4 1-3-4-2-1 6+3+2+3=14 5 1-4-2-3-1 3+2+4+5=14 6 1 – 4 – 3 – 2 - 1 3+3+2+3=11
Die begrenzte Enumeration Das Verfahren geht von einer reduzierten Distanzmatrix aus. Benötigt eine relativ gute Vergleichsrundreise als Voraussetzung (eine sogenannte suboptimale Lösung) Verfahren der sukzessiven Einbeziehung von Stationen liefert die suboptimale Lösung.
Die begrenzte Enumeration 1.) Bestimmung der reduzierten Länge 2.) Bestimmung einer Vergleichsrundreise 3.) Verkürzen der Rundreise um zwei Orte und Ersetzen des letzten durch einen unbesuchten rechts aus der Liste Bsp: 1-2-3-4-5-6-11-2-3-4-6 Wenn größer als reduzierte Länge dann Reduktion, sonst nächster Ort in der Liste (v links nach rechts) der noch nicht besucht wurde.
Die Begrenzte Enumeration Von der Entfernungsmatrix zur Distanztabelle: 1.) Erstellen einer Distanztabelle: Nach Ort Von Ort 1 2 3 4 # 6 5 Distanztabelle
Begrenzte Enumeration 2.) Bestimmung der Reduktionstabelle: 1 2 3 4 min # 6 5 7 Reduktionskonstante: Von jedem Wert der Tabelle wird das Zeilenminimum abgezogen und eine neue Tabelle erstellt.
Begrenzte Enumeration 2.) Bestimmung der Reduktionstabelle: 1 2 3 4 # min Von jedem Wert der Tabelle wird das Spaltenminimum abgezogen und eine neue Tabelle erstellt: 1 2 3 4 # min Reduktionskonstante:
Begrenzte Enumeration – 3.) Suche einer suboptimalen Lösung: Ausgangszyklus Neue Station Ergebniszyklus Reduzierte Länge kürzeste 1-2-1 3 1-3-2-1 1-2-3-1 3+0+0=3 0+2+1=3 * 4 1-4-2-3-1 1-2-4-3-1 1-2-3-4-1 1+0+2+1=4 0+0+0+1=1 0+2+1+1=4 Vergleichsrundreise: 1-2-4-3-1 mit reduzierter Länge = 1 1 2 3 4 # Reduktionstabelle – Faktor 10
Begrenzte Enumeration Hier beginnt die begrenzte Enumeration Von der suboptimalen Lösung ist nur die reduzierte Länge von Interesse. Reduzierte Länge 1 der Vergleichsrundreise sollte möglichst unterschritten werden. Teilrouten werden ausgehend von Station 1 nur dann verlängert wenn sich die reduzierte Länge nicht vergrößert.
Begrenzte Enumeration Reduzierte Länge 1 ist die Grenze, die möglichst unterschritten werden sollte: Teilroute Länge 1-2 1-2-3 2>1 1-2-4 0+0=0 1-2-4-3 1-2-4-3-1 1 1 2 3 4 # Reduktionstabelle – Faktor 10 Vergleichsrundreise: 1-2-4-3-1 mit reduzierter Länge = 1
Begrenzte Enumeration Stationen werden in geordneter Liste 1,2,3,4 festgehalten. Teilroute wird um den nächsten fehlenden Ort (von rechts in der Liste) verlängert: Teilroute Länge 1-2 1-2-3 2>1
Begrenzte Enumeration Grundsätzlich werden 2 Fälle unterschieden: Die Reduzierte Länge wird unterschritten Der nächste noch freie in der Liste von links nach rechts wird dazugefügt. Die Reduzierte Länge wird überschritten Ersetzen durch den rechten freien Nachbarn in der Liste. Teilroute Länge 1-2 1-2-3 2>1 Reduzierte Länge wird unterschritten Reduzierte Länge wird überschritten
Begrenzte Enumeration Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts in der Liste ersetzt: Teilroute Länge 1-2 1-2-3 2>1 1-2-4 0+0=0
Begrenzte Enumeration Wäre das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort usw. Teilroute Länge 1-2 1-2-3 2>1 1-3-2 3+0>1
Begrenzte Enumeration Danach wird der nächste fehlende Ort (von rechts in der Liste) dazugefügt. Bleibt kein Ort mehr über, wird die Route mit dem Startort geschlossen. Teilroute Länge 1-2 1-2-3 2>1 1-2-4 0+0=0<1 1-2-4-3 0<1 1-2-4-3-1 1 Neue Vergleichsrundreise
Begrenzte Enumeration - Beispiel Reduzierte Länge 10 ist die Grenze, die möglichst unterschritten werden sollte: Teilroute Länge 1-2 1-2-3 0+3=3 1-2-3-4 3 1-2-3-4-5 6 1-2-3-4-5-6 1-2-3-4-5-6-1 6<10 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6
Begrenzte Enumeration - Beispiel Eine neue Vergleichsrundreise wird um 2 Orte verkürzt. Der verbleibende letzte wird um den nächsten rechts in der „Liste 1,2,3,4,5,6“ ersetzt: 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6 Reduktionstabelle – Faktor 103 Das Verfahren ist vollendet, wenn nur mehr Station 1 zum Ersetzen übrig bleibt.
Begrenzte Enumeration - Beispiel Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert: 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6
Begrenzte Enumeration - Beispiel Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert: 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 Reduktionstabelle – Faktor 103 Die 4 hat keinen nächsten rechts in der Liste (5 u. 6), daher wird die Teilroute wieder verkürzt usw..
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 Reduktionstabelle – Faktor 103 Die 5 kann durch die nächste rechts in der Liste, die 6, ersetzt werden.
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 Reduktionstabelle – Faktor 103 Die 6 hat keinen nächsten rechts in der Liste.
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. 1 2 3 4 5 6 # 8 7 9 Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 Reduktionstabelle – Faktor 103 Die 4 ist die nächste nach 3 in der Liste 1,2,3,4,5,6.
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert: Teilroute Länge 1-2-3-4-5-6-1 1-2-3-4-6 3+7=10>6 1-2-3-5 3+1=4 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1-2-6-3 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. Teilroute Länge 1-2-3-5-4 4+5=9>6 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1-2-6-3 1-2-6-4 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten freien Nachbarn rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort. Teilroute Länge 1-2-3-5-6 4+0=4 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1-2-6-3 1-2-6-4 1-2-6-5 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert: Teilroute Länge 1-2-3-5-6-4 4+7=11>6 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1-2-6-3 1-2-6-4 1-2-6-5 1-2-6-5-3 2<6 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert: Teilroute Länge 1-2-3-6 3+4=7>6 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1-2-6-3 1-2-6-4 1-2-6-5 1-2-6-5-3 2<6 1-2-6-5-3-4 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103
Begrenzte Enumeration - Beispiel Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert: Teilroute Länge 1-2-4 8>6 1-2-5 7>6 1-2-6 1<6 1-2-6-3 1-2-6-4 1-2-6-5 1-2-6-5-3 2<6 1-2-6-5-3-4 1-2-6-5-3-4-1 4<6 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise
Begrenzte Enumeration - Beispiel Die neue Vergleichsrundreise wird um 2 Orte verkürzt. Der verbleibende letzte wird um den nächsten Nachbarn rechts in der „Liste 1,2,3,4,5,6“ ersetzt: Teilroute Länge 1-2-6-5-3-4-1 4<6 1-2-6-5-4 6>4 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise
Begrenzte Enumeration - Beispiel Ist die Länge überschritten worden, wird der letzte Ort durch den nächsten rechts ersetzt. Ist das nicht möglich, wird die Teilroute um einen Ort verkürzt und das Ersetzen bezieht sich auf den verbleibenden letzten Ort, oder die Route kann mit dem Startort geschlossen werden. Teilroute Länge 1-2-6-5-3-4-1 4<6 1-2-6-5-4 6>4 1-3 1 2 3 4 5 6 # 8 7 9 Reduktionstabelle – Faktor 103 Neue Vergleichsrundreise
Begrenzte Enumeration Zusammenfassung Die begrenzte Enumeration stellt eine sequentielle Abfolge dar. Die Reihenfolge wird aufgebaut bis ein hamiltonscher Zyklus entsteht oder bis die bisher kürzeste Länge überschritten wird.