TW2020 Optimalisering

Vergelijkbare documenten
TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TU/e 2DD50: Wiskunde 2

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

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

TU/e 2DD50: Wiskunde 2 (1)

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

Bijlage A Simplex-methode

TW2020 Optimalisering

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.

TW2020 Optimalisering

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).

l e x e voor alle e E

TW2020 Optimalisering

TW2020 Optimalisering

Stelsels lineaire vergelijkingen

l e x e voor alle e E

TW2020 Optimalisering

Samenvatting college 1-12

TU/e 2DD50: Wiskunde 2 (1)

TW2020 Optimalisering

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

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.

Hoofdstuk 13: Integer Lineair Programmeren

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University

Tie breaking in de simplex methode

TU/e 2DD50: Wiskunde 2

Universiteit Utrecht Departement Informatica

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

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

Tie breaking in de simplex methode

Tentamen: Operationele Research 1D (4016)

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

TW2020 Optimalisering

Lineaire Algebra voor ST

Branch-and-Bound en Cutting Planes

vandaag is Annie twee jaar jonger dan Ben en Cees samen

BESLISKUNDE 2 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Lineaire Algebra (2DD12)

Opgave 2: Simplex-algoritme - oplossing

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

ffl een willekeurige LP in standaard vorm kan omzetten ffl het bij een basis toebehorend tableau en de basisoplossing kan berekenen ffl de simplex alg

TW2020 Optimalisering

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.

Lineair programmeren met de TI-84 CE-T

Lineaire Algebra voor ST

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

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

TW2020 Optimalisering

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).

TW2020 Optimalisering

Lineaire programmering

Lineair Programmeren op het polytoop

Enkele uitbreidingen op het simplexalgoritme

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking

Modellen en Simulatie Speltheorie

Lineaire Algebra WI1048WbMt. I.A.M. Goddijn, Faculteit EWI 4 september 2016

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

TW2020 Optimalisering

SPECIALE LINEAIRE MODELLEN

Basiskennis lineaire algebra

Lineaire vergelijkingen II: Pivotering

UITWERKINGEN d. Eliminatie van a geeft d. Eliminatie van b,

Lineair voor CT College 2a. Echelon vorm 1.2 Duncan van der Heul

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

Technische Universiteit Eindhoven Faculteit Wiskunde & Informatica

Hoofdstuk 3. Matrices en stelsels. 3.1 Matrices. [[1,7]],[[12,8] ] of [ 1, 7; 12,8 ] bepaalt de matrix

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

Vierde huiswerkopdracht Lineaire algebra 1

Faculteit der Economie en Bedrijfskunde

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

Modellen en Simulatie Lineare Programmering

Lineaire Algebra voor ST

OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

CTB1002 deel 1 - Lineaire algebra 1

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Lineaire functies? x 3x. (x 1, x 2 ) 5x 1 7x 2. x 6x 17. x ax. (a, x) ax??? 3x log x 2. substitueer x 1 = y 1, x 2 = exp(y 2 ) levert

Lineaire Algebra Een Samenvatting

BESLISKUNDE 2 EN 3 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Uitwerking Tweede Quiz Speltheorie,

Geheeltallige programmering

Lineaire Optimilizatie Extra sessie. 19 augustus 2010

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

Lineaire Algebra voor ST

BESLISKUNDE 3 L.C.M. KALLENBERG

Matrices en Grafen (wi1110ee)

3 Wat is een stelsel lineaire vergelijkingen?

Optimalisering WI 2608

Lineaire Algebra voor ST

UITWERKINGEN 1 2 C : 2 =

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n.

Lineaire Algebra en Vectorcalculus 2DN60 College 5.a Basis en dimensie

K.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x.

Examenvragen D0H45 (Lineaire optimalizatie)

2WO12: Optimalisering in Netwerken

Transcriptie:

TW2020 Optimalisering Hoorcollege 3 Leo van Iersel Technische Universiteit Delft 21 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 1 / 36

LP: Lineair Programmeren min x 1 2 x 2 x 3 o.d.v. x 1 +2x 2 apple 2 x 1 + x 2 + x 3 apple 2 x 1, x 2, x 3 0 Het toegelaten gebied van een LP probleem wordt beschreven door een polyeder: x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 2 / 36

