Sie sind auf Seite 1von 5

Lehrstuhl für BWL insb.

Logistik Transportlogistik
RPTU Kaiserslautern-Landau (WS 2022/23)
Prof. Dr. Timo Gschwind Prof. Dr. Timo Gschwind
Gottlieb-Daimler-Straße, Gebäude 42 Sarah Machate, M.Sc.
D-67663 Kaiserslautern

6. Übung
Aufgabe 1 (Verschiedene Arten von Nachbarschaft)
Ihnen liegt ein Netzwerk mit 11 Kunden, einem Depot und folgender asymmetrischer Matrix mit Bogenkosten cij vor:

0 1 2 3 4 5 6 7 8 9 10 11
0 - 3 3 4 2 2 2 3 3 1 4 2
1 2 - 2 1 1 3 2 2 4 2 3 0
2 3 2 - 4 1 2 1 1 2 3 3 2
3 2 1 4 - 1 4 2 3 2 3 3 3
4 0 1 3 1 - 0 2 2 1 2 2 1
5 4 3 2 4 0 - 4 1 3 3 3 2
6 1 2 1 2 2 3 - 4 4 4 2 1
7 4 4 1 1 2 1 3 - 2 1 0 3
8 2 4 2 2 1 3 4 2 - 3 3 4
9 3 2 2 3 2 3 3 1 3 - 1 1
10 3 3 3 2 3 3 2 4 3 1 - 1
11 2 0 1 1 1 2 1 2 4 4 3 -

Ihre aktuelle Lösung umfasst zwei Routen: Rorange und Rblau . Beziehen Sie sich in den folgenden Teilaufgaben immer
wieder auf diese Lösung!

3 2 4 1 0 4 4 4
0 1 2 3 4 5 6 7 0

3 3 1 1 2
0 8 9 10 11 0

Geben Sie bei der Bearbeitung der Teilaufgaben jeweils an,


ˆ welche Kanten Sie entfernen,
ˆ welche Sie hinzufügen,
ˆ wie groß der Gewinn des Nachbarschafts-Schritts ausfällt,
ˆ ob es sich dementsprechend um einen verbessernden Nachbarn handelt und
ˆ wenn ja, wie die neue Lösung aussieht.
Tipp: Es kann hilfreich sein, sich den Nachbarschafts-Schritt zusätzlich jeweils einmal aufzuzeichen, um den Verlauf
der neuen Routen leichter nachvollziehen zu können.

(1) Führen Sie den 2-Opt-Schritt durch, der in Rblau das Segment zwischen den Kunden 9 und 10 invertiert.
(2) Führen Sie den 2-Opt*-Schritt durch, der in Rblau das Segment zwischen Depot (Knoten 0) und Kunde 8 entfernt
und das Depot stattdessen mit Kunde 3 verbindet.
(3) Führen Sie den Relocate-Schritt (intra-route) durch, der in Rorange den Kunden 7 nach Kunde 4 anfährt.
(4) Führen Sie den Relocate-Schritt (inter-route) durch, der den Kunden 3 von Rorange in die Route Rblau an die
Position zwischen Kunde 8 und 9 verlegt.
(5) Führen Sie den Or-Opt-Schritt (intra-route) durch, der das Segment bestehend aus Knoten 1 und 2 an das Ende
der Route Rorange verschiebt.
(6) Führen Sie den Or-Opt-Schritt (inter-route) durch, der das Segment bestehend aus Knoten 1 und 2 direkt an
den Anfang der Route Rblau verschiebt.
(7) Führen Sie den Swap-Schritt (intra-route) durch, der die Positionen von Kunde 8 und 11 von Route Rblau
miteinander vertauscht.
(8) Führen Sie den Swap-Schritt (inter-route) durch, der die Positionen von Kunde 7 in Route Rorange und Kunde
11 in Route Rblau vertauscht.
(9) Führen Sie den String Exchange-Schritt (intra-route) durch, der die Positionen des Segments bestehend aus
Knoten 8 und 9 in Rblau mit dem des Segments bestehend aus Knoten 10 und 11 vertauscht.
(10) Führen Sie den String Exchange-Schritt (inter-route) durch, der die Positionen des Segments bestehend aus
Knoten 10 und 11 in Rblau mit dem des Segments bestehend aus Knoten 3,4 und 5 in Rorange vertauscht.
6. Übung Transportlogistik

