Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. ·...

23
Optimalisering en Complexiteit, College 12 Gevoeligheidsanalyse Han Hoogeveen, Utrecht University

Transcript of Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. ·...

Page 1: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Optimalisering en Complexiteit, College 12Gevoeligheidsanalyse

Han Hoogeveen, Utrecht University

Page 2: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Samenvatting Duale Simplex methode (1)

Uitgangspunt: LP probleem waarvoor je een correct tableauhebt met de nulde rij ≤ 0 (dus alle zj − cj ≤ 0) en derechterkant b (onder RHS) 6≥ 0 (er zijn dus basisvariabelendie nu een negatieve waarde hebben).Aanpak: je probeert de rechterkant ≥ 0 te maken, waarbij jeervoor zorgt dat de nulde rij ≤ 0 blijft (net omgekeerd aan de‘gewone’, Primale Simplex methode, waarbij je probeert omde nulde rij ≤ 0 te maken, waarbij je ervoor zorgt dat derechterkant) ≥ 0 blijft.

Page 3: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Samenvatting Duale Simplex methode (2)

Iteratie: xBr gaat uit de basis met

r ← arg mini=1,...,m

bi

Kies xk als nieuwe basisvariabele, waarbij moet gelden1 yrk < 0 (zodat de waarde onder RHS op rij r ≥ 0 wordt).2 Na pivoteren op yrk is de nulde rij nog steeds ≤ 0.

Dit levert de volgende ratio regel op: Bepaal

k ← argmin{(zj − cj)

yrj

∣∣∣∣∣ yrj < 0}

Pivoteer op yrk (xk in de basis; xBr uit de basis).Indien yrj ≥ 0 voor alle j , dan is er geen toegelaten oplossing.

Page 4: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Gevoeligheidsanalyse

Zeer belangrijk, want de gegevens zijn in de praktijk nietexact!Ga uit van het LP probleem:

min z = cx o.d.v. Ax = b; x ≥ 0.

Mogelijke veranderingen die je aan kunt brengen in een LP:1 Verandering van rechterkant: b wordt b′.2 Toevoeging van variabele xn+1 (met kolomvector an+1 en

kostencoëfficiënt cn+1).3 Aanpassen van cj in c ′

j voor één of meer variabelen.4 Weglaten van variabele xj (of de matrix A verandert).5 Weglaten van een beperking aix ≤ bi of aix = bi6 Toevoegen van een beperking am+1x ≤ bm+1 of am+1x = bm+1

Page 5: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Aanpassing rechterkantvector

Uiteraard kun je voor een gegeven nieuwe rechterkantvector b′de Duale Simplex methode gebruiken.Ander belangrijk probleem: met hoeveel mag je bi verlagenzodanig dat dezelfde basis toegelaten blijft? Wanneer is zo’ndeal interessant?Voorbeeld:

Min −2x1 + 3x2 − 4x3o.v. x1 − x2 + 2x3 ≤ 7

2x1 + x2 + 3x3 ≤ 22x1 − x2 + x3 ≤ 2x1 , x2 , x3 ≥ 0

x1 x2 x3 x4 x5 x6 RHSz −1 0 0 −1 0 −2 −11x2 −1 1 0 1 0 −2 3x3 0 0 1 1 0 −1 5x5 3 0 0 −4 1 5 4

Page 6: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Toevoegen nieuwe variabele

Reeds gezien bij Revised Simplex methode!Beginprobleem min cx o.d.v. Ax = b; x ≥ 0.Dit wordt opgelost met de Simplex methode; je vindt eeneindtableau.Voeg variabele xn+1 toe met kolomvector an+1 enkostencoëfficiënt cn+1.Bepaal uit het tableau cBB−1 en B−1.Reken zn+1 − cn+1 = cBB−1an+1 − cn+1 en yn+1 = B−1an+1uit en voeg een kolom toe aan het tableau voor xn+1.Claim. Als zn+1 − cn+1 ≤ 0, dan correspondeert het nieuwetableau met een optimale oplossing voor het aangepasteprobleem; zo niet, dan kun je de huidige oplossing verbeterendoor xn+1 in de basis te brengen.

Page 7: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Verandering kostencoëfficiënt (1)

