Branch-and-Bound en Cutting Planes
Vandaag: Er is nog geen algoritme om ILP s in polynomiale tijd op te lossen. Twee opties: 1 Exponentiëel algoritme dat optimale oplossing geeft 2 Polynomiaal algoritme dat niet-optimale oplossing geeft 19 november 2014 1
Vandaag: Er is nog geen algoritme om ILP s in polynomiale tijd op te lossen. Twee opties: 1 Exponentiëel algoritme dat optimale oplossing geeft (VANDAAG) 2 Polynomiaal algoritme dat niet-optimale oplossing geeft (College 12) 19 november 2014 1
Vandaag: Er is nog geen algoritme om ILP s in polynomiale tijd op te lossen. Twee opties: 1 Exponentiëel algoritme dat optimale oplossing geeft (VANDAAG) 2 Polynomiaal algoritme dat niet-optimale oplossing geeft (College 12) Vandaag 2 methoden: 1 Branch-and-Bound 2 Cutting planes (geldige ongelijkheden) 19 november 2014 1
Branch-and-Bound Idee: ILP s zijn moeilijk, LP s zijn makkelijk. We gebruiken LP om ILP op te lossen. Belangrijke relatie: Z TOEG Z IP Z LP Z LP Z IP Z TOEG (Maximalisatie) (Minimalisatie) Branchen: Het probleem opsplitsen in deelproblemen, zdd elke toegelaten oplossing bevindt zich in exact één deelprobleem. Bounden: Boven- en ondergrens bijhouden voor oplossing. Gebruik deze grenzen voor het snoeien van zoekboom. Snoeien: Concluderen dat een deelprobleem niet verder onderzocht hoeft te worden 19 november 2014 2
Branch-and-Bound (Minimalisatie) Lijst met nog te beschouwen deelproblemen Bovengrens voor hele boom Ondergrens per deelprobleem In geval van geheeltallige doelstellingscoëfficiënten: ondergrens naar boven afronden 19 november 2014 3
Voorbeeld Branch-and-Bound Z IP = min 4x 1 + x 2 odv 7x 1 2x 2 14 x 2 3 2x 1 2x 2 3 x 1, x 2 0, geheeltallig 19 november 2014 4
Wanneer kunnen we snoeien? (Maximalisatie) 1 Niet-toegelaten LP-relaxatie deelprobleem Geen geheeltallige oplossingen in dit deelprobleem 2 Geheeltallige LP-relaxatie in deelprobleem Toegelaten (integer) oplossing gevonden. Globale ondergrens updaten 3 Bovengrens deelprobleem kleiner dan globale ondergrens Er is geen betere oplossing in dit deelprobleem dan de al gevonden integer oplossing Merk op: Ondergrenzen zijn globaal, terwijl bovengrenzen alleen geldig in deelprobleem 19 november 2014 5
Wanneer kunnen we snoeien? (Minimalisatie) 1 Niet-toegelaten LP-relaxatie deelprobleem Geen geheeltallige oplossingen in dit deelprobleem 2 Geheeltallige LP-relaxatie in deelprobleem Toegelaten (integer) oplossing gevonden. Globale bovengrens updaten 3 Ondergrens deelprobleem kleiner dan globale bovengrens Er is geen betere oplossing in dit deelprobleem dan de al gevonden integer oplossing Merk op: Bovengrenzen zijn globaal, terwijl ondergrenzen alleen geldig in deelprobleem 19 november 2014 6
Implementatieaspecten 1 Welke variabele kiezen we om te branchen? Fractie het dichtst bij 1 2 2 Welke deelprobleem beschouwen we eerst? Depth-first search: Deelprobleem zo diep mogelijk in de boom Best-node first: Deelprobleem met beste waarde van de LP-relaxatie Vaak mengsel van beide 19 november 2014 7
Rekentijd Branch-and-Bound Stel alle variabelen zijn 0-1 variabelen. Maximaal aantal eindpunten: 2 n Maximaal aantal knopen/deelproblemen: 2 0 + 2 1 + 2 2 +... + 2 n = 1 2n+1 1 2 = 2 n+1 1 Exponentiëel aantal deelproblemen Werkcollege: voorbeeld waarin inderdaad exponentiëel veel deelproblemen opgelost moeten worden 19 november 2014 8
Cutting Planes z IP = min odv c T x Ax b x 0, geheeltallig Laat S de verzameling toegelaten punten zijn. Definitie: Een polyeder P = {x R n 0 A x b } noemen we een formulering voor S als geldt P Z n = S. Vorige week gezien dat er meerdere formuleringen bestaan voor een gegeven verzameling S. Er bestaan zelfs oneindig veel formuleringen voor S 19 november 2014 9
Sterkte van een formulering Een formulering P is tenminste even sterk als een formulering P als geldt P P Definitie: Een ongelijkheid αx β is geldig voor S als αx β voor iedere x S. Het toevoegen van een geldige ongelijkheid aan P resulteert in een formulering P die tenminste even sterk is. Wat is de sterkst mogelijke formulering? Conv(S), het convexe omhulsel van de toegelaten punten S. Merk op: Met een expliciete omschrijving van Conv(S) kunnen we ILP oplossen met LP. Het vinden van conv(s) kan echter niet in polynomiale tijd 19 november 2014 10
Gomory s cutting planes We zoeken niet het volledige convexe omhulsel Fractioneel deel van optimale oplossing LP-relaxatie geeft geldige ongelijkheid Stop wanneer LP-relaxatie geheeltallig optimum heeft Alle snedes zijn geldig, dus ook optimum voor IP 19 november 2014 11
Voorbeeld Gomory s cutting planes Z IP = max 4x 1 x 2 odv 7x 1 2x 2 14 x 2 3 2x 1 2x 2 3 x 1, x 2 0, geheeltallig (Zelfde voorbeeld als voor Branch-and-Bound) 19 november 2014 12
Duale simplex algoritme Zowel bij B&B als bij cutting planes moet herhaaldelijk een LP-relaxatie worden opgelost Moeten we iedere keer opnieuw beginnen met simplex? Nee, we gebruiken duale simplex algoritme Oude oplossing blijft duaal toegelaten na toevoeging van extra voorwaarde. 19 november 2014 13
Voorbeeld duale simplex 19 november 2014 14
Duale simplex algoritme Initialisatie: Basisoplossing, niet-noodzakelijk toegelaten, met c j 0 j (maximalisatie) c j 0 j (minimalisatie) Uittredende variabele: x B(i ) zdd b i = min{ b i b i < 0} Als b i 0 optimaal. i, STOP, huidige basisoplossing is toegelaten en Intredende variabele: x j zdd c j ā = min{ c j i j ā : ā i j i j < 0} Als ā i j 0 j, STOP, probleem heeft geen toegelaten oplossing. Anders, voer pivot uit en ga naar 1 19 november 2014 15