Aufgabe 2 (Testen der Zulässigkeit von Zeitfenstern)


(1) Testen Sie die Zeitfenster-Zulässigkeit für einen 2-Opt*-Schritt mit i = 2 und j = 6, wenn für alle Bögen (i, j) ∈ A,
tij = 3 gilt. Vervollständigen Sie dafür zunächst die Tabelle. Geben Sie dann an, ob die Nachbarschaftslösung
zulässig ist oder nicht. Wenn ja, geben Sie die entstehenden neuen Routen an. Stellen Sie in jedem Fall ein zweites
Tableau auf (ggf. mit den neuen Routen) und führen Sie einen weiteren 2-Opt*-Schritt, dieses Mal mit i = 2 und
j = 4, durch. Geben Sie bei Zulässigkeit wieder die neuen Routen an.
r Route 1 Route 2
Knoten v 0 3 2 5 0 0 4 1 6 0
Zeitfenster [av , bv ] [0,24] [6,10] [12,16] [15,21] [0,24] [0,24] [5,12] [5,14] [10,20] [0,24]
früh. Zeit Tvearly
spät. Zeit Tvlate

(2) Testen Sie die Zeitfenster-Zulässigkeit für den Relocate-Schritt, der Knoten 3 zwischen die Knoten 4 und 1 verlegt.
Gehen Sie davon aus, dass für alle Bögen (i, j) ∈ A, tij = 3 gilt. Vervollständigen Sie zunächst die Tabelle. Geben
Sie dann an, ob die Nachbarschaftslösung zulässig ist oder nicht. Wenn ja, geben Sie die entstehenden neuen
Routen an.
Routen r Route 1 Route 2
Knoten v 0 3 2 5 0 0 4 1 6 0
Zeitfenster [av , bv ] [0,24] [6,10] [12,16] [15,21] [0,24] [0,24] [5,12] [5,14] [10,20] [0,24]
früh. Zeit Tvearly
spät. Zeit Tvlate

(3) Warum müssten Sie die Zeitfenster-Zulässigkeit im Beispiel aus Teilaufgabe (2) für den Relocate-Schritt nur in
Route 2 testen, nicht aber unbedingt für Route 1?

Aufgabe 3 (Lexikographische Suche nach bestem 2-Opt-Schritt)


Wenden Sie den Pseudocode aus der Vorlesung für die Lexikographische Suche an, um für die gegebene Route den
besten 2-Opt-Schritt zu finden. Stellen Sie Ihre Rechnungen nachvollziehbar dar und geben Sie abschließend den besten
2-Opt-Schritt (i∗ , j ∗ ) und G∗ an.
cij 0 1 2 3 4 5
Route (0-1-2-3-4-5-0)

i 0 1 2 3 4 5 0 0 - 7 5 2 1 2

ai 0 6 9 15 17 18 0 1 3 - 2 5 6 2
tij = 2 ∀ (i, j) ∈ A 2 1 1 - 7 2 1
bi 30 12 22 16 30 22 30
Tiearly 0 6 9 15 17 19 21 3 3 1 2 - 4 7

Tilate 10 12 14 16 20 22 30 4 2 4 3 7 - 3
5 7 3 2 4 3 -
Algorithmus 1: Lexikographische Suche für 2-Opt
// Input: Lösung x = (0, 1, 2, . . . , n) Route
SETZE G∗ := −∞
for i = 0, 1, . . . , n − 3 do
SETZE a := ai+1 , b := bi+1 , t := 0, g := 0
for j = i + 2, i + 3, . . . , n − 1 do
// Tj ist früheste Zeit am Ende von (0, . . . , i | j)
SETZE Tj = max{aj , Tiearly + tij }
// Segment REF for (j, j − 1, . . . , i + 1) und Gewinn Invertierung
SETZE b := min{bj , b − tj,j−1 }
if Tj > b then BREAK
SETZE a := max{a, aj + tj,j−1 + t}, t := t + tj,j−1
SETZE g := g + (cj−1,j − cj,j−1 )
// Ti+1 ist früheste Zeit am Ende von (0, . . . , i | j, j − 1, . . . , i + 1)
SETZE Ti+1 = max{a, Tj + t}
late
if Ti+1 ≤ bi+1 und Ti+1 + ti+1,j+1 ≤ Tj+1 then
SETZE G = g + ci,i+1 + cj,j+1 − cij − ci+1,j+1
if G > G∗ then
Setze G∗ = G, (i∗ , j ∗ ) := (i, j)
end if
end if
end for
end for
// Output: bester 2-Opt-Move definiert über (i∗ , j ∗ ) und Gewinn G∗

