1-2 - Website von Marc Schwärzli

Download Report

Transcript 1-2 - Website von Marc Schwärzli

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.
0

3
Entfernung en  




2

0
5
2
0
2
3
5

1


0 
Wird jeder Ort außer dem Start- und Zielort genau
einmal besucht nennt man die Rundreise einen
Hamiltonschen Zyklus.
0

3
Entfernung en  




2

0
5
2
0
2
3
5

1


0 
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:
0

3
Entfernung en  
5

5

Beispiel:
• Von Ort 1 nach Ort 2  2
• Von Ort 2 nach Ort 1  3
2
6
0
4
2
0
2
3
3

1
3

0 
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-11-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
0

3
Entfernung en  
5

5

2
6
0
4
2
0
2
3
3

1
3

0 
Von
Ort
1
2
3
4
1
#
2
6
3
2
3
#
4
1
3
5
2
#
3
4
5
2
3
#
Distanztabelle
Begrenzte Enumeration
2.) Bestimmung der Reduktionstabelle:
1
2
3
4
min
1
#
2
6
3
2
2
3
#
4
1
1
3
5
2
#
3
2
4
5
2
3
#
2
7
• Reduktionskonstante:
 7
• Von jedem Wert der Tabelle wird das
Zeilenminimum abgezogen und eine neue
Tabelle erstellt.
Begrenzte Enumeration
2.) Bestimmung der Reduktionstabelle:
1
2
3
4
1
#
0
4
1
2
2
#
3
0
3
3
0
#
1
4
3
0
1
#
min
2
0
1
0
1
2
3
4
1
#
0
3
1
2
0
#
2
0
3
1
0
#
1
4
1
0
0
#
min
•
Von jedem Wert
der Tabelle wird das
Spaltenminimum
abgezogen und eine
neue Tabelle
erstellt:
3
• Reduktionskonstante:
  7  3  10