Vorige week Een LP in standaard vorm: met A een m n matrix. min c T x o.d.v. Ax = b x 0 Een basis is een verzameling van m lineair onafhankelijke kolommen van A. Debijbehorendevariabelenzijndebasisvariabelen. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 3 / 36

Vorige week Een LP in standaard vorm: met A een m n matrix. min c T x o.d.v. Ax = b x 0 Een basis is een verzameling van m lineair onafhankelijke kolommen van A. Debijbehorendevariabelenzijndebasisvariabelen. In de bijbehorende basisoplossing zijn alle niet-basisvariabelen 0 en worden de basisvariabelen dan bepaald door het stelsel Ax = b. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 3 / 36

Vorige week Een LP in standaard vorm: met A een m n matrix. min c T x o.d.v. Ax = b x 0 Een basis is een verzameling van m lineair onafhankelijke kolommen van A. Debijbehorendevariabelenzijndebasisvariabelen. In de bijbehorende basisoplossing zijn alle niet-basisvariabelen 0 en worden de basisvariabelen dan bepaald door het stelsel Ax = b. Een toegelaten basisoplossing of basic feasible solution (bfs) is een basisoplossing waarin de basisvariabelen niet-negatief zijn. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 3 / 36

Vorige week x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Elk LP met een optimale oplossing heeft een optimale oplossing die zich in een hoepkunt van het polyeder bevindt. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 4 / 36

Vorige week x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Elk LP met een optimale oplossing heeft een optimale oplossing die zich in een hoepkunt van het polyeder bevindt. De hoekpunten van het polyeder komen overeen met de toegelaten basisoplossingen. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 4 / 36

Vorige week x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Elk LP met een optimale oplossing heeft een optimale oplossing die zich in een hoepkunt van het polyeder bevindt. De hoekpunten van het polyeder komen overeen met de toegelaten basisoplossingen. De simplex methode gaat van bfs naar bfs zodanig dat de doelfunctiewaarde niet slechter wordt. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 4 / 36

Deze week Oplossen van LP problemen met de simplex methode. 1. Hoe maken we een transitie van een gegeven bfs naar een volgende bfs? (Een pivot.) 2. Hoe kiezen we een goede zoekrichting? (De pivotkolom.) 3. Hoe weten we of een bfs optimaal is? 4. Hoe vinden we een start bfs? Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 5 / 36

1. Hoe maken we een transitie van een gegeven bfs naar een volgende bfs? (Een pivot.) Voorbeeld (1) max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 apple 6 (1) 3 x 1 +4x 2 apple 12 (2) x 1, x 2 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 6 / 36

1. Hoe maken we een transitie van een gegeven bfs naar een volgende bfs? (Een pivot.) Voorbeeld (1) In standaardvorm: max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 + s 1 =6 3 x 1 +4x 2 + s 2 = 12 x 1, x 2, s 1, s 2 0 Wat is een voordehandliggende start bfs? Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 7 / 36

1. Hoe maken we een transitie van een gegeven bfs naar een volgende bfs? (Een pivot.) Voorbeeld (1) In standaardvorm: max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 + s 1 =6 3 x 1 +4x 2 + s 2 = 12 x 1, x 2, s 1, s 2 0 Stel we brengen x 1 in de basis. Hoeveel kan de waarde van x 1 verhoogd worden zodat de oplossing toegelaten blijft? De andere niet-basisvariabelen blijven 0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 8 / 36

Voorbeeld (1) max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 apple 6 (1) 3 x 1 +4x 2 apple 12 (2) x 1, x 2 0 x 2 (1) F C (0,0) (2) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 9 / 36

Voorbeeld (1) max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 apple 6 (1) 3 x 1 +4x 2 apple 12 (2) x 1, x 2 0 x 2 (1) F C (0,0) (3/2,0) (2) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 10 / 36

Neem aan A =[B N]metB de kolommen van de basisvariabelen en N de kolommen van de niet-basisvariabelen. Dan is Bx B + Nx N = b Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 11 / 36

Neem aan A =[B N]metB de kolommen van de basisvariabelen en N de kolommen van de niet-basisvariabelen. Dan is Bx B + Nx N = b maar de niet-basisvariabelen in x N zijn allemaal 0, dus Bx B = b ) x B = B 1 b Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 11 / 36

