TW2020 Optimalisering

Vergelijkbare documenten
Branch-and-Bound en Cutting Planes

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 28 september 2016

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 23 september 2015

TW2020 Optimalisering

Hoofdstuk 13: Integer Lineair Programmeren

TW2020 Optimalisering

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

Tentamen: Operationele Research 1D (4016)

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2 (1)

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

Geheeltallige programmering

TW2020 Optimalisering

TW2020 Optimalisering

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

TW2020 Optimalisering

TW2020 Optimalisering

BESLISKUNDE 2 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

TW2020 Optimalisering

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen

Tie breaking in de simplex methode

1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3.

Universiteit Utrecht Departement Informatica

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

TU/e 2DD50: Wiskunde 2 (1)

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Tentamen combinatorische optimalisatie Tijd:

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

l e x e voor alle e E

Tie breaking in de simplex methode

Stelsels lineaire vergelijkingen

Voorbeeld simplexmethode. Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x 2 + x 3 10, 3x 1 + x 2-2x 3 8, en x 1, x 2, x 3 0.

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

A.1 Grafentheorie 64 BIJLAGE A. OPLOSSING VAN DE VRAGEN A.1. GRAFENTHEORIE 65. dan heeft deze kring in ieder knooppunt een even aantal takken).

1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d.

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking

2WO12: Optimalisering in Netwerken

Kortste Paden. Algoritmiek

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Benaderingsalgoritmen

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Bijlage A Simplex-methode

Lineaire Algebra (2DD12)

Transshipment problemen Simplex methode en netwerk optimalisatie algoritmes. Luuk van de Sande Begeleider: Judith Keijsper 20 januari 2013

Opgave 2: Simplex-algoritme - oplossing

Heuristieken en benaderingsalgoritmen. Algoritmiek

De Branch-and-Bound methode

Toewijzingsprobleem Bachelorscriptie

Examen Datastructuren en Algoritmen II

Lineaire programmering

Het Queens n 2 graafkleuring probleem

Lineaire Algebra voor ST

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Doorzoeken van grafen. Algoritmiek

Ruimtewiskunde. college. Stelsels lineaire vergelijkingen. Vandaag UNIVERSITEIT TWENTE. Stelsels lineaire vergelijkingen.

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Optimalisering/Besliskunde 1. College 1 2 september, 2015

Basiskennis lineaire algebra

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014

Lineaire Algebra voor ST

Enkele basismodellen uit operationeel onderzoek

1 Transportproblemen. 1.1 Het standaard transportprobleem

Transcriptie:

TW2020 Optimalisering Hoorcollege 10 Leo van Iersel Technische Universiteit Delft 23 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 1 / 40

Vraag Ik heb het deeltentamen niet gehaald. Heeft het nog zin om het tentamen te maken? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 2 / 40

Vraag Ik heb het deeltentamen niet gehaald. Heeft het nog zin om het tentamen te maken? Vraag Ik heb het deeltentamen niet gehaald. Moet ik nu harder gaan werken om het vak te halen? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 2 / 40

Vandaag Oplossen van ILP problemen: Branch & Bound Cutting Planes Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 3 / 40

Branch & Bound Stel we willen het volgende ILP probleem oplossen. z IP = min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z Hoe kunnen we dat aanpakken? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 4 / 40

Los eerste de LP-relaxatie op. z LP = min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 Dit kan met de Simplex methode. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 5 / 40

(2) x z 2 (1) min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z (3) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 6 / 40

x z 2 (1) min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z (2) X LP =(20/7,3) (3) x 1 z LP = 8 3 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 7 / 40

x z 2 (1) min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z (2) X LP =(20/7,3) (3) x 1 z LP = 8 3 7 dus z IP 8 3 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 7 / 40

x z 2 (1) min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z (2) X LP =(20/7,3) (3) x 1 z LP = 8 3 7 dus z IP 8 3 7 en alle coëfficiënten geheeltallig, dus z IP 8 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 7 / 40

We hebben dus de ondergrens (lower bound) z IP 8 = z. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 8 / 40

We hebben dus de ondergrens (lower bound) z IP 8 = z. Nu is het tijd om te branchen (vertakken). Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 8 / 40

We hebben dus de ondergrens (lower bound) z IP 8 = z. Nu is het tijd om te branchen (vertakken). In de oplossing van de LP-relaxatie is x 1 = 20 7 = 2 6 7. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 8 / 40