Page 2
6. Übung Transportlogistik

Aufgabe 4 (Granulare Suche)


Ihnen liegt ein Netzwerk mit einem Depot, n = 8 Kunden und m = 2 Fahrzeugen vor. Des Weiteren ist Ihnen folgende
Kostenmatrix gegeben:

cij 0 1 2 3 4 5 6 7 8

0 - 6 9 6 7 5 6 7 9
1 8 - 4 7 3 4 6 7 5
2 6 6 - 5 4 5 7 9 2
3 4 1 5 - 5 4 4 7 4
4 5 8 4 5 - 5 6 2 9
5 5 8 6 1 4 - 8 7 9
6 2 9 8 5 5 7 - 3 9
7 8 5 4 7 7 3 6 - 8
8 9 6 3 9 4 5 9 3 -
Für dieses vorliegende Netzwerk möchten Sie eine Granulare Suche nutzen, um bei der Lösung gezielt “gute“ Nach-
barlösungen zu finden.
(1) Stellen Sie die Menge der Generatorbögen Agen ⊂ A auf. Gehen Sie dabei von einem Ausdünnungsfaktor π =
0, 5 aus und führen Sie die Unterteilung auf Basis der Kosten in der cij -Matrix durch. Im Fall gleich hoher
Bogenbewertung entscheiden Sie stattdessen nach kleinstem Index.
(2) Untersuchen Sie für untenstehende Lösung alle 2-Opt*-Schritte, deren eingefügter Bogen (i, j + 1) ein Genera-
torbogen ist. Veranschaulichen Sie die zulässigen Nachbarschafts-Schritte graphisch und bestimmen Sie darunter,
die Nachbarlösung mit dem größten Gewinn.
5 1 5 9
0 5 3 1 8 0

8 5

7 7 7 2
0 7 4 2 6 0

Page 3
6. Übung Transportlogistik

Aufgabe 5 ((Adaptive) Large Neighborhood Search)


In der Vorlesung haben Sie Large Neighborhood Search (LNS) als auch Adaptive LNS (ALNS) als Lösungsverfahren
für Tourenplanungsprobleme kennengelernt.
(1) Veranschaulichen Sie das Vorgehen der Large Neighborhood Search (LNS) und der Adaptive LNS (ALNS). Set-
zen Sie dafür die gegebenen Elemente in zwei getrennten Flussdiagrammen sinnvoll miteinander in Verbindung.
Beschriften Sie, wo es notwendig ist, die eingesetzten Pfeile zwischen den Elementen. Orientieren Sie sich bei der
Erstellung gern am jeweiligen Pseudocode, die Sie in der Vorlesung kennengelernt haben.

Repariere die Lösung unter


Repariere die Lösung und
Berücksichtigung des Gewichts
erhalte dadurch die Lösung
p+ und erhalte dadurch die
xtemp
Lösung xtemp

Zerstöre einen Teil der Lösung


Zerstöre einen Teil der Lösung
x zufällig
x unter Berücksichtigung des
Gewichts p−

Aktualisiere die Gewichte p−


und p+ durch Scoring der
Setze die Gewichte aller
verwendeten Operatoren
Destroy- und
Repair-Operatoren initial auf =
1

START STOPP Setze x = xtemp

Wird das Finde eine Startlösung x und


Abbruchkri- setze deren Kosten als
terium vorläufige globale obere
erfüllt? Schranke c(xbest ), wenn sie
zulässig ist. Bei Unzulässigkeit
initialisiere c(xbest ) = ∞
Ist Ist c(x) <
c(xtemp ) < c(xbest ) und
c(x)? zulässig? Aktualisierung der oberen
Schranke. Setze c(xbest ) = c(x)

2x

Abbildung 1: Bausteine für die beiden Flussdiagramme für LNS und ALNS

(2) Erklären Sie in eigenen Worten wieso das gezielte Konstruieren von unzulässigen Lösungen bei der Suche nach
einer möglichst guten Lösung helfen kann.