Neem aan A =[B N]metB de kolommen van de basisvariabelen en N de kolommen van de niet-basisvariabelen. Dan is Bx B + Nx N = b maar de niet-basisvariabelen in x N zijn allemaal 0, dus Bx B = b ) x B = B 1 b Als B = I en b 0danis apple xb x N = apple b 0 een bfs. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 11 / 36

Neem aan A =[B N]metB de kolommen van de basisvariabelen en N de kolommen van de niet-basisvariabelen. Dan is Bx B + Nx N = b maar de niet-basisvariabelen in x N zijn allemaal 0, dus Bx B = b ) x B = B 1 b Als B = I en b 0danis apple xb x N = apple b 0 een bfs. De simplex methode zorgt er voor dat in elke iteratie B = I en b 0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 11 / 36

Als variabele x j de basis in wordt gebracht, dan is kolom j de pivotkolom. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 12 / 36

Als variabele x j de basis in wordt gebracht, dan is kolom j de pivotkolom. Variabele x j kan verhoogd worden totdat een basisvariabele nul wordt. Één zo n basisvariabele x` verlaat de basis. Rij ` is dan de pivotrij. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 12 / 36

Als variabele x j de basis in wordt gebracht, dan is kolom j de pivotkolom. Variabele x j kan verhoogd worden totdat een basisvariabele nul wordt. Één zo n basisvariabele x` verlaat de basis. Rij ` is dan de pivotrij. pivotkolom # x 1 +...+ā 1j x j +... = b 1 x 2 +...+ā 2j x j +... = b 2............ x` +...+ ā`j x j +... = b` pivotrij............ x m +...+ā mj x j +... = b m basisvariabelen niet-basisvariabelen ā`j is het pivotelement Hier zijn ā ij en b i de huidige waarden (na eventuele eerdere pivots). Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 12 / 36

