pptmall liu 2008 svenskwebstaff.itn.liu.se/~clryd/kurser/tnk049/fo/fo5.pdfsimplexmetoden på ett...
TRANSCRIPT
Clas Rydergren, ITN
TNK049 Optimeringslära
Föreläsning 5
Simplexmetoden på tablåform och algebraisk form
Fas I (startlösning) · Känslighetsanalys
Tolkning av utdata
Agenda
2
• Halvtidsutvärdering
• Simplexmetoden (kap 4.5–4.8)
• Ett exempel
• Tablåform (kap 4.7)
• Algebraisk form (kap 4.8)
• ”Fas I”: Tillåten startlösning i Simplexmetoden (kap 4.9)
• Känslighetsanalys (kap 5)
• Relaxering och restrifiering (kap 5.2)
• Skuggpriser (kap 5.3)
• Tolkning av utdata från ett datorprogram (kap 5.4)
Simplexmetoden (exempel från Fö4)
213max xxz
3
5
22då
2
21
21
x
xx
xx
0, 21 xx
1 5
1
(2)
(1)
5
(3)
2x
1x
213max xxz
3
5
22då
52
421
321
xx
xxx
xxx
0,,,, 54321 xxxxx
Omskrivet på standardform:
3
Simplexmetoden på ett exempel 1 (3)
• Identifiera en tillåten baslösning.
• Hur vill vi förändra variablerna? 213max xxz
3
5
22då
52
421
321
xx
xxx
xxx
0,,,, 54321 xxxxx
213 xxz
25
214
213
3
5
22
xx
xxx
xxx
),(),,,( 21543 xxxxx NB xx
3,5,2,0,0 54321 xxxxx
1x 2x
)3( 11 cx
1x1x
1x
1x
1x
1x3x
3x
3x
4x
5x
1x
1x
Alltså:
0z
• Uttryck alla bivillkor och
målfunktion i icke-basvariabler
– Öka eller • Varför inte den med störst
reducerad kostnad,
• Hur mycket kan vi öka ?
– minskar när vi ökar • Får ej bli negativ.
• Öka med högst 2.
– minskar när vi ökar • Får ej bli negativ.
• Öka med högst 5.
– påverkas inte av
• Öka med steglängden t = 2,
minskar till 0.
• inkommande basvariabel.
• utgående basvariabel.
• Motsvarar riktningen d = (1, 0, –1, –1, 0)T
4
Simplexmetoden på ett exempel 2 (3)
3x
32
232
376
)22(3
xx
xxxz
25
32
2324
321
3
33
)22(5
22
xx
xx
xxxx
xxx
3,3,0,0,2 54321 xxxxx
),(),,,( 32541 xxxxx NB xx2x
• Identifiera nya baslösningen.
• Uttryck alla bivillkor och
målfunktion i icke-basvariabler
• Hur vill vi förändra variablerna? – Öka eller
• Endast den ena går!
Vilken? Varför?
• Hur mycket kan vi öka ? – ökar när vi ökar
• Inga problem!
– minskar när vi ökar • Får ej bli negativ.
• Öka med högst 1.
– minskar när vi ökar • Får ej bli negativ.
• Öka med högst 3.
• Öka med steglängden t = 1, vilket minskar till 0.
• inkommande basvariabel.
• utgående basvariabel.
• Motsvarar riktningen d = (2, 1, 0, –3, –1)T
2x1x
2x4x
2x
2x5x
2x
2x
2x
4x
4x2xAlltså:
6z
5
Simplexmetoden på ett exempel 3 (3)
331
3
3
3
2
34
)33
1(22
43
432
43
343
1
xx
xxx
xx
xxx
x
3
7
3
213
3)33
1(76
43
343
xx
xxx
z
2,0,0,1,4 54321 xxxxx
),(),,,( 43521 xxxxx NB xx
• Identifiera en tillåten baslösning.
• Uttryck alla bivillkor och
målfunktion i icke-basvariabler
• Hur vill vi förändra variablerna? – Inte alls! Vi är i optimum!
Hur ser man det?
• Läs ut optimallösningen:
– z* = 13.
– x* = (4, 1, 0, 0, 2)T
332
)33
1(3
43
435
xx
xxx
Alltså:
6
Grafisk tolkning av
exemplet
1 5
(2)
(1)
z
5
(3)
2x
1xStartpunkt
Efter iteration 1
Efter iteration 2 (Optimum)
7
Formell beskrivning av simplexmetoden
0. Identifiera en tillåten startbaslösning, 𝑥(0). Sätt 𝑘 = 0.
1. Beräkna reducerade kostnader 𝑐 𝑗 och sökriktningar genom att pivotera ekvationssystemet.
2. Kontrollera avbrottskriterium: 𝑥(𝑘)är optimallösningen till ett
• maxproblem: om 𝑐 𝑗 ≤ 0, ∀𝑗.
• minproblem: om 𝑐 𝑗 ≥ 0, ∀𝑗.
3. Välj inkommande basvariabel:
• I ett maxproblem: 𝑐 𝑝 = max𝑗 𝑐 𝑗.
• I ett minproblem: 𝑐 𝑝 = min𝑗 𝑐 𝑗.
Ger inkommande basvariabel 𝑥𝑝 och sökriktning 𝑑(𝑘).
4. Bestäm steglängd 𝑡(𝑘) =𝑏 𝑠
𝑎 𝑠𝑝= min
𝑖
𝑏 𝑖
𝑎 𝑖𝑝: 𝑎 𝑖𝑝 > 0 , där:
• 𝑏 𝑖 aktuellt högerled rad 𝑖. • 𝑎 𝑖𝑝 aktuell bivillkorskoefficient för 𝑥𝑝 i rad 𝑖. Basvariabeln i rad 𝑠 blir utgående.
(Om 𝑎 𝑖𝑝 ≤ 0, ∀𝑖 har problemet obegränsad lösning.)
5. Ny punkt ges av 𝑥(𝑘+1) = 𝑥(𝑘) + 𝑡(𝑘) ∙ 𝑑(𝑘). Sätt 𝑘 ≔ 𝑘 + 1, gå till steg 1.
Riktningen på olikheten
bygger på att alla
variabler står på vänster
sida om likhetstecknet,
och taltermen 𝑏 𝑖 > 0
ensam på höger.
8
Simplex på tablåform
• Snabba upp lösningsförfarandet med en tablå
som beskriver ekvationssystemet
– Pedagogiskt vid inlärning.
– Praktiskt vid handräkning.
– Används ej i kommersiell datorprogramvara.
• Målfunktionsraden måste skrivas om
– Reducerade kostnaden står med omvänt tecken:
𝑧 = 𝑐𝑇𝑥 ⟹ 𝑧 − 𝑐𝑇𝑥 = 0
9
Simplextablå 1 (3)
3 1 1
5 1 1 1
2 1 –2 1
0 –1 –3 1
Basvar/var 2x1x 4x 5x3x
4x
5x
3xz
bz
03 21 xxz
3
5
22
52
421
321
xx
xxx
xxx213max xxz
3
5
22då
2
21
21
x
xx
xx
0, 21 xx
• Välj startbas
• Inspektion
• Pivotera
• ”Pricing out”
• Avbrottskriterium
• Maxproblem
• Nej, vi har åtminstone en variabel med positiv reducerad kostnad
• Inkommande basvar
• Maxproblem
• Max reducerad kostnad
• Steglängd
• Min (Högerled/bivillkorskolumn)
• Givet positiva bivillkorskoefficient.
• Nästa iteration 10
2x1x 4x 5x3x
4x
5x
1xz
bz
32
232
376
)22(3
xx
xxxz
25
32
2324
321
3
33
)22(5
22
xx
xx
xxxx
xxx
3 1 1
3 1 –1 3
2 1 –2 1
6 3 –7 1
Basvar/var
• Pivotera
• Klart
• Avbrottskriterium
• Maxproblem
• Nej, vi har åtminstone en variabel
med positiv reducerad kostnad
• Inkommande basvar
• Maxproblem
• Max reducerad kostnad
• Steglängd
• Min (Högerled/bivillkorskolumn)
• Givet positiva bivillkorskoeff.
• Nästa iteration
Simplextablå 2 (3)
11
Simplextablå 3 (3)
• Pivotera
• Avbrottskriterium
• Maxproblem
• Ingen variabel har positiv
reducerad kostnad
• Optimum funnet
• Lösning och
målfunktionsvärde läses
ur tablån
2x1x 4x 5x3x
2x
5x
1xz
bz
3
7
3
213
3)33
1(76
43
343
xx
xxx
z
331
3
3
3
2
34
)33
1(22
43
432
43
343
1
xx
xxx
xx
xxx
x
332
)33
1(3
43
435
xx
xxx
Basvar/var
1 2/3 7/3 13
1 1/3 2/3 4
1 -1/3 1/3 1
1/3 -1/3 1 2
På algebraisk form!
12
Fas I: Att hitta en
startbaslösning i simplexmetoden
• Ibland kan man ”starta på slacket”, men ibland är det
inte elementärt att identifiera en tillåten (start-) bas.
• Ex. ursprungligt standardform
• Fas 1 är problemet att hitta någon tillåten baslösning
3213max xxxz
3
53
22då
321
321
321
xxx
xxx
xxx
0,, 321 xxx
3213max xxxz
3
53
22då
321
5321
4321
xxx
xxxx
xxxx
0,,,, 54321 xxxxx
13
Fas I: Artificiella variabler
• Inför artificiella variabler i rader där vi saknar
uppenbara basvariabler
• Tillåten startbas:
• Om/när alla artificiella variabler = 0 (icke-bas)
• De artificiella variablerna kan tas bort
• Tillåten punkt i ursprungliga problemet funnen
3
53
22
2321
15321
4321
axxx
axxxx
xxxx
0,,,,,, 2154321 aaxxxxx
),,,(),,,( 5321214 xxxxaax NB xx
14
Fas I: Målfunktion
3
53
22då
2321
15321
4321
axxx
axxxx
xxxx
0,,,,,, 2154321 aaxxxxx
21min aaw
Fas I har en egen målfunktion:
• ”Minimera [alltid] summan artificiella variabler.
Om w* = 0 har en startbas erhållits.
• Stryk de artificiella variablerna ur tablån.
• Sätt in ordinarie målfunktionen.
• Räkna vidare i vanliga tablån – ”Fas II” – som tidigare.
Om w* > 0 saknar det ursprungliga problemet lösning.
• Det finns ingen tillåten baslösning för det ursprungliga problemet.
• Avbryt.
15
Känslighetsanalys
• Hur känslig är en lösning för störningar?
• Värdet av förändringar i indata
• ”Resurser” (högerled)
• ”Förbrukning” (bivillkorskoefficient)
• ”Kostnader” (målfunktionskoefficient)
• Effekt av osäkerhet i indata
• Vad händer/kan hända vid förändringar?
• Hur förändras målfunktionsvärdet?
• Hur förändras lösningen? Hur robust är den?
• Under vilka förutsättningar förändras inte
• Lösningen
• Basuppsättningen
• Analys sker ur data från ursprunglig lösning
• Inget behov för reoptimering
16
Exempel på känslighetsanalyser
• Ändra målfunktionskoefficient 𝑐𝑗.
• Ändra resurstillgång (högerled) 𝑏𝑖.
• Ändra resursåtgång (bivillkorskoefficient) 𝑎𝑖𝑗.
• Lägga till eller ta bort villkor
• Lägga till eller ta bort variabel
17
Relaxering – Restrifiering
• Relaxering
• Förändring som (ev) utökar tillåtna området
• ”Större” utrymme i bivillkor
• Även villkor tas bort
• Ny variabel
• Optimalt målfunktionsvärde kommer inte att försämras
• Restrifiering
• Förändring som (ev) minskar tillåtna området
• ”Mindre” utrymme i bivillkor
• Även villkor läggs till
• Tag bort variabel
• Optimalt målfunktionsvärde kan inte förbättras
18
Begreppet Skuggpris (Shadow Price)
• Kallas också: dualpris, dualvärde, värde på
dualvariabel, marginalpris.
• Kopplas till ett visst bivillkor.
• Betecknas ofta 𝑣𝑖 eller 𝑦𝑖 eller 𝜋𝑖.
• Marginalförändring av målfunktionsvärde vid
marginell ökning av resursen i bivillkor 𝑖, dvs
𝑣𝑖 =𝜕𝑧
𝜕𝑏𝑖 .
• Givet skuggpris gäller bara i ett visst intervall,
𝑏𝑖undre ≤ 𝑏𝑖≤ 𝑏𝑖
övre.
19
Grafisk tolkning, förändrat högerled
• Förändrat högerled
• Förändrad placering villkor
• Små förändringar
• Om aktivt bivillkor
• Samma basuppsättning
• Nytt målfunktionsvärde
• Konstant skuggpris
• Om ej aktivt bivillkor
• Ingen förändring
• Stora förändringar
• Ev. ny basuppsättning
• Ny lösning, målfunktionsvärde och skuggpris
213max xxz
3
45
22då
2
21
21
x
xx
xx
0, 21 xx
1 5
1
(2)
(1)
5
(3)
2x
1x
20
Grafisk tolkning, målfunktionskoeffeicient
• Förändrad
målfunktions-
koefficient
• Förändrad lutning
målfunktion
• Små förändringar
• Förändrat
målfunktionsvärde
• Större förändring
• Ny baslösning
21 413max xxz
3
5
22då
2
21
21
x
xx
xx
0, 21 xx
1 5
1
(2)
(1)
5
(3)
2x
1x
21
Känslighetsanalys: Frågeställningar
• Vad händer vid ”en störning”?
– Hur förändras t ex målfunktionsvärdet?
• Hur stor får förändringen bli?
– Effekten linjär för en liten förändring?
– Vad händer om förändringen är större?
• Tolka utdata från program
– T ex AMPL
Sista knorren på miniprojekt 1!
22
AMPL: Modell- och indatafil
Modellfil
param n; # antal var
param m; # antal biv
param c{1..n}; # målfkn.koeff
param a{1..m,1..n}; # biv.koeff
param b{1..m}; # höberled
var x{1..n} >=0; # variabler
maximize z: sum{j in 1..n} c[j]*x[j]; #målfkn
subject to biv{i in 1..m}: #biv
sum{j in 1..n} a[i,j]*x[j]<=b[i];
Datafil
param n:=3; # var
param m:=3; # biv
param c:=
1 3
2 1
3 4; # målfunktionskoeff
param a: 1 2 3 := #biv.koeff
1 1 -2 4
2 1 1 3
3 0 1 2;
param b:=
1 2
2 5
3 3 ; #
321 413max xxxz
32
53
242då
32
321
321
xx
xxx
xxx
0,, 321 xxx
23
AMPL: Kommandofil
och utdata Kommandofil reset;
option solver cplex;
option presolve 0;
option cplex_options 'sensitivity'; model u2xmod.txt;
data u2xdat.txt
solve;
display x;
display biv.slack, biv.down, biv.current, biv.up, biv.dual;
display x.down, x.current, x.up, x.rc; exit;
Lösning x [*] := (4,1,0)
: biv.slack biv.down biv.current biv.up biv.dual :=
1 0 -4 2 5 0.666667
2 0 2 5 11 2.33333
3 2 1 3 1e+20 0
: x.down x.current x.up x.rc :=
1 1.3 3 1e+20 0
2 -6 1 3 -4.44089e-16
3 -1e+20 4 9.66667 -5.66667
Intervall HL med
bibehållen bas
Förändrat målfkvärde per
enhets ökning av HL
Aktuellt HL
Intervall målfknkoeff med bibehållen lösning Aktuell målfunktionskoefficient
Red.kostn. i opt
(0 för basvar)
Slack
24
Inför Lektion 4
Uppgift 4.12
• Simplex på tablå.
• Väldigt nyttig som förberedelse för datorlektion 2.
Uppgift 4.15
• Knyter ihop tablåform med algebraisk form.
• Studera kap 4.8; det är inte så svårt som det ser ut!
25
Inför Lektion 5
Uppgift 5.4
• Rita! Jämför med ”grafisk tolkning”-bilderna ovan. Identifiera (tillåtna) baser!
• I d): Skuggpriserna är giltiga så länge baslösningen ej ändras. (Tänk: Tillåtenhet för basvariablerna!)
Uppgift 5.10
• Bra övning inför känslighetsanalysen till miniprojekt 1.
26
www.liu.se