Situatie: je hebt het oorspronkelijke probleem opgelost; heteindtableau is bekend (zie hieronder).Mogelijke vraag: Met hoeveel moet c1 minimaal wordenverlaagd om ervoor te zorgen dat de waarde van dedoelstellingsfunctie wordt verlaagd?Voorbeeld:

Min −2x1 + 3x2 − 4x3o.v. x1 − x2 + 2x3 ≤ 7

2x1 + x2 + 3x3 ≤ 22x1 − x2 + x3 ≤ 2x1 , x2 , x3 ≥ 0

x1 x2 x3 x4 x5 x6 RHSz −1 0 0 −1 0 −2 −11x2 −1 1 0 1 0 −2 3x3 0 0 1 1 0 −1 5x5 3 0 0 −4 1 5 4

Page 8: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Verandering kostencoëfficiënt (2)

Neem aan dat alleen de kostencoëfficiënt van xj verandert;deze was cj en wordt c ′j .Neem verder aan dat je het oude probleem (metkostencoëfficiënt cj) hebt opgelost met de simplex methode endat je het eindtableau daarvan kent.Bij de oorspronkelijke doelstellingsfunctievergelijkingz − cx = 0 is een aantal malen de i ’de vergelijking opgeteld,met i = 1, . . . , m); onder xj staat daarom nu (zj − cj).Wanneer je precies hetzelfde doet met de aangepastedoelstellingsfunctievergelijking, (dus met c ′j in plaats van cj),dan komt er onder xj dan (zj − c ′j ) te staan (voor de restverandert er niets).

Page 9: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Verandering kostencoëfficiënt (3)

Er staat nu (zj − cj), terwijl er (zj − c ′j ) hoort te staan: tel erter correctie (cj − c ′j ) bij op.Indien xj de r ’de basisvariabele is, dan moet op de nulde rijeen 0 staan onder xj in een correct tableau (INVARIANT);trek (cj − c ′j ) maal de r ’de rij van de nulde rij af om dit inorde te maken.Indien de nulde rij nu ≤ 0 is, dan heb je een optimaleoplossing gevonden; zo niet, dan moet je itereren.Indien de kostencoëfficiënten van verschillende variabelenveranderen, dan kun je al deze correcties op de huidige nulderij uitvoeren, óf je kunt de nulde rij opnieuw uitrekenen.Onder xj hoort (z ′j − c ′j ) = (c′BB−1aj − c ′j ) te staan; je kuntB−1aj = yj uit het tableau halen.

Page 10: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten variabele (1)

Situatie: je hebt het oorspronkelijke probleem opgelost; heteindtableau is bekend (zie voorbeeld).Probleem: je krijgt te horen dat een bepaalde activiteit moetworden gestopt, bijv. activiteit 1 of activiteit 2.Voorbeeld:

Min −2x1 + 3x2 − 4x3o.v. x1 − x2 + 2x3 ≤ 7

2x1 + x2 + 3x3 ≤ 22x1 − x2 + x3 ≤ 2x1 , x2 , x3 ≥ 0

x1 x2 x3 x4 x5 x6 RHSz −1 0 0 −1 0 −2 −11x2 −1 1 0 1 0 −2 3x3 0 0 1 1 0 −1 5x5 3 0 0 −4 1 5 4

Page 11: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten variabele (2)

Het weglaten van een niet-basisvariabele is triviaal: streepdeze weg uit het tableau.Dit wordt vaak toegepast in geval van kolomgeneratie om hetaantal variabelen niet te groot te laten worden (bijv. wanneerzj − cj onder een bepaalde grens komt, dan wordt xjweggelaten).Voordat je basisvariabele xBr weg kunt laten, moet deze eerstuit de basis worden gepivoteerd! Laat daarna xBr weg en loshet resterende probleem op.Zorg er hierbij voor dat het resterende tableau bruikbaar blijft:óf de nulde rij moet ≤ 0 blijven óf de rechterkant moet ≥ 0blijven (bij voorkeur beide), zodat je daarna de Duale Simplexof de Primale Simplex kunt toepassen.

Page 12: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten variabele (3)

xBr moet uit de basis: je moet dus pivoteren op een yrk 6= 0.Nulde rij moet ≤ 0 blijven: je kunt op een yrj > 0 of op eenyrj < 0 pivoteren.In beide gevallen levert dit een ratioregel op, net als bij deduale simplex:yrk < 0:

