. Optimering Linjär programmering Ett optimeringprolem etår av: En målfunktion, f(), var maimum, eller minimum ka öka. En eller flera -varialer (elutvarialer om man tr över). Normalt okå ett antal ivillkor om ka uppflla (likheter oh/eller olikheter). Det vill äga egränningar eller amand mellan -varialerna. Eempelvi: ma f ( ) då Ω där Ω peifiera med hjälp av ett nitt av olikheter: g ( ) ) g ( Def: Linjär funktion En funktion, f (,,..., n ), kalla en linjär funktion av,,..., n om den kan kriva f (,,,,, n )... nn där,,..., n är kontanter. Def: Linjär olikhet Om vi har en linjär funktion f,,..., ) oh en kontant. Kalla en olikhet på formen ( n f (,,..., n ) för en linjär olikhet. En uppättning av linjära olikheter kapar ett område avgränat av raka linjer, eller plana tor, en å kallad konve poltop. Def: Linjärt programmeringprolem (LP) Ett linjärt programmeringprolem är ett optimeringprolem där målfunktionen är en linjär funktion. Bivillkoren ka vara linjära olikheter (eller likheter). Vanligtvi har vi även egränningar på att elutvarialerna ka vara ike-negativa. Om vi antar att ivillkoren egränar torleken på alla elutvarialer i ett linjärt programmeringprolem, å finn målfunktionen maimum oh minimum i något (eller iland några) av hörnen av det tillåtna området. Ett linjärt programmeringprolem (LP) kan ha (en av): En unik löning (optimum i ett hörn) Många löningar (optimum på en egränningta, dv flera hörn är lika ra) Ingen löning (ivillkoren tillåter ingenting, dv orimliga eller felaktiga krav) En oegränad löning (ivillkoren egränar ej löningen, troligen har vi miat någon egränning eller vänt någon olikhet fel väg) \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 7
Eempel tränikeri: oldat älj för $7 den kotar $4 i material oh föräljningkotnader vi tjänar alltå $ på varje oldat. tåg älj för $ den kotar $9 i material oh föräljningkotnader vi tjänar alltå $ på varje tåg. vå aretmoment finn att laorera med: nikeri oh efterehandling. En oldat kräver timme av nikeriet oh timmar efterehandling. Ett tåg kräver timme av vardera. De aktuella återföräljarna kan inte älja mer än 4 oldater/veka. Vi har tillgång till maimalt timmar efterehandling oh 8 timmer nikeri per veka. Betäm produktionen för att maimera vinten! Aretgång:. Definiera relevanta elutvarialer. antal oldater om produera per veka antal tåg om produera per veka. Definiera en målfunktion, eempelvi vint per veka uttrkt i elutvarialerna: ma f ( ) f (, ). Uttrk ivillkoren i elutvarialerna (tim/veka) efterehandling 8 (tim/veka) nikeri 4 (oldater/veka) maimal föräljning \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 8
Maimera då () 8 () 4 (4) Prolemet värde är 8, uppnå i punkt G,, 6 I korningen mellan linjerna oh 8 \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 9
Lagrange på ovantående eempel Målfunktion U Bivillkor G G 8 G G G 4 4 5. Löning inom domän U? U U dv det finn ingen löning. Löning med en lagrangemultiplikator, U λ i Gi med villkor G i (fem möjliga).. G 5 U U U U G λ G λ G λ G λ λ λ λ λ finn inget λ om uppfller det finn inget λ om uppfller det, amma gäller övriga G till Oervera att de partiella derivatorna aldrig innehåller någon av elutvarialerna, dv de ger ingen information om vilken punkt om är optimal.. Löning med två lagrangemultiplikatorer: U λ i, Gi λ j, G j med villkoren G i oh G j Här finn tio olika par varav nio har löningar. Det finn två olika ätt att löa prolemet: Det ena är att använda ig av likhetvillkoren, vilket ger värden på elutvarialerna. (primalformen) Det andra ättet är att löa ut lagrangemultiplikatorerna från U λ G G, den ger då löningen av dualformen. i, i λ j, j Vilken kärningpunkt i grafen ovan vi efinner o i eror på vilka två olikheter om vi väljer att ha om likheter. När vi har ett linjärt optimeringprolem å finn alltid den äta löningen i ett av hörnen (iland amma i flera hörn). Detta förenklar eräkningarna avevärt då inga analtika derivator ehöver eräkna. \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8
\\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 Primalform oh Dualform Varje linjärt programmeringprolem har åde en primalform oh en dualform. Om primalformen är: ma A å är dualformen på amma prolem: min A w Från primalformen har vi A vilket ger A om ger A w (pga ) Från dualformen har vi A om ger A (pga oh kalär) dv w för alla oh om uppfller olikheterna. Vid optimum gäller w I eemplet hade vi: 4 8 A Vektorn ekriver vad om är optimalt att tillverka. Vektorn är kuggpriet för reurerna, dv värdet av den ita timmen i nikeriet, efterehandlingen repektive marknaden egränning map oldater. De motvarar känlighetkoeffiienterna från lagrange multiplikatormetod. (motatt teken) Primalformen: [ ] 4 8 4 8 ma dv dv dv A Vi föröker minimera värdet av de reurer om ehöv för tillverkningen genom att ätta timpriet för nikeriet oh efterehandlingen amt värdet av föräljningkapaiteten om elutvarialer. Som ivillkor använd att värdet av varje produkt reuranvändning är mint lika tor om de vint. Dualformen: [ ] 4 8 4 8 min dv dv dv A w
Simplealgoritmen Man gör om olikheterna till likheter genom att införa lakvarialer där amtliga varialer är ikenegativa. Samtliga olikheter kriv om till tekenretriktionen på de ingående varialerna. Giapetto prolem: Maimera då 8 4 ikenegativa. Blir ålede i tandardform: Maimera då 4 ikenegativa. 8 Vi har i detta fall ett linjärt ekvationtem med tre ekvationer oh fem oekanta. Om man ätter två av de oekanta till noll, oh löer för de övriga å efinner man ig i kärningen mellan två linjer. Simplealgoritmen gger på att man utgår från ett tillåtet hörn. I Giapetto fall etår hörnen av kärningpunkten mellan två linjer, har man fler varialer etår hörnen av kärningpunkten mellan flera hperplan. Sedan avgör man om hörnet är optimalt. Om vi inte nått målfunktionen optimum, avgör vi vilket av kantlinjerna om trålar ut från hörnet om har ät riktning i förhållande till målfunktionen. Flttar till den närmta kärningpunkten läng den kanten oh tetar igen. Metoden liknar Gau-elimination vid löning av linjära ekvationtem. Med killnaden att man använder ig av en rektangulär matri amt att man har ett antal villkor om tr vilka radoperationer om ka göra på matrien. Det finn ra gratiprogram om klarar av etdligt törre tem än de man kan handräkna. \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8
. Gör om prolemet till tandardform enligt: Om vi har ett minimeringprolem, gör man om det till ett maimeringprolem genom att tekenvända målfunktionen: Minimera 5 7 gör om till Maimera w 5 7 Olikheter gör om till tandardform enligt: 4 addera lakvariael 4 eller 4 4 e 4 utrahera överflödvariael 4 eller 4 När lak- eller överflödvariael är noll, efinner vi o på den linje eller (hper)plan om motvarar olikheten egränning. Alla olikheter överför på det ättet till tekenvillkor på ingående varialer: Där repreenterar alla urprungliga elutvarialer amt lakvarialer oh överflödvarialer. Alla m ivillkoren kan då (tillamman med tekenvillkoret) uttrka om A Där kolumnvektorn är högerledet för de m ivillkoren oh matrien A innehåller koeffiienterna för dem. Eempel: Maimera då () 8 () 4 (4) På tandardform lir detta då: Maimera då () 8 () 4 (4) \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8
Eller med hjälp av matrirepreentation: Maimera A Där 8 4 A. Hitta en tillåten löning Simple-algoritmen gger på att man utgår från en tillåten löning, dv där alla tekenvillkoren är uppfllda. Ingen variael får vara negativ! Efterom matrien i detta eempel har två kolumner mer än rader, kan man genom att ätta två valfria varialer till noll, lätt löa ut de andra. (nollorna etder vilka olikheter om vi gränar mot) Målfunktionen kriv om enligt: oh ildar förta raden i talån. Kolumnen HL kommer från -vektorn oh reten från matrien A. Simpletalån kan kriva: HL - - 8 4 De varialer om vi ätter till noll kalla NBV (Non Bai Variale), de övriga ildar en a oh enämn BV. Om vi tartar med att ätta elutvarialerna oh löer ut de övriga. Dv om vi lundar för de kolumner var varialer vi ätter till noll, ka det finna en etta i varje kolumn oh rad inget annat! Om det inte gäller måte vi fia det med elementära radoperationer. I detta fall mket lätt efterom det redan är färdigt. Om någon av BV-varialerna lir negativ är löningen inte tillåten, dv den rter mot någon av olikheterna, då får man prova en annan uppättning av NBV eller metodikt öka ett tillåten löning med eempelvi BigM. alån när NBV är oh BV är, lir med tolkning: HL BV - - 8 8 4 4 (Motvarar origo, dv punkt H i figur på idan 9) \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 4
. Avgöra om löningen är optimal Om det finn negativa koeffiienter i talån förta rad kan målfunktionen värde förättra. 4. Vilken variael ka vi öka värdet på? har den met negativa koeffiienten denna vill vi ka tillhöra avarialerna, men vi måte då ploka ort en annan, dv nolltälla någon annan variael itället. 5. Vilken variael ka vi nolltälla itället? Vilken vi ka ta ort etäm av hur tor kan li utan att någon annan avariael lir negativ (vi rter mot en olikhet) HL BV Kvot - - /5 8 8 8/8 4 4 4/4 Vi er att det är tekenvillkoret för om egränar hur tort kan li. (det minta poitiva värdet enligt kvottetet) Vi ätter alltå vilket motvarar punkt E i grafen. I alla kolumner utom oh vill vi ha en enda etta deutom på olika rader. 6. Räkna om talån Då ka vi med hjälp av elementära radoperationer göra om kolumnen å att den nolltäll på alla poitioner utom den nederta där vi vill ha en etta. (kolumn, oh är redan OK) HL ero -* - * *4 (*rad4) -* -*- -*4 (-*rad4) - -- 8-44 (-rad4) 4 OK \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 5
Den na talån när NBV är () oh BV är, lir med tolkning: HL BV - - - 4 4 4 4 I algoritmen går vi tillaka till punkt oh fortätter med det å länge vi kan förättra löningen. Vi er att vi fortfarande har ett negativt värde i förta raden i kolumnen, å den ka in i BV. Vi gör om kvottetet: HL BV Kvot - - / - 4 4 4/4 4 4 4/ ej Vi er att det är om ka ätta till noll när vi läpper fri. Vi ka täda undan i kolumn å att vi endat har en etta kvar i rad. Vi ätter alltå vilket motvarar punkt F i grafen. (linjen () motvarar oh linjen (4) ) HL ero -* * *(-)- *6 (*rad) - OK - -- --(-) 4- (-rad) 4 OK Den na talån när NBV är () oh BV är, lir med tolkning: HL BV - 6 6 - - 4 4 \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 6
Kvottet: HL BV Kvot - 6 6 - /- ej - / 4 4 4/4 Vi ka täda kolumn å att vi endat får en etta på rad. HL ero - 6 rad - *rad - OK 4 -rad Den finala talån när NBV är () oh BV är, lir med tolkning: HL BV 8 8-6 6 - - Nu har vi ingen negativ koeffiient på förta raden vi är i mål. Vi er att målfunktionen värde 8 få när 6 oh På förta raden kan vi e kuggprierna för ivillkoren om koeffiienterna för lakvarialerna. Skuggpriet för elutvarialerna tekenvillkor e under repektive elutvariael. Sammanfattningvi. Gör om till tandardform. Hitta en tillåten löning (hana, lö ut oh kontrollera att alla, eller BigM). Avgör om vi är i mål 4. Avgör vilken vi ka läppa fri från (till BV) (met negativ i rad ) 5. Avgör vilken vi ka nolltälla (från BV) (minta poitiva värde enligt kvottet) 6. Räkna om oh gå till punkt \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 7
Simplealgoritmen med Big-M Man gör om olikheterna till likheter genom att införa lakvarialer där amtliga varialer är ikenegativa. Samtliga olikheter kriv om till tekenretriktionen på de ingående varialerna. Giapetto prolem med modifiering av tredje ivillkoret: Maimera då 8 ikenegativa. Blir ålede i tandardform: Maimera då 8 ikenegativa.. Hitta en tillåten löning mha Big-M Målfunktionen kriv om enligt: oh ildar förta raden i talån. Kolumnen HL kommer från -vektorn oh reten från matrien A. Simpletalån kan kriva: HL - - 8 - Om vi tartar med att ätta elutvarialerna oh löer ut de övriga. Dv om vi lundar för de kolumner var varialer vi ätter till noll, ka det finna en etta i varje kolumn oh rad inget annat! Kolumnen ehöver fia till, men det är en enkel radoperation, ara ett tekente på raden, vilket reulterar i nedantående talå: \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 8
alån när NBV är oh BV är, lir med tolkning: HL BV - - 8 8 - - Oervera att detta inte är en tillåten punkt, efterom en av varialerna är negativ, å rter det mot tekenvillkoret för. Vi kan fia det genom att tillföra tterligare en variael per rutet tekenvillkor. Vi lägger till en artifiiell variael genom att på alla tällen vi har erätta det med ( -a ). Parenteen kan då anta åde poitiva oh negativa värden utan att rta mot tekenvillkoret för någon av varialerna. Deutom lägger vi till ett rejält traff i målfunktionen om den artifiiella variaeln använd. Den artifiiella variaeln använd för att hitta en tillåten löning. Med den artifiiella variaeln lir då tandardformen enligt: Maimera M a då 8 a, a ikenegativa. Där M tår för ett tort tal, därav namnet Big-M. Simpletalån kan nu kriva: a - - M 8 - Vi fortätter på amma punkt, med tillägget att oh då får a ta hand om det tidigare negativa värdet på förra. aellen lir då med de tolkningar om kan göra: HL a HL olkning - - M 8 8 - a Kolumn a måte fia till då förta raden inte är noll (M). \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8 9
Genom att utrahera M kopior av ita raden från överta raden kan vi läka M:et i förta raden i kolumn a : a HL olkning --M - M -M M 8 8 - a Med hjälp av den artifiiella variael är nu punkten tillåten, men långt ifrån optimal. Så vi kan då fortätta med implemetoden på normalt ätt till vi livit av med de artifiiella varialerna (oh kan då eventuellt trka dea ur temet). Den met negativa koeffiienten i förta raden är den om innehåller M, å det är den om ka läppa fri. Kvottet ger då: a HL olkning Kvot --M - M -M M /5 8 8 8/8 - a / Kvottetet ger lägta poitiva värdet på nederta raden dv det är tekenvillkoret a om är den om fört egränar o. Vi erätter då med a Vi ka täda kolumn å att vi ara har en etta i den kolumnen, förlagvi nederta raden. a HL Ero --M - M -M (M)*rad4 -*rad4 8 -rad4 - Ok Vilket reulterar i: a HL olkning - - M - 8 8-7 7 - Nu kan vi om vi vill trka kolumnen för den artifiiella variaeln, då a oh vi lir då okå av med alla M. Vi kan då fortätta ungefär på amma ätt om tidigare (värdena på lir dok annorlunda då vi ändrade det ivillkoret) \\FE-WISER\Lar.Baktrom\Optimering\ Simulering oh optimering av energitem\whatbet linear\optimering oh What Bet.do -9-8