14.01.2015 Aufrufe

Branch-and-Bound Beispiel mit Musterlösung

Branch-and-Bound Beispiel mit Musterlösung

Branch-and-Bound Beispiel mit Musterlösung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Branch</strong>-<strong>and</strong>-<strong>Bound</strong><br />

<strong>Beispiel</strong> <strong>mit</strong> Musterlösung<br />

Stefan Lämmer<br />

27. Juli 2004<br />

Aufgabenstellung<br />

Maximieren Sie<br />

unter den Nebenbedingungen<br />

F = x 1 + 2x 2 (1)<br />

3x 1 + 5x 2 ≤ 15 (2)<br />

x 2 ≤ 2 (3)<br />

x 1 , x 2 ∈ N 0 (4)<br />

Verwenden Sie den <strong>Branch</strong>-<strong>and</strong>-<strong>Bound</strong> Algorithmus. Die relaxierten Probleme P ′<br />

können Sie grafisch lösen.<br />

1


Vorbetrachtung<br />

Knackpunkte<br />

Ins Auge sticht die Ganzzahligkeitsbedingung (4), welche die Suche nach dem Optimum<br />

erschwert. Machen wir uns zunächst vier Punkte klar:<br />

1. Ohne die Ganzzahligkeitsbedingung müssen die Optima in den Eckpunkten des<br />

zulässigen Bereichs liegen, und wir bräuchten nur dort suchen. Mit der Ganzzahligkeitsbedingung<br />

dagegen können die Optima auch wo<strong>and</strong>ers liegen, sogar weit<br />

von den Eckpunkten entfernt. Und weil wir nicht wissen, wo wir zu suchen haben<br />

(und auch nicht alles durchprobieren wollen), verwenden wir diesen Algorithmus.<br />

2. Beim Simplex-Algorithmus sieht man dem Tableau sofort an, ob man die optimale<br />

Lösung gefunden hat. Das ist hier beim <strong>Branch</strong>-<strong>and</strong>-<strong>Bound</strong> <strong>and</strong>ers. Auch<br />

wenn wir das Optimum in der H<strong>and</strong> halten, können wir nicht entscheiden, ob<br />

es auch wirklich eins ist. Wir wissen es erst, wenn wir gezeigt haben, dass alle<br />

<strong>and</strong>eren Lösungen schlechter sind. Das Ziel und die Kunst des Algorithmus liegt<br />

darin, ganze Bereiche es Lösungsraums auszuschließen.<br />

3. Im Verlauf des Algorithmus wird der Lösungsraum in Teilbereiche unterteilt.<br />

Jeder dieser Teilbereiche ist ein Optimierungsproblem für sich. Der Algorithmus<br />

macht keinen Unterschied, ob wir das Ursprungsproblem oder ein tiefer liegendes<br />

Teilproblem beh<strong>and</strong>eln. Von jedem Teilproblem wollen wir wissen, ob es dort ein<br />

Optimum gibt, ob es besser ist als was wir wo<strong>and</strong>ers schon gefunden haben und<br />

wo es liegt. Das nennen wir im Weiteren “ausloten”.<br />

4. Die Ganzzahligkeitsbedingung schränkt den Lösungsraum ein. Als Lösung kommen<br />

nur noch wenige Punkte aus Simplex-Bereich, der durch (2), (3) und die<br />

Koordinatenachsen begrenzt ist, in Frage. Deshalb wissen wir schon jetzt: Mit<br />

der Ganzzahligkeitsbedingung können wir keine bessere Lösung finden als wenn<br />

es sie nicht gäbe – im Besten Fall finden wir das gleiche Optimum. Auf dieser<br />

Erkenntnis beruhen Fall a und Fall b (Siehe Skript).<br />

Bezeichner<br />

Folgende Bezeichner benutzen wir im Laufe des Algorithmus:<br />

P i . . . Teilproblem i. Das Ursprungsproblem ist P 0 .<br />

P ′ i<br />

. . . relaxiertes Teilproblem i. Ein Teilproblem nennen wir relaxiert, wenn wir die<br />

