Optimalisering WI 2608 Docent: Hans Melissen, EWI kamer 4.150 e-mail: j.b.m.melissen@tudelft.nl tel: 015-2782547 Het project is een verplicht onderdeel van het vak Het project start in week 5. Nadere informatie volgt Boek: F.S. Hillier and G.J. Lieberman: Introduction to Operations Research, 8th Ed., McGraw-Hill, 2005 + CD-ROM. ISBN 007-123828-X Cijfer = gemiddelde van tentamencijfer (minimaal 5,0) en het cijfer van het project
Operations Research (OR, Operationele Analyse, 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 (H11) Niet-lineair (NLP) (H12)
Lineaire programmering (LP) = Lineaire optimalisering. Toepassingen o.a.: productieplanning mengproblemen locatieproblemen transportproblemen routering projectplanning aandelenportefeuilles Geschiedenis: WO II: Ondersteuning voor logistieke operaties 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!
Voorbeeld: 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 koolhydraten Prijs plak kaas 75 5 6 0 0,20 bruine boterham 85 3 1 16 0,12 lik boter 20 0 2 0 0,04 lepel aardappels 40 1 0 8 0,05 lepel bruine bonen 55 4 0 8 0,05 braadworst 230 17 18 1 0,75 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 Oplossing???????? + voorwaarden 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 en D Productiefasen: assemblage 1, assemblage 2, verpakking Productietijden (uren) per eenheid: productietijden (uren) A B C D Beschikbaar Assemblage 1 0,70 0,75 0,55 0,34 400 uur Assemblage 2 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 1) + 0,55x D 480 (assemblage 2) + 0,27x D 220 (verpakking) + 2x D 1500 (grondstoffen) (order) Oplossing: x A = 100,00 x B = 330,15 x B C = 0 x D = 242,31 Z = 6186,46
Algemene aannamen voor LP 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 Beslisvariabelen kunnen willekeurige reële waarden aannemen (ook niet-geheeltallig) Deze aannamen zijn niet altijd realistisch! Lineair Programmeren (LP) = Lineair Optimaliseren (LO) Programmeren = plannen Lineair = alle (doel- + constraint)functies zijn lineair: Additief: f(x+y) = f(x) + f(y) voor alle x, y R n Multiplicatief: f(λx) = λf(x) voor alle λ R, x R n Continue reële variabelen
Lineaire functies? x 3x (x 1, x 2 ) 5x 1 7x 2 x 6x 17 x ax (a, x) ax 3x 1 2 + 5log x 2 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 dan verbrand om stoom te maken voor het aandrijven van turbines. De vraag is in welke verhouding de steenkoolsoorten verwerkt moeten worden voor 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 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 probleem (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) Verpulvercapaciteit: Per uur wordt x 1 /16 uur besteed aan kolensoort A en x 2 /24 aan kolensoort B. Zwaveluitstoot: Van de gasdeeltjes is een fractie x 1 /(x 1 +x 2 ) afkomstig van kolensoort A en x 2 /(x 1 +x 2 ) van kolensoort B. De hoeveelheid zwaveldeeltjes per miljoen gasdeeltjes is dus 1800x 1 /(x 1 +x 2 ) + 3800x 2 /(x 1 +x 2 ) 3000. Dit leidt tot 12x 1 8x 2 0
Hint: arceer telkens de niet-toegelaten gebieden! Merk op: - De transportcapaciteit is nooit een beperking. - In de optimale oplossing is de zwaveluitstoot niet beperkend.