k ← argmin{(zj − cj)

yrj

∣∣∣∣∣ yrj < 0}

yrj > 0

k ← argmin{−(zj − cj)

yrj

∣∣∣∣∣ yrj > 0}

Is het eigenlijk verstandig om op een yrj < 0 te pivoteren?Wanneer je de rechterkant ≥ 0 wilt houden, dan moet je eenvariabele xk in de basis brengen waarvoor geldt dat op basisvan de ‘gewone’ ratioregel xBr uit de basis zou zijn gegaan.

Page 13: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten beperking (1)

Situatie: je hebt het oorspronkelijke probleem opgelost; heteindtableau is bekend (zie hieronder).Veranderend beleid: de tweede/derde beperking is niet langergeldig.Voorbeeld:

Min −2x1 + 3x2 − 4x3o.v. x1 − x2 + 2x3 ≤ 7

2x1 + x2 + 3x3 ≤ 22x1 − x2 + x3 ≤ 2x1 , x2 , x3 ≥ 0

x1 x2 x3 x4 x5 x6 RHSz −1 0 0 −1 0 −2 −11x2 −1 1 0 1 0 −2 3x3 0 0 1 1 0 −1 5x5 3 0 0 −4 1 5 4

Page 14: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten beperking (2)

Stel dat de beperking aix ≤ bi wordt weggelaten; dit komt ophetzelfde neer als het onbegrensd maken van de bijbehorendespelingsvariabele!Een onbegrensde variabele x kun je schrijven als x = x ′ − x ′′,met x ′, x ′′ ≥ 0.Noem de spelingsvariabele die hoort bij de weg te latenbeperking x ′. Om te modelleren dat deze variabeleonbegrensd wordt moet je dus nog een variabele x ′′ ≥ 0toevoegen aan het probleem.Er geldt c ′′ = 0 en a′′ = −ei (het tegenovergestelde als bijx ′). De kolom onder x ′′ in het tableau is dus preciestegenovergesteld aan de kolom onder x ′ in het tableau.

Page 15: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten beperking (3)

Indien z ′′ − c ′′ > 0, breng x ′′ in de basis; x ′′ wordt dan xBk(k en i zijn ongerelateerd).Na de iteratie staat onder x ′′ een 0 op de nulde rij en ekdaaronder; onder x ′ staat precies het tegenovergestelde.Je kunt nu de k’de rij uit het tableau weglaten, want deze isniet relevant: je kunt deze vergelijking altijd kloppend krijgendoor x ′′ − x ′ de juiste waarde te geven, en dit kost niets. Laatook x ′ en x ′′ weg uit het tableau.Los het resterende probleem op.Het weglaten van de beperking aix ≥ bi komt op hetzelfdeneer.Om een beperking aix = bi weg te laten moet je hieraanx ′ − x ′′ toevoegen, waarbij x ′ en x ′′ twee nieuwe variabelen≥ 0 zijn.

Page 16: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten beperking: voorbeeld (1)

Voorbeeld: laat de derde beperking weg.

Min −2x1 + 3x2 − 4x3o.v. x1 − x2 + 2x3 ≤ 7

2x1 + x2 + 3x3 ≤ 22x1 − x2 + x3 ≤ 2x1 , x2 , x3 ≥ 0

x1 x2 x3 x4 x5 x6 RHSz −1 0 0 −1 0 −2 −11x2 −1 1 0 1 0 −2 3x3 0 0 1 1 0 −1 5x5 3 0 0 −4 1 5 4

Page 17: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten beperking: voorbeeld (2)

Voeg x7 = −x6 toe.

x1 x2 x3 x4 x5 x6 x7 RHSz −1 0 0 −1 0 −2 2 −11x2 −1 1 0 1 0 −2 2 3x3 0 0 1 1 0 −1 1 5x5 3 0 0 −4 1 5 −5 4

Page 18: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Weglaten beperking: voorbeeld (3)

x1 x2 x3 x4 x5 x6 x7 RHSz −1 0 0 −1 0 −2 2 −11x2 −1 1 0 1 0 −2 2 3x3 0 0 1 1 0 −1 1 5x5 3 0 0 −4 1 5 −5 4

Iteratie: x7 in de basis en x2 eruit.

