Rundreiseaufgaben Marc Schwärzli SS 2011. Ein Möbellieferant soll die Orte 1-4 mindestens einmal...

Post on 05-Apr-2015

103 views 1 download

Transcript of Rundreiseaufgaben Marc Schwärzli SS 2011. Ein Möbellieferant soll die Orte 1-4 mindestens einmal...

Rundreiseaufgaben

OPERATIONS RESEARCH

Marc Schwärzli SS 2011

• Ein Möbellieferant soll die Orte 1-4 mindestens einmal besuchen und wieder zu 1 zurückkehren. Die Wegstrecke soll minimal sein.

Traveling-Salesman-Aufgabe

032

02

1503

520

enEntfernung

Wird jeder Ort außer dem Start- und Zielort genau einmal besucht nennt man die Rundreise einen Hamiltonschen

Zyklus.

032

02

1503

520

enEntfernung

Hamiltonscher Zyklus: wenn jeder Ort genau einmal vorkommt (besucht wird)

RundreiseBeispiel 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.

• Die Weglängen des Lötroboters zwischen den einzelnen Orten sind in folgender Distanzmatrix zusammen gefaßt:

Traveling-Salesman-Aufgabe

0325

3025

1403

3620

enEntfernung

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 EnumerationVon der Entfernungsmatrix zur Distanztabelle:

1 2 3 4

1 # 2 6 3

2 3 # 4 1

3 5 2 # 3

4 5 2 3 #

0325

3025

1403

3620

enEntfernung

VonOrt

Nach Ort

Distanztabelle

1.) Erstellen einer Distanztabelle:

Begrenzte Enumeration2.) 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 7

• Von jedem Wert der Tabelle wird das Zeilenminimum abgezogen und eine neue Tabelle erstellt.

• Reduktionskonstante:

Begrenzte Enumeration2.) 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 3

1 2 3 4

1 # 0 3 1

2 0 # 2 0

3 1 0 # 1

4 1 0 0 #

min 1037 • Reduktionskonstante:

• Von jedem Wert der Tabelle wird das Spaltenminimum abgezogen und eine neue Tabelle erstellt:

Begrenzte Enumeration – 3.) Suche einer suboptimalen Lösung:

Ausgangszyklus Neue Station Ergebniszyklus Reduzierte Länge kürzeste

1-2-1 3 1-3-2-11-2-3-1

3+0+0=30+2+1=3 *

1-2-3-1 4 1-4-2-3-11-2-4-3-11-2-3-4-1

1+0+2+1=40+0+0+1=10+2+1+1=4

*

1 2 3 41 # 0 3 12 0 # 2 03 1 0 # 14 1 0 0 #

Vergleichsrundreise: 1-2-4-3-1 mit reduzierter Länge = 1

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

1 2 3 4

1 # 0 3 1

2 0 # 2 0

3 1 0 # 1

4 1 0 0 #

Vergleichsrundreise: 1-2-4-3-1 mit reduzierter Länge = 1

Teilroute Länge

1-2 0

1-2-3 2>1

1-2-4 0+0=0

1-2-4-3 0

1-2-4-3-1 1

• Reduzierte Länge 1 ist die Grenze, die möglichst unterschritten werden sollte:

Reduktionstabelle – Faktor 10

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

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 #

Teilroute Länge

1-2 0

1-2-3 0+3=3

1-2-3-4 3

1-2-3-4-5 6

1-2-3-4-5-6 6

1-2-3-4-5-6-1 6<10

• Reduzierte Länge 10 ist die Grenze, die möglichst unterschritten werden sollte:

Reduktionstabelle – Faktor 103Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6

Begrenzte Enumeration - Beispiel

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 #

Teilroute Länge

1-2-3-4-5-6-1

1-2-3-4-6 3+7=10>6

• 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:

Reduktionstabelle – Faktor 103Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6

Begrenzte Enumeration - Beispiel

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 #

Teilroute Länge

1-2-3-4-6 3+7=10>6

1-2-3-5 3+1=4

Reduktionstabelle – Faktor 103

Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6

Das Verfahren ist vollendet, wenn nur mehr Station 1 zum Ersetzen übrig bleibt.

• 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.

Begrenzte Enumeration - Beispiel

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 #

Teilroute Länge

1-2-3-5 3+1=4

1-2-3-5-4 4+5=9>6

Reduktionstabelle – Faktor 103

Neue Vergleichsrundreise: 1-2-3-4-5-6-1 mit reduzierter Länge = 6

• Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert:

Begrenzte Enumeration - Beispiel

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 #

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

• 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.

Begrenzte Enumeration - Beispiel

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 #

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

• Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert:

Begrenzte Enumeration - Beispiel

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 #

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>6Reduktionstabelle – Faktor 103

Die 4 hat keinen nächsten rechts in der Liste (5 u. 6), daher wird die Teilroute wieder verkürzt usw..

• 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.

Begrenzte Enumeration - Beispiel

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 #

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.

• 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.

Begrenzte Enumeration - Beispiel

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 #

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.

• 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.

Begrenzte Enumeration - Beispiel

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 #

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.

• 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.

Begrenzte Enumeration - Beispiel

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 #

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

Reduktionstabelle – Faktor 103

• 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.

Begrenzte Enumeration - Beispiel

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 #

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

Reduktionstabelle – Faktor 103

• 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.

Begrenzte Enumeration - Beispiel

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 #

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 8>6

Reduktionstabelle – Faktor 103

• Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert:

Begrenzte Enumeration - Beispiel

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 #

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 8>6

1-2-6-4 8>6

Reduktionstabelle – Faktor 103

• 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.

Begrenzte Enumeration - Beispiel

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 #

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 8>6

1-2-6-4 8>6

1-2-6-5 1<6

Reduktionstabelle – Faktor 103

• 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.

Begrenzte Enumeration - Beispiel

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 #

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 8>6

1-2-6-4 8>6

1-2-6-5 1<6

1-2-6-5-3 2<6

Reduktionstabelle – Faktor 103

• Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert:

Begrenzte Enumeration - Beispiel

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 #

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 8>6

1-2-6-4 8>6

1-2-6-5 1<6

1-2-6-5-3 2<6

1-2-6-5-3-4 2<6

Reduktionstabelle – Faktor 103

• Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert:

Begrenzte Enumeration - Beispiel

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 #

Teilroute Länge

1-2-4 8>6

1-2-5 7>6

1-2-6 1<6

1-2-6-3 8>6

1-2-6-4 8>6

1-2-6-5 1<6

1-2-6-5-3 2<6

1-2-6-5-3-4 2<6

1-2-6-5-3-4-1 4<6

Reduktionstabelle – Faktor 103

• Die Teilroute wird um den nächsten fehlenden Ort in der Liste 1,2,3,4,5,6 verlängert:

Neue Vergleichsrundreise

Begrenzte Enumeration - Beispiel

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 #

Teilroute Länge

1-2-6-5-3-4-1 4<6

1-2-6-5-4 6>4

Reduktionstabelle – Faktor 103

Neue Vergleichsrundreise

• 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:

Begrenzte Enumeration - Beispiel

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 #

Teilroute Länge

1-2-6-5-3-4-1 4<6

1-2-6-5-4 6>4

1-3 6>4

Reduktionstabelle – Faktor 103

Neue Vergleichsrundreise

• 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.

Begrenzte EnumerationZusammenfassung

• 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.