We hebben dus de ondergrens (lower bound) z IP 8 = z. Nu is het tijd om te branchen (vertakken). In de oplossing van de LP-relaxatie is x 1 = 20 7 = 2 6 7. Maar in de ILP moet x 1 geheeltallig zijn, dus x 1 2 of x 1 3. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 8 / 40

We hebben dus de ondergrens (lower bound) z IP 8 = z. Nu is het tijd om te branchen (vertakken). In de oplossing van de LP-relaxatie is x 1 = 20 7 = 2 6 7. Maar in de ILP moet x 1 geheeltallig zijn, dus x 1 2 of x 1 3. Dus we branchen in twee deelproblemen: x 1 2 0 z = -8 x 1 3 z = 1 2 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 8 / 40

Los de LP-relaxatie op voor elk deelprobleem: x 1 2 0 z = -8 x 1 3 z = 1 2 z 1 LP = min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 2 x 1, x 2 0 z 2 LP = min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 3 x 1, x 2 0 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 9 / 40

Deelprobleem 1: x 2 x 1 2 z min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 2 x 1, x 2 0 X 1 LP= (2,1/2) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 10 / 40

Deelprobleem 1: x 2 x 1 2 z min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 2 x 1, x 2 0 X 1 LP= (2,1/2) x 1 [ ] 2 xlp 1 = 1/2 z 1 LP = 7 1 2 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 10 / 40

Deelprobleem 2: x 2 x 1 3 min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 3 x 1, x 2 0 x 1 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 11 / 40

Deelprobleem 2: x 2 x 1 3 min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 3 x 1, x 2 0 x 1 Geen toegelaten oplossing Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 11 / 40

x 1 2 0 z = -8 x 1 3 z = 1 2 [ ] 2 xlp 1 = 1/2 z 1 LP = 7 1 2 Niet toegelaten Snoeien (Prune) Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 12 / 40

x 1 2 0 z = -8 x 1 3 z = 1 2 [ ] 2 xlp 1 = 1/2 z 1 LP = 7 1 2 Niet toegelaten Snoeien (Prune) z 1 = 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 12 / 40

x 1 2 0 z = -8 x 1 3 z = 1 2 [ ] 2 xlp 1 = 1/2 z 1 LP = 7 1 2 Niet toegelaten Snoeien (Prune) z 1 = 7 z i is de ondergrens in knoop i. Deze geldt voor de deelboom onder deze knoop. z is de bovengrens. Deze is geldig voor de hele boom. Snoeien (pruning) betekent dat we de knoop niet verder hoeven op te splitsen. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 12 / 40

In deelprobleem 1 is x 2 = 1 2. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 13 / 40

In deelprobleem 1 is x 2 = 1 2. Splits deelprobleem 1 verder op in twee nieuwe deelproblemen: z 1 = -7 x 2 0 0 z = -8 x 1 2 x 1 3 1 2 x 2 1 3 4 z = niet toegelaten snoeien Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 13 / 40

Deelprobleem 4: x 2 z min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 2 x 2 1 x 1, x 2 0 x 4 LP= (2,1) x 2 1 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 14 / 40

Deelprobleem 4: x 2 z min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 2 x 2 1 x 1, x 2 0 x 4 LP= (2,1) x 2 1 x 4 LP = [ 2 1 ] z 4 LP = z4 IP = 7 Geheeltallige oplossing Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 14 / 40

Deelprobleem 4: x 2 z min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 x 2 3 2 x 1 2 x 2 3 x 1 2 x 2 1 x 1, x 2 0 x 4 LP= (2,1) x 2 1 x 4 LP = [ 2 1 ] z 4 LP = z4 IP = 7 Geheeltallige oplossing Dus z = 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 14 / 40

