Verzweigen und beschränken - Loesungen
Aus ProgrammingWiki
Inhaltsverzeichnis |
Aufgabe 1
Signatur:
Datentyp: | priority_queue |
Sorten: | element, priority_queue |
Konstruktoren: | create: priority queue |
push: priority_queue element priority_queue | |
Prädikat: | empty: priority_queue {true, false} |
Selektoren: | top: priority_queue - element |
pop: priority_queue - priority_queue |
Axiome:
create = | erzeugt eine leere priority queue |
empty() = true | leere priority queue ist leer |
empty(push(priority_queue, element)) = false | nach push ist die priority queue nicht leer |
top(push(priority_queue, element)) = element | top gibt das Element mit der höchsten Priorität zurück |
pop(push(priority_queue, element)) = priority_queue | pop entfernt das Element mit der höchsten Priorität |
Aufgabe 2
- (10)
- (10, 6.6)
- (10, 9, 6.6)
- (10, 9, 6.6, 5)
- (10, 9, 6.6, 5, 1)
- (9, 6.6, 5, 1) -> 10 wird gestrichen, da der Knoten nicht weiter expandiert werden kann, 9 wird expandiert
- (12, 9, 6.6, 5, 1)
- (12, 12, 9, 6.6, 5, 1) -> Die 12 aus dem zweiten Niveau steht immer noch vorn, da die 12 aus dem dritten Niveau nicht besser ist
- (13, 12, 12, 9, 6.6, 5, 1)
- (13, 12, 9, 6.6, 5, 1) -> 12 aus dem zweiten Niveau kann nicht mehr expandiert werden
Aufgabe 3
Der Ergebnissvektor lautet: .
Aufgabe 4
Um die Lösung des TSP zu überprüfen, stellen sie zuerst alle möglichen Rundreisen auf. Zu jeder Rundreise berechnen sie die Länge. Die kürzeste Rundreise muss dann genau mit der übereinstimmen, die wir mit branch and bound ermittelt haben.
Aufgabe 5
Kurzfassung der Lösung:
Die beste Route ist also Dresden, Görlitz, Zittau, Bautzen und zurück mit einer Länge von 255km.
Ausführliche Lösung:
Schritt 1: Ausgangsmatrix reduzieren
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 63 | ||||
Zittau | 37 | ||||
Görlitz | 35 | ||||
Bautzen | 46 | ||||
19 | 0 | 0 | 0 | 200 |
Schritt 2: Dresden - Zittau
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 108 | ||||
Zittau | 37 | ||||
Görlitz | 110 | 35 | 49 | 49 | |
Bautzen | 65 | 46 | 51 | 51 | |
14 | 0 | 0 | 0 | 259 |
Schritt 3: Dresden - Görlitz
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 109 | ||||
Zittau | 46 | ||||
Görlitz | 35 | ||||
Bautzen | 46 | ||||
19 | 0 | 0 | 0 | 255 |
Schritt 4: Dresden - Bautzen
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 63 | ||||
Zittau | 37 | ||||
Görlitz | 35 | ||||
Bautzen | 46 | ||||
75 | 0 | 0 | 0 | 256 |
Schritt 5: Dresden - Görlitz - Zittau
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 109 | ||||
Zittau | 46 | ||||
Görlitz | 35 | ||||
Bautzen | 65 | ||||
0 | 0 | 0 | 0 | 255 |
Schritt 6: Dresden - Görlitz - Bautzen
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 109 | ||||
Zittau | 114 | ||||
Görlitz | 49 | ||||
Bautzen | 46 | ||||
0 | 0 | 0 | 0 | 318 |
Schritt 7: Dresden - Görlitz - Zittau - Bautzen
von\nach | Dresden | Zittau | Görlitz | Bautzen | |
Dresden | 109 | ||||
Zittau | 46 | ||||
Görlitz | 35 | ||||
Bautzen | 65 | ||||
0 | 0 | 0 | 0 | 255 |