Metody lineární optimalizace Simplexová metoda Dvoufázová M-úloha Duální úloha jednofázová Post-optimalizační analýza Celočíselné řešení Metoda větví a mezí Distribuční úlohy 1
OÚLP = obecná úloha lineárního programování Hledáme optimum F x = c T x c R n je vektor cenových koeficientů x R n je vektor proměnných a R mxn je matice koeficientů proměnných b R m je vektor pravých stran na množině M = g i x omezujících podmínek g i x kapacitní: g i x : a i T x b i i I 1 požadavkové: g i x : a T i x b i i I 2 určující: g i x : a T i x = b i i I I 1 I 2 I = 1,, m a podmínek nezápornosti x 0 plynou z ekonomické interpretace ÚLP OÚLP = obecná úloha lineárního programování Hledáme optimum F x n = σ j=1 c j x j c 1,, c n R n je vektor cenových koeficientů x 1,, x n R n je vektor proměnných a 11,, a mn R mxn je matice koeficientů proměnných b 1,, b m b R m je vektor pravých stran na množině M = g i x omezujících podmínek g i x kapacitní: g i x : σn j=1 a ij x j b i i I 1 požadavkové: g i x : σ n j=1 a ij x j b i i I 2 určující: g i x : σn j=1 a ij x j = b i i I I 1 I 2 I = 1,, m a podmínek nezápornosti x 1,, x n 0 plynou z ekonomické interpretace ÚLP 2
SM = Simplexová metoda patří mezi univerzální iterační metody řešení OÚLP prochází krajní body množiny M jistým racionálním způsobem nikdy nepřejde do bodu s horší funkční hodnotou Nalezení výchozího přípustného řešení algoritmus výpočtu: Je řešení optimální? ano Konec výpočtu ne Přepočet na jiné přípustné řešení Pokud má OÚLP alespoň jedno přípustné řešení, vede tato metoda po konečném počtu kroků k nalezení / nenalezení konečného optimálního řešení. Simplexová metoda postup procházení M (geometricky): předpoklad máme krajní bod x 0 M (výchozí přípustné řešení) pro i = 0,1,,s z krajního bodu x i vychází konečné množství hran (krajní směry v i ) hrana obsahuje jediný další krajní bod množiny M hrana je neomezená neomezená hrana + body s lepší funkční hodnotou než c T x i úloha nemá optimální řešení omezené hrany obsahují další krajní body vybereme ten s lepší funkční hodnotou než c T x i získáme bod x i+1 a opakujeme postup pokud neexistuje bod s lepší funkční hodnotou bod x i je hledané optimum úloha má optimální řešení 3
Simplexová metoda používá se uspořádání do simplexové tabulky pro ruční řešení a přehlednost tabulka obsahuje m+1 řádků lineární rovnice g x + vektor z (redukované cenové koeficienty) jednofázová metoda obsahuje n+m+1 sloupců vektor proměnných x R n + vektor přídatných proměnných x R m + pravá strana b dvoufázová metoda obsahuje n+2m+1 sloupců vektor proměnných x R n + vektor přídatných proměnných x R m + vektor pomocných proměnných p R m + pravá strana b Jednofázová SM řešíme úlohu ve SKT min/ max F x kde F x = c T x za omezujících podmínek ve tvaru g x b A x + E x = b, x 0 rovnosti dosáhneme pomocí množiny přídatných proměnných x n+k, které tvoří bázi (v tabulce s koeficientem +1) 4
Dvoufázová SM řešíme pomocnou úlohu min σ p j kde p = A x b, p 0 řešíme původní úlohu ve SKT min/ max F x kde F x = c T x za omezujících podmínek g x b při výběru výchozího krajního bodu množiny M využijeme minimalizační algoritmus A x E x + E p = b, x 0 rovnosti dosáhneme pomocí množiny přídatných proměnných x n+k, (v tabulce s koeficientem -1) a pomocí množiny pomocných proměnných p k, které tvoří bázi (v tabulce s koeficientem +1) Dvoufázová M-úloha řešíme pomocnou úlohu min σ M p j kde p = A x b, p 0 řešíme původní úlohu ve SKT min/ max F x kde F x = c T x za omezujících podmínek g x b při výběru výchozího krajního bodu množiny M využijeme minimalizační algoritmus A x E x + E p = b, x 0 rovnosti dosáhneme pomocí množiny přídatných proměnných x n+k, (v tabulce s koeficientem -1) a pomocí množiny pomocných proměnných p k, které tvoří bázi (v tabulce s koeficientem +1) 5
řezný plán Sestavte model úlohy lineárního programování, vytvořte výchozí simplexovou tabulku a najděte optimální řešení. Střihačka střihá z kruhové látky půlkruhy, čtvrtky kruhu a osminy jako díly pro výrobu dekorativních textilií tzv. patchwork. Z jednoho kruhového kusu získá 2 půlkruhy; 1 půlkruh, 1 čtvrtku a 2 osminy; 2 čtvrtky a 4 osminy; 3 čtvrtky a 2 osminy. Na splnění zakázky je třeba získat 75 osmin kruhu, 50 čtvrtek a 10 půlkruhů. Je třeba minimalizovat spotřebu základní kruhové látky. Hledáme min F x = 1 x 1 + 1 x 2 + 1 x 3 + 1 x 4 x j určuje počet rozřezaných kruhových látek j-tým řezným plánem množina M = g i x omezujících podmínek půlkruhy g 1 x : 2 x 1 + 1 x 2 + 0 x 3 + 0 x 4 10 čtvrtky g 2 x : 0 x 1 + 1 x 2 + 2 x 3 + 3 x 4 50 osminky g 3 x : 0 x 1 + 2 x 2 + 4 x 3 + 2 x 4 75 podmínky nezápornosti x 1, x 2, x 3, x 4 0 6
Hledáme min F x = 1 x 1 + 1 x 2 + 1 x 3 + 1 x 4 + 0 x 5 + 0 x 6 + 0 x 7 účelová funkce původní úlohy min G p = 1 p 1 + 1 p 2 + 1 p 3 účelová funkce pomocné úlohy množina M = g i x omezujících podmínek g 1 x : 2 x 1 + 1 x 2 + 0 x 3 + 0 x 4 1 x 5 + 1 p 1 = 10 g 2 x : 0 x 1 + 1 x 2 + 2 x 3 + 3 x 4 1 x 6 + 1 p 2 = 50 g 3 x : 0 x 1 + 2 x 2 + 4 x 3 + 2 x 4 1 x 7 + 1 p 3 = 75 podmínky nezápornosti x 1, x 2, x 3, x 4, x 5, x 6, x 7, p 1, p 2, p 3 0 výchozí přípustné řešení zápis množiny M v SKT p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 1 2 3 0-1 0 0 1 0 50 p3 0 2 4 2 0 0-1 0 0 1 75 z z~ 7
výchozí přípustné řešení min F x = 1 x 1 + 1 x 2 + 1 x 3 + 1 x 4 + 0 x 5 + 0 x 6 + 0 x 7 anulovaný tvar: z min F x = 0 min G p = 1 p 1 + 1 p 2 + 1 p 3 tvar: z = min G p = σ p j p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 1 2 3 0-1 0 0 1 0 50 p3 0 2 4 2 0 0-1 0 0 1 75 z -1-1 -1-1 0 0 0 0 0 0 0 z~ 2 4 6 5-1 -1-1 0 0 0 135 výchozí přípustné řešení x 0 = 0,0,0,0,0,0,0, F x 0 = 0 p 0 = 10,50,75, G p 0 = 135 řešení z~ není optimální p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 1 2 3 0-1 0 0 1 0 50 p3 0 2 4 2 0 0-1 0 0 1 75 z -1-1 -1-1 0 0 0 0 0 0 0 z~ 2 4 6 5-1 -1-1 0 0 0 135 8
přepočet na jiné přípustné řešení klíčový sloupec = největší kladná hodnota v řádku z~ klíčový řádek = nejmenší podíl b j a ik pouze pro kladné hodnoty klíčového sloupce a ik p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 1 2 3 0-1 0 0 1 0 50 p3 0 2 4 2 0 0-1 0 0 1 75 z -1-1 -1-1 0 0 0 0 0 0 0 z~ 2 4 6 5-1 -1-1 0 0 0 135 p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 1 2 3 0-1 0 0 1 0 50 p3 0 2 4 2 0 0-1 0 0 1 75 z -1-1 -1-1 0 0 0 0 0 0 0 z~ 2 4 6 5-1 -1-1 0 0 0 135 p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 0 0-1 0 1 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z -1 0 0 0 0 0 z~ 2 0-1 -1 0 0 9
p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 1 2 3 0-1 0 0 1 0 50 p3 0 2 4 2 0 0-1 0 0 1 75 z -1-1 -1-1 0 0 0 0 0 0 0 z~ 2 4 6 5-1 -1-1 0 0 0 135 p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z -1-1/2 0-1/2 0 0-1/4 0 0 1/4 75/4 z~ 2 1 0 2-1 -1 1/2 0 0-3/2 45/2 jiné přípustné řešení x 1 = 0,0, 75 4, 0,0,0,0, F x 1 = 75 4 p 1 = 10, 25 2, 0, G p 1 = 45 2 řešení z~ není optimální p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z -1-1/2 0-1/2 0 0-1/4 0 0 1/4 75/4 z~ 2 1 0 2-1 -1 1/2 0 0-3/2 45/2 10
přepočet na jiné přípustné řešení klíčový sloupec = největší kladná hodnota v řádku z~ - kterou??? klíčový řádek = nejmenší podíl b j a ik pouze pro kladné hodnoty klíčového sloupce a ik p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z -1-1/2 0-1/2 0 0-1/4 0 0 1/4 75/4 z~ 2 1 0 2-1 -1 1/2 0 0-3/2 45/2 p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z -1-1/2 0-1/2 0 0-1/4 0 0 1/4 75/4 z~ 2 1 0 2-1 -1 1/2 0 0-3/2 45/2 x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z 0 0-1/2 0-1/4 0 1/4 z~ 0 0 2-1 1/2 0-3/2 11
p1 2 1 0 0-1 0 0 1 0 0 10 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z -1-1/2 0-1/2 0 0-1/4 0 0 1/4 75/4 z~ 2 1 0 2-1 -1 1/2 0 0-3/2 45/2 x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z 0 0 0-1/2-1/2 0-1/4 1/2 0 1/4 95/4 z~ 0 0 0 2 0-1 1/2-1 0-3/2 25/2 jiné přípustné řešení x 2 = 5,0, 75 4, 0,0,0,0, F x 2 = 95 4 p 2 = 0, 25 2, 0, G p 2 = 25 2 řešení z~ není optimální x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z 0 0 0-1/2-1/2 0-1/4 1/2 0 1/4 95/4 z~ 0 0 0 2 0-1 1/2-1 0-3/2 25/2 12
přepočet na jiné přípustné řešení klíčový sloupec = největší kladná hodnota v řádku z~ klíčový řádek = nejmenší podíl b j a ik pouze pro kladné hodnoty klíčového sloupce a ik x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z 0 0 0-1/2-1/2 0-1/4 1/2 0 1/4 95/4 z~ 0 0 0 2 0-1 1/2-1 0-3/2 25/2 x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z 0 0 0-1/2-1/2 0-1/4 1/2 0 1/4 95/4 z~ 0 0 0 2 0-1 1/2-1 0-3/2 25/2 x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 x4 0 0 0 1 0-1/2 1/4 0 1/2-1/4 25/4 x3 0 1/2 1 0 0 0 z 0 0 0 0-1/2 1/2 z~ 0 0 0 0 0-1 13
x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 p2 0 0 0 2 0-1 1/2 0 1-1/2 25/2 x3 0 1/2 1 1/2 0 0-1/2 0 0 1/2 75/4 z 0 0 0-1/2-1/2 0-1/4 1/2 0 1/4 95/4 z~ 0 0 0 2 0-1 1/2-1 0-3/2 25/2 x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 x4 0 0 0 1 0-1/2 1/4 0 1/2-1/4 25/4 x3 0 1/2 1 0 0 1/4-5/8 0-1/4 5/8 125/8 z 0 0 0 0-1/2-1/4-1/8 1/2 1/4 1/8 215/8 z~ 0 0 0 0 0 0 0-1 -1-1 0 jiné přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 p 3 = 0,0,0, G p 3 = 0 řešení z~ je už optimální x1 1 1/2 0 0-1/2 0 0 1/2 0 0 5 x4 0 0 0 1 0-1/2 1/4 0 1/2-1/4 25/4 x3 0 1/2 1 0 0 1/4-5/8 0-1/4 5/8 125/8 z 0 0 0 0-1/2-1/4-1/8 1/2 1/4 1/8 215/8 z~ 0 0 0 0 0 0 0-1 -1-1 0 14
jiné přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je také už optimální x1 1 1/2 0 0-1/2 0 0 --- --- --- 5 x4 0 0 0 1 0-1/2 1/4 --- --- --- 25/4 x3 0 1/2 1 0 0 1/4-5/8 --- --- --- 125/8 z 0 0 0 0-1/2-1/4-1/8 --- --- --- 215/8 z~ --- --- --- --- --- --- --- --- --- --- --- optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek 1. řezný plán: x 1 = 5 kruhů 2. řezný plán: x 2 = 0 kruhů 3. řezný plán: x 3 = 125 8 = 15,625 16 kruhů 4. řezný plán: x 4 = 25 = 6,25 7 kruhů 4 Celkem tedy 5 + 16 + 7 = 28 kruhů látky Účelová funkce: F x = 215 = 26,875 27 kruhů látky 8 Problém = celočíselné programování 15
optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek celočíselně I. 1. řezný plán: x 1 = 5 kruhů 2. řezný plán: x 2 = 0 kruhů 3. řezný plán: x 3 = 16 kruhů 4. řezný plán: x 4 = 6 kruhů Celkem půlkruhů 5 2 + 0 1 + 16 0 + 6 0 = 10 Celkem čtvrtkruhů 5 0 + 0 1 + 16 2 + 6 3 = 50 Celkem osminek kruhu 5 0 + 0 2 + 16 4 + 6 2 = 76 Účelová funkce: F x = 27 kruhů látky optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek celočíselně II. 1. řezný plán: x 1 = 4 kruhů 2. řezný plán: x 2 = 2 kruhů 3. řezný plán: x 3 = 15 kruhů 4. řezný plán: x 4 = 6 kruhů Celkem půlkruhů 4 2 + 2 1 + 15 0 + 6 0 = 10 Celkem čtvrtkruhů 4 0 + 2 1 + 15 2 + 6 3 = 50 Celkem osminek kruhu 4 0 + 2 2 + 15 4 + 6 2 = 76 Účelová funkce: F x = 27 kruhů látky 16
optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek celočíselně III. 1. řezný plán: x 1 = 3 kruhů 2. řezný plán: x 2 = 4 kruhů 3. řezný plán: x 3 = 14 kruhů 4. řezný plán: x 4 = 6 kruhů Celkem půlkruhů 3 2 + 4 1 + 14 0 + 6 0 = 10 Celkem čtvrtkruhů 3 0 + 4 1 + 14 2 + 6 3 = 50 Celkem osminek kruhu 3 0 + 4 2 + 14 4 + 6 2 = 76 Účelová funkce: F x = 27 kruhů látky optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek celočíselně IV. 1. řezný plán: x 1 = 2 kruhů 2. řezný plán: x 2 = 6 kruhů 3. řezný plán: x 3 = 13 kruhů 4. řezný plán: x 4 = 6 kruhů Celkem půlkruhů 2 2 + 6 1 + 13 0 + 6 0 = 10 Celkem čtvrtkruhů 2 0 + 6 1 + 13 2 + 6 3 = 50 Celkem osminek kruhu 2 0 + 6 2 + 13 4 + 6 2 = 76 Účelová funkce: F x = 27 kruhů látky 17
optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek celočíselně V. 1. řezný plán: x 1 = 1 kruhů 2. řezný plán: x 2 = 8 kruhů 3. řezný plán: x 3 = 12 kruhů 4. řezný plán: x 4 = 6 kruhů Celkem půlkruhů 1 2 + 8 1 + 12 0 + 6 0 = 10 Celkem čtvrtkruhů 1 0 + 8 1 + 12 2 + 6 3 = 50 Celkem osminek kruhu 1 0 + 8 2 + 12 4 + 6 2 = 76 Účelová funkce: F x = 27 kruhů látky optimální přípustné řešení x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řešení z je optimální Výsledek celočíselně VI. 1. řezný plán: x 1 = 0 kruhů 2. řezný plán: x 2 = 10 kruhů 3. řezný plán: x 3 = 11 kruhů 4. řezný plán: x 4 = 6 kruhů Celkem půlkruhů 0 2 + 10 1 + 11 0 + 6 0 = 10 Celkem čtvrtkruhů 0 0 + 10 1 + 11 2 + 6 3 = 50 Celkem osminek kruhu 0 0 + 10 2 + 11 4 + 6 2 = 76 Účelová funkce: F x = 27 kruhů látky 18
určuje citlivost optimálního řešení na změny v modelu tj. jak se mohou měnit jednotlivé části modelu, aniž by byla porušena optimalita nalezeného řešení 1) podmínky, za nichž není porušena optimalita současného řešení analýza citlivosti optimálního řešení na změny pravých stran analýza citlivosti optimálního řešení na změny cenových koeficientů analýza citlivosti optimálního řešení ve dvoufázové SM 2) výpočet optimálního řešení při změně modelu analýza citlivosti a změna pravých stran analýza citlivosti a změna cenových koeficientů změna počtu proměnných přidání omezující podmínky určuje citlivost optimálního řešení na změny v modelu tj. jak se mohou měnit jednotlivé části modelu, aniž by byla porušena optimalita nalezeného řešení 1) podmínky, za nichž není porušena optimalita současného řešení analýza citlivosti optimálního řešení na změny pravých stran (a cen) zvýšení pravé strany o b vyvolá snížení přídatné proměnné o b dosadíme hodnoty nebázových proměnných x j = 0 vypočteme hodnoty bázových proměnných x j 0 a zjistíme interval změny pravé strany b b b, b + b nebo výpočet dle transformačního vzorce max b i b ip >0 b p min b i b ip <0 nebo max z j a qj >0 c k min z j a qj <0 19
analýza citlivosti optimálního řešení na změny pravých stran b 1, 10, b 2 125 2, 25 2, b 3 25, 25 b 1, 20, b 2 25 2, 125 2, b 3 50, 100 změny x5 x6 x7 -bi b1 b2 b3 x1-1/2 0 0-5 10 - - x4 0-1/2 1/4-25/4-25/2-25 x3 0 1/4-5/8-125/8 - -125/2 25 dolní mez - - - - - -125/2-25 horní mez - - - - 10 25/2 25 analýza citlivosti optimálního řešení na změny cen u bázových proměnných c 1 0, 0, c 3 0,0, c 4 1 2, 1 2 c 1 1, 1, c 3 1,1, c 4 1, 3 2 2 změny x2 x5 x6 x7 dolní mez horní mez x1 1/2-1/2 0 0 - - x4 0 0-1/2 1/4 - - x3 1/2 0 1/4-5/8 - - -zj 0 1/2 1/4 1/8 - - c1 0-1 - - 0 0 c3 0-1 -1/5 0 0 c4 - - -1/2 1/2-1/2 1/2 20
analýza citlivosti optimálního řešení na změny cen u nebázových proměnných c 2 z 2 = 0 c 2 1, 1 změny x1 x2 x3 x4 x5 x6 x7 b x1 1 1/2 0 0-1/2 0 0 5 x4 0 0 0 1 0-1/2 1/4 25/4 x3 0 1/2 1 0 0 1/4-5/8 125/8 z 0 0 0 0-1/2-1/4-1/8 215/8 Hledáme min F x = 1 x 1 + 1 x 2 + 1 x 3 + 1 x 4 x j určuje počet rozřezaných kruhových látek j-tým řezným plánem množina M = g i x omezujících podmínek půlkruhy g 1 x : 2 x 1 + 1 x 2 + 0 x 3 + 0 x 4 10 čtvrtky g 2 x : 0 x 1 + 1 x 2 + 2 x 3 + 3 x 4 50 osminky g 3 x : 0 x 1 + 2 x 2 + 4 x 3 + 2 x 4 75 podmínky nezápornosti x 1, x 2, x 3, x 4 0 21
primární úloha min F x = c T x duální úloha max D u = b T u F x = 1,1,1,1 M: A x b 2 1 0 0 0 1 2 3 0 2 4 2 x 1 x 2 x 3 x 4 x 1 x 2 x 3 x 4 podmínky nezápornosti x 1, x 2, x 3, x 4 0 10 50 75 D u = 10,50,75 M: A T u c 2 0 0 1 0 1 2 2 4 0 3 2 u 1 u 2 u 3 u 1 u 2 u 3 1 1 1 1 podmínky nezápornosti u 1, u 2, u 3 0 Hledáme max D u = 10 u 1 + 50 u 2 + 75 u 3 účelová funkce duální úlohy množina M = g i u omezujících podmínek g 1 u : 2 u 1 + 0 u 2 + 0 u 3 1 g 2 u : 1 u 1 + 1 u 2 + 2 u 3 1 g 3 u : 0 u 1 + 2 u 2 + 4 u 3 1 g 4 u : 0 u 1 + 3 u 2 + 2 u 3 1 podmínky nezápornosti u 1, u 2, u 3 0 22
Hledáme max D u = 10 u 1 + 50 u 2 + 75 u 3 + 0 u 4 + 0 u 5 + 0 u 6 + 0 u 7 účelová funkce duální úlohy množina M = g i u omezujících podmínek g 1 u : 2 u 1 + 0 u 2 + 0 u 3 + 1 u 4 = 1 g 2 u : 1 u 1 + 1 u 2 + 2 u 3 + 1 u 5 = 1 g 3 u : 0 u 1 + 2 u 2 + 4 u 3 + 1 u 6 = 1 g 4 u : 0 u 1 + 3 u 2 + 2 u 3 + 1 u 7 = 1 podmínky nezápornosti u 1, u 2, u 3, u 4, u 5, u 6, u 7 0 výchozí přípustné řešení zápis množiny M v SKT u5 1 1 2 0 1 0 0 1 u6 0 2 4 0 0 1 0 1 u7 0 3 2 0 0 0 1 1 z 23
výchozí přípustné řešení max D u = 10 u 1 + 50 u 2 + 75 u 3 + 0 u 4 + 0 u 5 + 0 u 6 + 0 u 7 anulovaný tvar: z max D u = 0 u5 1 1 2 0 1 0 0 1 u6 0 2 4 0 0 1 0 1 u7 0 3 2 0 0 0 1 1 z -10-50 -75 0 0 0 0 0 výchozí přípustné řešení u 0 = 0,0,0,1,1,1,1, D u 0 = 0 řešení z není optimální u5 1 1 2 0 1 0 0 1 u6 0 2 4 0 0 1 0 1 u7 0 3 2 0 0 0 1 1 z -10-50 -75 0 0 0 0 0 24
přepočet na jiné přípustné řešení klíčový sloupec = největší záporná hodnota v řádku z klíčový řádek = nejmenší podíl b j a ik pouze pro kladné hodnoty klíčového sloupce a ik u5 1 1 2 0 1 0 0 1 u6 0 2 4 0 0 1 0 1 u7 0 3 2 0 0 0 1 1 z -10-50 -75 0 0 0 0 0 u5 1 1 2 0 1 0 0 1 u6 0 2 4 0 0 1 0 1 u7 0 3 2 0 0 0 1 1 z -10-50 -75 0 0 0 0 0 u5 1 0 0 1 0 u3 0 1/2 1 0 0 1/4 0 1/4 u7 0 0 0 0 1 z -10 0 0 0 0 25
u5 1 1 2 0 1 0 0 1 u6 0 2 4 0 0 1 0 1 u7 0 3 2 0 0 0 1 1 z -10-50 -75 0 0 0 0 0 u5 1 0 0 0 1-1/2 0 1/2 u3 0 1/2 1 0 0 1/4 0 1/4 u7 0 2 0 0 0-1/2 1 1/2 z -10-25/2 0 0 0 75/4 0 75/4 jiné přípustné řešení u 1 = 0,0, 1 4, 1, 1 2, 0, 1 2, D u 1 = 75 4 řešení z není optimální u5 1 0 0 0 1-1/2 0 1/2 u3 0 1/2 1 0 0 1/4 0 1/4 u7 0 2 0 0 0-1/2 1 1/2 z -10-25/2 0 0 0 75/4 0 75/4 26
přepočet na jiné přípustné řešení klíčový sloupec = největší záporná hodnota v řádku z klíčový řádek = nejmenší podíl b j a ik pouze pro kladné hodnoty klíčového sloupce a ik u5 1 0 0 0 1-1/2 0 1/2 u3 0 1/2 1 0 0 1/4 0 1/4 u7 0 2 0 0 0-1/2 1 1/2 z -10-25/2 0 0 0 75/4 0 75/4 u5 1 0 0 0 1-1/2 0 1/2 u3 0 1/2 1 0 0 1/4 0 1/4 u7 0 2 0 0 0-1/2 1 1/2 z -10-25/2 0 0 0 75/4 0 75/4 u5 1 0 0 0 1-1/2 0 1/2 u3 0 0 1 0 0 u2 0 1 0 0 0-1/4 1/2 1/4 z -10 0 0 0 0 27
u5 1 0 0 0 1-1/2 0 1/2 u3 0 1/2 1 0 0 1/4 0 1/4 u7 0 2 0 0 0-1/2 1 1/2 z -10-25/2 0 0 0 75/4 0 75/4 u5 1 0 0 0 1-1/2 0 1/2 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z -10 0 0 0 0 125/8 25/4 175/8 jiné přípustné řešení u 2 = 0, 1 4, 1 8, 1, 1 2, 0,0, D u 2 = 175 8 řešení z není optimální u5 1 0 0 0 1-1/2 0 1/2 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z -10 0 0 0 0 125/8 25/4 175/8 28
přepočet na jiné přípustné řešení klíčový sloupec = největší záporná hodnota v řádku z klíčový řádek = nejmenší podíl b j a ik (kterou???) pouze pro kladné hodnoty klíčového sloupce a ik u5 1 0 0 0 1-1/2 0 1/2 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z -10 0 0 0 0 125/8 25/4 175/8 u5 1 0 0 0 1-1/2 0 1/2 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z -10 0 0 0 0 125/8 25/4 175/8 u1 1 0 0 1/2 0 0 0 1/2 u5 0 0 0 1-1/2 0 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z 0 0 0 0 125/8 25/4 29
u5 1 0 0 0 1-1/2 0 1/2 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z -10 0 0 0 0 125/8 25/4 175/8 u1 1 0 0 1/2 0 0 0 1/2 u5 0 0 0-1/2 1-1/2 0 0 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z 0 0 0 5 0 125/8 25/4 215/8 jiné přípustné řešení u 3 = 1 2, 1 4, 1 8, 0,0,0,0, D u 3 = 215 8 řešení z už je optimální u1 1 0 0 1/2 0 0 0 1/2 u5 0 0 0-1/2 1-1/2 0 0 u3 0 0 1 0 0 3/8-1/4 1/8 u2 0 1 0 0 0-1/4 1/2 1/4 z 0 0 0 5 0 125/8 25/4 215/8 30
optimální přípustné řešení primární úlohy: x 3 = 5,0, 125, 25, 0,0,0, F x 3 = 215 8 4 8 řádek z = 0,0,0,0, 1 2, 1 4, 1 8 z 0 0 0 0-1/2-1/4-1/8 --- --- --- 215/8 optimální přípustné řešení duální úlohy: u 3 = 1 2, 1 4, 1 8, 0,0,0,0, D u 3 = 215 8 řádek z = 0,0,0,5,0, 125 8, 25 4 z 0 0 0 5 0 125/8 25/4 215/8 Metoda větví a mezí BB = Branch and bound algoritmus LP, který je určen pro hledání optimálního řešení v oblasti diskrétní (celočíselné) optimalizace a kombinatorické optimalizace princip: systematické procházení všech potenciálních řešení podmnožiny nevhodných řešení jsou vyloučeny najednou používá se prořezávání spolu s horním a dolním odhadem optimální hodnoty (tyto odhady se v průběhu výpočtu zpřesňují) 1960 navrhli A. H. Land a A. G. Doig 31
optimální řešení Simplexovou metodou LP 0 : x 3 = 5,0, 125 8, 25 4, 0,0,0, F x 3 = 215 8 = 26,875 proměnné x 3, x 4 porušují celočíselnost, mez h 0 = 215 8 zvolíme větvící proměnnou x 3 = 125 8 = 15,625 levá větev řešení: řešíme úlohu LP 1 = LP 0 + g 4 x : 1 x 3 15 = 27 x 1 = 35 8, 5 4, 15, 25 4, 0,0,0, F x1 = 215 8 h0 neuzavřeme pravá větev řešení: řešíme úlohu LP 2 = LP 0 + g 4 x : 1 x 3 16 x 2 = 5,0,16,6,0,0,1, F x 2 = 27 h 0 uzavřeme, máme řešení nalezli jsme přijatelné celočíselné řešení, mez h 1 = 27 optimální řešení Simplexovou metodou LP 1 : x 1 = 35 8, 5 4, 15, 25 4, 0,0,0, F x1 = 215 8 = 26,875 proměnné x 1, x 2, x 4 porušují celočíselnost, mez h 1 = 27 zvolíme větvící proměnnou x 1 = 35 8 = 4,375 levá větev řešení: řešíme úlohu LP 3 = LP 1 + g 5 x : 1 x 1 4 x 3 = 4,2, 117 8, 25 4, 0,0,0, F x3 = 215 8 h1 neuzavřeme pravá větev řešení: řešíme úlohu LP 4 = LP 1 + g 5 x : 1 x 1 5 x 4 = 5, 5 4, 15, 25 4, 5 4, 0,0, F x4 = 55 2 = 27,5 > h1 uzavřeme 32
optimální řešení Simplexovou metodou LP 3 : x 3 = 4,2, 117 8, 25 4, 0,0,0, F x3 = 215 8 = 26,875 proměnné x 3, x 4 porušují celočíselnost, mez h 3 = 215 8 zvolíme větvící proměnnou x 3 = 117 8 = 14,625 levá větev řešení: řešíme úlohu LP 5 = LP 3 + g 6 x : 1 x 3 14 = 27 x 5 = 27 8, 13 4, 14, 25 4, 0,0,0, F x5 = 215 8 h3 neuzavřeme pravá větev řešení: řešíme úlohu LP 6 = LP 3 + g 6 x : 1 x 3 15 x 6 = 4,2,15,6,0,0,1, F x 6 = 27 h 3 uzavřeme, máme řešení nalezli jsme přijatelné celočíselné řešení, mez h 6 = 27 a dál pokračujeme ve výpočtech větve LP 5 LP 0 x 0 = 5,0, 125, 25, 0,0,0 8 4 F x 0 = 215, 8 h0 = 215 = 27 8 LP 1 x 1 = 35, 5 25, 15,, 0,0,0 8 4 4 F x 1 = 215, 8 h1 = 215 = 27 8 LP 3 x 3 = 4,2, 117, 25, 0,0,0 8 4 F x 3 = 215, 8 h3 = 215 = 27 8 LP 2 x 2 = 5,0,16,6,0,0,1 F x 2 = 27, h 2 = 27 celočíselné řešení LP 4 x 4 = 5, 5 25, 15,, 5, 0,0 4 4 4 F x 4 = 55 = 27,5 > h1 2 konec větve x 5 = 27, 13 8 4 LP 5, 14, 25 4, 0,0,0 F x 5 = 215, 8 h5 = 215 8 = 27 LP 6 x 6 = 4,2,15,6,0,0,1 F x 6 = 27, h 6 = 27 celočíselné řešení 33
Konec vzorového příkladu 34