LP-problemen modelleren
Inleiding
1
Assumpties
2
LP-problemen oplossen
Grafische oplossing
3
4
Onthoud:
Iso-winstcurve = niveaucurve
Alle iso-winstcurves (โniveaucurvesโ) lopen evenwijdig
Hoe tekenen we een iso-winstcurve?
Neem een willekeurig punt (๐ฅ1, ๐ฅ2 ) in de oplossingsruimte en bereken de bijhorende
z-waarde (โwinstโ)!
Als we het punt (4 , 0) nemen, dan is de bijhorende z-waarde (โwinstโ) gelijk aan
3000. Het punt (4 , 0) ligt dus op de iso-winstcurve ๐ง = 750๐ฅ1 + 1000๐ฅ2 = 3000.
3
3
4
4
We kunnen dit herschrijven naar ๐ฅ2 = 3 โ ๐ฅ1.De richtingscoëfficiënt is dus . We
kunnen deze iso-winstcurve bijgevolg tekenen.
Omdat alle iso-winstcurves van de vorm 750๐ฅ1 + 1000๐ฅ2 = ๐๐๐๐ ๐ก๐๐๐ก๐ zijn, hebben
alle iso-winstcurves dezelfde richtingscoëfficiënt. Dit betekent dat we alle isowinstcurves kunnen vinden door eenvoudigweg de reeds getekende iso-winstcurve
evenwijdig te verschuiven.
Wat is de optimale oplossing?
Optimale oplossing is het punt waar de iso-winstcurve zo hoog mogelijk ligt!
5
LP oplossen: 4 mogelijke situaties
Situatie 1: LP heeft één unieke oplossing.
Situatie 2: LP heeft meer dan 1 optimale oplossing (โalternatieve oplossingenโ). Grafisch
herkennen we dit als de iso-winstcurve een heel lijn-segment raakt voordat ze de
oplossingenruimte verlaat.
Situatie 3: LP is onmogelijk (โonmogelijk probleemโ). Dit betekent dat het LP geen oplossing
heeft. Grafisch herkennen we dit als de oplossingenruimte geen punten bevat.
Situatie 4: LP is onbegrensd (โonbegrensd probleemโ). Dit betekent dat er in een
maximaliseerprobleem punten in de oplossingenruimte zijn die een arbitrair hoge z-waarde
hebben. Grafisch herkennen we dit door het feit dat als we de iso-winstcurve naar boven
verschuiven, we nooit het contact verliezen met de oplossingenruimte.
6
Enkele eigenschappen
Convexe verzameling
Extreem punt van een convexe verzameling
Een punt P in de convexe verzameling S is een extreem punt van S als alle lijnstukken die
volledig in S liggen en waarop P ligt, dat punt P als eindpunt hebben.
Als S een veelhoek is, dan zijn de extreme punten de hoekpunten.
Stellingen
7
Overgang naar standaardvorm en matrixnotatie
Standaardvorm
Voorbeeld:
8
Matrixnotatie
โฆ met โฆ
m = aantal beperkingen
n = aantal variabelen
Standaardvorm en matrixnotatie: voorbeeld
9
Basisoplossingen
Basis- en niet-basisvariabelen
We kunnen elk LP schrijven in matrixvorm:
โฆ met โฆ
m = aantal beperkingen
n = aantal variabelen
We weten:
Wij gaan er in onze context dus altijd van uit dat ๐ โค ๐. Vermits we in standaardvorm al m
beperkingen hebben, hebben we er nog maar (๐ โ ๐) bijkomende nodig om tot een uniek
punt te komen.
Een basisoplossing voor ๐จ๐ = ๐ kunnen we vinden door (๐ โ ๐) variabelen (nietbasisvariabelen of NBV) te kiezen en deze gelijk te stellen aan 0. Daarna zoeken we de
waarde van de resterende ๐ โ (๐ โ ๐) = ๐ variabelen (basisvariabelen of BV) die
voldoen aan ๐จ๐ = ๐.
Elke basisoplossing voor ๐จ๐ = ๐ die we zo vinden is een toelaatbare basisoplossing
(TBO) als alle variabelen groter dan of gelijk aan 0 zijn.
10
Voorbeeld:
Veronderstel een ๐ด๐ฅ = ๐ stelsel van 2 vergelijkingen met 3 variabelen:
๐ฅ1 + ๐ฅ2 = 3
โ๐ฅ2 + ๐ฅ3 = โ1
Om een basisoplossing te vinden, kiezen we 1 niet-basisvariabele (= 3 โ 2). We
bekomen dan 2 basisvariabelen. Als bijvoorbeeld ๐๐ต๐ = {๐ฅ3 }, dan is ๐ต๐ = {๐ฅ1, ๐ฅ2 }.
We stellen ๐ฅ3 = 0 en lossen dan op:
๐ฅ1 + ๐ฅ2 = 3
โ๐ฅ2 + 0 = โ1
We vinden dat ๐ฅ1 = 2 en ๐ฅ2 = 1. Bijgevolg is ๐ฅ1 = 2 en ๐ฅ2 = 1 en ๐ฅ3 = 0 een
basisoplossing voor het stelsel.
Hadden we echter ๐๐ต๐ = {๐ฅ1 } gekozen, dan was ๐ต๐ = {๐ฅ2 , ๐ฅ3 }. We stellen ๐ฅ1 = 0
en lossen dan op:
0 + ๐ฅ2 = 3
โ๐ฅ2 + ๐ฅ3 = โ1
We vinden dat ๐ฅ2 = 3 en ๐ฅ3 = 2. Bijgevolg vinden we de basisoplossing ๐ฅ1 = 0 en
๐ฅ2 = 3 en ๐ฅ3 = 2 voor het stelsel.
Hadden we echter ๐๐ต๐ = {๐ฅ2 }, horen de ๐ต๐ = {๐ฅ1 , ๐ฅ3 }. De basisoplossing wordt
dan gegeven door ๐ฅ1 = 3 en ๐ฅ2 = 0 en ๐ฅ3 = โ1.
Zijn dit toelaatbare basisoplossingen?
Basisoplossing ๐ฅ1 = 2 en ๐ฅ2 = 1 en ๐ฅ3 = 0: JA
Basisoplossing ๐ฅ1 = 0 en ๐ฅ2 = 3 en ๐ฅ3 = 2: JA
Basisoplossing ๐ฅ1 = 3 en ๐ฅ2 = 0 en ๐ฅ3 = โ1: NEE
11
Voorbeeld:
Veronderstel een ๐ด๐ฅ = ๐ stelsel van 2 vergelijkingen met 3 variabelen:
๐ฅ1 + 2๐ฅ2 + ๐ฅ3 = 1
2๐ฅ1 + 4๐ฅ2 + ๐ฅ3 = 3
Als we ๐๐ต๐ = {๐ฅ3 } en ๐ต๐ = {๐ฅ1 , ๐ฅ2 } kiezen, dan zouden we de bijhorende
basisoplossing moeten kunnen vinden door dit stelsel op te lossen:
๐ฅ1 + 2๐ฅ2 = 1
2๐ฅ1 + 4๐ฅ2 = 3
Omdat dit stelsel geen oplossing heeft, is er geen basisoplossing die hoort bij ๐ต๐ =
{๐ฅ1 , ๐ฅ2 }. Onthoud dat niet elke keuze van NBV tot een basisoplossing leidt!
Optimale toelaatbare basisoplossing
In principe, kunnen we alle toelaatbare basisoplossingen van een LP opstellen en dan de
toelaatbare basisoplossing kiezen met de grootste z-waarde om de optimale toelaatbare
basisoplossing te vinden.
Probleem: Zelfs kleine LPโs hebben een groot aantal toelaatbare basisoplossingen!
Oplossing: In plaats van alles te enumereren (โbrute-forcenโ) gaan we verstandig te werk
met het simplex-algoritme.
12
Maximaliseren met simplex-methode
Simplex-methode uitgelegd
Simplex-algoritme begint met een initiële toelaatbare basisoplossing en probeert dan om
betere oplossingen te vinden!
Hoe werkt de simplex-methode?
1) Converteer het LP naar standaardvorm en in matrixnotatie (inclusief rij 0!)
2) Converteer het LP naar kanonieke vorm
โStelsel is in kanonieke vorm als in elke vergelijking een variabele staat met als
coëfficiënt 1 in die vergelijking én de coëfficiënt 0 in alle andere vergelijking.โ
3) Distileer een toelaatbare basisoplossing uit het LP
โIn het LP in kanonieke vorm komen de BV-variabelen voor met als kolom een
eenheidsvector: 0โen en één keer een 1. Er is dus 1 individuele rij per BVvariabele!โ
โAls de rechterkant van het LP in kanonieke vorm overal niet negatief is, dan
kunnen we een toelaatbare basisoplossing zo aflezen.โ
โAls de oorspronkelijke beperkingen van het LP-model minstens één โฅ of =
bevat, dan is een toelaatbare basisoplossing vinden vaak zeer moeilijk. In zoโn
geval gebruiken we de Big M methode of de Two-Phase Simplex methode. Zie
later.โ
4) Ga na of deze toelaatbare basisoplossing optimaal is
โToelaatbare basisoplossing is optimaal als er in rij 0 geen niet-basisvariabelen
zijn met negatieve coëfficiënten. In zoโn geval kunnen we z niet meer verhogen
door één van die NBV-variabelen in de basis te brengen.โ
a. Optimaal? Optimale toelaatbare basisoplossing is gevonden. Einde oefening.
b. Niet optimaal? Pivoteren totdat we een optimale toelaatbare basisoplossing
hebben gevonden.
13
Pivoteren uitgelegd
Pivoteren betekent dat we, voor een stelsel in kanonieke vorm โฆ
- 1 BV-variabele niet-basis maken
- 1 NBV-variabele in de basis brengen
HOE? Door middel van elementaire rij-operaties!
MAAR! Om een toelaatbare basisoplossing te krijgen, mogen de variabelen van onze
basisoplossing niet negatief worden bij het switchen!
Hoe beslissen we welke BV- en NBV-variabelen we kiezen? Hoe garanderen we dat alle BVvariabelen positief blijven?
1) Selecteer willekeurig een inkomende variabele.
2) Bereken de ratio-test op basis van die inkomende variabele en kies als uitgaande
variabele de BV met het kleinste ratio.
OPGELET! Noemer van de ratio moet altijd positief zijn! Zo niet, dan duidt de ratiotest geen geschikte variabele aan.
Opgelet!
Bij conventie zorgen we dat ook in rij 0 steeds de coëfficiënt van elke BV gelijk aan 0
is. Zo kunnen we het effect op ๐ง van de NBV isoleren. Tegelijkertijd weten we wat de
huidige doelfunctiewaarde is.
Als er meerdere inkomende kandidaten zijn, dan kan je willekeurig kiezen. Niettemin,
je kiest best steeds voor de NBV-variabele die het meest negatief is.
14
Voorbeeld
Basisvariabelen:
- ๐ง=0
- ๐ 1 = 10
- ๐ 2 = 15
- ๐ 3 = 25
Niet-basisvariabelen:
- ๐ฅ1 = 0
- ๐ฅ2 = 0
Toelaatbare basisoplossing is dan โฆ
๐ง = 0; ๐ฅ1 = 0; ๐ฅ2 = 0; ๐ 1 = 10; ๐ 2 = 15; ๐ 3 = 25
Optimale toelaatbare basisoplossing?
Neen! NBV-variabelen staan in rij 0 met negatieve coëfficiënten. We kunnen z
verhogen door een NBV-variabele in de basis te brengen (โpivoterenโ).
We kiezen willekeurig ๐ฅ1 als inkomende variabele. De variabele ๐ 3 verlaat dan de
basis, aangezien deze de kleinste ratio heeft.
15
We bekomen dan:
Basisvariabelen:
- ๐ง = 4687.5
- ๐ 1 = 3.75
- ๐ 2 = 8.75
- ๐ฅ1 = 6.25
Niet-basisvariabelen:
- ๐ฅ2 = 0
- ๐ 3 = 0
Optimale toelaatbare basisoplossing?
Neen! NBV-variabele ๐ฅ2 staan in rij 0 met een negatieve coëfficiënt. We kunnen z
verhogen door die NBV-variabele in de basis te brengen (โpivoterenโ).
We kiezen ๐ฅ2 als inkomende variabele. Als ratioโs bekomen we dan:
De variabele ๐ 2 verlaat dan de basis, aangezien deze de kleinste ratio heeft.
16
We bekomen dan:
Basisvariabelen:
- ๐ง = 7750
- ๐ 1 = 2
- ๐ฅ1 = 7
- ๐ฅ2 = 1
Niet-basisvariabelen:
- ๐ 2 = 0
- ๐ 3 = 0
17
Minimaliseren met simplex-methode
18
19
Onbegrensde LPโs
โAlgemene methodes om onbegrensde LPโs (met โฅ of = als beperking) op te lossen zijn de
Big M methode of de Two-Phase Simplex methode.โ
โEen LP is onbegrensd als een recessierichting bestaat.โ
โEen recessierichting bestaat als een LP onbegrensd is.โ
Basisvariabelen:
- ๐ง=
10
- ๐ฅ1 =
- ๐ฅ2 =
3
7
Niet-basisvariabelen:
- ๐ 1 = 0
- ๐2 = 0
3
4
3
20
We wensen ๐2 in te brengen in de basis. Welke basisvariabele kiezen we dan als uitgaande
variabele? In de ratio-test delen we door een negatief getal! De ratio-test duidt dus geen
geschikte variabele aan.
Het corresponderende stelsel is โฆ
10โ3 = ๐ง โ (1โ3 ๐2)
7โ3 = ๐ฅ1 โ (1โ3 ๐2)
4โ3 = ๐ฅ2 โ (1โ3 ๐2 )
Telkens we ๐2 met 1 verhogen, dan stijgt ๐ง met 1โ3
๐ฅ1 met 1โ3
๐ฅ2 met 1โ3
We kunnen ๐ง dus oneindig groot maken, door ๐2 te verhogen. Het LP probleem is een
onbegrensd probleem.
Verbeterde recessierichting in de ruimte (๐ฅ1, ๐ฅ2 , ๐ 1, ๐2 ) is dan gelijk aan โฆ
(1โ3 , 1โ3 , 0 , 1)
Genormeerde verbeterde recessierichting is dan gelijk aan โฆ
3
โ (1โ3 , 1โ3 , 0 , 1)
โ11
(!!) Verbeterende recessierichting = vector met daarin een 1 bij het element dat
oneindig mag verhoogd worden, een 0 bij de elementen die hierbij niet veranderen
(โniet-basisvariabelenโ), en de verhoging van de andere elementen (!!)
(!!) Hoe een vector normeren?
๏จ Neem de vierkantswortel van de som van de kwadraten van de elementen
van die vector
๏จ Neem 1โ๐๐๐ฃ๐๐๐๐๐ ๐๐๐ ๐ข๐๐ก๐๐๐ก
๏จ Vermenigvuldig dit resultaat met de oorspronkelijke vector
๏จ Bekomen vector is het genormeerde resultaat (!!)
21
Big M methode
โAlgemene methode om onbegrensde LPโs (met โฅ of = als beperking) op te lossen is de Big
M methode.โ
22
Rij-operatie: ๐
0 โ ๐
0 โ ๐ โ ๐
2
Probleem: Niet-basisvariabelen ๐ฅ1 en ๐ฅ2 hebben een negatieve coëfficiënt in rij 0.
Oplossing: We kiezen ๐ฅ1 als inkomende variabele omdat deze het meest negatief is. Ratiotest duidt ๐ 1 aan als uitgaande variabele.
Probleem: Niet-basisvariabele ๐ฅ2 heeft een negatieve coëfficiënt in rij 0.
Oplossing: We kiezen ๐ฅ2 als inkomende variabele. Ratio-test duidt ๐2 aan als uitgaande
variabele.
Probleem: Niet-basisvariabele ๐2 heeft een negatieve coëfficiënt in rij 0.
Oplossing: We wensen ๐2 in te brengen in de basis. Welke basisvariabele kiezen we dan als
uitgaande variabele? In de ratio-test delen we door een negatief getal! De ratio-test duidt
dus geen geschikte variabele aan. ๏จ Onbegrensd LP
23
OPGELET! Op het einde van de Big M methode geldt:
OPGELET! Wanneer een artificiële variabele uit de basis verdwijnt, mag hij nooit terug
worden ingevoerd, ook al heeft hij een negatieve coëfficiënt. Meer zelfs, zodra de artificiële
variabele uit de BV verdwijnt, kan de kolom in de simplextabel worden weggelaten.
OPGELET! Soms kan meer dan 1 artificiële variabele nodig zijn, waardoor ook meer dan 1 M
component aan de doelfunctie wordt toegevoegd. Gewoonlijk is er 1 artificiële variabele
voor elke โฅ of = beperking.
OPGELET! Bij een min-probleem wordt ๐๐๐ opgeteld bij de doelfunctie.
24
Two-Phase Simplex methode
โAlgemene methode om onbegrensde LPโs (met โฅ of = als beperking) op te lossen is de
Two-Phase Simplex methode.โ
Artificiële variabele toevoegen zoals bij Big M methode:
Fase I: Som van alle artificiële variabelen minimaliseren
OPGELET! Rij 0โ is louter een tussenstap omdat we bij conventie hebben besloten dat
de coëfficiënten van de basisvariabelen in de eerste rij gelijk aan 0 moeten zijn. De
uitgevoerde rij-operatie is ๐
0โฒ = ๐
0 + ๐
2 .
PROBLEEM! Niet-basisvariabele ๐ฅ1 heeft een positieve coëfficiënt.
OPLOSSING! Basisvariabele ๐ 1 heeft de laagste ratio en wordt dus uit de basis
gehaald. Variabele ๐ฅ1 komt in ruil in de basis.
25
PROBLEEM! Niet-basisvariabele ๐ฅ2 heeft een positieve coëfficiënt.
OPLOSSING! Basisvariabele ๐2 heeft de laagste ratio en wordt dus uit de basis
gehaald. Variabele ๐ฅ2 komt in ruil in de basis.
Oplossing van de optimale fase I tabel kan 3 uitkomsten hebben:
1) Optimale waarde van ๐ค is groter dan 0 ๏จ Originele LP heeft geen (toelaatbare)
oplossing
2) Optimale waarde van ๐ค is gelijk aan 0, en geen artificiële variabelen bevinden
zich in de optimale fase I basis ๏จ Alle rijen van de optimale fase I tabel worden
overgenomen voor de fase II tabel. Maar alle kolommen met artificiële
variabelen worden weggelaten. Rij 0 wordt eveneens niet overgenomen, maar
gecreëerd vanuit de oorspronkelijke doelfunctie.
3) Optimale waarde van ๐ค is gelijk aan 0, en minstens één artificiële variabele
bevindt zich in de optimale fase I basis ๏จ Haal eerst alle artificiële variabelen
uit de basis. Voor de fase II tabel, gaan we verder met mogelijkheid 2.
26
Fase II: Optimale oplossing zoeken voor het oorspronkelijke LP
We bevinden ons in situatie 2!
Iteraties verder identiek zoals altijd uitgevoerd.
Conclusie โ Big M en twee-fasen methode
Big M methode
Impact van de artificiële variabelen elimineren door bij de doelfunctie ๐ด๐๐ af te
trekken (max-probleem)
Impact van de artificiële variabelen elimineren door bij de doelfunctie ๐ด๐๐ op te
tellen (min-probleem)
Twee-fasen methode
Impact van de artificiële variabelen elimineren door de som van de artificiële
variabele te minimaliseren (max- en min-probleem)
Geïntegreerde oefening
Zie slides!
27
Variabelen zonder tekenbeperking
28
(!!) O.i.t. = ongelimiteerd in teken (!!)
29
Sensitiviteitsanalyse
Voorbeeld โ Dieetprobleem
Duale prijs of schaduwprijs van een beperking
=
Verandering van ๐ per verandering van 1 eenheid in het rechterlid van die beperking
MAXIMALISATIEPROBLEEM
Positieve duale prijs of schaduwprijs van een beperking:
Verandering van ๐ en verandering van 1 eenheid in het rechterlid
van die beperking verlopen in dezelfde richting
Negatieve duale prijs of schaduwprijs van een beperking:
Verandering van ๐ en verandering van 1 eenheid in het rechterlid
van die beperking verlopen in tegengestelde richting
MINIMALISATIEPROBLEEM
Positieve duale prijs of schaduwprijs van een beperking:
Verandering van ๐ en verandering van 1 eenheid in het rechterlid
van die beperking verlopen in tegengestelde richting
Negatieve duale prijs of schaduwprijs van een beperking:
Verandering van ๐ en verandering van 1 eenheid in het rechterlid
van die beperking verlopen in dezelfde richting
30
31
Enkele vragen en antwoorden:
1) Indien een brownie 30 cent kost, wat is dan de nieuwe optimale oplossing?
o Daling van 20 cent van de kostprijs van een brownie ๏จ Allowable decrease (27.5 cent) is
niet overschreden ๏จ Optimale oplossing (0,3,1,0) blijft dezelfde
o Er worden nog steeds geen brownies gegeten ๏จ Optimale kost verandert niet
2) Indien een fles cola 35 cent kost, wat is dan de nieuwe optimale oplossing?
o Stijging van 5 cent van de kostprijs van een fles cola ๏จ Allowable increase (10 cent) is niet
overschreden ๏จ Optimale oplossing (0,3,1,0) blijft dezelfde
o Er wordt/werd 1 fles cola gedronken ๏จ Optimale kost stijgt naar 95 cent
3) Indien minstens 8 oz chocolade vereist was, wat zou dan de kost van het optimale dieet zijn?
o Stijging van 2 oz van de vereiste van chocolade ๏จ Allowable increase (4 oz) is niet
overschreden ๏จ Optimale oplossing (0,3,1,0) blijft dezelfde
o Chocolade heeft geen slack/surplus ๏จ Beperking van chocolade is bindend ๏จ Optimale
kost verandert ๏จ Duale prijs van de beperking is โ2.5 ๏จ Minimalisatieprobleem met
negatieve duale prijs ๏จ Doelfunctie stijgt met tweemaal 2.5, tot 95 cent
32
4) Indien minstens 600 cal benodigd waren, wat zou dan de kost van het optimale dieet zijn?
o Stijging van 100 cal van de vereiste calorieën ๏จ Allowable increase (250) is niet
overschreden ๏จ Optimale oplossing (0,3,1,0) blijft dezelfde
o Calorieën heeft een slack (โtekortโ) van 250 ๏จ Beperking van calorieën is niet bindend ๏จ
Optimale kost verandert niet
5) Indien minstens 9 oz suiker benodigd was, wat zou dan de kost van het optimale dieet zijn?
o Daling van 1 oz van de vereiste suiker ๏จ Allowable decrease (4) is niet overschreden ๏จ
Optimale oplossing (0,3,1,0) blijft dezelfde
o Suiker heeft geen slack/surplus ๏จ Beperking van suiker is bindend ๏จ Optimale kost
verandert ๏จ Duale prijs van de beperking is โ7.5 ๏จ Minimalisatieprobleem met negatieve
duale prijs ๏จ Doelfunctie daalt met eenmaal 7.5, tot 82.5 cent
6) Wat mag de maximale prijs zijn van een stuk taart, opdat het optimaal zou zijn om taart te eten?
o Elke eenheid taart die we zouden eten verslechtert de doelfunctie met 50 cent (= de
gereduceerde kost) ๏จ Als de prijs van taart met 50 cent zou dalen, dan kunnen we taart
eten zonder ongewenst effect op de doelfunctie
o Taart kost momenteel 80 cent ๏จ Daling van 50 cent is nodig ๏จ Maximale prijs van taart is
30 cent
7) Wat zou de prijs van een brownie maximaal mogen zijn, opdat het optimaal zou zijn om een
brownie te eten?
o Elke eenheid brownie die we zouden eten verslechtert de doelfunctie met 27.5 cent (= de
gereduceerde kost) ๏จ Als de prijs van brownie met 27.5 cent zou dalen, dan kunnen we
brownies eten zonder ongewenst effect op de doelfunctie
o Brownie kost momenteel 50 cent ๏จ Daling van 27.5 cent is nodig ๏จ Maximale prijs van
brownies is 22.5 cent
8) Gebruik de informatie omtrent SLACK OR SURPLUS in de Lindo-output om te bepalen wat de
toelaatbare stijging en daling is voor het rechterlid van de vetbeperking. Indien 10 oz vet vereist
was, zou het optimum dan veranderen?
o Vet heeft een slack/surplus ๏จ Beperking van vet is niet bindend
o Allowable increase van vet is 5 ๏จ Rechterlid van de vetbeperking mag met 5 toenemen,
totdat de beperking bindend wordt
o Allowable decrease van vet is infinity ๏จ Beperking van vet nog minder restrictief maken zal
de optimale oplossing, noch de optimale kost veranderen ๏จ Rechterlid van de vetbeperking
mag met oneindig veel afnemen
33
9) Stel dat we een vijfde voedingsmiddel in overweging nemen, namelijk cornflakes, te consumeren
in porties van 100 gram. Één zoโn portie bevat 250 cal, 0.5 oz chocolade, 2 oz suiker en 0.5 oz vet.
Wat is de maximale prijs van zoโn portie cornflakes opdat we ze in ons dieet zouden opnemen?
o We voegen eigenlijk een nieuwe kolom toe in het oorspronkelijke model, met als
coëfficiënten in de beperkingen respectievelijk 250, 0.5, 2 en 0.5.
o Gereduceerde kost van de nieuwe kolom cornflakes
= (โ2.5 โ 0.5) + (7.5 โ 2) + ๐ = ๐ โ 16.25
Gereduceerde kost is nul of negatief als ๐ โค 16.25, hetgeen redelijk weinig is vergelijken
met de prijzen van de huidige artikels.
Bemerk: ๐ is hier de prijs!
MAXIMALISATIEPROBLEEM
Gereduceerde kost van een nieuwe kolom met doelfunctiecoëfficiënt ๐:
= โ(๐ฌ๐๐ก๐๐๐ฎ๐ฐ๐ฉ๐ซ๐ข๐ฃ๐ฌ โ ๐๐๐ฉ๐๐ซ๐ค๐ข๐ง๐ ๐ฌ๐๐จë๐๐๐ข๐๐ขë๐ง๐ญ) โ ๐
MINIMALISATIEPROBLEEM
Gereduceerde kost van een nieuwe kolom met doelfunctiecoëfficiënt ๐:
= โ(๐ฌ๐๐ก๐๐๐ฎ๐ฐ๐ฉ๐ซ๐ข๐ฃ๐ฌ โ ๐๐๐ฉ๐๐ซ๐ค๐ข๐ง๐ ๐ฌ๐๐จë๐๐๐ข๐๐ขë๐ง๐ญ) + ๐
34
Geheeltallige programmering I
Lineaire programmering versus geheeltallige programmering
Lineaire programmering
Bij lineaire programmering bestaat de โdeelbaarheidassumptieโ.
De beperking ๐ฅ1 , ๐ฅ2 โฅ 0 moet uitdrukkelijk worden opgenomen.
Voor een LP geldt:
- Als er een optimale oplossing bestaat, dan bestaat minstens 1 extreem punt van de
oplossingsruimte dat optimaal is
- Oplossingsruimte van het LP is convex
- Elk extreem punt van de LP-oplossingsruimte is een toelaatbare basisoplossing
- Elke toelaatbare basisoplossing is een extreem punt van de LP-oplossingsruimte
35
Optimale basisvariabelen = {๐ฅ1 , ๐ฅ2 }
Optimale niet-basisvariabelen = {๐ 1, ๐ 2}
โฆ met ๐ 1 en ๐ 2 zijn de verschil-variabelen bij beperkingen 1 en 2 voor de overgang
naar standaardvorm
Geheeltallige programmering of integer programmering (IP)
Bij geheeltallige programmering gaat de โdeelbaarheidassumptieโ niet op.
De beperking ๐ฅ1 , ๐ฅ2 โ {0,1,2, โฆ } moet uitdrukkelijk worden opgenomen.
LP-relaxatie van een IP = geheeltalligheidseis van het IP weglaten
We werken in deze cursus met:
- Normale integer programmering (IP)
- Mixed-integer LP (MILP)
- Zero-one LP (ZOIP)
- Binary IP (BIP)
Voor een IP geldt:
- Oplossingsruimte van het IP is niet convex
36
Hoe een IP oplossen? Branch-and-bound (B&B) (โvertak-en-begrensโ)
= partitioneren van de zoekruimte
= opsplitsen van de oplossingsruimte van de LP-relaxatie in deelverzamelingen door
beperkingen bij te voegen op de waarden van de geheeltallige beslissingsvariabelen
37
Stap 1. We starten van de optimale LP-oplossing en kiezen willekeurig ๐ฅ1 om op te splitsen
Stap 2. Gevonden oplossing bevat nog steeds een niet-geheeltallige variabele
Stap 3. Gevonden oplossing heeft een lagere LUB en wordt dus โfanthomedโ
Stap 4. Mogelijkheid is onmogelijk vanwege de arbeidsbeperking
Stap 5. Gevonden oplossing bevat nog steeds een niet-geheeltallige variabele
Stap 6. Gevonden oplossing is geheeltallig en wordt gemarkeerd als kandidaat-oplossing
(โGLBโ)
Stap 7. Gevonden oplossing is geheeltallig en wordt gemarkeerd als kandidaat-oplossing
(โGLBโ)
Stap 8. GLB gevonden in stap 6 is optimaal
38
Hoe een IP oplossen?
1) Los LP-relaxatie probleem op
a. Geheeltallige oplossing? Einde oefening
b. Geen geheeltallige oplossing? Opsplitsen van de oplossingenruimte in
subproblemen
2) Eerste opsplitsing gebeurt met een willekeurige niet-geheeltallige variabele uit de
optimale LP-oplossing
3) Andere opsplitsingen gebeuren met variabelen die in het voorgaande subprobleem
niet geheeltallig waren
4) Los elk subprobleem afzonderlijk op
a. Subprobleem is โinfeasibleโ als de beperkingen niet voldoen
b. Subprobleem heeft een geheeltallige oplossing? Bewaar deze als als
โkandidaat-oplossingโ of โincumbentโ. Maak geen subproblemen hieronder
meer. Vergelijking uiteindelijk alle kandidaat-oplossingen en kies de beste.
c. Subprobleem is โfanthomedโ als haar LUB slechter (lager bij max-probleem /
hoger bij min-probleem) is dan de huidige incumbent of het alternatieve
subprobleem
39
Verband lineaire en geheeltallige programmering
MAXIMALISATIEPROBLEEM
๐โ๐ณ๐ท โฅ ๐โ๐ฐ๐ท
๐โ๐ณ๐ท = ๐๐๐๐๐๐๐๐ ๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐
๐ ๐๐๐ ๐ณ๐ท
๐โ๐ฐ๐ท = ๐๐๐๐๐๐๐๐ ๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐
๐ ๐๐๐ ๐ฐ๐ท
MINIMALISATIEPROBLEEM
๐โ๐ณ๐ท โค ๐โ๐ฐ๐ท
๐โ๐ณ๐ท = ๐๐๐๐๐๐๐๐ ๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐
๐ ๐๐๐ ๐ณ๐ท
๐โ๐ฐ๐ท = ๐๐๐๐๐๐๐๐ ๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐
๐ ๐๐๐ ๐ฐ๐ท
โOptimale oplossing van een LP is altijd beter dan die van een IP!โ
Voor IPโs bestaan betere en slechtere formuleringen. Hoe meten?
๏ฐ Gap is een statistiek die de kwaliteit van een IP-formulering aanduidt
๏ฐ Beste formulering van een IP-model heeft een gap van 0%
GUB, GLB en LUB
GUB = global upper bound
Aangezien de optimale oplossing van een LP altijd beter is dan die van een IP, vormt de optimale LPoplossing een bovengrens voor de optimale IP-oplossing.
LUB = local upper bound
Niet-optimale oplossingen die we vinden bij elk subprobleem vormen ondergrenzen voor de
optimale IP-oplossing.
GLB = global lower bound
Niet-optimale kandidaatoplossingen vormen ondergrenzen voor de optimale IP-oplossing.
40
Integer programmering problemen modelleren
0/1 knapzak-probleem
41
Hoe kunnen we de volgende logische beperkingen modelleren via lineaire beperkingen:
1) We kunnen slechts twee investeringen doen.
๐ฅ1 + ๐ฅ2 + ๐ฅ3 + ๐ฅ4 โค 2
2) Als investering 2 wordt aangegaan, dan moet ook investering 4 worden aangegaan.
๐ฅ2 โ ๐ฅ4 โค 0
โAls ๐ฅ2 gelijk is aan 1, dan moet ๐ฅ4 ook gelijk zijn aan 1 opdat de beperking geldt.โ
โAls ๐ฅ2 gelijk is aan 0, dan mag ๐ฅ4 gelijk zijn aan 0 of 1 opdat de beperking geldt. Aangezien
investering 2 niet wordt gedaan, is deze beperking niet relevant.โ
3) Als investering 1 wordt aangegaan, dan kan investering 3 niet worden aangegaan.
๐ฅ1 + ๐ฅ3 โค 1
โAls ๐ฅ1 gelijk is aan 1, dan moet ๐ฅ3 gelijk zijn aan 0 opdat de beperking geldt.โ
โAls ๐ฅ1 gelijk is aan 0, dan mag ๐ฅ3 gelijk zijn aan 0 of 1 opdat de beperking geldt. Aangezien
investering 1 niet wordt gedaan, is deze beperking niet relevant.โ
Geheeltallige knapzak probleem
Bij een geheeltallig knapzak is ๐ฅ๐ โ {0,1,2, โฆ }.
Een investering kan dus meermaal gekozen worden!
42
Items meenemen in rugzak
43
44
Set covering / packing / partitioning โ Facility location
Er zijn 6 steden in Limburg. De provincie moet bepalen waar ze brandweerstations zal
bouwen. Gezien de kost ervan, wil ze er zo weinig mogelijk bouwen, maar wel nog
garanderen dat er in elke stad binnen 15 minuten een brandweerwagen staat. De rijtijden
tussen de steden zijn hieronder weergegeven.
VAN
Stad 1
Stad 2
Stad 3
Stad 4
Stad 5
Stad 6
Stad 1
0
10
20
30
30
20
Stad 2
10
0
25
35
20
10
Stad 3
20
25
0
15
30
20
NAAR
Stad 4
30
35
15
0
15
25
Stad 5
30
20
30
15
0
14
Stad 6
20
10
20
25
14
0
Voor elke stad moet Limburg beslissen of ze er een brandweerstation bouwt. We definiëren
de 0-1 variabelen als volgt:
๐ฅ๐ = 1 brandweerstation in stad ๐
๐ฅ๐ = 0 geen brandweerstation in stad ๐
Doelfunctie is gegeven door:
๐๐๐ ๐ง = ๐ฅ1 + ๐ฅ2 + ๐ฅ3 + ๐ฅ4 + ๐ฅ5 + ๐ฅ6
Met als beperkingen:
๐ฅ1 + ๐ฅ2 โฅ 1
๐ฅ1 + ๐ฅ2 + ๐ฅ6 โฅ 1
๐ฅ3 + ๐ฅ4 โฅ 1
๐ฅ3 + ๐ฅ4 + ๐ฅ5 โฅ 1
๐ฅ4 + ๐ฅ5 + ๐ฅ6 โฅ 1
๐ฅ2 + ๐ฅ5 + ๐ฅ6 โฅ 1
๐ฅ๐ = 0 ๐๐ 1
(Stad 1)
(Stad 2)
(Stad 3)
(Stad 4)
(Stad 5)
(Stad 6)
(i = 1, 2, 3, 4, 5, 6)
Optimale oplossing voor dit IP-probleem is:
๐ง=2
๐ฅ2 = ๐ฅ4 = 1
๐ฅ1 = ๐ฅ3 = ๐ฅ5 = ๐ฅ6 = 1
45
Vaste kosten / fixed charge
Gegeven is onderstaand productieplanningsprobleem. We wensen graag de winst te
maximaliseren.
Beslissingsvariabelen:
๐1 = ๐๐๐๐ก๐๐ ๐๐๐๐๐๐๐ข๐๐๐๐๐๐ โ๐๐๐๐๐
๐2 = ๐๐๐๐ก๐๐ ๐๐๐๐๐๐๐ข๐๐๐๐๐๐ ๐ โ๐๐๐ก๐
๐3 = ๐๐๐๐ก๐๐ ๐๐๐๐๐๐๐ข๐๐๐๐๐๐ ๐๐๐๐๐๐๐
We wensen te bereiken:
๐1 > 0 โ ๐๐๐ ๐ก๐ ๐๐ฃ๐๐โ๐๐๐๐๐๐ ๐ก ๐ฃ๐๐ 200
๐1 = 0 โ ๐บ๐๐๐ ๐ฃ๐๐ ๐ก๐ ๐๐ฃ๐๐โ๐๐๐๐๐๐ ๐ก
๐2 > 0 โ ๐๐๐ ๐ก๐ ๐๐ฃ๐๐โ๐๐๐๐๐๐ ๐ก ๐ฃ๐๐ 150
๐2 = 0 โ ๐บ๐๐๐ ๐ฃ๐๐ ๐ก๐ ๐๐ฃ๐๐โ๐๐๐๐๐๐ ๐ก
๐3 > 0 โ ๐๐๐ ๐ก๐ ๐๐ฃ๐๐โ๐๐๐๐๐๐ ๐ก ๐ฃ๐๐ 100
๐3 = 0 โ ๐บ๐๐๐ ๐ฃ๐๐ ๐ก๐ ๐๐ฃ๐๐โ๐๐๐๐๐๐ ๐ก
Hoe implementeren we dit? We definiëren een bijkomende beslissingsvariabele:
๐1 = 1 ๐๐๐ โ๐๐๐๐๐ ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐๐
๐1 = 0 ๐๐๐ โ๐๐๐๐๐ ๐๐๐๐ก ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐๐
๐2 = 1 ๐๐๐ ๐ โ๐๐๐ก๐ ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐๐
๐2 = 0 ๐๐๐ ๐ โ๐๐๐ก๐ ๐๐๐๐ก ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐๐
๐3 = 1 ๐๐๐ ๐๐๐๐๐๐๐ ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐๐
๐3 = 0 ๐๐๐ ๐๐๐๐๐๐๐ ๐๐๐๐ก ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐๐
46
We wensen met andere woorden โฆ
๐1 > 0 โ ๐1 = 1
๐1 = 0 โ ๐1 = 0
๐2 > 0 โ ๐2 = 1
๐2 = 0 โ ๐2 = 0
๐3 > 0 โ ๐3 = 1
๐3 = 0 โ ๐3 = 0
We dwingen dit af met een lineaire beperking met een constante M:
๐1 โค ๐ โ ๐1
๐2 โค ๐ โ ๐2
๐3 โค ๐ โ ๐3
โAls ๐1 > 0, dan moet ๐1 = 1 opdat de lineaire beperking geldt.โ
โAls ๐1 = 0, dan kan ๐1 = 0 of ๐1 = 1 opdat de lineaire beperking geldt. Omdat ๐1 = 0 minder
kostelijk is dan ๐1 = 1, zal ๐1 = 0 worden gekozen als ๐1 = 0.โ
Hoe groot kiezen we de constante M?
- Heel groot, zoals 999
- Strakke bovengrens op de productiehoeveelheden, zodat optimum bij LP-relaxatie
dichter bij IP-optimum zit
150 160
๐1 = min {
,
}
3
4
๐2 = min {
150 160
,
}
2
3
150 160
๐3 = min {
,
}
6
4
47
Combinatorische restricties
48
Hoe implementeren we dit? We definiëren een bijkomende beslissingsvariabele:
๐ง1 = 1 ๐๐๐ ๐๐๐๐๐ข๐๐ก 1 ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐ก
๐ง1 = 0 ๐๐๐ ๐๐๐๐๐ข๐๐ก 1 ๐๐๐๐ก ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐ก
๐ง2 = 1 ๐๐๐ ๐๐๐๐๐ข๐๐ก 2 ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐ก
๐ง2 = 0 ๐๐๐ ๐๐๐๐๐ข๐๐ก 2 ๐๐๐๐ก ๐๐๐๐๐๐๐ข๐๐๐๐๐ ๐ค๐๐๐๐ก
We wensen met andere woorden โฆ
๐1 > 0 โ ๐ง1 = 1
๐1 = 0 โ ๐ง1 = 0
๐2 > 0 โ ๐ง2 = 1
๐2 = 0 โ ๐ง2 = 0
We dwingen dit af met een lineaire beperking met een constante M:
๐1 โค ๐ โ ๐ง1
๐2 โค ๐ โ ๐ง2
We wensen dus deze implicatie te modelleren:
๐ง1 + ๐ง2 โฅ 1 โ ๐3 + ๐4 + ๐5 โฅ ๐
Laten we dit in twee stappen benaderen:
๐ง1 + ๐ง2 โฅ 1 โ ๐ฝ = 1
๐๐๐ก ๐ฝ โ {0,1}
๐ฝ = 1 โ ๐3 + ๐4 + ๐5 โฅ ๐
Dit is te bereiken via:
๐ง1 + ๐ง2 โค 2๐ฝ
๐3 + ๐4 + ๐5 โฅ ๐ฝ๐
๐๐
0
0
1
1
๐๐
0
1
0
1
๐ท
0 of 1
1
1
1
49
Als IP-formulering bekomen we dan:
50
โโฆofโฆโ beperkingen
We willen dat er aan minstens 1 van de onderstaande beperkingen (en mogelijk beide)
wordt voldaan:
๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โค 0
๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โค 0
We modelleren hiervoor de onderstaande 2 lineaire beperkingen:
๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โค ๐๐ฆ
๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โค ๐(1 โ ๐ฆ)
๐ฆ = 0 ๐๐ 1
๐ = ๐๐๐ก๐๐ ๐ฃ๐๐๐๐๐๐๐๐ ๐๐๐๐๐ก ๐๐๐๐๐ง๐๐ ๐ง๐๐๐๐ก
๐ โค ๐ ๐๐ ๐ โค ๐ ๐๐๐๐๐ก ๐ฃ๐๐๐ ๐๐๐๐
๐ค๐๐๐๐๐๐ ๐ฃ๐๐ ๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐
โAls ๐ฆ = 0, dan worden de beperkingen ๐ โค 0 en ๐ โค ๐. Bijgevolg is er sowieso voldaan aan de eerste
beperking, en mogelijk ook aan de tweede beperking.โ
โAls ๐ฆ = 1, dan worden de beperkingen ๐ โค ๐ en ๐ โค 0. Bijgevolg is er sowieso voldaan aan de tweede
beperking, en mogelijk ook aan de eerste beperking.โ
โAls โฆ dan โฆโ beperkingen
We willen dat ๐ (๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) > 0 impliceert dat ๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โฅ 0 geldt. We
modelleren hiervoor de onderstaande 2 lineaire beperkingen:
โ๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โค ๐๐ฆ
๐(๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐ ) โค ๐(1 โ ๐ฆ)
๐ฆ = 0 ๐๐ 1
๐ = ๐๐๐ก๐๐ ๐ฃ๐๐๐๐๐๐๐๐ ๐๐๐๐๐ก ๐๐๐๐๐ง๐๐ ๐ง๐๐๐๐ก
๐ โค ๐ ๐๐ โ ๐ โค ๐ ๐๐๐๐๐ก ๐ฃ๐๐๐ ๐๐๐๐
๐ค๐๐๐๐๐๐ ๐ฃ๐๐ ๐ฅ1 , ๐ฅ2 , โฆ , ๐ฅ๐
โAls ๐ > 0 geldt, dan kan enkel aan de tweede beperking worden voldaan als ๐ฆ = 0. De eerste beperking
wordt dan โ๐ โค 0 of ๐ โฅ 0. Het gewenste resultaat is bekomen.โ
โAls ๐ > 0 niet geldt, dan kan aan de tweede beperking worden voldaan als ๐ฆ = 0 of ๐ฆ = 1. Als we ๐ฆ = 0
kiezen, dan wordt de eerste beperking โ๐ โค 0 of ๐ โฅ 0. Als we ๐ฆ = 1 kiezen, dan wordt de eerste
beperking โ๐ โค ๐ of ๐ โฅ ๐, wat sowieso geldt.โ
51
Magazijnvestiging
Wal-Mart heeft winkels in 4 regioโs van de VS, waaronder West, Midwest, East en South. Ze
wenst uiteraard dat alle deze regioโs bevoorraad kunnen worden door één magazijn aan
een zo laag mogelijk kost. Ze moet beslissen waar ze magazijnvestigingen opent: in Los
Angeles, Chicago, New York of Atlanta.
Er bestaat een vaste kost voor het openen van een magazijn van $50.
De kosten om elke regio te bedienen vanaf een magazijn zijn hieronder weergegeven.
Beslissingsvariabelen:
Doelfunctie:
52
Beperkingen:
- Elke regio mag slechts bediend worden door 1 stad
- Als een regio bediend wordt door een stad, dan moet er een magazijn staan in die
stad
Herschrijf beperking 6 bijvoorbeeld naar โฆ
๐11 + ๐21 + ๐31 + ๐41 โค 4๐1
Een magazijn is nodig in Los Angeles als ๐11 = 1, ๐21 = 1, ๐31 = 1 of ๐41 = 1. Als
een van deze variabelen gelijk is aan 1, dan zorgt deze beperking ervoor dat ๐1 = 1,
en dus dat Wal-Mart daar een magazijn moet plaatsen.
Als al deze variabelen gelijk zijn aan 0, dan zal vanwege het principe van
kostminimalisatie gekozen worden voor ๐1 = 0. De kost om een magazijn te bouwen
in Los Angeles zal dus niet worden gedaan.
Waarom is er een 4 nodig aan de rechterkant van de beperking? Om te kunnen
garanderen dat een magazijn alle 4 de regioโs zou kunnen bevoorraden.
IP-optimum wordt bereikt daar waar geldt โฆ
53
Multicriteria beslissingsanalyse (LEZEN)
54
Cutting-plane algoritme
= alternatieve methode voor B&B bij het oplossen van IPโs
Generisch cutting-plane algoritme:
1) Los de LP-relaxatie op via de simplex-methode. Laat ๐ฅ โ een optimum voorstellen.
2) Als alle variabelen in de oplossing ๐ฅ โ geheeltallig zijn, dan is deze oplossing de
optimale oplossing voor het IP
3) Als niet alle variabelen in de oplossing ๐ฅ โ geheeltallig zijn, voeg dan een lineaire
ongelijkheid (โsnedeโ) toe waaraan alle geheeltallige oplossingen van het IP voldoen,
maar niet ๐ฅ โ
4) Ga terug naar stap 1
Hoe kiezen we de juiste snede / lineaire ongelijkheid?
- Gomory-snedes
- Niet-nul-snedes
55
Gomory-snedes
1) In de optimale tabel van de LP-relaxatie, kies een beperking waarvan de rechterkant een
breuk is. Als meerdere beperkingen een breukwaarde hebben, kies dan de beperking
waarvan het breukdeel zo nauw mogelijk aanleunt tegen ½. Deze beperking zal worden
gebruikt om een cut op te stellen.
2) Herschrijf de rechterkant en de coëfficiënten van alle variabelen (linkerkant) van de
gekozen beperking als [๐] + ๐, waarbij [๐] de integer is net kleiner dan of gelijk aan ๐ en
0 โค ๐ < 1.
Bijvoorbeeld: 3,75 = 3 + 0,75
Bijvoorbeeld: โ1,25 = โ2 + 0,75
Bijvoorbeeld: 0,25 = 0 + 0,25
Bijvoorbeeld: โ0,25 = โ1 + 0,25
Bijvoorbeeld: 1,50 = 1 + 0,50
3) Herschrijf de beperking als โฆ
๐ด๐๐๐ ๐ก๐๐๐๐๐ ๐๐๐ก ๐๐๐ก๐๐๐๐ ๐๐ë๐๐๐๐๐ë๐๐ก๐๐ = ๐๐๐๐ ๐ก๐๐๐๐๐ ๐๐๐ก ๐๐๐๐ข๐ ๐๐ë๐๐๐๐๐ë๐๐ก๐๐
4) De snede wordt dan gevormd als volgt โฆ
MAXIMALISATIEPROBLEEM
๐ด๐๐๐ ๐ก๐๐๐๐๐ ๐๐๐ก ๐๐๐๐ข๐ ๐๐ë๐๐๐๐๐ë๐๐ก๐๐ โค 0
MINIMALISATIEPROBLEEM
๐ด๐๐๐ ๐ก๐๐๐๐๐ ๐๐๐ก ๐๐๐ก๐๐๐๐ ๐๐ë๐๐๐๐๐ë๐๐ก๐๐ โค 0
56
Voorbeeld:
Oplossing van de LP-relaxatie geeft (in de oorspronkelijke variabelen) โฆ
15 25
(1) (1)
(๐ฅ1 , ๐ฅ2 ) = ( , )
10 10
Één van de beperkingen in de optimale LP-relaxatie tableau is โฆ
๐ฅ2 + 0,10๐ 1 + 0,40๐ 2 = 2,5
โฆofโฆ
๐ฅ2 + 0๐ 1 + 0๐ 2 โ 2 = 0,5 + 0,10๐ 1 + 0,40๐ 2
Overeenkomstige Gomory-snede is โฆ
๐ฅ2 โ 2 โค 0
โฆ of (in oorspronkelijke variabelen) โฆ
๐ฅ2 โค 2
We breiden de LP-relaxatie uit met de beperkingen (in standaardvorm) โฆ
๐ฅ2 + ๐ 3 = 2
๐ 3 โฅ 0
Oplossing van de LP-relaxatie geeft (in de oorspronkelijke variabelen) โฆ
3
(2) (2)
(๐ฅ1 , ๐ฅ2 ) = ( , 2)
4
57
Één van de beperkingen in de optimale LP-relaxatie tableau is โฆ
๐ฅ1 โ 0,25๐ 1 + 1,50๐ 3 = 0,75
โฆofโฆ
๐ฅ1 โ 1๐ 1 + 1๐ 3 โ 0 = 0,75 โ 0,75๐ 1 โ 0,50๐ 3
Overeenkomstige Gomory-snede is โฆ
๐ฅ1 โ ๐ 1 + ๐ 3 โค 0
โฆ of (in oorspronkelijke variabelen) โฆ
โ3๐ฅ1 + 5๐ฅ2 โค 7
Oplossing van de LP-relaxatie geeft (in de oorspronkelijke variabelen) โฆ
(3)
(3)
(๐ฅ1 , ๐ฅ2 ) = (1,2)
๐ท๐๐๐๐๐ข๐๐๐ก๐๐๐ค๐๐๐๐๐ = โ3
58
Niet-nul-snedes
De snede wordt gevormd als volgt โฆ
Voorbeeld:
We weten dat in het optimum ๐ต๐ โ = {๐ฅ1 , ๐ฅ2 } en de optimale oplossing is niet
geheeltallig.
Overeenkomstige niet-nul-snede is โฆ
๐ 1 + ๐ 2 โฅ 1
We breiden de LP-relaxatie uit met de beperkingen (in standaardvorm) โฆ
๐ 1 + ๐ 2 + ๐1 = 1
๐1 โฅ 0
Stapsgewijs, zolang we geen geheeltallige oplossing bekomen, lossen we telkens een
groter LP-relaxatie probleem op en voegen we telkens nieuwe beperkingen (โniet-nulsnedesโ) toe.
Opgelet! Hier komen enkel verschil-variabelen voor in de NN-snedes, maar dat is
louter toeval. Ook ๐ฅ1 en ๐ฅ2 kunnen daarin voorkomen.
59
Voorbeeldoefeningen
Zie aparte paginaโs
60
Geheeltallige programmering II
Transportprobleem
61
We merken dat we โgratisโ een geheeltallige oplossing krijgen โ of dus gap = 0. Is dat
toevallig?
Nee! Coëfficiëntenmatrix van een transportprobleem is altijd totaal unimodulair (TU).
Bijgevolg is de optimale oplossing altijd geheeltallig!
62
Transportformulering voor een productie- & voorraadmodel
63
64
Toewijzingsprobleem
Beslissingsvariabelen:
- ๐ฅ๐๐ = 1 ๐๐๐ ๐ก๐๐๐ ๐ ๐๐๐ ๐๐๐โ๐๐๐ ๐ ๐ค๐๐๐๐ก ๐ก๐๐๐๐๐ค๐๐ง๐๐
- ๐ฅ๐๐ = 0 ๐๐๐ ๐ก๐๐๐ ๐ ๐๐๐๐ก ๐๐๐ ๐๐๐โ๐๐๐ ๐ ๐ค๐๐๐๐ก ๐ก๐๐๐๐๐ค๐๐ง๐๐
Doelfunctie:
min ๐ง = 14๐ฅ11 + 521 + 8๐ฅ31 + 741 + 2๐ฅ12 + 12๐ฅ22 + 6๐ฅ32 + 6๐ฅ42 + โฏ
Beperkingen:
๐ฅ๐1 + ๐ฅ๐2 + ๐ฅ๐3 + ๐ฅ๐4 = 1
๐ฅ1๐ + ๐ฅ2๐ + ๐ฅ3๐ + ๐ฅ4๐ = 1
๐ฅ๐๐ โ {0,1}
65
Transitoprobleem
66
67
Grafentheorie
Netwerk of graaf ๐บ(๐, ๐ด) met โฆ
๐ = {1,2,3,4} = ๐ฃ๐๐๐ง๐๐๐๐๐๐๐ ๐ฃ๐๐ ๐๐๐๐๐๐๐ข๐๐ก๐๐
๐ด = {(1,2); (1,3); (2,3); (3,4); (4,2)} = ๐ฃ๐๐๐ง๐๐๐๐๐๐๐ ๐ฃ๐๐ ๐๐๐๐๐๐
68
Belangrijk om te onthouden:
- Elke pijl geeft een activiteit weer met als start en stop een knooppunt!
- Elk knooppunt is een gebeurtenis (moment in de tijd) dat de start of stop van een
activiteit weergeeft!
69
Source-removal algoritme
Een netwerk is uitvoerbaar als en slechts als het volgordenetwerk acyclisch is.
Een netwerk is acyclisch als en slechts als er een topologische orderning bestaat.
Een nummering van knooppunten (โordeningโ) is topologisch (โTOโ) als elke boog
van een lager- geïndexeerd naar een hoger-geïndexeerd knooppunt leidt.
Source-removal algoritme levert een cyclus of een TO op!
Voorbeeld:
70
Kortste/langste pad via DP-recursie
DP-recursie werkt enkel als G acyclisch is!
LANGSTE PAD
1) Stel een topologische ordening op met ๐
(๐) = ๐
2) Bereken in oplopende index voor elk knooppunt ๐:
๐
(๐) = ๐๐๐{๐
(๐) + ๐}
โฆ ๐๐๐: ๐
(๐)๐๐ ๐๐๐ ๐๐๐๐๐๐๐ ๐๐๐
๐๐๐ ๐๐๐๐๐๐๐๐๐ ๐ ๐๐๐๐ ๐
โฆ ๐๐๐: ๐ ๐๐๐๐ ๐๐๐๐ ๐๐๐๐๐๐๐๐
๐ ๐๐๐๐๐๐๐๐๐๐๐
โฆ ๐๐๐: ๐ ๐๐ ๐
๐ ๐๐๐๐๐๐๐๐๐
๐ ๐๐๐
๐๐๐๐๐๐
3) Stop als je het eindknooppunt hebt bereikt
KORTSTE PAD
1) Stel een topologische ordening op met ๐
(๐) = ๐
2) Bereken in oplopende index voor elk knooppunt ๐:
๐
(๐) = ๐๐๐{๐
(๐) + ๐}
โฆ ๐๐๐: ๐
(๐)๐๐ ๐๐๐ ๐๐๐๐๐๐๐ ๐๐๐
๐๐๐ ๐๐๐๐๐๐๐๐๐ ๐ ๐๐๐๐ ๐
โฆ ๐๐๐: ๐ ๐๐๐๐ ๐๐๐๐ ๐๐๐๐๐๐๐๐
๐ ๐๐๐๐๐๐๐๐๐๐๐
โฆ ๐๐๐: ๐ ๐๐ ๐
๐ ๐๐๐๐๐๐๐๐๐
๐ ๐๐๐
๐๐๐๐๐๐
3) Stop als je het eindknooppunt hebt bereikt
71
Kortste/langste pad via math pgm (LEZEN)
Math pgm stelt een maximalisatie- of minimalisatieprobleem op!
Associeer met elk knooppunt ๐ een variabele ๐๐ !
72
Kortste pad via Dijkstraโs algoritme
Methode? Zie oefeningen!
73
Maxflow
We onderscheiden twee speciale knooppunten:
- Bron / oorsprong / source ๐
- Put / bestemming / sink ๐ก
74
Mathematisch programmeren
Beslissingsvariabelen:
- ๐ฅ๐๐ = ๐๐๐๐ก๐๐ ๐ก๐๐๐๐๐ก๐๐๐ ๐๐๐ ๐๐๐ ๐ฃ๐๐ ๐๐๐๐ (๐, ๐)
- ๐ฃ = ๐๐๐ก๐๐๐๐๐ë๐๐ โฒ๐ก๐๐๐ข๐๐๐๐๐โฒ๐๐๐๐ (๐ก, ๐ )
Doelfunctie en beperkingen:
75
Ford-Fulkerson algoritme
Hoeveel stroom is optimaal?
Stap 1:
Er bestaan verschillende verbeterde paden in het residueel netwerk. Één zoโn pad is
1-3-4-6, waarover we een stroom van 2 eenheden sturen.
Stap 2:
We trachten de totale stroom van knooppunt 1 naar knooppunt 6 te verbeteren.
Momenteel bedraagt dit slechts 2 eenheden.
Het pad 1-2-4-3-5-6 in het residueel netwerk kan gebruikt worden om nog eens 2
eenheden stroom door te sturen. De totale stroom wordt verhoogd naar 4 eenheden.
76
Stap 3:
We trachten de totale stroom van knooppunt 1 naar knooppunt 6 te verbeteren.
Momenteel bedraagt dit slechts 4 eenheden.
Er is geen enkel pad in het residueel netwerk om stroom te sturen van knooppunt 1
naar knooppunt 6.
77
Voorbeeld โ Koppelen en matchmaking
78
Niet-lineaire programmering
79
© Copyright 2026 ExpyDoc