Optimalisatietechnieken Didactisch materiaal bij de cursus Optimalisatietechnieken http://telin.UGent.be/~philips/optimalisatie/ Academiejaar 2010-2011 Prof. dr. ir. W. Philips philips@telin.UGent.be Tel: 09/264.33.85 Fax: 09/264.42.95 Telecommunicatie en Informatieverwerking UNIVERSITEIT GENT
Copyright notice This powerpoint presentation was developed as an educational aid to the renewed course “Optimisation Techniques” (Optimalisatietechnieken), taught at the University of Gent, Belgium as of 1998. This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed: 1. If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, 1998” in a font size of at least 10 point on each slide; 2. You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file); 3. If you modify the presentation, you should clearly state so in the presentation; 4. You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation; 5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author. In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it). “Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes, ... Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use. Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer. If you use this presentation, I would appreciate being notified of this by email. I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures. Prof. dr. ir. W. Philips E-mail: philips@telin.UGent.be Department of Telecommunications and Information Processing Fax: 32-9-264.42.95 University of Gent Tel: 32-9-264.33.85 St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
Duale lineaire programma’s
Primaal en duaal probleem Primaal probleem (ons doel): optimaal produceren maximaliseer ct x over x mits x 0 en Ax b met x de vector van de te produceren hoeveelheden Duaal probleem (doel van de opkoper): onze voorraden zo goedkoop mogelijk aftroggelen minimaliseer bt y over y mits y 0 en Aty c met y de vector van de te bieden prijzen maximaliseer -bt y over y mits y 0 en -Aty -c (en vermenigvuldig de optimale winst met -1) Opmerkingen het duaal probleem van het duaal probleem is het primaal probleem Primaal Duaal ongelijkheden: A en b -At en -c winst: ct x -bt y als we de problemen standardiseren (“maximaliseer” en “”) dan
Andere motivatie: bovengrenzen (1) Grenzen voor de optimale winst zijn nuttig om te bepalen of een mogelijke oplossing x bijna optimaal is of er hoop is dat het optimum voldoend goed is voor een gegeven toepassing, zonder het expliciet te zoeken Ondergrens voor de winst van het primaal probleem gegeven een mogelijke oplossing x van primaal probleem ctx is een ondergrens voor de winst ctx* van de optimale oplossing x* Hoe vinden we een bovengrens? gegeven een mogelijke oplossing y van het duaal probleem bty is een bovengrens voor de winst ctx* van de optimale oplossing x* we zijn immers bereid al onze ruwe materialen te verkopen aan de prijzen y die voldoen aan de ongelijkheden van het duaal probleem en we verkopen enkel als dit meer oplevert dan produceren d.w.z. als bt y ct x*
Bovengrenzen (2) a21 x1 + + a2j xj + + a2n xn b2 y1 Kunstgreep: we zoeken een nieuwe “winstfunctie” die voor elke mogelijke oplossing x groter is dan de gegeven winstfunctie en waarvoor we gemakkelijker een bovengrens vinden Maximaliseer c1 x1 + + cj xj + + cn xn mits x1, x2, . . . , xn 0, en a11 x1 + + a1j xj + + a1n xn b1 a21 x1 + + a2j xj + + a2n xn b2 am1 x1 + + amj xj + + amn xn bm y1 y2 ym Eenvoudige bovengrens voor de winst indien voor alle j : indien alle yi 0 maar voor de rest willekeurig omdat alle xj 0
…Bovengrenzen Besluit eenvoudige bovengrens vinden zoek yi 0 met en de bovengrens is dan: Hoe kiezen we de yi ? kleinst mogelijke (scherpste) bovengrens: minimaliseer naar y mits alle yi 0 en Dus door het oplossen van het duaal probleem minimaliseer bt y over y mits y 0 en Aty c
Dualiteitsstellingen Zwakke dualiteitsstelling: (volgt uit het voorgaande) ct x bt y: x willekeurige mogelijke oplossing van primaal probleem y willekeurige mogelijke oplossing van duaal probleem de kost van elke mogelijke oplossing van het duaal probleem is een bovengrens voor de winst van elke mogelijke oplossing van het primaal probleem mogelijke winsten (primaal) primaal optimum ct x* duaal optimum bt y* mogelijke kosten (duaal) Sterke dualiteitsstelling: (nog te beredeneren) Als primaal probleem een optimum x* heeft duaal probleem heeft ook een optimum y* en de optimale waarden zijn gelijk: ct x* = bt y* mogelijke winsten (primaal) mogelijke kosten (duaal) primaal optimum = duaal optimum
Overzicht Duale lineaire programma´s: waarvoor en waarom Dualiteitseigenschappen zwakke dualiteit sterke dualiteit “Complementary slackness” Opstellen van duale lineaire programma’s De duale simplexmethode
Opmerkingen Mogelijke gevallen Primaal optimum winst=+ winst eindig winst=- (kan niet; waarom?) geen mogelijke oplossingen Duaal optimum geen mogelijke oplossingen kost eindig en gelijk kost=+ (kan niet; waarom?) kost=- geen mogelijke oplossingen geen mogelijke oplossingen Argumenteer waarom de implicatiepijlen er mogen staan en waarom er geen bijkomende implicatiepijlen mogelijk zijn
Toepassing: controle optimaliteit Stel dat we een willekeurige mogelijke oplossing x van het primaal probleem en een willekeurige mogelijke oplossing y van het duaal probleem kennen En dat we vaststellen dat ct x = bt y Dan weten we dat x en y optimale oplossingen zijn van respectievelijk het primaal en het duaal probleem Bewijs: beschouw een willekeurige mogelijke oplossing x’ van primaal probleem zwakke dualiteit toegepast op x’ en y ct x’ bt y en ct x = bt y ct x’ ct x Besluit: x is beter dan elke mogelijke oplossing x’ en is dus optimaal Opmerking als ct x < bt y dan hebben we toch al grenzen voor de winst/kost van de optima x* en y*: ct x ct x* bt y* bt y
Problemen in standaardvorm Wat verandert er aan onze redenering als we in standaardvorm werken (gelijkheden i.p.v. ongelijkheden)? Antwoord: niets behalve dat de voorwaarden yi 0 vervallen Maximaliseer c1 x1 + + cj xj + + cn xn mits x1, x2, . . . , xn 0, en a11 x1 + + a1j xj + + a1n xn b1 a21 x1 + + a2j xj + + a2n xn b2 am1 x1 + + amj xj + + amn xn bm = y1 y2 ym Eenvoudige bovengrens voor de winst indien voor alle j : omdat alle xj 0 indien alle yi 0 maar voor de rest willekeurig niet nodig!
Gemengde problemen a21 x1 + + a2j xj + + a2n xn = b2 Wat verandert er aan onze redenering als er een mengeling van gelijkheden en ongelijkheden voorkomt? a11 x1 + + a1j xj + + a1n xn b1 a21 x1 + + a2j xj + + a2n xn = b2 am1 x1 + + amj xj + + amn xn bm y1(a11 x1 + + a1j xj + + a1n xn) y1b1 als yi 0 y2(a21 x1 + + a2j xj + + a2n xn) = y2b2 ym(am1 x1 + + amj xj + + amn xn ) ymbm als yi 0 indien voor alle j : omdat alle xj 0
Besluit =-voorwaarde vrije variabele yi =-voorwaarde Primaal probleem Duaal probleem =-voorwaarde vrije variabele yi -voorwaarde variabele yi 0 -voorwaarde variabele yi 0 variabele xj 0 variabele xj 0 -voorwaarde -voorwaarde vrije variabele xj =-voorwaarde indien voor alle j waarvoor xj 0: en voor alle j waarvoor xj 0: en voor alle j waarvoor xj vrij is:
Sterke dualiteit Sterke dualiteitsstelling: Als primaal probleem een optimum x* heeft duaal probleem heeft ook een optimum y* en de optimale waarden zijn gelijk: ct x* = bt y* mogelijke winsten (primaal) mogelijke kosten (duaal) primaal optimum = duaal optimum Overzicht bewijs (argumentering) in het boek: Stel dat we een optimum x* van het primaal probleem gevonden hebben we construeren een y* en tonen aan dat y* optimaal is in duaal probleem we vergelijken vervolgens de primale winst en duale kost en zien dat ct x* = bt y*
Sterke dualiteit: bewijs… Primaal probleem in standaardvorm: maximaliseer ct x over x mits x 0 en Ax +w= b en w 0 (reserve-variabelen) Stel dat we dit probleem hebben opgelost met simplex dit komt erop neer dat we de gelijkheden hebben herschreven, en ook de winstfuntie de finale winstfunctie bevat zowel sommige originele variabelen xj als sommige reserve-variabelen wi en is van de vorm met cj* en di* gelijk aan 0 als de corresponderende variabelen niet voorkomen vermits we in het optimum zitten: zijn alle xj en wi die in de winst voorkomen 0, omdat zijn alle cj* en di* die in de winst voorkomen 0, omdat in de herschreven winstfunctie enkel NB-variabelen voorkomen we in de finale faze van simplex zitten We definiëren nu: yi*=-di* en tonen aan dat yi* de optimale oplossing is in het duaal probleem
Voorbeeld: optimaal trofeeprobleem Interpretatie: in duaal optimum y1=0: opkoper betaalt niets voor voetballen y2=0: opkoper betaalt niets voor tennisballen y3=6: opkoper betaalt 6$ gedenkplaat y3=1.5: opkoper betaalt 1.5$ per dm2 hout op teken na: optimale originele veranderlijken yi in duaal probleem Nieuw simplextableau: Nieuwe winstfunctie: 12 x1+9 x2 = 17700 -6 x5 -1.5 x6
….Bewijs Het bewijs verloopt als volgt 1. y* is mogelijk in het duaal probleem 2. de kost van y* is gelijk aan de optimale winst in het primaal probleem 3. y* is optimaal in het duaal probleem Zie boek, zelfstudie (niet kunnen reproduceren, wel kunnen verklaren) 1. volgt door de herschreven winstfunctie in verband te brengen met de originele winstfunctie ctx 2. volgt ook daaruit 3. volgt uit 2. en uit de slide “controle van de optimaliteit” Belangrijk gevolg (ivm. sensitiviteitsanalyse): interpretatie duaal optimum de duaal optimale variabelen yi* zijn gelijk aan het tegengestelde van de winstcoëfficiënten van de reserve-variabelen in de finale winstfunctie van het primaal probleem: yi*=-di* reserve-variabelen die niet voorkomen in de winstfunctie van het finaal simplextableau hebben coëfficiënt 0 en de corresponderende yi*=0
Dualiteit en standaardvorm Gegeven een primaal probleem niet in standaardvorm: maximaliseer ct x over x mits x 0 en Ax b Wat is de standaardvorm van het duaal probleem? duaal probleem: minimaliseer bt y over y mits y 0 en Aty c standaardvorm: minimaliseer bt y over y mits y, z 0 en Aty-z = c Wat is het duaal probleem van de standaardvorm van het primaal probleem? standaardvorm: maximaliseer ct x over x mits x, w 0 en Ax+w = b duaal: minimaliseer bt y over y mits ct x+0t w (Ax+w)ty voor alle x, w 0 y willekeurig, want (Ax+w)ty= bty voor alle y Aty c y 0 y willekeurig Besluit: duaal(standaard)=duaal standaard(duaal)
Complementary slackness Primaal probleem in standaardvorm maximaliseer ct x over x en w mits x 0, w 0 en Ax+w = b met originele veranderlijken x en reserveveranderlijken w Duaal probleem in standaardvorm minimaliseer bt y over y en z mits y 0, z 0 en Aty-z = c met originele veranderlijken y en reserveveranderlijken z “Complementary slackness”: x en y zijn optimaal in resp. primaal en duaal probleem xjzj=0 voor j=1…n yiwi=0 voor i=1…m Interpretatie: als originele veranderlijke xj0 in het primaal optimum, dan is de corresponderende reserve-veranderlijke zj=0 in het duaal optimum Interpretatie? (zelf!)
Bewijs “complementary slackness” Sterke dualiteit: ct x = bt y xt c= bt y Wegens standaardvormen: c = Aty-z en b = Ax+w xtAt y -xtz = xt At y +wt y In bovenstaande sommen is elk van de termen niet-negatief Als één van de termen strikt positief zou zijn in het linkerlid, dan is het linkerlid strikt negatief, maar dat kan niet want het rechterlid is niet-negatief Besluit: elke term in het linkerlid is gelijk aan 0 en analoog: elke term in het rechterlid is gelijk aan 0
Overzicht Duale lineaire programma´s: waarvoor en waarom Dualiteitseigenschappen zwakke dualiteit sterke dualiteit “Complementary slackness” Opstellen van duale lineaire programma’s De duale simplexmethode
Toepassing: duaal optimum Hoe vinden we het duaal optimum als we het primaal optimum kennen? Stel in primaal probleem: n onbekenden xj en m ongelijkheden in standaardvorm: m vergelijkingen en n+m onbekenden en dus in duaal probleem: m onbekenden yi en n ongelijkheden in standaardvorm: n vergelijkingen en m+n onbekenden In het primaal optimum hebben we n+m-m=n NB-variabelen die allemaal 0 zijn de m B-variabelen zullen meestal >0 zijn, maar sommigen kunnen =0 zijn als het optimaal extreem punt gedegenereerd is In geval van geen gedegeneerdheid zijn echter alle B-variabelen >0; er zijn dan dus m van de xj en wi-variabelen >0 (n.l. de B-veranderlijken) In het duaal optimum (in standaardvorm) zijn dan m van de zj en yi-variabelen =0 (complementary slackness) zijn er bovendien n vergelijkingen voldaan Besluit: we hebben een stelsel van n+m vergelijkingen waarmee we de optimale waarden van alle n+m duale veranderlijken kunnen berekenen
De duale simplexmethode Principe: duaal probleem D oplossen i.p.v. primaal probleem P en dan uit optimaal duaal simplextableau primaal optimum afleiden Duale simplexmethode tijdens het oplossen van het duaal probleem D herschrijven we de kostfunctie en het stelsel vergelijkingen Het resulterend probleem Dp is op zicht optimaal, maar is verder volledig equivalent met het origineel duaal probleem (zelfde mogelijke oplossingen en zelfde optimum) Minder triviaal: het duale probleem Pp van Dp is dan equivalent met P en is op zicht oplosbaar D1=D D2 … Dp equivalente problemen verkregen via simplex-stap Legende P1=P P2 … Pp duale problemen equivalente problemen niet verkregen via simplex-stap
Voorbeeld … Primaal (met alle xj≥0) Duaal (met alle yi≥0): Standaardvorm P1 3 2 1 4 7 8 y z + - = max Standaardvorm D1 We zien hier dat yi=0, z1=z2=1 een initieel extreem punt is voor D1 We gaan D1 oplossen met simplex en in elke stap Pk herschrijven zodat het duaal is aan Dk en bovendien equivalent met P1
Belangrijke oefening Opmerking vooraf: In het voorbeeld op de voorgaande slide is D1 bij constructie de standaardvorm van de duale van het opgegeven primaal probleem bovenaan rechts Gevraagd: bereken het duaal probleem D’1 van P1 in D1 alle yi≥0 moeten zijn (definitie standaardvorm) terwijl in het duaal probleem van P1 alle ingevoerde yi -veranderlijken in principe onbegrensd zijn (wegens enkel optreden van gelijkheden in P1) hoe kunnen beide problemen dan equivalent zijn? controleer dat D’1 en D1 in essentie hetzelfde probleem beschrijven Dit illustreert dat de duale van een probleem in essentie onafhankelijk is van hoe het probleem wordt neergeschreven (in standaardvorm, met ongelijkheden, …) Belang van de oefening: correct toepassen van de definitie van “duaal probleem” is niet eenvoudig
Opmerkingen In standaardvorm is de dualiteit zichtbaar onder de vorm van “negatieve transponering” P1 3 2 1 4 7 8 y z + - = max D1 Rijen van P1 corresponderen met kolommen van D1 en omgekeerd Definitie: duale variabelen: x1 z1 x2 z2 w1 y1 w2 y2 w3 y3 cfr. correspondentie rijen en kolommen cfr. ook “complementary slackness”
…Voorbeeld… Primaal: Duaal: P1 D1 max - 4 y + 8 y + 7 y z = 1 - 2 y - 3 z = 1 - 2 y - 2 y - y 1 1 2 3 z = 1 - y + 4 y + 3 y 2 1 2 3 D2 simplex P2 herschrijven stelsel D2: resultaat van 1 simplexstap op D1 P2: resultaat van x1 naar B- en w2 naar NB-variabele te converteren in P1 P2 P1 (zelfde mogelijke oplossingen en herschreven kostfunctie) P2is duaal aan D2 (controleer!) omdat we in de transformatie x1 en w2 gebruikten (de duale variabelen van z1 en y2)
…Voorbeeld… Primaal: Duaal: P2 D2 P3 D3 D3: resultaat van 1 simplexstap op D2 P3: resultaat van w2 naar B- en w3 naar NB-variabele te converteren in P1 P3 P2 (zelfde mogelijke oplossingen en herschreven kostfunctie) P3is duaal aan D3 (controleer!) omdat we in de transformatie w2 en w3 gebruikten (de duale variabelen van y2 en y3)
…Voorbeeld Primaal: Duaal: P3 D3 Geen verbetering en dus optimaal! Situatie na de laatste simplexstap P3 en D3 zijn elkaars duale en ze zijn equivalent met de originele problemen D3 is het eindresultaat van simplex op het probleem D1: er is geen winstverbetering meer mogelijk (want alle winstcoëfficiënten <0) Oplossing van D3 en dus ook D1: y1=z1=y2=0 y3=1 z2=4 Opmerking: P3 is hier op zicht oplosbaar initieel extreem punt: w3=x2=0 w1=180 x1=70 w2=60 geen verbetering mogelijk (want alle winstcoëfficiënten <0)
Voorbeeld Primaal: Duaal: P3 D3 Oplossing van P3 en dus ook van P1: altijd op het zicht! initieel extreem punt: w3=x2=0 w1=180 x1=70 w2=60 geen verbetering mogelijk (want alle winstcoëfficiënten <0) Deze triviale situatie zal altijd optreden wegens “negatieve transponering”: constante elementen in P3 zijn positief omdat coëfficiënten in winstfunctie van D3 negatief zijn nul stellen NB-variabelen geeft zeker extreem punt coëfficiënten in winstfunctie van P3 zijn negatief omdat constante elementen in D3 zijn positief zijn (omdat simplex extreme punten bezoekt) zeker geen winstverbetering mogelijk Conclusie: het finale duale simplextableau geeft onmiddellijk het finale primale simplextableau via negatieve transponering
Grafische evolutie De duale simplexmethode bezoekt basisoplossingen in het primaal probleem, die geen extreme punten zijn De basisoplossingen worden gaandeweg “minder onmogelijk” x2 2 1 2 3 -2 2 4 6 8 x1 -2 P3 P2 P1 -4
Samenvatting Duale simplexmethode voer simplex uit op het duaal probleem eens het duaal optimum bereikt, kunnen we in het simplextableau van het duaal probleem het primaal optimum afleiden geheugensteun: vorm door “negatieve transponering” het simplextableau van een probleem Pn, dat equivalent is met het origineel primaal probleem dit simplextableau is gegarandeerd optimaal en je kan er het optimum uit aflezen Interpretatie als je op een intermediair simplextableau van het duaal probleem negatieve transponering toepast, dan krijg je een ongeldig tableau voor het primaal probleem ongeldig want het nul-stellen van de NB-veranderlijken leidt tot negatieve B-veranderlijken hiermee correspondeert dus geen extreem punt door nulstellen van de NB-veranderlijken vind je wel een basisoplossing; de methode bezoekt dus niet extreme basisoplossingen
Dual-based phase-1 Nieuwe methode om een initieel extreem punt te zoeken: door het aanpassen van de winstfunctie van het primaal probleem forceert men een geldige basis in het aangepast duaal probleem door oplossen van aangepast duaal probleem verkrijgt men het optimum x’ van het aangepast primaal probleem het resultaat x’ is niet optimaal voor het origineel probleem, maar wel een extreem punt
Voorbeeld … Primaal: Duaal: Standaardvorm D1 Standaardvorm P1 4 -4 7 8 3 2 1 4 -4 7 8 y z + - = max Noch in het primaal, noch in het duaal probleem is de huidige basisoplossing een extreem punt
…Voorbeeld … Primaal: -1 +1 Duaal: Standaardvorm D1 Standaardvorm P1 4 3 2 1 4 -4 7 8 y z + - = max Door de primale winstfunctie te veranderen kan men van de basisoplossing in het duaal probleem steeds een extreem punt maken Het gebied van mogelijke oplossingen van het primaal probleem verandert niet maar dat van het duaal probleem verandert wel
…Voorbeeld … P1 D1 4 -4 7 8 y z + - = max -1 +1 3 2 1 4 -4 7 8 y z + - = max -1 +1 Oplossen aangepast probleem met duale simplexmethode geeft: duaal optimum: y1=z1=y2=0 y3=1 z2=4 primaal optimum: w3=x2=0 w1=180 x1=70 w2=60 Ter herinnering: het aangepast primaal probleem heeft een andere winstfunctie dan het opgegeven probleem maar het zelfde gebied van mogelijke oplossingen Dus: het primaal optimum van het aangepast probleem kan dienen als initieel extreem punt voor het niet-aangepast primaal probleem w3=x2=0 w1=180 x1=70 w2=60
Lagrangiaanse dualiteit Komt aan bod in een latere les