x1 x2 x3 x4 x5 x6 x7 RHSz 0 −1 0 −2 0 0 0 −14x7 −0, 5 0, 5 0 0, 5 0 −1 1 1, 5x3 0, 5 −0, 5 1 0, 5 0 0 0 3, 5x5 0, 5 2, 5 0 −1, 5 1 0 0 4

Laat de eerste rij en x6, x7 weg, maar je hebt al een optimumgevonden.

Page 19: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Toevoegen beperking (1)

Situatie: je hebt het oorspronkelijke probleem opgelost; heteindtableau is bekend (zie hieronder).Veranderend beleid: er wordt een extra beperking aix ≤ bitoegevoegd. Bijv. x1 + x3 ≥ 6 (of −x1 − x3 ≤ −6).Voorbeeld:

Min −2x1 + 3x2 − 4x3o.v. x1 − x2 + 2x3 ≤ 7

2x1 + x2 + 3x3 ≤ 22x1 − x2 + x3 ≤ 2x1 , x2 , x3 ≥ 0

x1 x2 x3 x4 x5 x6 RHSz −1 0 0 −1 0 −2 −11x2 −1 1 0 1 0 −2 3x3 0 0 1 1 0 −1 5x5 3 0 0 −4 1 5 4

Page 20: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Toevoegen beperking (2)

Algemeen: voeg aix ≤ bi toe.Maak er een vergelijking van door een nieuwespelingsvariabele x0 toe te voegen.Voeg deze vergelijking toe aan het tableau; de coëfficiënt vanx0 in de overige vergelijkingen is 0, en x0 wordt xBm+1 .Maak het tableau in orde: onder een basisvariabele hoort een0 te staan in de (m + 1)’ste rij.Indien de rechterkant ≥ 0, dan blijft de oude oplossingoptimaal (dit is het geval dat de oude oplossing voldeed aande nieuwe beperking). Anders moet je itereren: gebruik DualeSimplex.Als je een gelijkheidsbeperking aix = bi toevoegt, dan kun jehet beste eerst aix ≤ bi of aix ≥ bi toevoegen (kies debeperking waar de oude oplossing aan voldoet) metspelingsvariabele x0.Zorg er dan voor dat x0 uit de basis gaat en wordt weggelaten.

Page 21: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Toevoegen beperking: voorbeeld (1)

Voeg −x1 − x3 ≤ −6 toe.Spelingsvariabele x0 ⇒ −x1 − x3 + x0 = −6.Voeg deze toe aan het tableau en breng het in orde.

x1 x2 x3 x4 x5 x6 x0 RHSz −1 0 0 −1 0 −2 0 −11x2 −1 1 0 1 0 −2 0 3x3 0 0 1 1 0 −1 0 5x5 3 0 0 −4 1 5 0 4x7 −1 0 −1 0 0 0 1 −6 hulprijx7 −1 0 0 1 0 −1 1 −1

Page 22: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Toevoegen beperking: voorbeeld (2)

x1 x2 x3 x4 x5 x6 x0 RHSz −1 0 0 −1 0 −2 0 −11x2 −1 1 0 1 0 −2 0 3x3 0 0 1 1 0 −1 0 5x5 3 0 0 −4 1 5 0 4x7 −1 0 0 1 0 −1 1 −1

Pas duale simplex toe.

Page 23: Optimalisering en Complexiteit, College 12 - Gevoeligheidsanalyse · 2016. 1. 6. · Weglatenbeperking(3) Indienz00−c00> 0,brengx00indebasis;x00wordtdanx B k (k eni zijnongerelateerd).

Toevoegen beperking: voorbeeld (3)

x1 x2 x3 x4 x5 x6 x0 RHSz −1 0 0 −1 0 −2 0 −11x2 −1 1 0 1 0 −2 0 3x3 0 0 1 1 0 −1 0 5x5 3 0 0 −4 1 5 0 4x7 −1 0 0 1 0 −1 1 −1

x1 x2 x3 x4 x5 x6 x0 RHSz 0 0 0 −2 0 −1 −1 −10x2 0 1 0 0 0 −1 −1 4x3 0 0 1 1 0 −1 0 5x5 0 0 0 −1 1 2 3 1x1 1 0 0 −1 0 1 −1 1

Toegelaten (en dus optimale) oplossing gevonden.