90 likes | 227 Views
Branch-and- Cut. Wie lö sen wir ILPs exakt?. Branch-and- Bound. Schnittebenen- verfahren. Acyclic Subgraph. TSP. Optimum der LP Relaxierung. IP Optimum. Zulässige Lösungen. Abrunden der optimalen Lösung der LP-Relaxierung. Zielfunktion. y. x. Ganzzahliges Lineares Programm.
E N D
Branch-and-Cut Wie lösen wir ILPs exakt? Branch-and-Bound Schnittebenen-verfahren AcyclicSubgraph TSP 1
Optimum der LP Relaxierung IP Optimum Zulässige Lösungen Abrunden der optimalen Lösung der LP-Relaxierung Zielfunktion y x Ganzzahliges Lineares Programm 2
Branch-and-Bound • Zerlegung in Teilprobleme • Berechnung oberer und unterer Schranken • Löse erste Relaxierung ! obere Schrankezulässig? ! optimal • Sonst: Partitioniere in Teilprobleme • Löse Relaxierung! Lsg. (a) ganzzahlig oder (b) unzulässigoder (c) neue, evtl. schärfere, obere Schranke • Fall (c) ! eventuell rekursive Aufteilung 3
Branch-and-Bound • Vernünftige Aufteilungsstrategie und endliche Lösungsmenge! endliche Anzahl Schritte • Ergibt Branch-and-Bound-Baum • Knoten = Teilproblem • Söhne = Partitionierung des Vaterproblems • Intelligente Enumeration • Permanent Gütegarantie, bei Termination beweisbar optimal 4
Branch-and-Bound Betrachte das folgende ILP: (IP0) Max x + y + 2z Subject to 7x + 2y + 3z 36 5x + 4y + 7z 42 2x + 3y + 5z 28 x, y, z 0, ganzzahlig LP-Relaxierung 5
IP0 / / 10 11 IP2 IP1 Integral IP4 IP3 Unzulässig IP6 IP5 Integral IP8 IP7 Obj. · bestem gefundenen Wert Obj. · bestem gefundenem Wert Branch-and-Bound für ILPs: Beispiel Löse LP- Relaxierung Bester IP-Wert Beste IP-Lösung Garantie 87,3% 98,2% 100% 87,7% 88,2% Max x + y + 2z Subject to 7x + 2y + 3z 36 5x + 4y + 7z 42 2x + 3y + 5z 28 x, y, z 0, ganzzahlig 6
Branch-and-Bound • Eingabe: Gemischt-ganzzahliges lineares Programm (A, b, c, N1) • Ausgabe: Lösung von (MIP=) oder Beweis der Unlösbarkeit 7
K = ;? U = -1! MIP= hat keine Lösung U ¸-1!x ist Optimallösung mit Wert U ja nein Wähle Pj2 K,K = K – {Pj}(Branching) Löse Relaxierung von (MIPj=)(Bounding) x* ist Optimallö-sung mit Wert c* U = c*, x = x* Wähle i 2 N1 mit x*iZK += (PjÅ {x j xi·bx*ic}) + (PjÅ {x j xi¸dx*ie}) xi*2Z8 i 2 N1? c*· U? nein ja nein P0 = {x j Ax = b, x ¸ 0, xi ganzzahlig 8 i 2 N1} U = -1 K := {P0} (Liste der offenen Probleme) x = NIL (beste Lösung) ja 8
Branch-and-Bound • Analyse: • (LMIP=) unzulässig oder unbeschränkt !B&B bricht ab mit korrektem Ergebnis • (LMIP=) hat endliches Optimum und P0;! endlich viele Schritte zur Optimallösung • (LMIP=) hat endliches Optimum und P0 = ;! Abbruch durch Zusatzrestriktionen • Praxis: • Beschränkung der Baumgröße meist notwendig • !Branch-and-Cut ! später 9