Optimalisering WI 2608 Docent: Hans Melissen, EWI kamer 7.080 e-mail: j.b.m.melissen@ewi.tudelft.nl tel: 015-2782547 Studiemateriaal op : http://www.isa.ewi.tudelft.nl/~melissen (kijk bij onderwijs WI 2608) college: Maandag 3+4 zaal F Vrijdag 3+4 zaal E Boek: F.S. Hillier and G.J. Lieberman: Introduction to Operations Research, 8th Ed., McGraw-Hill, 2005 + CD-ROM. ISBN 007-123828-X
Operations Research (OR, besliskunde) Management Science (MS) OR: - deterministisch: Optimalisering (H 1-12) - stochastisch: Wachttijdtheorie (H 16) Risicoanalyse Speltheorie (H14) Voorraadbeheer (H 18) Simulatie (H 20) Optimalisering (Mathematical Programming): Lineair (LP) - Continu, simplexmethode (H 1-7) - Geheeltallig (+ binair) (H 11) - Mixed integer Niet-lineair (NLP) (H12)
Lineaire programmering. Toepassingen: productieplanning mengproblemen locatieproblemen transportproblemen routering projectplanning aandelenportefeuilles Geschiedenis: 1947 George B. Dantzig: Simplexmethode voor LP Uitvoerbaar door opkomst van de computer 1984 Karmarkar: polynomiaal algoritme voor LP Voorpaginanieuws in de New York Times
Een dieet voor een jongen van 19 moet dagelijks 3000 kcal, 81 gram eiwit, 100 gram vet en 410 gram koolhydraten bevatten. kcal eiwit vet koolhydr Prijs kaas 75 5 6 0 0,20 bruine boterham 85 3 1 16 0,12 boter (5g) 20 0 2 0 0,04 aardappel (lepel) 40 1 0 8 0,05 bruine bonen 55 4 0 8 0,05 (lepel) braadworst (125 230 17 18 1 0,75 g) Mars 240 3 11 32 0,90 Maak een zo goedkoop mogelijk dieet met deze ingrediënten: Min 20x 1 + 12x 2 + 4x 3 + 5x 4 + 5x 5 + 75x 6 + 90x 7 z.d.d. 75x 1 + 85x 2 + 20x 3 + 40x 4 + 55x 5 + 230x 6 + 240x 7 3000 5x 1 + 3x 2 + 0x 3 + 1x 4 + 4x 5 + 17x 6 + 3x 7 81 6x 1 + 1x 2 + 2x 3 + 0x 4 + 0x 5 + 18x 6 + 11x 7 100 0x 1 + 16x 2 + 0x 3 + 8x 4 + 8x 5 + 1x 6 + 32x 7 410 kaas brood boter aardap bonen worst Mars Prijs???????? alle x i 0 50 51,3 4,56 boon 19,9 40 8,2 3,3 4,56 aardappel boter brood 3,8 25,6 25,6 0,02 4,87 brood 8 12,7 8 8 35,3 5,57 aardappels 6 1,9 8 8 6 6 0,04 5,8 7,51 Mars 1 8 6 6 154 1 117,96 Mars 5 8 6 6 26 5 25,56 Worst 20 - - - - - - - - Conclusie: Jongens minstens 5,8 Marsen per dag, meisjes 3,6!
Voorbeeld: productieplanning Bedrijf fabriceert producten A, B, C, D Productiefasen: assemblage, afronding, verpakking Productietijden (uren) per eenheid: productietijden (uren) A B C D Beschikbaar Assemblage 0,70 0,75 0,55 0,34 400 uur Afronding 0,55 0,82 0,80 0,55 480 uur Verpakking 0,24 0,32 0,45 0,27 220 uur grondstoffen 1,9 2,5 1,8 2 Winst 4,80 12,00 6,00 7,20 Aanwezige grondstoffen: 1500 eenheden Order voor volgende week: 100 eenheden A Al het geproduceerde wordt afgenomen Vraag: Hoeveel moet je produceren voor maximale winst? Formulering: Beslissingsvariabelen: x A = aantal eenheden A x B B = aantal eenheden B x C = aantal eenheden C x D = aantal eenheden D Model: Maximaliseer Z = 4,8x A + 12x B B + 6xC + 7,2x D z.d.d. 0,70x A + 0,75x B B + 0,55xC en 0,55x A + 0,82x B B + 0,80xC 0,24x A + 0,32x B B + 0,45xC 1,9x A + 2,5x B B + 1,8xC x A 100 x A, x B, B xc, x D 0 + 0,34x D 400 (assemblage) + 0,55x D 480 (afronding) + 0,27x D 220 (verpakking) + 2x D 1500 (grondstoffen) (order) Oplossing: x A = 100,0 x B = 330,15 x B C = 0 x D = 242,31 Z = 6186,46
Algemene aannamen voor dergelijke problemen: Proportionaliteit: Additiviteit: Deelbaarheid: Productie van 7 eenheden kost 7 keer zoveel, vergt 7 keer zoveel grondstoffen De winst van twee producten is de som van de afzonderlijke winsten Beslissingsvariabelen kunnen willekeurige reële waarden aannemen (niet alleen geheeltallig) Lineair Programmeren (LP) = Lineair Optimaliseren (LO) Programmeren = plannen Lineair = alle functies zijn lineair: Additief: f(x+y) = f(x) + f(y) voor alle x, y Multiplicatief: f(λx) = λf(x) voor alle λ, x Continue reële variabelen
Lineaire functies: x 3x (x 1, x 2 ) 5x 1 7x 2 x 6x 17 niet lineair x ax (a, x) ax niet-lineair 3x 1 2 + 5log x 2 niet-lineair substitueer x 1 = y 1, x 2 = exp(y 2 ) levert 3y 1 + 5y 2 na substitutie lineair. Niet-lineaire functies kunnen soms bij benadering gelineariseerd worden
Opgave Een kolencentrale verwerkt steenkoolsoorten A en B om energie op te wekken. De steenkool wordt eerst verpulverd en daarna verbrand om stoom te maken voor het aandrijven van stoomturbines. De vraag is in welke verhouding de steenkoolsoorten verwerkt moeten worden voor de maximale productie van energie, gegeven een aantal beperkende voorwaarden. Zo zijn milieueisen opgelegd voor de gas- en roetuitstoot. De roetuitstoot mag hooguit 12 kg per uur zijn, en het aantal deeltjes zwavel per miljoen gasdeeltjes mag niet meer dan 3000 zijn. De verbranding van 1 ton kolensoort A geeft een roetuitstoot van 0,5 kg per uur en 1 ton kolensoort B geeft een roetuitstoot van 1 kg per uur. De kolensoort A heeft de eigenschap dat op elke miljoen deeltjes die na verbranding van deze kolensoort vrijkomen er 1800 zwaveldeeltjes zijn, terwijl voor kolensoort B het aantal zwaveldeeltjes 3800 is op elke miljoen vrijgekomen gasdeeltjes. De kolensoorten A en B stoten per verbrande ton evenveel deeltjes uit. De kolensoorten worden per trein aangevoerd en de aanvoer is beperkt tot 20 ton per uur. De capaciteit van de verpulverinstallatie is ook beperkt: 16 ton kolensoort A per uur als A de enige zou zijn en 24 ton kolensoort B per uur als B de enige zou zijn. Ten slotte geeft 1 ton kolensoort A na verbranding 24 000 pond stoomenergie en 1 ton kolensoort B geeft 20 000 pond stoomenergie. Formuleer het probleem als een LP probleem. Los het (grafisch) op.
Grafische oplosmethode (2 variabelen) Max Z = 24x 1 + 20x 2 z.d.d. x 1 + x 2 20 (transportbeperking) 0,5x 1 + x 2 12 (roetuitstoot) 1 x 16 1 + 1 24 x 2 1 (verpulvercapaciteit) 12x 1-8x 2 0 (zwaveluitstoot) x 1, x 2 0 (hoeveelheden) Hint: arceer telkens de niet-toegelaten gebieden!
Opgave: Los op met de grafische methode: max Z = 5x + 23y z.d.d. 2x + 9y 24 2x 5y 3 x, y 0 Teken de lijn 2x + 9y = 24: x = 0 8 y = 3 y = 0 x = 12 Lijn door (0, 8 3 ) en (12,0). Probeer (0,0): 2 0 + 9 0 = 0 24, dus (0,0) ligt aan de goede kant. Oplossing: Hoekpunten van het toelaatbare gebied zijn: (0,0) Z = 0 ( 3 2,0) Z = 2 = 7,5 ( 21 4, 3 2 ) Z = = 59,25 (0, 3 8 ) Z = 4 184 = 61,3333 3
Algemene formulering LP probleem Probleem: n producten j = 1,, n m grondstoffen i = 1,, m Van grondstof j is b i aanwezig Op product j wordt c j winst gemaakt per eenheid Voor product j is a ij eenheden grondstof i nodig Vraag: hoeveel maken zodat de winst maximaal is? LP Model: Maak x j eenheden van product j (beslisvariabelen). Max Z = c 1 x 1 + c 2 x 2 + + c n x n z.d.d. a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 a m1 x 1 + a m2 x 2 + + a mn x n b m en x 1, x 2, x n 0 Max z.d.d. en n Z = j= 1 c j x j n aijx j j=1 x j 0 b i voor i = 1, 2,, m voor j = 1, 2,, n
Standaardvorm voor een LP probleem: Max Z = c 1 x 1 + c 2 x 2 + + c n x n z.d.d. a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 a m1 x 1 + a m2 x 2 + + a mn x n b m en x 1, x 2, x n 0 Terminologie: Beslisvariabelen (decision variables): x j Parameters: c j, a ij Doelfunctie, objectfunctie (objective function): Z Begrenzingen (constraints)
Terminologie Oplossing: Willekeurige keuze van de beslisvariabelen Toelaatbare oplossing (feasible solution): Oplossing die aan alle beperkingen voldoet Toelaatbaar gebied (feasible region): Verzameling van alle toelaatbare oplossingen Niet-toelaatbare oplossing: Oplossing die aan minstens één beperking niet voldoet Optimale oplossing: Toelaatbare oplossing met optimale doelwaarde.
Een toelaatbaar gebied is meestal begrensd en niet leeg, maar dat hoeft niet Onbegrensd toelaatbaar gebied Leeg toelaatbaar gebied
Optimale oplossingen hoeven niet uniek te zijn: Nog extremer: Als de doelfunctie Z = 0 is, zijn alle toegelaten waarden optimaal!
Een begrensd toelaatbaar gebied in R 2 wordt gedefinieerd door n lineaire ongelijkheden. Hoeveel hoekpunten (h) kan dit gebied hebben? Voorbeeld: N = 3 h = 3 N = 5 h = 5 h h-1+2 = h+1
Oplossing: h = n. n = 5, h = 3??? Betere oplossing: Nog betere oplossing: h n 3 h n Kan elke h met 3 h n? Kan h = 0? x 0 x 1 (kan dus als n 2) Kan h = 1? x 0 y 0 x+y 0 (mogelijk als n 3) Kan h = 2? x 0 x 0 y 1 y 0 (mogelijk als n 4)
De echte oplossing is dus: n = 2: h = 0 n = 3: h = 0, 1, 3 n 4: 0 h n Zonder de eis begrensd toelaatbaar gebied is het antwoord: n = 0: h = 0 n = 1: h = 0 n = 2: h = 0, 1 n 3: 0 h n
Het toegelaten gebied is een gebied in R n dat wordt bepaald door lineaire ongelijkheden en is dus de doorsnijding van halfruimten. Dit definieert een polytoop met hoekpunten, ribben, zijvlakken, etc. Wat is een hoekpunt? n lineaire ongelijkheden bepalen in n dimensies normaal gesproken een punt. Bij n van de lineaire ongelijkheden hoort dus een punt: hoekpunt. Als dit hoekpunt toelaatbaar is heet het een toelaatbaar hoekpunt (Corner Point Feasible (CPF) solution) Hoeveel hoekpunten zijn er bij n variabelen en m ongelijkheden? m n Voorbeeld: 50 variabelen, 150 constraints, aantal hoekpunten is: 20128660909731932294240234380929315748140 2 10 40 Als je 1 miljard hoekpunten per seconde controleert ben je na 6 10 20 jaar klaar!