Ganzzahligkeitsbedingung (4) außer Acht lassen. Diese Fälle können wir <strong>mit</strong><br />

bekannten Werkzeugen, z.B. den Simplex-Algorithmus oder grafisch, bearbeiten.<br />

F i . . . obere Schranke von P i . Diese ist das Optimum des relaxierten Teilproblems P ′ i .<br />

Wir sprechen deshalb von ‘oberer Schranke’, weil das Optimum von P i niemals<br />

besser sein kann als das Optimum von P ′ i .<br />

F . . . untere Schranke von P 0 . Das ist die beste bisher gefundene zulässige Lösung<br />

von P 0 . Etwas schlechteres brauchen wir nicht zu akzeptieren. D.h., stoßen wir<br />

während der Iterationen auf Lösungsbereiche, deren obere Schranke F i nicht<br />

besser ist als F , brauchen wir dort gar nicht mehr weiter zu suchen. Ist am Ende<br />

der gesamte Lösungsbereich untersucht, ist F das gesuchte Optimum.<br />

2


Algorithmus<br />

Den Ablauf des Algorithmus zeigt Abbildung 1. Blöcke stehen für Aktionen, Rauten<br />

für Entscheidungen. Mit jeder Verzweigung entstehen zwei Teilprobleme, die wir aber<br />

nicht gleichzeitig abarbeiten können. Deshalb sehen wir eine Liste vor, in der wir noch<br />

offene Probleme zwischenspeichern. Sind alle abgearbeitet, sind wir fertig.<br />

Abbildung 1: Ablaufplan des <strong>Branch</strong>-<strong>and</strong>-<strong>Bound</strong> Algorithmus.<br />

3


Lösung<br />

Ursprungsproblem P 0<br />

Die Nebenbedingungen (2), (3) und die Koordinatenachsen stecken einen konvexen Bereich<br />

in der x 1 -x 2 -Ebene ab. In diesem Bereich nennen wir genau die Punkte ‘zulässig’,<br />

die ganzzahlige Koordinaten haben, siehe Abbildung (2).<br />

Abbildung 2: Die gelbe Fläche ist der zulässige Bereich des relaxierten Problems P ′ 0.<br />

Die zulässigen Punkte (<strong>mit</strong> ganzzahligen Koordinaten) sind blau markiert.<br />

Weiterhin weist eine Zielfunktion (1) jedem Punkt (x 1 , x 2 ) in der Ebene einen Wert<br />

F zu. Interpretiert man F als die dritte räumliche Dimension, kann man sich ein<br />

Dach vorstellen, dessen Höhe über dem Punkt (x 1 , x 2 ) dem Zielfunktionswert F (x 1 , x 2 )<br />

entspricht. Ist, wie hier, die Zielfunktion linear, ist das Dach eine Ebene. Abbildung 3<br />

versucht, dies zu veranschaulichen.<br />

Abbildung 3: Den Zielfunktionswert F (x 1 , x 2 ) kann man sich als die Höhe eines Daches<br />

über der x 1 -x 2 -Ebene vorstellen.<br />

4


Starten wir <strong>mit</strong> dem Algorithmus. Unser erstes ‘Teil-’Problem, das wir betrachten,<br />

ist das Ursprungsproblem P 0 . Die untere Schranke F , also die beste bisher bekannte<br />

Lösung, setzen wir zu Beginn auf −∞.<br />

Nun die erste Entscheidung: Ist der Lösungsraum leer Nein, es gibt mindestens eine<br />

zulässige Lösung. Wer es nicht sieht, kann gern den Punk (0, 0) testen. So<strong>mit</strong> folgen<br />

wir dem Pfad nach unten. Jetzt müssen wir das Optimum des relaxierten Problems P 0<br />

′<br />

finden. Das erledigen wir <strong>mit</strong> dem Simplex-Algorithmus (oder, weil es hier schneller<br />

geht, grafisch). Das Optimum ist F ( 9 5 , 2) = 9 2 . Wir setzen nun die obere Schranke F i :=<br />

9<br />

2<br />

Der Punkt ist zwar nicht zulässig, aber lässt vermuten, dass es bessere Lösungen<br />

