Linjärprogramming EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin 1 Kursmål Formulera korttidsplaneringsproblem för vatten- och värmekraftsystem. 2 Tillämpad matematisk programming • • • Korttidsplanering av vatten- och värmekraftsystem är en tillämpning av matematisk programmering (optimeringslära). I den här kursen lär vi ut hur man formulerar optimeringsproblem, men inte hur man löser dem. Lösningsmetoder lärs ut av Matematikinstitutionen, t.ex. - SF1811 Optimeringslära, 6 hp - SF2812 Tillämpad linjär optimering, 7,5 hp - SF2822 Tillämpad ickelinjär optimering, 7,5 hp För att formulera optimeringsproblem behöver man vara bekant med grundläggande koncept inom matematisk programmering. 3 Optimering • • Optimeringslära (kallas också matematisk programmering) är en gren av tillämpad matematik. Generellt exempel: minimera f(x) då x X, där x = vektor av optimeringsvariabler, X = mängd av tillåtna lösningar. 4 Tillåtna lösningar Mängden av tillåtna lösningar definieras med olika matematiska uttryck. • Bivillkor (definierar samband mellan optimeringsvariabler) Exempel: • g(x) b. Variabelgränser Exempel: x x x, x heltal. 5 Minimering eller maximering Observera att man alltid kan växla mellan minimerings- och maximeringsproblem, eftersom minimera f(x) maximera –f(x) Exempel: minimera x då 0 x 10. maximera –x då 0 x 10. 6 Linjärprogrammering (LP) • • Klass av optimeringsproblem med linjär målfunktion och linjära bivillkor. Standardform: minimera c Tx då Ax = b, 0 x. • • Man kan relativt snabbt lösa även stora LP problem med fler än 100 000 variabler! Kommersiell programvara finns tillgänglig - GAMS, Matlab, Excel… 7 Exempel A.1 Formulera LP problem på standardform • • • • • • Alice ska köpa något till hennes mammas fest. 2 liter frukt behövs för att fylla fruktskålen. Alices mamma vill att var och en av de fem gästerna ska få minst två var av det som Alice köper, d.v.s. Alice behöver köpa minst 10 saker. Alice får 100 kr och kan behålla växeln. Ett päron kostar 3 kr, varje päron har en volym på 1/6 liter. Ett äpple kostar 5 kr, varje päron har en volym på 0,3 liter. 8 Exempel A.1 LP-formulering • • Inför x1 = antal päron, x2 = antal äpplen. Formulera optimeringsproblemet: maximera 100 – 3x1 – 5x2 {vinst} då 1 --- x 1 + 0, 3x 2 2, 6 {volymbivillkor} x1 + x2 10, {kvantitetsbivillkor} x1 0, x2 0. {variabelgränser} 9 Exempel A.1 Minimering • • • • Ett LP-problem på standardform formuleras som ett minimeringsproblem. Maximera vinst Minimera kostnad maximera 100 – 3x1 – 5x2 {vinst} minimera 3x1 + 5x2 {kostnad} Observera att den konstanta termen i målfunktionen inte har någon inverkan på lösningen, eftersom den inte påverkas av vilka värden vi väljer på optimeringsvariablerna! Inför z = målfunktion. 10 Exempel A.1 Slackvariabler • • • • Ett LP-problem på standardform formuleras med likhetsbivillkor. Inför slackvariabler: x3 = extra volym, x4 = extra kvantitet. Formulera om bivillkoren: 1 --- x 1 + 0. 3x 2 – x 3 = 2, {volymbivillkor} 6 {kvantitetsbivillkor} x1 + x2– x4 = 10, Lägg till variabelgränser: x1 0, x2 0, x3 0, x4 0. {variabelgränser} 11 Exempel A.1 LP-formulering på standardsform min z = 3x1 + 5x2 {kostnad} då 1 --- x 1 + 0. 3x 2 – x 3 = 2, 6 {volymbivillkor} x1 + x2– x4 = 10, {kvantitetsbivillkor} x1 0, x2 0, x3 0, x4 0. {variabelgränser} 12 Exempel A.1 Optimal lösning Optimum: x1 = 7,5 x2 = 2,5 Optimalt värde på målfunktionen: z = 35 13 Extrempunkter • • Hörnen i det tillåtna området kallas extrempunkter. Den optimala lösningen till ett LP-problem kan alltid hittas i en av extrempunkterna. 14 Standardform • • Standardformen är användbar för matematisk analys. Dessutom förutsätter vissa lösare att LP-problemet är formulerat på standardform. Inom ingenjörskonsten är det viktigare med en tydlig problemformulering, d.v.s. optimeringsproblem ska formuleras så att det är lätt att känna igen det bakomliggande ingenjörsproblemet. - Använd tydligare beteckningar än x1, x2, … - Välj mellan maximering och minimering utifrån vad som är naturligt för ingenjörsproblemet. - Välj mellan likhets- och olikhetsbivillkor utifrån vad som är naturligt för ingenjörsproblemet. 15 Exempel A.2 Ingen tillåten lösning • • • Alices pappa säger ”Köp inte mer än 1 kg.” Ett päron väger 1/6 kg. Ett äpple väger 0,3 kg. Lösning Lägg till ytterligare ett bivillkor: 1 --- x 1 + 0, 3x 2 1. 6 {viktbivillkor} 16 Exempel A.2 Optimal lösning Det finns inga tillåtna lösningar. (Eng.: infeasible problem). 17 Inga tillåtna lösningar • • • Om ett problem saknar tillåten lösning så finns motstridiga bivillkor som inte kan vara uppfyllda samtidigt. Korttidsplaneringsproblem ska under normal omständigheter ha en tillåten lösning! Hur hittar man felet? - Vissa lösare kan ange vilka bivillkor som inte går att uppfylla. - Lägg till slackvariabler. I exempel A.2 kan vi t.ex. formulera det nya bivillkoret så här i stället: 1 --- x 1 + 0. 3x 2 + x 5 – x 6 1. {viktbivillkor} 6 x5 0, x6 0. 18 Exempel A.3 Icke bindande bivillkor • Det finns bara 13 päron kvar i affären. Lösning Lägg till ytterligare ett bivillkor: x1 13. {päronbegränsning} 19 Exempel A.3 Optimal lösning Optimum: x1 = 7,5 x2 = 2,5 Optimalvärde: z = 35 Det nya bivillkoret ändrar inte den optimala lösningen! 20 Exempel A.4 Problem utan ändlig lösning • Alices mamma säger: ”Du får 1 kr för varje sak du köper i affären.” Lösning Ny målfunktion: max z = x1 + x2 {inkomst} 21 Exempel A.4 Optimal lösning Optimum: x1 = x2 = Optimalvärde: z= 22 Problem utan ändlig lösning • • • Ett problem utan ändlig lösning innebär att det inte finns tillräckligt med bivillkor. Korttidsplaneringsproblem ska inte sakna lösning! Hur hittar man felet? - Det troligaste är att några bivillkor saknas eller är felaktigt formulerade! - Titta på de optimala värdena på variablerna! Är det någon variabel som ligger utanför det intervall man kan förvänta sig? - Lägg till tillfälliga bivillkor. 23 Exempel A.5 Ändring i målfunktionen • Ett päron kostar 4 kr i stället för 3 kr. Lösning Ny målfunktion: min z = 4x1 + 5x2 {kostnad} 24 Exempel A.5 Optimal lösning Optimum: x1 = 7,5 x2 = 2,5 Optimalvärde: z = 42,5 Samma lösning, men nytt optimal värde på målfunktionen! 25 Exempel A.6 Degenererad lösning • Ett päron kostar 5 kr i stället för 3 kr. Lösning Ny målfunktion: min z = 5x1 + 5x2 {kostnad} 26 Exempel A.7 Optimal lösning Optimum: x1 [0, 7,5] x2 = 10 – x1 Optimalvärde: z = 50 Många lösningar med samma optimalvärde! 27 Degenererade problem • • • • Ett degenererat problem har ingen unik optimal lösning. Många korttidsplaneringsproblem är degenererade! Lösningen till ett degenererat problem kan skilja sig från lösare till lösare och kan t.o.m. bero på i vilken ordning man angett variabler och bivillkor! För att kontrollera om två lösningar till ett degenererat problem är likvärdiga måste man studera målfunktionsvärdet, inte de optimala värdena på optimeringsvariablerna! 28 Exempel A.7 Flackt optimum • Jämför lösningen till följande två fall: - Ett päron kostar 4,90 kr och ett äpple kostar 5 kr. - Ett päron kostar 5 kr och ett äpple kostar 4,90 kr. 29 Exempel A.7 Optimal lösning Optimum: x1 = 7.5 x2 = 2.5 eller x1 = 0 x2 = 10 Optimalvärde: z = 49.25 eller z = 49 30 Flackt optimum • • Ett flackt optimum innebär att det finns extrempunkter som inte är optimal, men som resulterar i ett målfunktionsvärde som är väldigt nära det optimala värdet. Vissa lösare söker inte alltid efter den exakt optimala lösningen, utan nöjer sig med en lösning som är ”tillräckligt bra”. 31 LP-dualitet Alla LP problem (primalt problem) har ett motsvarande dualt problem. Primalt problem Dualt problem min c Tx max bT då Ax = b, då AT c. x 0, ( obegränsad) där x = primalvariabler, = dualvariabler. 32 Stark dualitet Sats: Om ett primalt problem har en optimal lösning så har även det duala problemet en optimal lösning och de optimala målfunktionsvärdena är desamma. • • Beviset överlämnas till lämplig matematikkurs… Den praktiska nyttan av LP-dualitet är att dualvariablerna (vars värde ändå beräknas då man löser LP-problemet) kan användas för känslighetsanalyser av den optimala lösningen. 33 Marginalvärden • • • • Högerledet i det primala problemet återfinns som målfunktion i det duala problemet. En liten ändring i målfunktionen till det duala problemet ändrar inte lösningen till det duala problemet (jfr exempel A.5)T lätt att beräkna nytt optimalt värde på målfunktionen. Tack vare den starka dualiteten så är det nya optimala målfunktionsvärdet för det primala problemet lika med det nya värdet för det duala problemet. Vi kan således använda dualvariablerna för att beräkna hur en liten ändring i högerledet på ett LP-problem påverkar det optimala målfunktionsvärdet. Dualvariablerna kan tolkas som marginalvärdet för högerledet i ett bivillkor, eftersom de anger hur målfunktionen kommer att ändras för en liten ändring i högerledet: z = Tb. 34 Exempel A.9 Tillämpning av dualvariabler • Antag att Alice skulle lura sin mamma och endast köpa 1,9 liter frukt. Hur mycket extra skulle hon kunna tjäna på detta bedrägeri?* * Föreläsaren önskar betona att syftet med detta exempel absolut inte är att uppmuntra ett sådant beteende! 35 Exempel A.9 Lösning • Det duala problemet lyder max 21 + 102 då 1 --- 1 + 2 3, 6 0,31 + 2 5, 1 0, 2 0. • Att dualvariablerna måste vara icke-negativa beror på att olikhetsbivillkoren i Alices primala problem då det formuleras utan slackvariabler. 36 Exempel A.9 Optimal lösning Optimum: 1 = 15 2 = 0.5 Optimalvärde: z = 35 37 Exempel A.9 Känslighetsanalys • • • Om Alice köper 1,9 liter frukt så ändras högerledet till volymbivillkoret med –0,1. Det optimala målfunktionsvärdet ändras då –0,11 = –1,5. Detta innebär att Alice sparar in en kostnad på 1,5 kr. 38 Blandad heltalsprogrammering (MILP) • Klass av optimeringsproblem med linjär målfunktion och linjära bivillkor, där några variabler endast kan anta heltalsvärden. minimera c Tx då Ax = b, x {0, 1, …} • • Snälla MILP-problem kan lösas relativt fort. Besvärliga MILP-problem tar betydligt längre tid att lösa en ett LP-problem av samma storlek! Undvik heltalsvariabler om de inte är nödvändiga! 39 Exempel A.10 Heltalslösning • Kunderna kan enbart köpa hela frukter. Lösning Lägg till variabelgränser: x1, x2 heltal. 40 Exempel A.10 Optimal lösning Optimum: x1 = 7 x2 = 3 Optimalvärde: z = 36 41 Styckvis linjära funktioner • • Ibland behöver man approximera en ickelinjär funktion i ett LP-problem. I en styckvis linjär funktion delas variabeln in i olika segment. Det lägsta värdet i varje segment är lika med 0, vilket ger oss att x = xj , j • där xj är värdet i det j:e segmentet. Observera att vi inte tillåter vilka kombinationer av xj som helst; vi kan inte börja använda ett segment innan det föregående segmentet är fullt utnyttjat, d.v.s. om xj > 0 så är xj = x j – 1 , där x j – 1 är det maximala värdet i segment j – 1. 42 Exempel A.10 Mängdrabatt • De första fem päronen kostar 5 kr/st. För ytterligare päron utöver detta får Alice rabatt och betalar bara 3 kr/st. 43 Exempel A.10 Lösning Omformulera problemet med en styckvis linjär funktion och introducera en binär variabel: min då 5x1, 1 + 3x1, 2 + 5x2 {kostnad} 1 1 --- x 1 1 + --- x 1 2 + 0, 3x 2 2, {volymbivillkor} 6 6 x1, 1 + x1, 2 + x2 10, {kvantitetsbivillkor} x1, 1 5s, x1, 2 M·s, x1, 1 0, x1, 2 0, x2 0, s {0, 1}. {variabelgränser} där M är ett godtyckligt, stort tal. 44 Exempel A.10 Den binära variabelns funktion • • • Antag M = 100. Det är optimalt att undvika att använda x1, 1 och i stället använda x1, 2 så mycket som möjligt, eftersom kostnaden för x1, 2 är lägre! För s = 0 erhålls x1, 1 5s x1, 2 M·s • x1, 1 0 x1, 2 0 x1, 1 0 x1, 2 = 0 För s = 1 erhålls x1, 1 5s x1, 2 M·s x1, 1 5 x1, 2 100 x1, 1 5 x1, 2 100 45 Exempel A.11 Begränsat erbjudande • Affären erbjuder rabatt (3 kr/st) på upp till fem päron. Köper Alice ytterligare päron får hon betala fullt pris, d.v.s. 5 kr/st. 46 Exempel A.10 Lösning • Omformulera problemet med en styckvis linjär funktion. min då 3x1, 1 + 5x1, 2 +5x2 {kostnad} 1 1 --- x 1 1 + --- x 1 2 + 0, 3x 2 2, {volymbivillkor} 6 6 x1, 1 + x1, 2 + x2 10, {kvantitetsbivillkor} x1, 1 5, x1, 1 0, x1, 2 0, x2 0. • {variabelgränser} I det här fallet är det fördelaktigt att använda x1, 1 i stället för x1, 2 och därför är det tillräckligt att ange en övre gräns för x1, 1 ingen binär variabel behövs! 47 Ickelinjär programmering (NLP) • • • Klass av optimeringsproblem där åtminstone ett bivillkor eller målfunktionen är ickelinjär. Vissa snälla NLP-problem kan lösas relativt snabbt. Andra NLP-problem kan ta lång tid att lösa och det är inte säkert att vi hittar ett globalt optimum. Undvik ickelinjära problem om det inte är nödvändigt! Lokala minimum Globalt minimum 48
© Copyright 2024