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) TAOP88 Optimering 16 mars 2017 1 / 21 Baslösningar representerar extrempunkter Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 2 / 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) TAOP88 Optimering 16 mars 2017 3 / 21 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 4 / 21
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 = 24 + 3x 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 = 30 + 2x 1 x 3 Punkt A optimal, ty negativa reducerade kostnader. D G B C x 1 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 5 / 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) TAOP88 Optimering 16 mars 2017 6 / 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/6 8.333 Ger t = 6, dvs. x 1 = 6 och x 3 = 30 12 = 18, x 4 = 6 6 = 0, x 5 = 50 36 = 14. Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 7 / 21 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 8 / 21
Baslösning, teoretiskt Definition En baslösning fås genom att välja ut m basvariabler, sätta icke-basvariablerna till noll, och lösa ut basvariablerna mha ekvationssystemet Ax = b. 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) TAOP88 Optimering 16 mars 2017 9 / 21 Löst exempel Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 10 / 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 1-4 -3 0 0 0 0 x 3 0 2 3 1 0 0 30 x 4 0 1 0 0 1 0 6 x 5 0 6 4 0 0 1 50 Inkommande variabel: x 1. Utgående variabel: x 4. Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 11 / 21 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 12 / 21
z 1 0-3 0 4 0 24 x 3 0 0 3 1-2 0 18 x 1 0 1 0 0 1 0 6 x 5 0 0 4 0-6 1 14 Inkommande variabel: x 2. Utgående variabel: x 5. z 1 0 0 0-1/2 3/4 69/2 x 3 0 0 0 1 5/2-3/4 15/2 x 1 0 1 0 0 1 0 6 x 2 0 0 1 0-3/2 1/4 7/2 Inkommande variabel: x 4. Utgående variabel: x 3. z 1 0 0 1/5 0 3/5 36 x 4 0 0 0 2/5 1-3/10 3 x 1 0 1 0-2/5 0 3/10 3 x 2 0 0 1 3/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) TAOP88 Optimering 16 mars 2017 13 / 21 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 14 / 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 1. 2. Beräkna högerled: = B 1 b. Variablernas värden: x B =, x N = 0. 3. 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) TAOP88 Optimering 16 mars 2017 15 / 21 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 16 / 21
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) TAOP88 Optimering 16 mars 2017 17 / 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) TAOP88 Optimering 16 mars 2017 18 / 21 Västa fall för simplexmetoden Berömt exempel: Klee-Minty (1972) max z = 10x 1 + 3x 2 då x 1 1 20x 1 + x 2 100 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) TAOP88 Optimering 16 mars 2017 19 / 21 Kaj Holmberg (LiU) TAOP88 Optimering 16 mars 2017 20 / 21
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) TAOP88 Optimering 16 mars 2017 21 / 21