X - KTH

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 = Tb.
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
21 + 102
då
1
---  1 +  2  3,
6
0,31 + 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,11 = –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