LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter"

Transkript

1 LP-problem Vårt första exempel Ett LP-problem: max z = c T x då Ax b, x 0. Den tillåtna mängden är en polyeder och konvex. Målfunktionen är linjär och konvex. Så problemet är konvext. Var ligger optimum? f (x) = c 0 Gå så långt man får åt något håll. Hörn. Sats (Linjärprogrammeringens fundamentalsats) Om ett LP-problem har begränsad optimallösning, så antas den i (minst) en extrempunkt. Variabeldefinition: x 1 = antal enheter Optimus som görs varje timme. x 2 = antal enheter Rullmus som görs varje timme. Matematisk modell: då 2x 1 + 3x 2 30 (knappar) x 1 6 (optik) 6x 1 + 4x 2 50 (monteringstid) x 1 0 x 2 0 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Baslösningar representerar extrempunkter Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Baslösningar representerar extrempunkter då 2x 1 + 3x 2 30 x 1 6 6x 1 + 4x 2 50 x 1 0 x 2 0 x2 E F A Inför slackvariabler. G D B C x1 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21

2 Baslösningar representerar extrempunkter x F 2 E A Hörn- Aktiva Variabler som Variabler som punkt bivillkor sätts till noll löses ut A 1,3 x 3 = 0, x 5 = 0 x 1 = 3, x 2 = 8, x 4 = 3 B 2,3 x 4 = 0, x 5 = 0 x 1 = 6, x 2 = 7/2, x 3 = 15/2 C 2,5 x 2 = 0, x 4 = 0 x 1 = 6, x 3 = 18, x 5 = 14 D 4,5 x 1 = 0, x 2 = 0 x 3 = 30, x 4 = 6, x 5 = 50 E 1,4 x 1 = 0, x 3 = 0 x 2 = 10, x 4 = 6, x 5 = 10 F 3,4 x 1 = 0, x 5 = 0 x 2 = 25/2, x 3 = 15/2, x 4 = 6 G 1,2 x 3 = 0, x 4 = 0 x 1 = 6, x 2 = 6, x 5 = 10 Punkt F och G ej tillåtna, ty negativa variabelvärden. D G B C x 1 Baslösningar representerar extrempunkter x F 2 E A Hörn- Ickebas- Basvariabler Målfunktion punkt variabler (=0) A x 3, x 5 x 1, x 2, x 4 z = 36 1/5x 3 3/5x 5 B x 4, x 5 x 1, x 2, x 3 z = 69/2 + 1/2x 4 3/4x 5 C x 2, x 4 x 1, x 3, x 5 z = x 2 4x 4 D x 1, x 2 x 3, x 4, x 5 z = 4x 1 + 3x 2 E x 1, x 3 x 2, x 4, x 5 z = x 1 x 3 Punkt A optimal, ty negativa reducerade kostnader. D G B C x 1 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Baslösningar, hur byta Byt en basvariabel i taget. Öka ickebasvariabel med positiv reducerad kostnad. (Ökar z.) Gör ökningen så stor som möjligt, dvs. så att en basvariabel blir noll och ingen negativ. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Exempel Basvariabler: x 3, x 4, x 5. Dvs. x 1 = 0, x 2 = 0 och x 3 = 30, x 4 = 6, x 5 = 50. Öka x 1 (verkar bäst). Sätt x 1 = t, x 2 = 0, vilket ger 2t + x 3 = 30 t + x 4 = 6 6t + x 5 = 50 x 3 = 30 2t 0 t 30/2 = 15 x 4 = 6 t 0 t 6 x 5 = 50 6t 0 t 50/ Ger t = 6, dvs. x 1 = 6 och x 3 = = 18, x 4 = 6 6 = 0, x 5 = = 14. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21

3 Baslösning, teoretiskt Definition En baslösning fås genom att välja ut m basvariabler, lösa ut dessa mha ekvationssystemet Ax = b och sätta icke-basvariablerna till noll. Baslösningen är tillåten om alla basvariabler får icke-negativa värden. x = (x B, x N ), A = (B N). Bx B + Nx N = b ger x B = B 1 b B 1 Nx N. Eliminera x B från målfunktionen: z = c T B x B + c T N x N = ẑ + ĉ T N x N där ẑ = c T B B 1 b och ĉ N = c N (c T B B 1 N) T. ĉ N kallas reducerade kostnader. Baslösningen som fås för x N = 0 och x B = B 1 b är tillåten om B 1 b 0 och optimal om ĉ N 0. Sats Varje extrempunkt i en polyeder kan definieras av (minst) en tillåten baslösning. Börja med att skriva problemet på likhetsform (inför slackvariabler). 0. Skaffa en tillåten startbas. 1. Välj inkommande variabel så att förbättring fås: Mest positiv reducerad kostnad, max ĉ j. (för max-problem) j Om ĉ j 0 för all j: Stopp, optimum funnet. 2. Välj utgående variabel så att tillåtenhet behålls: Minst kvot ( mellan ) i högerled och positiv koefficient i inkommande kolumn, min. i:â ij >0 Om â ij 0 för alla i: Stopp, lösningen är obegränsad. 3. Byt bas (pivotera): Eliminera inkommande variabel från alla andra rader. Gå till 1. â ij Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Löst exempel Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 då 2x 1 + 3x 2 30 x 1 6 6x 1 + 4x 2 50 x 1, x 2 0 Inför slackvariabler, x 3, x 4, x 5. Starttablå: z x x x Inkommande variabel: x 1. Utgående variabel: x 4. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21

