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 2024 ExpyDoc