Page 4
6. Übung Transportlogistik

Aufgabe 6 (MC-Fragen)
(1) Welche Aussagen zur Lokalen Suche sind richtig?
(mehrere Antworten möglich)
□ Die Menge aller Lösungen, welche durch Anwendung einer Elementaroperation auf x ∈ X entstehen,
bilden die Nachbarschaft N (x).
□ Eine Lösung x′ ∈ N (x) mit c(x′ ) > c(x) heißt bei einer Zielfunktion max c verbessernder Nachbar.
□ Die 2-Opt-Nachbarschaft N2Opt (x) einer Tour x besteht aus allen Touren x′ ̸= x, welche sich durch
Entfernen von zwei nicht benachbarten Kanten und Einfügen von zwei anderen Kanten bilden lassen.
□ Für verbessernde Nachbarn gilt, dass der Gewinn G(x; x′ ) eines Kantentauschs ≤ 0 ist.
□ Für die Berechnung des Gewinns eines Kantentauschs subtrahiert man die Summe der Kosten der
entfernten Kanten von der Summe der Kosten der eingefügte Kanten.

(2) Für das Testen der Zeitfenster-Zulässigkeit gilt, dass...


(mehrere Antworten möglich)
□ Ressourcenverbräuche für Segmente in Form von Schranken festgehalten werden können.
□ man für ein Segment mit Depot am Start während der Suche die Schranken propagiert.
□ man für ein Segment der Länge ℓ ≤ k während der Suche die Schranken propagiert.
□ alle Nachbarlösungen sich in Segmente unterteilen lassen.

(3) Welche Aussage über die Lexikographische Suche nach zulässigen Nachbarn trifft zu?
□ Die Lexikographische Suche kann zum Finden von zulässigen Nachbarlösungen in konstanter Zeit O(1)
angewendet werden.
□ Für beliebige Segmente σ sind Segment-REFs für Zeiten von der Form T = min{a, T + t}.
□ Für Segmente σ, die exakt zwei Knoten beinhalten kann bei der Segment-REF t = 0 gesetzt werden.
□ Wendet man die Lexikographische Suche auf eine Lösung an, ist das Finden einer verbessernden Nach-
barlösung garantiert.

(4) Granulare Suche ist eine Technik zur Reduktion des Aufwands bei der Suche nach “guten“ Nachbarschaftslösungen.
Welche der folgenden Aussagen beschreiben die Granulare Suche, wie Sie sie nach Schneider u.a. (2017) in der
Vorlesung kennengelernt haben, korrekt?
(mehrere Antworten möglich)
□ Der Ausdünnungsfaktor π wird zur Berechnung der Anzahl an Bögen benötigt, die Teil der Menge an
Generatorbögen werden sollen.
□ Der Suchaufwand für eine Bestensuche ist linear, da die Gewinnberechnung in linearer Zeit O(n) möglich
ist.
□ Die Granulare Suche ist eine Komponente des Tabu-Search-Verfahrens.
□ Die Granulare Suche ist keine Komponente des Tabu-Search-Verfahrens.

(5) Welche Aussagen beschreiben das Tabu-Search-Verfahren von Schneider u.a. (2017), welches Sie in der Vorlesung
kennengelernt haben, korrekt?
(mehrere Antworten möglich)
□ Tabu-Search ist eine nachbarschaftsbasierte deterministische Metaheuristik.
□ Das Verfahren untersucht mit Hilfe der Erstensuche zusammengesetzte Nachbarschaften N2−Opt∗ (x) ∪
NRelocate (x) ∪ NOr−Opt (x)
□ Das Verfahren untersucht mit Hilfe der Bestensuche zusammengesetzte Nachbarschaften N2−Opt∗ (x) ∪
NRelocate (x) ∪ NOr−Opt (x)
□ Bei der Tabu-Search können auch unzulässige Lösungen zugelassen werden.

(6) Welcher der folgenden Operatoren haben Sie nicht als Destroy-Operator für Large Neighborhood Search in der
Vorlesung kennengelernt?
□ History-Based Destroy
□ Related Destroy
□ Worst Destroy
□ Criterion Destroy
□ Critical Destroy

Page 5

Das könnte Ihnen auch gefallen