4 z x x x Inkommande variabel: x 2. Utgående variabel: x 5. z /2 3/4 69/2 x /2-3/4 15/2 x x /2 1/4 7/2 Inkommande variabel: x 4. Utgående variabel: x 3. z /5 0 3/5 36 x /5 1-3/10 3 x /5 0 3/10 3 x /5 0-1/5 8 Ingen inkommande variabel. Optimaltablå. Optimallösning: x 1 = 3, x 2 = 8, z = 36. Slack: Villkor 1 aktivt (x 3 = 0). Villkor 2 ej aktivt (x 4 = 3). Villkor 3 aktivt (x 5 = 0). Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21, matrisform Skriv problemet på likhetsform (inför slackvariabler), Ax = b. x2 x1 0. Skaffa en tillåten startbas: x = (x B, x N ), A = (B N), c = (c B, c N ). 1. Beräkna B Beräkna högerled: = B 1 b. Variablernas värden: x B =, x N = Beräkna målfunktionsvärdet: z = c T B x B. 4. Beräkna skuggpriser: y = (c T B B 1 ) T. 5. Beräkna reducerade kostnader: ĉ N = c N N T y (dvs ĉ j = c j a T j y). 6. Om ĉ N 0: Stopp, optimum. 7. Välj inkommande variabel x k så att förbättring fås: ĉ k = max j ĉ j. 8. Beräkna inkommande kolumn för aktuell bas: â k = B 1 a k. 9. Om â k 0: Stopp, problemet har obegränsad lösning. ( ) l i 10. Välj utgående variabel så att tillåtenhet behålls: = min. â lk i:â ik >0 â ik 11. Byt bas: Uppdatera B, N, c B och c N. Gå till 1. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21

5 Simplextablån, teoretiskt max z = c T x då Ax + Ix S = b x, x S 0 Bas z x x S z 1 c T 0 0 x S 0 A I b (Starttablå) Bas z x x S z 1 c T B B 1 A c T c T B B 1 c T B B 1 b x B 0 B 1 A B 1 B 1 b B 1 kan läsas ut ut optimaltablån. Och c T B B 1. (Optimaltablå) Degeneration och konvergens Definition En baslösning där en eller flera basvariabler har värdet noll kallas degenererad baslösning. Om inga baslösningar är degenererade: Varje extrempunkt motsvaras av exakt en baslösning. Varje iteration i simplexmetoden ger ett positivt värde på inkommande variabel, och en strikt förbättring i målfunktionsvärde. Man kan därför aldrig komma tillbaka till en redan besökt extrempunkt. Det finns ändligt många extrempunkter, så detta kan bara upprepas ett ändligt antal gånger. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Degeneration och konvergens Sats Om det tillåtna området till ett LP-problem är icketomt, och inga baslösningar är degenererade, så kommer simplexmetoden att avslutas inom ett ändligt antal iterationer. I en degenererad baslösning: i = 0. Kan ge minsta kvot noll. Högerleden ändras då ej. Inkommande variabel ökas ej. En annan baslösning ger samma punkt. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Västa fall för simplexmetoden Berömt exempel: Klee-Minty (1972) max z = 10x 1 + 3x 2 då x x 1 + x x 1, x 2 0 x2 100 Om flera basvariabler är noll: Många iterationer i samma punkt. Ingen förbättring. Samma bas kan återkomma. Om samma bas återkommer: Cykling! Cykling kan förhindras genom speciella val av inkommande och utgående variabler. 1 x1 Besöker alla extrempunkter. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21 Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21

6 Västa fall för simplexmetoden Öka antalet variabler, n. n max z = 10 n j x j j=1 i 1 då 2 10 i j + x i 100 i 1 i = 1,..., n j=1 x j 0 j = 1,..., n kräver 2 n 1 iterationer. Varje iteration kräver O(m 2 ) (uppdatering av B 1 ). Empiriskt: I medel m 3 iterationer för verkliga problem. Kaj Holmberg (LiU) TAOP86 Optimering 26 augusti / 21