Ganzzahlige OR-Methoden - WiSo

Werbung
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.
Herunterladen