linjärprogramming · 2015. 2. 9. · formulera lp problem på standardform • alice ska köpa...
TRANSCRIPT
LinjärprogrammingEG2205 Föreläsning 7, vårterminen 2015
Mikael Amelin
1
Kursmål
Formulera korttidsplaneringsproblem för vatten- och värme-kraftsystem.
2
Tillämpad matematisk programming
• Korttidsplanering av vatten- och värmekraftsystem är en tillämpning av matematisk programmering (optime-ringslära).
• I den här kursen lär vi ut hur man formulerar optimerings-problem, 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 matema-tiska uttryck.
• Bivillkor (definierar samband mellan optimeringsvariabler)
Exempel: g(x) b.
• Variabelgränser
Exempel:
x heltal.
x x x,
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 maximera –x
då 0 x 10. då 0 x 10.
6
Linjärprogrammering (LP)
• Klass av optimeringsproblem med linjär målfunktion och linjära bivillkor.
• Standardform:
minimera cTx
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å {volymbivillkor}
x1 + x2 10, {kvantitetsbivillkor}
x1 0, x2 0. {variabelgränser}
16---x1 0,3x2 2,+
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 likhetsbi-villkor.
• Inför slackvariabler:
x3 = extra volym,
x4 = extra kvantitet.
• Formulera om bivillkoren:
{volymbivillkor}
x1 + x2– x4 = 10, {kvantitetsbivillkor}
• Lägg till variabelgränser:
x1 0, x2 0, x3 0, x4 0. {variabelgränser}
16---x1 0.3x2 x3–+ 2,=
11
Exempel A.1
LP-formulering på standardsform
min z = 3x1 + 5x2 {kostnad}
då {volymbivillkor}
x1 + x2– x4 = 10, {kvantitetsbivillkor}
x1 0, x2 0, x3 0, x4 0.
{variabelgränser}
16---x1 0.3x2 x3–+ 2,=
12
Exempel A.1
Optimal lösning
Optimum:
x1 = 7,5
x2 = 2,5
Optimalt värde på målfunk-tionen:
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 formu-leras 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:
{viktbivillkor}16---x1 0,3x2 1.+
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ändig-heter 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:
{viktbivillkor}
x5 0, x6 0.
16---x1 0.3x2 x5 x6–+ 1.+
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
Optimal-värde:
z = 35
Det nya bivill-koret ä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 = Optimal-vä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
Optimal-värde:
z = 42,5
Samma lösning, men nytt optimal värde på målfunk-tionen!
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
Optimal-värde:
z = 50
Många lösningar med samma optimal-vä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ålfunktions-vä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
Optimal-vä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 cTx 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 op-timala 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å
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 formu-leras utan slackvariabler.
16---1 2 3,+
36
Exempel A.9
Optimal lösning
Optimum:
1 = 15
2 = 0.5
Optimal-värde:
z = 35
37
Exempel A.9
Känslighetsanalys
• Om Alice köper 1,9 liter frukt så ändras högerledet till volym-bivillkoret 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 heltals-värden.
minimera cTx
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
Optimal-vä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
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 = där är det maximala värdet i segment j – 1.
x xj,j=
xj 1– , xj 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 5x1, 1 + 3x1, 2 + 5x2 {kostnad}
då {volymbivillkor}
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.
16---x1 1
16---x1 2 0,3x2 2,+ +
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, 1 0 x1, 1 0
x1, 2 M·s x1, 2 0 x1, 2 = 0
• För s = 1 erhålls
x1, 1 5s x1, 1 5 x1, 1 5
x1, 2 M·s x1, 2 100 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 3x1, 1 + 5x1, 2 +5x2 {kostnad}
då {volymbivillkor}
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!
16---x1 1
16---x1 2 0,3x2 2,+ +
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!
Globalt minimumLokala minimum
48