Verzweigen und beschränken - Loesungen

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

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

  1. (10)
  2. (10, 6.6)
  3. (10, 9, 6.6)
  4. (10, 9, 6.6, 5)
  5. (10, 9, 6.6, 5, 1)
  6. (9, 6.6, 5, 1) -> 10 wird gestrichen, da der Knoten nicht weiter expandiert werden kann, 9 wird expandiert
  7. (12, 9, 6.6, 5, 1)
  8. (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
  9. (13, 12, 12, 9, 6.6, 5, 1)
  10. (13, 12, 9, 6.6, 5, 1) -> 12 aus dem zweiten Niveau kann nicht mehr expandiert werden

Aufgabe 3

Aufgabe3.png

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:

Aufgabe5.png

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


Google-Maps Ergebnis

Persönliche Werkzeuge