Verzweigen und beschränken - Loesungen

Aus ProgrammingWiki
Archivierte Version vom 2009-05-04T08:47:08+00:00. Aktuelle Version

Inhaltsverzeichnis

Aufgabe 1

Signatur:

Datentyp:priority queue
Sorten:element, priority queue
Konstruktoren:create: \rightarrow priority queue
push: priority queue x element\rightarrow priority queue
Prädikat:empty: priority queue \rightarrow {true, false}
Selektoren:top: priority queue - \{\epsilon\} \rightarrow element
pop: priority queue - \{\epsilon\} \rightarrow priority queue

Axiome:

create = \epsilonerzeugt eine leere priority queue
empty(\epsilon) = trueleere priority queue ist leer
empty(push(priority queue, element)) = falsenach push ist die priority queue nicht leer
top(push(priority queue, element)) = elementtop gibt das Element mit der höchsten Priorität zurück
pop(push(priority queue, element)) = priority queuepop 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: \vec{x}=(1,1,1,0).

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\nachDresdenZittauGörlitzBautzen
Dresden\infty108_{45}109_{46}63_063
Zittau114_{77}\infty37_046_937
Görlitz110_{75}35_0\infty49_{14}35
Bautzen65_{19}46_051_5\infty46
19000200

Schritt 2: Dresden - Zittau

von\nachDresdenZittauGörlitzBautzen
Dresden\infty108_0\infty\infty108
Zittau\infty\infty37_046_937
Görlitz11035\infty4949
Bautzen654651\infty51
14000259

Schritt 3: Dresden - Görlitz

von\nachDresdenZittauGörlitzBautzen
Dresden\infty\infty109_0\infty109
Zittau114_{68}\infty\infty46_046
Görlitz\infty35_0\infty49_{14}35
Bautzen65_{19}46_0\infty\infty46
19000255

Schritt 4: Dresden - Bautzen

von\nachDresdenZittauGörlitzBautzen
Dresden\infty\infty\infty63_063
Zittau114_{77}\infty37_0\infty37
Görlitz110_{75}35_0\infty\infty35
Bautzen\infty46_051_5\infty46
75000256

Schritt 5: Dresden - Görlitz - Zittau

von\nachDresdenZittauGörlitzBautzen
Dresden\infty\infty109_0\infty109
Zittau\infty\infty\infty46_046
Görlitz\infty35_0\infty\infty35
Bautzen65_{0}\infty\infty\infty65
0000255

Schritt 6: Dresden - Görlitz - Bautzen

von\nachDresdenZittauGörlitzBautzen
Dresden\infty\infty109_0\infty109
Zittau114_{0}\infty\infty\infty114
Görlitz\infty\infty\infty49_{0}49
Bautzen\infty46_0\infty\infty46
0000318

Schritt 7: Dresden - Görlitz - Zittau - Bautzen

von\nachDresdenZittauGörlitzBautzen
Dresden\infty\infty109_0\infty109
Zittau\infty\infty\infty46_046
Görlitz\infty35_0\infty\infty35
Bautzen65_{0}\infty\infty\infty65
0000255


Google-Maps Ergebnis