LP-problemen modelleren

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