als F = −∞ gibt. Angenommen, das Optimum von P 0 ′ wäre auch −∞, bräuchten wir<br />

nicht weitergehen. Da<strong>mit</strong> haben wir schon die nächste Entscheidung ‘F i ≤ F ’ <strong>mit</strong><br />

nein beantwortet und steigen weiter hinab. Auch zur Frage, ob F i zulässig ist, haben<br />

wir schon nein gesagt.<br />

Also, in P 0 es gibt es mindestens eine zulässige Lösung, die vermutlich besser als die<br />

bisher beste ist – aber wir kennen sie noch nicht. Deshalb unterteilen wir das Problem<br />

in zwei disjunkte (ein<strong>and</strong>er ausschließende) Teilprobleme und suchen dort weiter.<br />

Vorschlag zum Verzweigen<br />

Hier ein Vorschlag, wie man die Verzweigung vornehmen kann (siehe [DD02]): Wir<br />

trennen den Lösungsraum <strong>mit</strong> einem Schnitt, der durch das Optimum von P ′ i verläuft<br />

und genau eine Dimension teilt. Aber welche der beiden Dimensionen Wir wählen<br />

die aus, wo die Optimalstelle am weitesten in der Mitte zwischen den neuen Rändern<br />

liegt. Man kann auch sagen: Wo der kürzeste Abst<strong>and</strong> der entsprechenden Koordinate<br />

der Optimalstelle zur nächsten ganzen Zahl am größten ist. Im <strong>Beispiel</strong> der Abbildung<br />

4 wird die horizontale Dimension (könnte x 1 sein) getrennt.<br />

In unserer Aufgabe schneiden wir x 1 . Für die neuen Teilbereiche gelten da<strong>mit</strong><br />

zusätzliche zu (2) bis (4) folgende Nebenbedingungen:<br />

P 1 : x 1 ≤ 1 (5)<br />

P 2 : x 1 ≥ 2 (6)<br />

Die neuen Teilprobleme legen wir in die Liste ab, d.h. wir merken sie für die weitere<br />

Bearbeitung vor. Abbildung 5 zeigt die neuen Teilbereiche.<br />

Abbildung 4: Eine Möglichkeit, den Lösungsraum in zwei Teilprobleme zu unterteilen,<br />

ist, die Dimension zu schneiden, wo die Optimalstelle am weitesten in<br />

der Mitte zwischen den nächsten ganzzahligen Koordinaten liegt.<br />

5


Teilproblem P 1<br />

Als Nächstes wählen wir eins der beiden Teilprobleme aus der Liste aus. Nehmen wir<br />

P 1 und beginnen im Ablaufdiagramm wieder ganz oben. Ist der Lösungsraum leer<br />

Nein. Das Optimum des relaxierten Teilproblems P ′ 1 finden wir bei F (1, 2) = 5, wo<strong>mit</strong><br />

die obere Schranke F 1 := 5 belegt wird. Ist F 1 ≤ F , also ≤ −∞ Sicher nicht, also<br />

weiter nach unten. Ist F 1 zulässig Ja, die Koordinaten sind ganzzahlig! Wir haben<br />

auf einen Schlag das zulässige Optimum von P 1 gefunden! Das merken wir uns und<br />

setzen F := 5. Das Problem P 1 ist nach Fall b ausgelotet und wir können es aus der<br />

Liste steichen. Ist die Liste leer Nein, da liegt noch P 2 .<br />

Abbildung 5: Das Problem P 1 ließ sich nicht ausloten und wird deshalb in zwei Teilprobleme<br />

P 1 und P 2 zerlegt.<br />

Teilproblem P 2<br />

Wir nehmen P 2 und beginnen wieder ganz oben. Ist der Lösungsraum leer Nein. Das<br />

Optimum von P 2 ′ ist F (2, 5 3 ) = 16 3 , und wir weisen es F 2 := 16 3<br />

zu. Weil F 2 nicht kleiner<br />

ist als F , steigen wir im Ablaufdiagramm weiter nach unten hinab. Und, nein, F 2 ist<br />