Begrenzte Enumeration –
3.) Suche einer suboptimalen Lösung:
Ausgangszyklus Neue Station
1-2-1
3
1-2-3-1
4
Ergebniszyklus
Reduzierte Länge
kürzeste
1-3-2-1
1-2-3-1
3+0+0=3
0+2+1=3
*
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
1
#
0
3
1
2
0
#
2
0
3
1
0
#
1
4 1 0 0 #
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
3
4
1-2
0
1
#
0
3
1
1-2-3
2>1
2
0
#
2
0
1-2-4
0+0=0
3
1
0
#
1
1-2-4-3
0
4
1
0
0
#
1-2-4-3-1
1
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
0
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
0
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
0
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
0
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
0
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
3
4
5
6
1-2
0
1
#
0
6
2
3
1
1-2-3
0+3=3
2
0
#
3
8
7
1
1-2-3-4
3
3
8
3
#
0
1
4
1-2-3-4-5
6
4
2
6
0
#
3
7
1-2-3-4-5-6
6
5
3
9
1
5
#
0
1-2-3-4-5-6-1
6<10
6
0
0
7
7
0
#
Neue Vergleichsrundreise: 1-2-3-4-5-6-1
mit reduzierter Länge = 6
Reduktionstabelle – Faktor 103
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:
Teilroute
1-2-3-4-5-6-1
1-2-3-4-6
1
2
3
4
5
6
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
Länge
3+7=10>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.
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
1
2
3
4
5
6
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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:
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
1
2
3
4
5
6
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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
4
5
6
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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:
Teilroute
Länge
1-2-3-5-6
4+0=4
1-2-3-5-6-4
4+7=11>6
1
2
3
4
5
6
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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.
Teilroute
1
2
3
4
5
6
1
#
0
6
2
3
1
Länge
1-2-3-4-5-6-1
1-2-3-4-6
3+7=10>6
2
0
#
3
8
7
1
1-2-3-5
3+1=4
3
8
3
#
0
1
4
1-2-3-5-4
4+5=9>6
4
2
6
0
#
3
7
1-2-3-5-6
4+0=4
5
3
9
1
5
#
0
1-2-3-5-6-4
4+7=11>6
6
0
0
7
7
0
#
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.
Teilroute
1
2
3
4
5
6
1
#
0
6
2
3
1
Länge
1-2-3-4-5-6-1
1-2-3-4-6
3+7=10>6
2
0
#
3
8
7
1
1-2-3-5
3+1=4
3
8
3
#
0
1
4
1-2-3-5-4
4+5=9>6
4
2
6
0
#
3
7
1-2-3-5-6
4+0=4
5
3
9
1
5
#
0
1-2-3-5-6-4
4+7=11>6
6
0
0
7
7
0
#
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.
Teilroute
1
2
3
4
5
6
1
#
0
6
2
3
1
Länge
1-2-3-4-5-6-1
1-2-3-4-6
3+7=10>6
2
0
#
3
8
7
1
1-2-3-5
3+1=4
3
8
3
#
0
1
4
1-2-3-5-4
4+5=9>6
4
2
6
0
#
3
7
1-2-3-5-6
4+0=4
5
3
9
1
5
#
0
1-2-3-5-6-4
4+7=11>6
6
0
0
7
7
0
#
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.
Teilroute
1
2
3
4
5
6
1
#
0
6
2
3
1
Länge
1-2-3-4-5-6-1
1-2-3-4-6
3+7=10>6
2
0
#
3
8
7
1
1-2-3-5
3+1=4
3
8
3
#
0
1
4
1-2-3-5-4
4+5=9>6
4
2
6
0
#
3
7
1-2-3-5-6
4+0=4
5
3
9
1
5
#
0
1-2-3-5-6-4
4+7=11>6
6
0
0
7
7
0
#
1-2-3-6
3+4=7>6
Reduktionstabelle – Faktor 103
1-2-4
8>6
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
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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
5
6
1
#
0
6
2
3
1
1-2-3-4-6
3+7=10>6
2
0
#
3
8
7
1
1-2-3-5
3+1=4
3
8
3
#
0
1
4
1-2-3-5-4
4+5=9>6
4
2
6
0
#
3
7
1-2-3-5-6
4+0=4
5
3
9
1
5
#
0
1-2-3-5-6-4
4+7=11>6
6
0
0
7
7
0
#
1-2-3-6
3+4=7>6
Reduktionstabelle – Faktor 103
1-2-4
8>6
1-2-5
7>6
1-2-6
1<6
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
5
6
1-2-3-4-6
3+7=10>6
1
#
0
6
2
3
1
1-2-3-5
3+1=4
2
0
#
3
8
7
1
1-2-3-5-4
4+5=9>6
3
8
3
#
0
1
4
1-2-3-5-6
4+0=4
4
2
6
0
#
3
7
1-2-3-5-6-4
4+7=11>6
5
3
9
1
5
#
0
1-2-3-6
3+4=7>6
6
0
0
7
7
0
#
1-2-4
8>6
Reduktionstabelle – Faktor 103
1-2-5
7>6
1-2-6
1<6
1-2-6-3
8>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-2-3-5-4
4+5=9>6
1
#
0
6
2
3
1
1-2-3-5-6
4+0=4
2
0
#
3
8
7
1
1-2-3-5-6-4
4+7=11>6
3
8
3
#
0
1
4
1-2-3-6
3+4=7>6
4
2
6
0
#
3
7
1-2-4
8>6
5
3
9
1
5
#
0
1-2-5
7>6
6
0
0
7
7
0
#
1-2-6
1<6
Reduktionstabelle – Faktor 103
1-2-6-3
8>6
1-2-6-4
8>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-2-3-5-6
4+0=4
1
#
0
6
2
3
1
1-2-3-5-6-4
4+7=11>6
2
0
#
3
8
7
1
1-2-3-6
3+4=7>6
3
8
3
#
0
1
4
1-2-4
8>6
4
2
6
0
#
3
7
1-2-5
7>6
5
3
9
1
5
#
0
1-2-6
1<6
6
0
0
7
7
0
#
1-2-6-3
8>6
Reduktionstabelle – Faktor 103
1-2-6-4
8>6
1-2-6-5
1<6
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-2-3-5-6-4
4+7=11>6
1
#
0
6
2
3
1
1-2-3-6
3+4=7>6
2
0
#
3
8
7
1
1-2-4
8>6
3
8
3
#
0
1
4
1-2-5
7>6
4
2
6
0
#
3
7
1-2-6
1<6
5
3
9
1
5
#
0
1-2-6-3
8>6
6
0
0
7
7
0
#
1-2-6-4
8>6
Reduktionstabelle – Faktor 103
1-2-6-5
1<6
1-2-6-5-3
2<6
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-2-3-6
3+4=7>6
1
#
0
6
2
3
1
1-2-4
8>6
2
0
#
3
8
7
1
1-2-5
7>6
3
8
3
#
0
1
4
1-2-6
1<6
4
2
6
0
#
3
7
1-2-6-3
8>6
5
3
9
1
5
#
0
1-2-6-4
8>6
6
0
0
7
7
0
#
1-2-6-5
1<6
Reduktionstabelle – Faktor 103
1-2-6-5-3
2<6
1-2-6-5-3-4
2<6
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
1
2
3
4
5
6
1
#
0
6
2
3
1
7>6
2
0
#
3
8
7
1
1-2-6
1<6
3
8
3
#
0
1
4
1-2-6-3
8>6
4
2
6
0
#
3
7
1-2-6-4
8>6
5
3
9
1
5
#
0
1-2-6-5
1<6
6
0
0
7
7
0
#
1-2-6-5-3
2<6
Reduktionstabelle – Faktor 103
1-2-6-5-3-4
2<6
1-2-6-5-3-4-1
4<6
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
1
#
0
6
2
3
1
2
0
#
3
8
7
1
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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
1-3
1
2
3
4
5
6
1
#
0
6
2
3
1
6>4
2
0
#
3
8
7
1
6>4
3
8
3
#
0
1
4
4
2
6
0
#
3
7
5
3
9
1
5
#
0
6
0
0
7
7
0
#
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.