Operations Research und Wirtschaftsinformatik Prof. Dr. P. Recht // Dr. Eva-Maria Sprengel Ganzzahlige OR-Methoden: Operations Research II a Übungsblatt 6 Aufgabe 21 Gegeben sei ein Problem vom Typ OPT und eine beliebige untere Schrankenfunktion b∗ . Es wird angenommen, dass in Schritt 0 keine zulässige Lösung gefunden wurde. In Schritt 1.2 des in der Vorlesung angegebenen Verfahren sei die obere Schranke durch folgende Vorschrift ermittelt: Schritt 1.2: • Bestimme b∗ (Li ) für i ∈ I(1) • Bestimme irgendeinen Punkt x∗k ∈ Lk ∩ S ⊂ • Setze B(1) = f (x∗k ) S Lj Zeigen Sie bitte: Die Aussagen des folgenden Satzes gelten in dieser Situation ebenfalls. Vor.: Für i ∈ I(1) seien die Größen b∗ (Li ) und B1 ermittelt. i) Falls b∗ (Lj ) > B(1) , dann gilt x∗ 6∈ Lj . ii) Falls {j | b∗ (Lj ) < B(1) } = ∅ , dann gilt x∗k = x∗ . Beh.: (4 Punkte) Lösungsvorschlag: Der Satz bedeutet anschaulich, dass (i) in einer Teilmenge, deren untere Schranke größer ist als die gefundene obere Schranke eines zulässigen Punktes, nicht das Optimum liegen kann, und (ii) wenn die Menge der Indizes zu Teilmengen, deren untere Schranke kleiner ist als die (aktuelle) obere Schranke, leer ist – d. h. wenn es keine solchen Teilmengen mehr gibt – so muss der zu B(1) gehörige Punkt optimal sein. Beweis: (i) Beweis durch Widerspruch: Annahme: x∗ ∈ Lj ⇒ f (x∗ ) ≥ b∗ (Lj ) > B1 = f (x∗k ) d.h. x∗ ist nicht optimal. (ii) Beweis durch Widerspruch: Sei x∗k nicht optimal, d.h. es gelte f (x∗ ) < B1 = f (x∗k ). Wir zeigen zunächst: Falls b∗ (Lj ) ≥ B1 gilt, so ist x∗ 6∈ Lj (und müsste dementsprechend in einem Lj ∗ mit b∗ (Lj ∗ ) < B1 sein, was nach Voraussetzung nicht existiert). Dies zeigen wir mittels eines Widerspruchsbeweises. Annahme: x∗ ∈ Lj mit b∗ (Lj ) ≥ B1 ⇒ f (x∗ ) ≥ b∗ (Lj ) ≥ B1 > f (x∗ ) ⇒ x 6∈ Lj Also muss x∗ ∈ Lj ∗ mit b∗ (Lj ∗ ) < B1 sein, aber wegen {j | b∗ (Lj ) < B(1) } = ∅ existiert kein solches. Zusammenfassend existiert kein x∗ mit f (x∗ ) < f (x∗k ) und somit ist x∗k optimal. Aufgabe 22 Machen Sie sich mit der Problemstellung der Suche nach einem kostenminimalen perfekten Matching in einem vollständigen, gewichteten Graphen G = (V, E, c) vertraut. a) Entwickeln Sie bitte einen Branch&Bound-Algorithmus zur Suche eines kostenminimalen perfekten Matchings in einem gegebenem Graphen. Verwenden Sie dabei bitte keine LP-Relaxierung. b) Wenden Sie Ihren Algorithmus auf den durch folgende Zeichnung gegebenen Graphen an! 1 2 9 3 3 5 5 2 4 1 4 7 6 3 5 6 4 7 8 4 5 (4 Punkte) Lösungsvorschlag: a) Sei der vollständige Graph K2n = (V, E, c) mit |V | = 2n und |E| = m = 2n 2 gegeben (der Graph muss für die Existenz eines perfekten Matchings eine gerade Anzahl von Knoten haben). Die Problemstellung lässt sich wie folgt formulieren: min c(e1 ) + c(e2 ) + . . . + c(en ) u.d.N. {e1 , . . . , en } ∈ L ∩ S mit L = {{e1 , . . . , en } ⊂ E | ei 6= ej ∀ i 6= j, i, j = 1, . . . , n} und S = {{e1 , . . . , en } ⊂ E | ei = (vi , wi ) ∀ i = 1, . . . , n, vi 6= vj 6= wi 6= wj ∀ i 6= j, i, j = 1, . . . , n} Die Menge L enthält alle n-elementigen Teilmengen der Kantenmenge E, die Menge S die Menge aller perfekten Matchings in K2n . Die relaxierte Problemstellung min c(e1 ) + c(e2 ) + . . . + c(en ) u.d.N. {e1 , . . . , en } ∈ L entspricht nun der Suche nach den n günstigsten Kanten in K2n , welche „einfach“ ist. Idee: Man bildet neue Teilprobleme indem Sukzessive einzelne Kanten als Matchingkanten festgelegt werden. Branching: Sei K ⊆ L mit EK := {ep1 , . . . , epl } ⊆ F ∀ F ∈ K, dabei sei • |EK | maximal und • epi ∩ epj = ∅ ∀ i = 1, . . . , l; ∀j = 1, . . . , n; i 6= j; ∀F ∈ K Die Kanten epi (i = 1, . . . , l) ist also sicher in allen Mengen F in K enthalten. Betrachtet man eine Kantenmenge F ∈ K, bilden die Kanten epi (i = 1, . . . , l) ein Matching in F . Die Kantenmenge EK entspricht folglich dem größtmöglichen Matching, welches in jeder Kantenmenge F von K enthalten ist. Wähle v ∈ V mit v 6∈ e ∀ e ∈ EK . Bilde nun für alle e 6∈ EK mit v ∈ e die Menge K (e) := {F ∈ K|e ∈ F, ∀e ∈ F, e 6= e : e ∩ e = ∅} . Es gilt nun K ∩S ⊆ [ e K (e) ⊆ K. Untere Schrankenfunktion: Sei K ⊆ L mit EK wie zuvor. Dann sei ∗ b (K) := l X c(epi ) + i=1 min F ∈K,EK ⊆F {c(epl+1 ) + . . . + c(epn )} mit ei 6∈ EK ∀ i = l + 1, . . . , n und ei ∈ F für ein F ∈ K. Die untere Schranke bestimmt sich also aus den Gewichten der l „sicheren“ Matchingskanten ep1 , . . . , epl und den Gewichten der n − l günstigsten anderen „verfügbaren“ Kanten. Suchstrategie sei LLB (Least Lower Bound). b) Anwendung auf den gegebenen Graphen: Berechnung von b∗ (L) = c(2, 3) + c(3, 4) + c(1, 6) = 1 + 2 + 3 = 6. Branche nach Knoten 1 (die jeweiligen Teilmengen K {1,2} bis K {1,6} mit den zugehörigen unteren Schranken seien den folgenden Zeichnungen zu entnehmen): 2 3 2 5 3 9 3 5 2 4 1 4 5 6 4 1 4 7 7 8 8 4 5 6 b∗ (K {1,2} ) = 11 1 2 5 b∗ (K {1,3} ) = 11 3 1 2 3 5 1 4 9 3 3 4 7 2 1 4 6 4 5 6 4 5 b∗ (K {1,4} ) = 11 5 6 8 5 b∗ (K {1,5} ) = 9 1 2 9 3 5 2 1 4 3 7 4 6 5 b∗ (K {1,6} ) = 6 Nach der LLB-Regel wählen wir als nächstes die Menge K {1,6} und Verzweigen dort nach Knoten 2. Die entstehenden Teilmengen K {2,3} bis K {2,5} mit den zugehörigen unteren Schranken seien den folgenden Zeichnungen zu entnehmen: 2 1 3 2 1 4 6 3 1 7 3 9 4 3 4 5 6 b∗ (K {2,3} ) = 11 5 b∗ (K {2,4} ) = 16 2 3 5 2 1 4 3 6 5 b∗ (K {2,5} ) = 10 Jede untere Schranke wird auch durch eine zulässige Lösung aus S bestimmt, also erhalten wir mit x∗0 := {{1, 6}, {2, 5}, {3, 4}} unsere erste zulässige Lösung mit Zielfunktionswert 10. Gemäß der LLB-Regel verzweigen wir als nächstes in K {1,5} . Dort (2) Verzweigen wir nach Knoten 2 und erhalten die folgenden Teilmengen K {2,3} , (2) (2) K {2,4} und K {2,6} mit den zugehörigen unteren Schranken, die den folgenden Zeichnungen zu entnehmen sind. 1 2 3 2 1 4 3 9 1 4 6 6 5 8 6 5 6 5 (2) (2) b∗ (K {2,4} ) = 20 b∗ (K {2,3} ) = 15 2 3 3 2 1 4 6 6 5 (2) b∗ (K {2,5} ) = 11 Da nun b∗ (K) ≥ f (x∗0 ) für alle noch nicht untersuchten Teilmengen K gilt, ist x∗ = {{1, 6}, {2, 5}, {3, 4}} die optimale Lösung mit Zielfunktionswert 10. Aufgabe 23 Gegeben sei c ≥ 0. Bitte entwickeln Sie eine sinnvolle nicht-triviale untere Schranke b∗ (CW ) für die minimale Länge eines (ungerichteten) Hamilton-Kreises in CW := {K | K ist Hamiltonkreis in (Kn , c), welcher den Weg W als „Teilstück“ enthält } und beweisen Sie deren Korrektheit! (4 Punkte) Lösungsvorschlag: Die Idee: Bestimme unter allen Spannbäumen, welche alle Kanten aus dem Weg W enthalten, einen mit kleinstem Kantengesamtgewicht. Wir wissen im Allgemeinen: Wenn d(M ST ∗ ) das Kantengesamtgewicht eines minimalen Spannbaums M ST ∗ und d(T SP ∗ ) der Zielfunktionswert eines kürzesten Hamilton-Kreises T SP ∗ ist, gilt die Ungleichung d(M ST ∗ ) ≤ d(T SP ∗ ) Entfernt man aus einer TSP-Tour eine Kante, so bleibt ein Weg übrig, der durch alle Knoten geht und somit ein spannender Baum ist. Ein minimaler Spannbaum hat ein kleines Kantengesamtgewicht als ebendieser Weg und daraus folgt die vorstehende Ungleichung. ∗ ) das Kantengesamtgewicht eines Spannbaums, welcher unter allen Analog seien d(M STW Spannbäumen, welche den Weg W enthalten, das kleinste Kantengesamtgewicht besitzt ∗ ) der Zielfunktionswert eines Hamiltonkreises, welcher unter allen Hamilund d(T SPW tonkreisen, welche den Weg W enthalten, die minimale Länge besitzt. Dann gilt ∗ ∗ d(M STW ) ≤ d(T SPW ). Dies lässt sich analog zur vorherigen Ungleichung zeigen, indem man eine Kante e 6∈ W ∗ ) gehörigen Hamiltonkreis T SP ∗ entfernt. aus dem zu d(T SPW W ∗ ) bestimmen? Wie lässt sich d(M STW Wir könnten mittels des Algorithmus von Prim einen Spannbaum konstruieren, indem wir mit (VKn , EW ) starten, also einem Graphen, welcher alle Knoten des Kn und alle Kanten des Wegen W enthält. Danach soll wie im Algorithmus von Prim sukzessive die kürzeste Kante dem Baum hinzugefügt werden, die einen Knoten im Baum mit einem Nichtbaumknoten verbindet, bis man am Ende den Spannbaum G(P rim) = (VKn , E (P rim) ) erhält. Beweis Korrektheit: Beweis durch Widerspruch - Annahme: G(P rim) nicht minimal. Dann existiert ein anderer Spannbaum G+ = (VKn , E + ) mit • EW ⊂ E + • G+ 6= G(P rim) • d(G+ ) < d(G(P rim) ) ∗ ). Folglich wird in dem modifizierten Prim-Algorithmus O.B.d.A. sei d(G+ ) = d(M STW an einer Stelle (dies sei die erste) eine Kante e gewählt, die nicht in G+ enthalten ist. Es sei Ve die Menge der Knoten, welche vor dem Hinzufügen von e im bis dahin konstruierten Baum enthalten sind. Die Kante e inzidiert also mit einem Knoten aus Ve und einem Knoten aus Kn \ Ve . Ein Spannbaum ist zusammenhängend und kreisfrei. Somit existiert in E + auch genau eine Kante e′ , die mit einem Knoten aus Ve und einem Knoten aus Kn \ Ve inzident ist. Da im Verfahren von Prim immer eine Kante mit geringstem Gewicht hinzufügt wird, muss c(e′ ) ≥ c(e) gelten. c(e′ ) > c(e): Ersetze in G+ die Kante e′ durch e. Es entsteht ein neuer Spannbaum G+ neu , welcher ebenfalls W enthält und es gilt d(G+ ) > d(G+ neu ) Dies ist ein Widerspruch zur Minimalität von G+ . c(e′ ) = c(e): Konstruiere aus G+ ein weiteren Spannbaum G+(2) = (VKn , E +(2) ) durch das Entfernen von e′ und Hinzufügen von e. Dann gilt ∗ d(G+(2) ) = d(G+ ) = d(M STW ) Man verfahre analog mit jeder „falsch“ gewählten Kante im modifizierten Algorithmus von Prim und überführe so den Spannbaum G+ in G(P rim) , wobei sich das Kantengesamtgewicht nicht ändert. Es folgt: ∗ d(G(P rim) ) = d(G+ ) = d(M STW ) Dies ist ein Widerspruch zu d(G(P rim) ) > d(G+ ). Aufgabe 24 Ein Rucksack hat eine maximale Tragkraft von 25 kg. Für die Füllung stehen fünf Gegenstände zur Verfügung, die jeweils nur einfach vorhanden und durch folgende Angaben gekennzeichnet sind: Gegenstand Gewicht Nutzen 1 5 15 2 6 9 3 5 10 4 11 22 5 5 8 Die nutzenmaximale Füllung des Rucksacks ist gesucht. (Hinweis: Die Zielfunktion: Maximiere den Nutzen! kann durch Minimiere den negativen Nutzen! ersetzt werden.) Die Auswahl einer unteren Schranke für die zu bildenden Teilmengen stellt einen entscheidenden Schritt bei der Durchführung eines Branch & Bound Verfahrens dar. Am Beispiel eines binären Rucksackproblems sollen verschiedene untere Schranken hergeleitet werden und zwar einmal durch die optimale Lösung des relaxierten Ausgangsproblems (minx∈L f (x)) und zum zweiten mit Hilfe von Lagrange-Multiplikatoren. Eine sogenannte Lagrange-Relaxation für das Problem min f (x) u. d. N.: Ax ≤ b x ∈ Li ist durch min f (x) + λ⊤ (Ax − b) x∈Li mit λ ≥ 0 gegeben. a) Zeigen Sie allgemein, wie durch obige Hinweise untere Schranken für ein binäres Rucksackproblem gewonnen werden können, und weisen Sie nach, dass es untere Schranken sind (Erfüllung der Definition). b) Geben Sie für obiges Problem die jeweilige Schranke an. (Nur für das „Anfangsproblem“! Nicht den ganzen Branch & Bound durchrechnen.) c) Vergleichen Sie die verschiedenen Schranken bezüglich ihres Aufwands und der Anzahl der vermutlich zu leistenden Verzweigungsschritte. (4 Punkte) Lösungsvorschlag: a) Nachweis für untere Schranken • Die optimale Lösung des relaxierten Ausgangsproblems ist eine untere Schranke in jedem Schritt des Branch & Bound. Der zulässige Bereich eines binären Rucksackproblems mit P n Variablen ist n insbesondere auf S = {0, 1} beschränkt. Wir setzen L := {x | ni=1 gi xi ≤ G} mit G zulässiges Gesamtgewicht. Dann gilt: b := min f (x) ≤ min f (x) x∈L x∈L∩S und für alle Teilmengen Li ⊂ L gilt ebenfalls b := min f (x) ≤ min f (x) ≤ min f (x). x∈Li ⊆L x∈L x∈Li ∩S b ist also immer untere Schranke. • Wir zeigen für allgemeine Probleme, dass durch Lagrange-Multiplikatoren untere Schranken erhalten werden können. Für die Teilmenge Li ⊂ L haben wir folgendes Optimierungsproblem Pi : min f (x) u. d. N.: Ax ≤ b x ∈ Li Beh.: Jede Lösung des Problems Pi (λ): min f (x) + λ⊤ (Ax − b) x∈Li liefert für λ ≥ 0 eine untere Schranke für Pi . Beweis: Die optimale Lösung x∗ des Problems Pi ist offensichtlich zulässig für Pi (λ) (x∗ ∈ Li ). Wegen λ ≥ 0 gilt dann für die optimale Lösung x∗0 von Pi (λ) f (x∗0 ) + λ⊤ (Ax∗0 − b) ≤ f (x∗ ) + λ⊤ (Ax∗ − b) ≤ f (x∗ ) {z } | ≤0 Die untere Schranke ist offensichtlich noch von λ abhängig. Für das Rucksackproblem stellt sich das folgendermaßen dar: Wir nehmen für jede Teilmenge Li die Nebenbedingung für die Gewichte in die Zielfunktion mit auf und erhalten die partiellen Probleme Pi (λ): min − x∈Li Es genügt, die Funktion n X i=1 n X gi xi − G) ui xi + λ( i=1 n X (λgi − ui )xi i=1 auf dem zulässigen Bereich zu minimieren. Die Lösung ist dann gegeben durch 1, falls λgi − ui < 0 (⇔ λ < ugii ) xi = 0, falls λgi − ui ≥ 0 P Indem wir nun die Stellen der Zielfunktion g(λ) := ni=1 (λgi − ui )xi in Abhängigkeit von λ untersuchen, die nicht differenzierbar sind (wo ein „Knick“ ist), erhalten wir ein λ∗ , mit dem g(λ) maximal ist, und was uns auch die beste untere Schranke liefert. Diese Stellen finden sich an den Punkten λ = ugii . b) Für die konkrete Problemstellung lautet das Modell: 1, Gegenstand i mitnehmen xi := 0, sonst Zielfunktion: −(15x1 + 9x2 + 10x3 + 22x4 + 8x5 ) → min! u. d. N.: 5x1 + 6x2 + 5x3 + 11x4 + 5x5 ≤ 25 xi ∈ {0, 1}, ∀i = 1, . . . , 5 Die Tabelle wird um die relativen Gewichte ergänzt: Gegenstand Gewicht Nutzen Nutzen / Gewicht 1 5 15 3 2 6 9 1.5 3 5 10 2 4 11 22 2 5 5 8 1.6 • Mit Hilfe der relativen Gewichte erhalten wir als Lösung des relaxierten Problems (0 ≤ xi ≤ 1): x = (1, 0, 1, 1, 0.8) mit Zielfunktionswert z = −53.4 Damit lautet im ersten Fall für jede Teilmenge Li ⊂ L die untere Schranke: b(Li ) = −53.4 • Als Lagrange-Funktion erhalten wir: L(λ) = −(15x1 +9x2 +10x3 +22x4 +8x5 )+λ(5x1 +6x2 +5x3 +11x4 +5x5 −25) → min! xi ∈ {0, 1} Die unteren Schranken werden in Abhängigkeit von λ berechnet: Für λ = 1.5 ist L(1.5) = −(15 + 10 + 22 + 8) + 1.5(5 + 5 + 11 + 5 − 25) = −55 + 1.5 · 1 = −53.5 Die beste untere Schranke erhält man durch λ = 1.6 mit b(L(1.6)) = −53.4. Wird im ersten Schritt nach x1 verzweigt, so erhält man für den Fall x1 = 0 die Lagrange-Funktion: −(9x2 + 10x3 + 22x4 + 8x5 ) + λ(6x2 + 5x3 + 11x4 + 5x5 − 25) → min! xi ∈ {0, 1} c) Vergleich der verschiedenen Schranken bezüglich ihres Aufwands und der Anzahl der vermutlich zu leistenden Verzweigungsschritte: • Das Minimum des relaxierten Ausgangsproblems muss nur einmal berechnet werden und wird dann für alle Teilmengen als untere Schranke benutzt. Dadurch fällt der Rechenaufwand nur einmal an. Auf der anderen Seite wird nie der Fall eintreten, dass eine Teilmenge aufgrund des Kriteriums: untere Schranke größer als aktuelle obere Schranke ausgeschlossen werden kann. Es können nur Teilmengen ausgeschlossen werden, die keine zulässigen Lösungen enthalten können und faktisch wird eine vollständige Enumeration der zulässigen Lösungen durchgeführt. • Wird die Lagrange-Funktion als untere Schranke benutzt, so muss für jede Teilmenge Li von neuem die untere Schranke berechnet werden (außer in einigen Fällen, wo die Funktion für eine Teilmenge schon bekannt ist). Es muss dann festgestellt werden, bei welchem λ der Wert b(Li ) maximal ist, und der entsprechende Wert als untere Schranke eingesetzt werden. Die Anzahl der von λ abhängigen Werte, die zu berechnen sind, wird mit steigender Anzahl von Iterationsschritten geringer. Es ist natürlich auch möglich, einen willkürlichen λ Wert zu benutzen, und dadurch die Maximumsuche zu vermeiden.