TNK09 Optimeringslära Clas Rydergren ITN Föreläsning Simplemetoden på tablåform och algebraisk form Fas I (startlösning) Känslighetsanalys Tolkning av utdata
Agenda Halvtidsutvärdering Simplemetoden (kap..8) Ett eempel Tablåform (kap.7) Algebraisk form (kap.8) Fas I : Tillåten startlösning i Simplemetoden (kap.9) Känslighetsanalys (kap ) Relaering och restrifiering (kap.) Skuggpriser (kap.) Tolkning av utdata från ett datorprogram (kap.)
Simplemetoden (eempel från Fö) ma z då 0 () () () ma z då 0 Omskrivet på standardform:
Simplemetoden på ett eempel () ma z då Identifiera en tillåten baslösning. ) ( ) B Uttryck alla bivillkor och målfunktion i icke-basvariabler z 0 ( N Alltså: 0 0 z 0 Hur vill vi förändra variablerna? Ö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. minskar när vi ökar Får ej bli negativ. Öka med högst. påverkas inte av ( c Öka med steglängden t = minskar till 0. inkommande basvariabel. utgående basvariabel. Motsvarar riktningen d = ( 0 0) T )
Simplemetoden på ett eempel () Identifiera nya baslösningen. z B ( ) N ( ) Uttryck alla bivillkor och målfunktion i icke-basvariabler ( 6 7 ( ) ) Alltså: 0 0 z 6 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. minskar när vi ökar Får ej bli negativ. Öka med högst. Öka med steglängden t = vilket minskar till 0. inkommande basvariabel. utgående basvariabel. Motsvarar riktningen d = ( 0 ) T
Simplemetoden på ett eempel () ) ( 7 ) 7( 6 z 0 0 ) ( ) ( N B 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* =. * = ( 0 0 ) T ) ( Alltså: 6
() Grafisk tolkning av eemplet () () z Efter iteration (Optimum) Startpunkt Efter iteration 7
Formell beskrivning av simplemetoden 0. Identifiera en tillåten startbaslösning (0). Sätt k = 0.. Beräkna reducerade kostnader cj och sökriktningar genom att pivotera ekvationssystemet.. Kontrollera avbrottskriterium: (k) är optimallösningen till ett maproblem: om cj 0 j. minproblem: om cj 0 j.. Välj inkommande basvariabel: I ett maproblem: cp = ma j cj. I ett minproblem: cp = min j cj. Ger inkommande basvariabel p och sökriktning d (k).. Bestäm steglängd t (k) = b s b = min i : a a sp i a ip > 0 där: ip b i aktuellt högerled rad i. a ip aktuell bivillkorskoefficient för p i rad i. Basvariabeln i rad s blir utgående. (Om a ip 0 i har problemet obegränsad lösning.) Riktningen på olikheten bygger på att alla variabler står på vänster sida om likhetstecknet och taltermen b i > 0 ensam på höger.. Ny punkt ges av (k+) = (k) + t (k) d (k). Sätt k k + gå till steg. 8
Simple 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: z = c T z c T = 0 9
Simpletablå () ma z då Välj startbas Inspektion Pivotera Pricing out Avbrottskriterium Maproblem Nej vi har åtminstone en variabel med positiv reducerad kostnad Inkommande basvar Maproblem Ma reducerad kostnad Steglängd 0 Min (Högerled/bivillkorskolumn) Givet positiva bivillkorskoefficient. Nästa iteration z Basvar/var z z b 0 0 0
Simpletablå () Pivotera Klart Avbrottskriterium Maproblem Nej vi har åtminstone en variabel med positiv reducerad kostnad Inkommande basvar Maproblem Ma reducerad kostnad Steglängd Min (Högerled/bivillkorskolumn) Givet positiva bivillkorskoeff. Nästa iteration Basvar/var z z z ( 6 7 ( 7 ) ) b 6
Simpletablå () Pivotera Avbrottskriterium Maproblem Ingen variabel har positiv reducerad kostnad Optimum funnet Lösning och målfunktionsvärde läses ur tablån På algebraisk form! Basvar/var z z / 7/ / / -/ / / -/ z 6 7( ) 7 ( ) ( ) b
Fas I: Att hitta en startbaslösning i simplemetoden Ibland kan man starta på slacket men ibland är det inte elementärt att identifiera en tillåten (start-) bas. E. ursprungligt standardform Fas är problemet att hitta någon tillåten baslösning ma z då 0 ma z då 0
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 a a 0 a a ) ( ) ( a a N B
Fas I: Målfunktion då a a 0 a a min a a w 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.
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 6
Eempel på känslighetsanalyser Ändra målfunktionskoefficient c j. Ändra resurstillgång (högerled) b i. Ändra resursåtgång (bivillkorskoefficient) a ij. Lägga till eller ta bort villkor Lägga till eller ta bort variabel 7
Relaering Relaering Restrifiering 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 8
Begreppet Skuggpris (Shadow Price) Kallas också: dualpris dualvärde värde på dualvariabel marginalpris. Kopplas till ett visst bivillkor. Betecknas ofta v i eller y i eller π i. Marginalförändring av målfunktionsvärde vid marginell ökning av resursen i bivillkor i dvs v i = z b i. Givet skuggpris gäller bara i ett visst intervall b i undre bi b i övre. 9
Grafisk tolkning förändrat högerled Förändrat högerled Förändrad placering villkor Små förändringar Om aktivt bivillkor () ma z då 0 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 0
Grafisk tolkning målfunktionskoeffeicient Förändrad målfunktionskoefficient Förändrad lutning målfunktion Små förändringar () () ma z då 0 Förändrat målfunktionsvärde () Större förändring Ny baslösning
Känslighetsanalys: Frågeställningar Vad händer vid en störning? Hur förändras t e 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 e AMPL Sista knorren på miniprojekt!
ma z då Modellfil AMPL: Modell- och indatafil param n; # antal var param m; # antal biv param c{..n}; # målfkn.koeff param a{..m..n}; # biv.koeff param b{..m}; # höberled var {..n} >=0; # variabler 0 Datafil param n:=; # var param m:=; # biv param c:= ; # målfunktionskoeff param a: := #biv.koeff - 0 ; maimize z: sum{j in..n} c[j]*[j]; #målfkn subject to biv{i in..m}: #biv sum{j in..n} a[ij]*[j]<=b[i]; param b:= ; #
AMPL: Kommandofil Kommandofil reset; och utdata option solver cple; option presolve 0; option cple_options 'sensitivity'; model umod.tt; data udat.tt solve; display ; display biv.slack biv.down biv.current biv.up biv.dual; display.down.current.up.rc; eit; Intervall HL med Slack bibehållen bas Lösning [*] := (0) Aktuellt HL : biv.slack biv.down biv.current biv.up := biv.dual 0-0.666667 0. e+0 0 :.down.current.up.rc :=. e+0 0-6 -.089e-6 -e+0 9.66667 -.66667 Förändrat målfkvärde per enhets ökning av HL Red.kostn. i opt Intervall målfknkoeff med bibehållen lösning (0 för basvar) Aktuell målfunktionskoefficient
Uppgift. Inför Lektion Simple på tablå. Väldigt nyttig som förberedelse för datorlektion. Uppgift. Knyter ihop tablåform med algebraisk form. Studera kap.8; det är inte så svårt som det ser ut!
Uppgift. Inför Lektion 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.0 Bra övning inför känslighetsanalysen till miniprojekt. 6
www.liu.se