Minimum ratio test: als kolom j de pivotkolom is, dan is de pivotrij de rij ` waarvoor b` b i =min ā ij > 0. ā`j i ā ij Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 13 / 36

Minimum ratio test: als kolom j de pivotkolom is, dan is de pivotrij de rij ` waarvoor b` b i =min ā ij > 0. ā`j i ā ij Pivot: pas elementaire rijoperaties toe zodanig dat de kolommen van de basisvariabelen weer een identiteitsmatrix vormen: 1 deel de pivotrij door het pivotelement (rij `) :=(rij`)/ā`j 2 maak daarna de andere elementen in de pivotkolom gelijk aan nul: (rij i) :=(riji) ā ij (rij `) 8i 6= ` Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 13 / 36

2. Hoe kiezen we de pivotkolom? Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 14 / 36

2. Hoe kiezen we de pivotkolom? Druk de doelfunctie uit in niet-basisvariabelen: z = nx c j x j j=1 z = X A j /2B c j x j met behulp van elementaire rijoperaties. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 14 / 36

2. Hoe kiezen we de pivotkolom? Druk de doelfunctie uit in niet-basisvariabelen: z = nx c j x j j=1 z = X A j /2B c j x j met behulp van elementaire rijoperaties. De c j heten de gereduceerde doelstellingscoë of de relatieve kosten. Vraag ciënten Wat is het e ect op de waarde van z als we de waarde van een niet-basisvariabele x j verhogen, als de relatieve kosten c j negatief zijn? Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 14 / 36

2. Hoe kiezen we de pivotkolom? Voor een minimaliseringsprobleem: Kies een kolom j met c j < 0. Makkelijkste selectiecriterium: kies j waarvoor c j < 0minimaal. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 15 / 36

2. Hoe kiezen we de pivotkolom? Voor een minimaliseringsprobleem: Kies een kolom j met c j < 0. Makkelijkste selectiecriterium: kies j waarvoor c j < 0minimaal. Voor een maximaliseringsprobleem: Kies een kolom j met c j > 0. Makkelijkste selectiecriterium: kies j waarvoor c j > 0maximaal. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 15 / 36

Voorbeeld (1) max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 apple 6 (1) 3 x 1 +4x 2 apple 12 (2) x 1, x 2 0 x 2 (1) F C (0,0) (3/2,0) (2) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 16 / 36

Voorbeeld (1) max z =2x 1 + x 2 o.d.v. 4 x 1 3 x 2 apple 6 (1) 3 x 1 +4x 2 apple 12 (2) x 1, x 2 0 x 2 (1) F C (12/5,6/5) (0,0) (3/2,0) (2) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 17 / 36

3. Hoe weten we of een bfs optimaal is? Stelling (2.8) Als x een bfs is van een minimaliseringsprobleem met c j 0 voor alle j, dan is x optimaal. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 18 / 36

3. Hoe weten we of een bfs optimaal is? Stelling (2.8) Als x een bfs is van een minimaliseringsprobleem met c j 0 voor alle j, dan is x optimaal. Als x een bfs is van een maximaliseringsprobleem met c j apple 0 voor alle j, dan is x optimaal. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 18 / 36

Samenvatting Simplex Algoritme voor minimaliseringsprobleem: 1 Als c j 0voorallej dan is de huidige bfs optimaal. Stop! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 19 / 36

Samenvatting Simplex Algoritme voor minimaliseringsprobleem: 1 Als c j 0voorallej dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 < 0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 19 / 36

Samenvatting Simplex Algoritme voor minimaliseringsprobleem: 1 Als c j 0voorallej dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 < 0. 3 Als ā ij 0 apple 0voorallei dan is het probleem onbegrensd. Stop! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 19 / 36

Samenvatting Simplex Algoritme voor minimaliseringsprobleem: 1 Als c j 0voorallej dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 < 0. 3 Als ā ij 0 apple 0voorallei dan is het probleem onbegrensd. Stop! 4 Kies uittredende variabele x i 0 waarvoor b i 0 ā i 0 j 0 b i =min i ā ij 0 ā ij 0 > 0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 19 / 36

Samenvatting Simplex Algoritme voor minimaliseringsprobleem: 1 Als c j 0voorallej dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 < 0. 3 Als ā ij 0 apple 0voorallei dan is het probleem onbegrensd. Stop! 4 Kies uittredende variabele x i 0 waarvoor b i 0 ā i 0 j 0 b i =min i ā ij 0 ā ij 0 > 0. 5 Pas elementaire rijoperaties toe zodanig dat kolom j 0 een 1 krijgt in rij i 0 en verder alleen 0 en. Ga naar (1). Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 19 / 36

Voorbeeld (2) min x 1 2 x 2 x 3 o.d.v. x 1 +2x 2 apple 2 x 1 + x 2 + x 3 apple 2 x 1, x 2, x 3 0 x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 20 / 36

Voorbeeld (2) min z = x 1 2 x 2 x 3 o.d.v. x 1 +2x 2 + s 1 =2 x 1 + x 2 + x 3 + s 2 =2 x 1, x 2, x 3, s 1, s 2 0 De doelstellingsfunctie schrijven we om naar z x 1 2x 2 x 3 =0 en we stellen het Simplextableaux op: basis b x 1 x 2 x 3 s 1 s 2 s 1 2 1 2 0 1 0 s 2 2 1 1 1 0 1 z 0-1 -2-1 0 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 21 / 36

De start bfs. basis b x1 x 2 x 3 s 1 s 2 s 1 2 1 2 0 1 0 s 2 2 1 1 1 0 1 z 0-1 -2-1 0 0 x 3 (0,0,2) (0,1,1) (0,0,0) x 2 (0,1,0) (2,0,0) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 22 / 36

x 1 komt basis in voor s 1. basis b x 1 x 2 x 3 s 1 s 2 x 1 2 1 2 0 1 0 s 2 0 0-1 1-1 1 z 2 0 0-1 1 0 x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 23 / 36

x 3 komt basis in voor s 2. basis b x 1 x 2 x 3 s 1 s 2 x 1 2 1 2 0 1 0 x 3 0 0-1 1-1 1 z 2 0-1 0 0 1 x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 24 / 36

x 2 komt in basis voor x 1. Optimale oplossing! basis b x 1 x 2 x 3 s 1 s 2 x 2 1 1/2 1 0 1/2 0 x 3 1 1/2 0 1-1/2 1 z 3 1/2 0 0 1/2 1 x 3 (0,0,2) (0,1,1) x 2 (0,1,0) (2,0,0) x 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 25 / 36

Samenvatting Simplex Algoritme voor maximaliseringsprobleem: 1 Als c j apple 0 voor alle j dan is de huidige bfs optimaal. Stop! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 26 / 36

Samenvatting Simplex Algoritme voor maximaliseringsprobleem: 1 Als c j apple 0 voor alle j dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 > 0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 26 / 36

Samenvatting Simplex Algoritme voor maximaliseringsprobleem: 1 Als c j apple 0 voor alle j dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 > 0. 3 Als ā ij 0 apple 0voorallei dan is het probleem onbegrensd. Stop! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 26 / 36

Samenvatting Simplex Algoritme voor maximaliseringsprobleem: 1 Als c j apple 0 voor alle j dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 > 0. 3 Als ā ij 0 apple 0voorallei dan is het probleem onbegrensd. Stop! 4 Kies uittredende variabele x i 0 waarvoor b i 0 ā i 0 j 0 b i =min i ā ij 0 ā ij 0 > 0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 26 / 36

Samenvatting Simplex Algoritme voor maximaliseringsprobleem: 1 Als c j apple 0 voor alle j dan is de huidige bfs optimaal. Stop! 2 Kies intredende variabele x j 0 met c j 0 > 0. 3 Als ā ij 0 apple 0voorallei dan is het probleem onbegrensd. Stop! 4 Kies uittredende variabele x i 0 waarvoor b i 0 ā i 0 j 0 b i =min i ā ij 0 ā ij 0 > 0. 5 Pas elementaire rijoperaties toe zodanig dat kolom j 0 een 1 krijgt in rij i 0 en verder alleen 0 en. Ga naar (1). Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 26 / 36

4. Hoe vinden we een start bfs? Als het oorspronkelijke probleem alleen apple restricties heeft: min c T x o.d.v. Ax apple b x 0 Dan krijgt elke restrictie een slackvariabele: min c T x o.d.v. Ax + Is = b x, s 0 En is een start bfs makkelijk te vinden: x =0 s = b niet-basisvariabelen basisvariabelen Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 27 / 36

Als het oorspronkelijke probleem = en/of restricties heeft: Vervang elke restrictie P n j=1 a ijx j apple b i door P n j=1 a ijx j + s i = b i met s i 0eenslackvariabele. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 28 / 36

Als het oorspronkelijke probleem = en/of restricties heeft: Vervang elke restrictie P n j=1 a ijx j apple b i door P n j=1 a ijx j + s i = b i met s i 0eenslackvariabele. Vervang elke restrictie P n j=1 a ijx j b i door P n j=1 a ijx j s i +x a i = b i met s i 0eensurplusvariabele en x a i 0 een kunstmatige variabele. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 28 / 36

Als het oorspronkelijke probleem = en/of restricties heeft: Vervang elke restrictie P n j=1 a ijx j apple b i door P n j=1 a ijx j + s i = b i met s i 0eenslackvariabele. Vervang elke restrictie P n j=1 a ijx j b i door P n j=1 a ijx j s i +x a i = b i met s i 0eensurplusvariabele en x a i 0 een kunstmatige variabele. Vervang elke restrictie P n j=1 a ijx j = b i door P n j=1 a ijx j +x a i = b i met x a i 0 een kunstmatige variabele. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 28 / 36

Twee fasen methode: Eerste fase: los het LP op met als doelfunctie min w = X i x a i Laat w de optimale waarde van w zijn. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 29 / 36

Twee fasen methode: Eerste fase: los het LP op met als doelfunctie min w = X i x a i Laat w de optimale waarde van w zijn. 1 Als w =0en geen kunstmatige variabelen in de basis dan is een bfs van het originele probleem gevonden. I Verwijder kolommen van kunstmatige variabelen. I Zet originele doelfunctie terug en druk uit in niet-basisvariabelen. I Ga verder met Simplex methode (dit is de tweede fase). Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 29 / 36

Twee fasen methode: Eerste fase: los het LP op met als doelfunctie min w = X i x a i Laat w de optimale waarde van w zijn. 1 Als w =0en geen kunstmatige variabelen in de basis dan is een bfs van het originele probleem gevonden. I Verwijder kolommen van kunstmatige variabelen. I Zet originele doelfunctie terug en druk uit in niet-basisvariabelen. I Ga verder met Simplex methode (dit is de tweede fase). 2 Als w =0en kunstmatige variabele xi a zit in de basis (met waarde 0). I Haal x a i uit de basis door een pivot, met het pivotelement een willekeurig niet-nul element in de rij van xi a. I Herhaal totdat we in geval (1) terecht komen. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 29 / 36

Twee fasen methode: Eerste fase: los het LP op met als doelfunctie min w = X i x a i Laat w de optimale waarde van w zijn. 1 Als w =0en geen kunstmatige variabelen in de basis dan is een bfs van het originele probleem gevonden. I Verwijder kolommen van kunstmatige variabelen. I Zet originele doelfunctie terug en druk uit in niet-basisvariabelen. I Ga verder met Simplex methode (dit is de tweede fase). 2 Als w =0en kunstmatige variabele xi a zit in de basis (met waarde 0). I Haal x a i uit de basis door een pivot, met het pivotelement een willekeurig niet-nul element in de rij van xi a. I Herhaal totdat we in geval (1) terecht komen. 3 Als w > 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 29 / 36

Twee fasen methode: Eerste fase: los het LP op met als doelfunctie min w = X i x a i Laat w de optimale waarde van w zijn. 1 Als w =0en geen kunstmatige variabelen in de basis dan is een bfs van het originele probleem gevonden. I Verwijder kolommen van kunstmatige variabelen. I Zet originele doelfunctie terug en druk uit in niet-basisvariabelen. I Ga verder met Simplex methode (dit is de tweede fase). 2 Als w =0en kunstmatige variabele xi a zit in de basis (met waarde 0). I Haal x a i uit de basis door een pivot, met het pivotelement een willekeurig niet-nul element in de rij van xi a. I Herhaal totdat we in geval (1) terecht komen. 3 Als w > 0 dan heeft het oorsponkelijke probleem geen toegelaten oplossing. Stop! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 29 / 36

Voorbeeld (3) min 3 x 1 + x 2 o.d.v. x 1 +2x 2 apple 1 x 1 + x 2 =1 x 1, x 2 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 30 / 36

Voorbeeld (3) min 3 x 1 + x 2 o.d.v. x 1 +2x 2 apple 1 x 1 + x 2 =1 x 1, x 2 0 Eerste fase probleem: min x a 2 o.d.v. x 1 +2x 2 + s 1 =1 x 1 + x 2 + x a 2 =1 x 1, x 2 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 30 / 36

Voorbeeld (3) Eerste fase probleem: Simplextableau: min x a 2 o.d.v. x 1 +2x 2 + s 1 =1 x 1 + x 2 + x a 2 =1 x 1, x 2 0 basis b x 1 x 2 s 1 x a 2 s 1 1 1 2 1 0 x a 2 1 1 1 0 1 w 0 0 0 0 1 Let op! De doelfunctie is nog niet uitgedrukt in niet-basisvariabelen. Dit moeten we eerst doen! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 31 / 36

Voorbeeld (3) Nu is de doelfunctie uitgedrukt in niet-basisvariabelen: basis b x 1 x 2 s 1 x2 a s 1 1 1 2 1 0 x2 a 1 1 1 0 1 w -1-1 -1 0 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 32 / 36

Voorbeeld (3) Nu is de doelfunctie uitgedrukt in niet-basisvariabelen: basis b x 1 x 2 s 1 x2 a s 1 1 1 2 1 0 x2 a 1 1 1 0 1 w -1-1 -1 0 0 We kunnen x 1 of x 2 in de basis brengen. Kies bijvoorbeeld x 1 : Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 32 / 36

Voorbeeld (3) Nu is de doelfunctie uitgedrukt in niet-basisvariabelen: basis b x 1 x 2 s 1 x2 a s 1 1 1 2 1 0 x2 a 1 1 1 0 1 w -1-1 -1 0 0 We kunnen x 1 of x 2 in de basis brengen. Kies bijvoorbeeld x 1 : basis b x 1 x 2 s 1 x2 a x 1 1 1 2 1 0 x2 a 0 0-1 -1 1 w 0 0 1 1 0 We hebben een optimale oplossing van de eerste fase met w =0. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 32 / 36

Voorbeeld (3) Nu is de doelfunctie uitgedrukt in niet-basisvariabelen: basis b x 1 x 2 s 1 x2 a s 1 1 1 2 1 0 x2 a 1 1 1 0 1 w -1-1 -1 0 0 We kunnen x 1 of x 2 in de basis brengen. Kies bijvoorbeeld x 1 : basis b x 1 x 2 s 1 x a 2 x 1 1 1 2 1 0 x a 2 0 0-1 -1 1 w 0 0 1 1 0 We hebben een optimale oplossing van de eerste fase met w =0. Let op! Er zit nog een kunstmatige variabele in de basis! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 32 / 36

Voorbeeld (3) We hebben de kunstmatige variabele uit de basis gehaald: basis b x1 x 2 s 1 x2 a x 1 1 1 0-1 2 x 2 0 0 1 1-1 w 0 0 0 0 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 33 / 36

Voorbeeld (3) We hebben de kunstmatige variabele uit de basis gehaald: basis b x1 x 2 s 1 x a 2 x 1 1 1 0-1 2 x 2 0 0 1 1-1 w 0 0 0 0 1 Tweede fase: verwijder de kolom van de kunstmatige variabele en zet de originele doelfunctie terug: Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 33 / 36

Voorbeeld (3) We hebben de kunstmatige variabele uit de basis gehaald: basis b x1 x 2 s 1 x a 2 x 1 1 1 0-1 2 x 2 0 0 1 1-1 w 0 0 0 0 1 Tweede fase: verwijder de kolom van de kunstmatige variabele en zet de originele doelfunctie terug: basis b x 1 x 2 s 1 x 1 1 1 0-1 x 2 0 0 1 1 z 0 3 1 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 33 / 36

Voorbeeld (3) We hebben de kunstmatige variabele uit de basis gehaald: basis b x1 x 2 s 1 x a 2 x 1 1 1 0-1 2 x 2 0 0 1 1-1 w 0 0 0 0 1 Tweede fase: verwijder de kolom van de kunstmatige variabele en zet de originele doelfunctie terug: basis b x 1 x 2 s 1 x 1 1 1 0-1 x 2 0 0 1 1 z 0 3 1 0 Let op! We moeten eerst de doelfunctie uitdrukken in niet-basisvariabelen! Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 33 / 36

Voorbeeld (3) Druk de doelfunctie uit in niet-basisvariabelen: basis b x1 x 2 s 1 x 1 1 1 0-1 x 2 0 0 1 1 z -3 0 0 2 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 34 / 36

Voorbeeld (3) Druk de doelfunctie uit in niet-basisvariabelen: basis b x1 x 2 s 1 x 1 1 1 0-1 x 2 0 0 1 1 z -3 0 0 2 Ga verder met de Simplexmethode. In dit geval zijn alle c j niet-negatief. De huidige oplossing is dus optimaal. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 34 / 36

Voorbeeld (3) Druk de doelfunctie uit in niet-basisvariabelen: basis b x1 x 2 s 1 x 1 1 1 0-1 x 2 0 0 1 1 z -3 0 0 2 Ga verder met de Simplexmethode. In dit geval zijn alle c j niet-negatief. De huidige oplossing is dus optimaal. Optimale oplossing: met waarde z =3. x B = apple apple x1 1 = x 2 0 x N = s 1 = 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 34 / 36

Cycling Het Simplex algoritme zoals beschreven kan oneindig lang doorgaan. Dit gebeurt als we na een aantal pivots weer bij een eerder beschouwde bfs uitkomen. Dit heet cycling. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 35 / 36

Cycling Het Simplex algoritme zoals beschreven kan oneindig lang doorgaan. Dit gebeurt als we na een aantal pivots weer bij een eerder beschouwde bfs uitkomen. Dit heet cycling. Bland s anti-cycling regels: Als meerdere intredende variabelen mogelijk zijn (met c j < 0), kies die met de kleinste index. Als meerdere uittredende variabelen mogelijk zijn (met dezelfde ratio in de minimum ratio test), kies die met de kleinste index. Stelling (2.9) De Simplex methode met Bland s anti-cycling regels termineert na een eindig aantal stappen. Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 35 / 36

Simplex Method Tool http://www.zweigmedia.com/realworld/simplex.html Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 36 / 36