nicht zulässig. Deshalb verzweigen wir wieder. Diesmal schneiden wir, wie Abbildung<br />

6 zeigt, die Dimension x 2 .<br />

P 3 : x 2 ≤ 1 (7)<br />

P 4 : x 2 ≥ 2 (8)<br />

P 3 und P 4 legen wir in die gerade leer gewordene Liste. Nun wählen wir P 3 aus.<br />

Teilproblem P 3<br />

Nein, der Lösungsraum ist nicht leer. Das Optimum von P 3 ′ liegt bei F ( 12 5 , 1) = 22 5 , also<br />

F 3 := 22 5<br />

. Halt, das ist schlechter als unsere beste bisher bekannte Lösung, nämlich die<br />

untere Schranke F = 5. Wenn uns also schon das Optimum des relaxierten Problems<br />

P 3 ′ nicht zufrieden stellt, dann erst recht nicht die zulässigen (ganzzahligen) Lösungen<br />

von P 3 . Das Teilproblem brauchen wir nicht weiter zu betrachten, es ist nach Fall a<br />

ausgelotet. Im Ablaufdiagramm beantworten wir die Frage ‘F 3 ≤ F ’ <strong>mit</strong> nein und<br />

steichen das Teilproblem aus der Liste. Nun liegt dort nur noch P 4 .<br />

6


Abbildung 6: Die Teilprobleme P 3 und P 4 entstehen durch Verzweigung von P 2 . Wie<br />

man hier sieht, verträgt sich der Lösungsraum von P 4 nicht <strong>mit</strong> den<br />

ursprünglichen Nebenbedingungen.<br />

Teilproblem P 4<br />

Jedes Teilproblem ‘erbt’ die Nebenbedingungen des Problems, aus dem es hervorging.<br />

Und <strong>mit</strong> jeder Verzweigung kommt eine neue Nebenbedingung hinzu. Für dieses Teilproblem<br />

gelten unter <strong>and</strong>erem Gl. (2) aus P 0 , Gl. (6) aus P 2 und Gl. (8) als neue<br />

Nebenbedingung. Genau diese schließen sich jedoch aus! Wie man auch in Abbildung<br />

6 sieht, gibt es keinen Punkt in der gesamten x 1 -x 2 -Ebene, der alle drei erfüllt.<br />

Im Ablaufdiagramm beantworten wir also schon die erste Frage <strong>mit</strong> ja, und das<br />

Teilproblem ist nach Fall c augelotet.<br />

Weil in der Liste kein weiteres Teilproblem mehr liegt, sind wir fertig! Das Optimum<br />

des Ursprungsproblems P 0 liegt im Punkt (1, 2) und hat den Zielfunktionswert<br />

F (1, 2) = 5.<br />

Lösungsbaum<br />

Der Lösungsbaum zeigt die Verzweigungen des Ursprungsproblems P 0 in seine Teilprobleme<br />

P i . Mit jeder Verzweigung entstehen zusätzliche Nebenbedingungen, die an<br />

die Pfeile geschrieben sind. Neben den Knoten stehen die oberen Schranken F i des<br />

dazugehörigen Teilproblems P i und die untere Schranke F . Ist ein Teilproblem nach<br />

einem der drei Fälle a, b oder c ausgelotet, braucht der Ast nicht weiter verzweigt zu<br />

werden. Sind alle Teilprobleme ausgelotet, findet sich das Optimum bei F .<br />

7


Abbildung 7: Die Verzweigungsstruktur des Ursprungsproblems P 0 .<br />

Literatur<br />

[DD02]<br />

Wolfgang Domschke <strong>and</strong> Andreas Drexl. Einführung in Operations Research.<br />

Springer, 2002.<br />

[Dom97] Wolfgang Domschke. Logistik, B<strong>and</strong>.2, Rundreisen und Touren. Oldenbourg,<br />

1997.<br />

[HL97]<br />

Frederick S. Hillier <strong>and</strong> Gerald J. Lieberman. Operations Research. Oldenbourg,<br />

1997.<br />

[MM92] Heiner Müller-Merbach. Operations Research. Vahlen, 1992.<br />

[]<br />

8

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!