0 x 1 2 x 1 3 z = -8 z = -7 z 1 = -7 x 2 0 1 2 x 2 1 niet toegelaten snoeien 3 4 ] x 4 LP = [ 2 1 z 4 LP = z4 IP = 7 geheeltallige oplossing Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 15 / 40

Nu kunnen we knoop 3 snoeien want z 3 z 1 = 7 = z. z 1 = -7 x 2 0 0 x 1 2 x 1 3 1 2 x 2 1 z = -8 z = -7 niet toegelaten snoeien 3 4 ] z 3 7 = z x 4 LP = [ 2 1 snoeien z 4 LP = z4 IP = 7 geheeltallige oplossing snoeien Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 16 / 40

We hebben alle takken van de boom gesnoeid. De beste gevonden geheeltallige oplossing is dus optimaal. De optimale oplossing is x 1 = 2, x 2 = 1 met waarde z IP = 7. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 17 / 40

We hebben alle takken van de boom gesnoeid. De beste gevonden geheeltallige oplossing is dus optimaal. De optimale oplossing is x 1 = 2, x 2 = 1 met waarde z IP = 7. x z 2 (1) (2) (3) X IP =(2,1) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 17 / 40

Samenvatting Branch & Bound methode (voor een min-probleem): Los steeds de LP-relaxaties van deelproblemen op. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 18 / 40

Samenvatting Branch & Bound methode (voor een min-probleem): Los steeds de LP-relaxaties van deelproblemen op. De optimale waarde van de LP-relaxatie is een ondergrens (lower bound) op de optimale waarde van het deelprobleem. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 18 / 40

Samenvatting Branch & Bound methode (voor een min-probleem): Los steeds de LP-relaxaties van deelproblemen op. De optimale waarde van de LP-relaxatie is een ondergrens (lower bound) op de optimale waarde van het deelprobleem. Als de optimale oplossing geheetallig is dan is de optimale waarde een bovengrens (upper bound) op de optimale waarde van het originele ILP probleem. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 18 / 40

Samenvatting Branch & Bound methode (voor een min-probleem): Los steeds de LP-relaxaties van deelproblemen op. De optimale waarde van de LP-relaxatie is een ondergrens (lower bound) op de optimale waarde van het deelprobleem. Als de optimale oplossing geheetallig is dan is de optimale waarde een bovengrens (upper bound) op de optimale waarde van het originele ILP probleem. Als we een deelprobleem niet kunnen snoeien, vertak (branch) over een niet-geheeltallige variabele. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 18 / 40

Samenvatting Branch & Bound methode (voor een min-probleem): Los steeds de LP-relaxaties van deelproblemen op. De optimale waarde van de LP-relaxatie is een ondergrens (lower bound) op de optimale waarde van het deelprobleem. Als de optimale oplossing geheetallig is dan is de optimale waarde een bovengrens (upper bound) op de optimale waarde van het originele ILP probleem. Als we een deelprobleem niet kunnen snoeien, vertak (branch) over een niet-geheeltallige variabele. Voor max-problemen gaat het op dezelfde manier maar worden bovengrenzen ondergrenzen en vice versa. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 18 / 40

Wanneer kunnen we een knoop snoeien (in een min-probleem)? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 19 / 40

Wanneer kunnen we een knoop snoeien (in een min-probleem)? 1 De LP-relaxatie heeft geen toegelaten oplossing. Prune by infeasibility. (Zie knoop 2) Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 19 / 40

Wanneer kunnen we een knoop snoeien (in een min-probleem)? 1 De LP-relaxatie heeft geen toegelaten oplossing. Prune by infeasibility. (Zie knoop 2) 2 De gevonden optimale oplossing van de LP-relaxatie is geheeltallig. Prune by optimality. (Zie knoop 4). Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 19 / 40

Wanneer kunnen we een knoop snoeien (in een min-probleem)? 1 De LP-relaxatie heeft geen toegelaten oplossing. Prune by infeasibility. (Zie knoop 2) 2 De gevonden optimale oplossing van de LP-relaxatie is geheeltallig. Prune by optimality. (Zie knoop 4). Als de waarde van de gevonden geheeltallige oplossing kleiner is dan z, pas dan de bovengrens z aan. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 19 / 40

Wanneer kunnen we een knoop snoeien (in een min-probleem)? 1 De LP-relaxatie heeft geen toegelaten oplossing. Prune by infeasibility. (Zie knoop 2) 2 De gevonden optimale oplossing van de LP-relaxatie is geheeltallig. Prune by optimality. (Zie knoop 4). Als de waarde van de gevonden geheeltallige oplossing kleiner is dan z, pas dan de bovengrens z aan. 3 De gevonden ondergrens z k is groter of gelijk aan de huidige bovengrens z. Prune by bound. (Zie knoop 3). Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 19 / 40

Wanneer kunnen we een knoop snoeien (in een min-probleem)? 1 De LP-relaxatie heeft geen toegelaten oplossing. Prune by infeasibility. (Zie knoop 2) 2 De gevonden optimale oplossing van de LP-relaxatie is geheeltallig. Prune by optimality. (Zie knoop 4). Als de waarde van de gevonden geheeltallige oplossing kleiner is dan z, pas dan de bovengrens z aan. 3 De gevonden ondergrens z k is groter of gelijk aan de huidige bovengrens z. Prune by bound. (Zie knoop 3). De ondergrens z k is gelijk aan de optimale waarde van de LP-relaxatie. Indien alle doelstellingscoëfficiën geheeltallig zijn, kan z k naar boven afgerond worden. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 19 / 40

Implementatieaspecten Op welke variabele branchen we? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

Implementatieaspecten Op welke variabele branchen we? Typische regel: kies variabele met fractionele deel het dichtst bij 1 2. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

Implementatieaspecten Op welke variabele branchen we? Typische regel: kies variabele met fractionele deel het dichtst bij 1 2. Welke niet-gesnoeide knoop gaan we verder vertakken? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

Implementatieaspecten Op welke variabele branchen we? Typische regel: kies variabele met fractionele deel het dichtst bij 1 2. Welke niet-gesnoeide knoop gaan we verder vertakken? (a) Depth-first search: ga zo snel mogelijk naar beneden in de boom in de hoop dat er snel een goede toegelaten oplossing gevonden wordt. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

Implementatieaspecten Op welke variabele branchen we? Typische regel: kies variabele met fractionele deel het dichtst bij 1 2. Welke niet-gesnoeide knoop gaan we verder vertakken? (a) Depth-first search: ga zo snel mogelijk naar beneden in de boom in de hoop dat er snel een goede toegelaten oplossing gevonden wordt. (b) Best-node-first: kies een knoop met beste waarde van de LP-relaxatie. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

Implementatieaspecten Op welke variabele branchen we? Typische regel: kies variabele met fractionele deel het dichtst bij 1 2. Welke niet-gesnoeide knoop gaan we verder vertakken? (a) Depth-first search: ga zo snel mogelijk naar beneden in de boom in de hoop dat er snel een goede toegelaten oplossing gevonden wordt. (b) Best-node-first: kies een knoop met beste waarde van de LP-relaxatie. (c) Gebruik (a) totdat een geheeltallige oplossing gevonden is en daarna (b). Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

Implementatieaspecten Op welke variabele branchen we? Typische regel: kies variabele met fractionele deel het dichtst bij 1 2. Welke niet-gesnoeide knoop gaan we verder vertakken? (a) Depth-first search: ga zo snel mogelijk naar beneden in de boom in de hoop dat er snel een goede toegelaten oplossing gevonden wordt. (b) Best-node-first: kies een knoop met beste waarde van de LP-relaxatie. (c) Gebruik (a) totdat een geheeltallige oplossing gevonden is en daarna (b). Vraag Wat is de looptijd van het Branch & Bound algoritme? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 20 / 40

CUTTING PLANES Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 21 / 40

Cutting Planes Cutting planes of geldige ongelijkheden zijn restricties die aan de ILP formulering kunnen worden toegevoegd zonder geheeltallige punten weg te snijden. Cutting planes worden vaak in combinatie met Branch & Bound gebruikt om de kwaliteit van de LP-relaxatie te verbeteren. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 22 / 40

Beschouw een ILP probleem: z IP = min c T x o.d.v. Ax b x 0 x Z n Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 23 / 40

Beschouw een ILP probleem: z IP = min c T x o.d.v. Ax b x 0 x Z n De optimale waarde van de LP-relaxatie geeft een ondergrens op de optimale waarde van het ILP probleem. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 23 / 40

Beschouw een ILP probleem: z IP = min c T x o.d.v. Ax b x 0 x Z n De optimale waarde van de LP-relaxatie geeft een ondergrens op de optimale waarde van het ILP probleem. Door cutting planes aan het ILP toe te voegen kunnen we proberen deze ondergrens te verbeteren. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 23 / 40

P = {x R n Ax b, x 0} is het bijbehorende polyeder en S = P Z n de verzameling toegelaten oplossingen van het ILP. P Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 24 / 40

P = {x R n Ax b, x 0} is het bijbehorende polyeder en S = P Z n de verzameling toegelaten oplossingen van het ILP. P Definitie Een polyeder Q is een formulering voor S als Q Z n = S. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 24 / 40

P = {x R n Ax b, x 0} is het bijbehorende polyeder en S = P Z n de verzameling toegelaten oplossingen van het ILP. P Definitie Een polyeder Q is een formulering voor S als Q Z n = S. Dus P is een formulering voor S. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 24 / 40

P = {x R n Ax b, x 0} is het bijbehorende polyeder en S = P Z n de verzameling toegelaten oplossingen van het ILP. P Definitie Een polyeder Q is een formulering voor S als Q Z n = S. Dus P is een formulering voor S. Maar er bestaan oneindig veel formuleringen voor S. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 24 / 40

Definitie Een ongelijkheid a T x b is geldig voor S als a T x b voor alle x S. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 25 / 40

Definitie Een ongelijkheid a T x b is geldig voor S als a T x b voor alle x S. P a T x b Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 25 / 40

Definitie Een ongelijkheid a T x b is geldig voor S als a T x b voor alle x S. P a T x b Ongelijkheid a T x b toevoegen aan P geeft een formulering P van S die minstens zo sterk is, d.w.z. P P. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 25 / 40

Definitie Een ongelijkheid a T x b is geldig voor S als a T x b voor alle x S. P' a T x b Ongelijkheid a T x b toevoegen aan P geeft een formulering P van S die minstens zo sterk is, d.w.z. P P. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 26 / 40

Definitie Een ongelijkheid a T x b is geldig voor S als a T x b voor alle x S. P' a T x b Ongelijkheid a T x b toevoegen aan P geeft een formulering P van S die minstens zo sterk is, d.w.z. P P. Vraag Wat is de sterkst mogelijke formulering van S? Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 26 / 40

Vraag Wat is de sterkst mogelijke formulering van S? Het convex omhulsel (convex hull) van S: de kleinste convexe verzameling die alle punten in S bevat. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 27 / 40

Vraag Wat is de sterkst mogelijke formulering van S? Het convex omhulsel (convex hull) van S: de kleinste convexe verzameling die alle punten in S bevat. We kunnen het convex omhulsel van S niet vinden in polynomiale tijd, dus proberen we het zo goed mogelijk te benaderen. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 27 / 40

Gomory s Cutting Planes Beschouw weer hetzelfde ILP probleem. z IP = min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 28 / 40

Gomory s Cutting Planes Beschouw weer hetzelfde ILP probleem. z IP = min 4 x 1 + x 2 o.d.v. 7 x 1 2 x 2 14 (1) x 2 3 (2) 2 x 1 2 x 2 3 (3) x 1, x 2 0 x 1, x 2 Z Het optimale tableaux van de LP-relaxatie: basis b x 1 x 2 s 1 s 2 s 3 x 1 20/7 1 0 1/7 2/7 0 x 2 3 0 1 0 1 0 s 3 23/7 0 0-2/7 10/7 1 z 59/7 0 0 4/7 1/7 0 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 28 / 40

Definitie Laat a R. Dan is a het grootste gehele getal n Z met n a. We noemen a het geheeltallige deel van a en a a het fractionele deel van a. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 29 / 40

Definitie Laat a R. Dan is a het grootste gehele getal n Z met n a. We noemen a het geheeltallige deel van a en a a het fractionele deel van a. Merk op dat voor het fractionele deel van een getal a geldt dat 0 a a < 1. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 29 / 40

Neem bijvoorbeeld de eerste rij van het Simplex tableaux: x 1 + 1 7 s 1 + 2 7 s 2 = 2 6 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 30 / 40

Neem bijvoorbeeld de eerste rij van het Simplex tableaux: x 1 + 1 7 s 1 + 2 7 s 2 = 2 6 7 Splits elke coëfficiënt a in het geheeltallige deel a en het fractionele deel a a. 1x 1 + (0 + 1 7 )s 1 + (0 + 2 7 )s 2 = 2 + 6 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 30 / 40

Neem bijvoorbeeld de eerste rij van het Simplex tableaux: x 1 + 1 7 s 1 + 2 7 s 2 = 2 6 7 Splits elke coëfficiënt a in het geheeltallige deel a en het fractionele deel a a. 1x 1 + (0 + 1 7 )s 1 + (0 + 2 7 )s 2 = 2 + 6 7 Herschrijf zodanig dat de geheeltallige delen links en de fractionele delen rechts staan. x 1 2 = 6 7 1 7 s 1 2 7 s 2 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 30 / 40

Neem bijvoorbeeld de eerste rij van het Simplex tableaux: x 1 + 1 7 s 1 + 2 7 s 2 = 2 6 7 Splits elke coëfficiënt a in het geheeltallige deel a en het fractionele deel a a. 1x 1 + (0 + 1 7 )s 1 + (0 + 2 7 )s 2 = 2 + 6 7 Herschrijf zodanig dat de geheeltallige delen links en de fractionele delen rechts staan. x 1 2 = 6 7 1 7 s 1 2 7 s 2 Omdat de linkerzijde geheeltallig is, moet de rechterzijde ook geheeltallig zijn. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 30 / 40

De rechterzijde 6 7 1 7 s 1 2 7 s 2 moet geheeltallig zijn. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 31 / 40

De rechterzijde 6 7 1 7 s 1 2 7 s 2 moet geheeltallig zijn. Omdat 6 7 < 1 en s 1, s 2 0, zijn de enige mogelijke geheeltallige waardes voor de rechterzijde 0, 1, 2,... Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 31 / 40

De rechterzijde 6 7 1 7 s 1 2 7 s 2 moet geheeltallig zijn. Omdat 6 7 < 1 en s 1, s 2 0, zijn de enige mogelijke geheeltallige waardes voor de rechterzijde 0, 1, 2,..., dus: 6 7 1 7 s 1 2 7 s 2 0 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 31 / 40

De rechterzijde 6 7 1 7 s 1 2 7 s 2 moet geheeltallig zijn. Omdat 6 7 < 1 en s 1, s 2 0, zijn de enige mogelijke geheeltallige waardes voor de rechterzijde 0, 1, 2,..., dus: 6 7 1 7 s 1 2 7 s 2 0 1 7 s 1 2 7 s 2 6 7 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 31 / 40

De rechterzijde 6 7 1 7 s 1 2 7 s 2 moet geheeltallig zijn. Omdat 6 7 < 1 en s 1, s 2 0, zijn de enige mogelijke geheeltallige waardes voor de rechterzijde 0, 1, 2,..., dus: 6 7 1 7 s 1 2 7 s 2 0 1 7 s 1 2 7 s 2 6 7 s 1 2s 2 6 Dit is een Gomory snede (Gomory cutting plane). Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 31 / 40

De Gomory snede, in de originele variabelen, is: x 1 2: x x 1 2 2 (1) (2) (3) x 1 Het gele deel van het polyeder is weggesneden. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 32 / 40

Om de nieuwe LP-relaxatie op te lossen, breng de Gomory snede, uitgedrukt in de basisvariabelen, in standaard vorm: s 1 2s 2 + s 4 = 6 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 33 / 40

Om de nieuwe LP-relaxatie op te lossen, breng de Gomory snede, uitgedrukt in de basisvariabelen, in standaard vorm: s 1 2s 2 + s 4 = 6 en voeg toe aan het huidige Simplex tableaux van de LP relaxatie: basis b x 1 x 2 s 1 s 2 s 3 s 4 x 1 20/7 1 0 1/7 2/7 0 0 x 2 3 0 1 0 1 0 0 s 3 23/7 0 0-2/7 10/7 1 0 s 4-6 0 0-1 -2 0 1 z 59/7 0 0 4/7 1/7 0 0 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 33 / 40

Om de nieuwe LP-relaxatie op te lossen, breng de Gomory snede, uitgedrukt in de basisvariabelen, in standaard vorm: s 1 2s 2 + s 4 = 6 en voeg toe aan het huidige Simplex tableaux van de LP relaxatie: basis b x 1 x 2 s 1 s 2 s 3 s 4 x 1 20/7 1 0 1/7 2/7 0 0 x 2 3 0 1 0 1 0 0 s 3 23/7 0 0-2/7 10/7 1 0 s 4-6 0 0-1 -2 0 1 z 59/7 0 0 4/7 1/7 0 0 De oplossing blijft duaal toegelaten maar is niet meer primaal toegelaten. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 33 / 40

Om de nieuwe LP-relaxatie op te lossen, breng de Gomory snede, uitgedrukt in de basisvariabelen, in standaard vorm: s 1 2s 2 + s 4 = 6 en voeg toe aan het huidige Simplex tableaux van de LP relaxatie: basis b x 1 x 2 s 1 s 2 s 3 s 4 x 1 20/7 1 0 1/7 2/7 0 0 x 2 3 0 1 0 1 0 0 s 3 23/7 0 0-2/7 10/7 1 0 s 4-6 0 0-1 -2 0 1 z 59/7 0 0 4/7 1/7 0 0 De oplossing blijft duaal toegelaten maar is niet meer primaal toegelaten. Pas de duale Simplex methode toe. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 33 / 40

Herhaling: Duale Simplex Methode voor minimaliseringsproblemen: 1 Initialisatie: vind een (primale) basisoplossing, niet noodzakelijk toegelaten, met c j 0 voor alle j. 2 Als b i 0 voor alle i dan is de huidige basisoplossing toegelaten en optimaal. Stop! 3 Kies uittredende basisvariabele behorende bij rij i met b i < 0. 4 Als ā i j 0 voor alle j dan heeft het probleem geen toegelaten oplossing. Stop! 5 Kies intredende variabele x j waarvoor c j ā i j { cj = max j ā i j } ā i j < 0. 6 Pas elementaire rijoperaties toe zodanig dat kolom j een 1 krijgt in rij i en verder alleen 0 en. Ga naar (2). Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 34 / 40

basis b x1 x 2 s 1 s 2 s 3 s 4 x 1 20/7 1 0 1/7 2/7 0 0 x 2 3 0 1 0 1 0 0 s 3 23/7 0 0-2/7 10/7 1 0 s 4-6 0 0-1 -2 0 1 z 59/7 0 0 4/7 1/7 0 0 max{ 4/7 1, 1/7 2 } = 1/7 2 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 35 / 40

basis b x1 x 2 s 1 s 2 s 3 s 4 x 1 20/7 1 0 1/7 2/7 0 0 x 2 3 0 1 0 1 0 0 s 3 23/7 0 0-2/7 10/7 1 0 s 4-6 0 0-1 -2 0 1 z 59/7 0 0 4/7 1/7 0 0 max{ 4/7 1, 1/7 2 } = 1/7 2 Dus s 2 komt de basis in voor s 4. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 35 / 40

Pas rijoperaties toe: basis b x1 x 2 s 1 s 2 s 3 s 4 x 1 2 1 0 0 0 0 1 x 2 0 0 1-1/2 0 0 7/2 s 3-1 0 0-1 0 1 5 s 2 3 0 0 1/2 1 0-7/2 z 8 0 0 1/2 0 0 1/2 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 36 / 40

Nieuwe duale pivot: basis b x 1 x 2 s 1 s 2 s 3 s 4 x 1 2 1 0 0 0 0 1 x 2 0 0 1-1/2 0 0 7/2 s 3-1 0 0-1 0 1 5 s 2 3 0 0 1/2 1 0-7/2 z 8 0 0 1/2 0 0 1/2 Nu komt s 1 de basis in voor s 3. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 37 / 40

basis b x1 x 2 s 1 s 2 s 3 s 4 x 1 2 1 0 0 0 0 1 x 2 1/2 0 1 0 0-1/2 1 s 1 1 0 0 1 0-1 -5 s 2 5/2 0 0 0 1 1/2-1 z 15/2 0 0 0 0 1/2 3 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 38 / 40

De huidige oplossing, x LP = optimaal. basis b x1 x 2 s 1 s 2 s 3 s 4 x 1 2 1 0 0 0 0 1 x 2 1/2 0 1 0 0-1/2 1 s 1 1 0 0 1 0-1 -5 s 2 5/2 0 0 0 1 1/2-1 z 15/2 0 0 0 0 1/2 3 [ ] 2, is duaal en primaal toegelaten, en dus 1/2 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 38 / 40

De optimale oplossing van de LP-relaxatie na toevoegen van de eerste Gomory snede. x 2 (1) (2) z (3) X LP =(2,1/2) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 39 / 40

Laatste opmerkingen Voor elke rij van het Simplex tableaux, inclusief de doelfunctierij, kan een Gomory snede geformuleerd worden. Deze kunnen allemaal tegelijk aan de LP-relaxatie worden toegevoegd. Niet elke snede zal een deel van het polyeder wegsnijden. Ook in de Branch & Bound methode wordt steeds een restrictie aan de LP-relaxatie toegevoegd. Hier kan ook goed de Duale Simplex methode gebruikt worden om het nieuwe deelprobleem op te lossen. Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 40 / 40