.Modifikace simplexové metody Simplexová metoda, v podobě popsané v prvním tématu, je vhodná zejména pro řešení úloh LP menších rozměrů, především pak pro ruční výpočty. Algoritmus metody je jednoduchý, postup se v každé iteraci opakuje a je navíc usnadněn přehledným uspořádáním v simplexové tabulce. Pro softwarovou realizaci simplexové metody pro řešení úloh velkých rozměrů není možné mít v paměti celou simplexovou tabulku (hlavně z kapacitních důvodů) a celou ji přepočítávat. Zamyslíme-li se však nad výpočtem, zjistíme, že v každé iteraci transformujeme kromě nezbytných údajů i řadu čísel, které v daném stadiu výpočtu vůbec nepotřebujeme. Množství těchto nepotřebných údajů je možno omezit vhodnými modifikacemi simplexového algoritmu. Tyto úpravy jsou určeny především pro počítačové řešení úloh lineárního programování, protože algoritmus metody se tím zkomplikuje. To je ale vyváženo zmenšením počtu operací a tím i zrychlením a zpřesněním výpočtu.. Obecné vyjádření obsahu simplexové tabulky Východiskem pro pochopení různých modifikací simplexové metody je obecné maticové vyjádření simplexové tabulky, podle něhož je možno určit, které údaje jsou v daném okamžiku výpočtu nezbytně potřebné a jakým způsobem je možno je vypočítat. Pro jednoduchost vyjdeme z výchozího řešení jednofázové simplexové metody: A I b c T 0 T 0 Obr.. Výchozí simplexová tabulka kde A je matice strukturních koeficientů a ij typu m.n, b vektor pravých stran omezení b i typu m., c T vektor cenových koeficientů c j typu.n, I jednotková matice vektorů přídatných proměnných typu m.m.
2. Modifikace simplexové metody V každé iteraci tvoří vektory strukturních koeficientů základních (bázických) proměnných bázi, ve které jsou vyjádřeny vektory nezákladních proměnných jako jejich lineární kombinace. Označme matici báze s té iterace () j B s = a, () kde a j jsou vektory bázických proměnných s té iterace v jejich výchozí podobě (tj. z výchozí tabulky na obr..). Kvůli zjednodušení zápisu je v dalším textu budeme zapisovat bez indexu pořadí iterace, tj. jako a j. Jestliže k této matici přidáme další řádek obsahující ceny bázických T proměnných c B s opačnými znaménky a jednotkový vektor odpovídající proměnné z, dostaneme rozšířenou matici báze: B s 0 T c B Obr..2 Rozšířená matice báze Hodnost této matice je (m+), existuje tedy matice k ní inverzní: Bs 0 T c B Bs Obr..3 Rozšířená inverzní matice báze Výpočet transformovaného řešení v s té iteraci simplexovou metodou je ekvivalentní vynásobení výchozí tabulky z obr.. rozšířenou inverzní maticí báze s té iterace zleva: Bs 0. A I b T c B B s c T 0 T 0 Obr..4 Transformace simplexové tabulky
.6 Úlohy LP s proměnnými omezenými shora 3 Po vynásobení obou matic dostáváme transformovanou tabulku v obecném maticovém vyjádření: kde s Bs s Bs A T c B B A c T T c B B s Bs s B b T s s c B B b Obr..5 Maticové vyjádření transformované simplexové tabulky B A B b T B B s T B B s T B B s jsou transformované koeficienty strukturních proměnných, je inverzní matice báze, jsou hodnoty základních proměnných, c A c T jsou redukované ceny strukturních proměnných, c jsou redukované ceny přídatných proměnných, c b je hodnota účelové funkce. Z obr..5 je zřejmé, že z výchozích údajů můžeme podle vztahů na obr..5 vypočítat transformované řešení v s té iteraci, pokud známe inverzní matici báze B a vektor cen základních proměnných c v této iteraci. s V této kapitole vyložíme modifikace algoritmu simplexové metody pro maximalizační úlohu LP s omezeními typu, tj. pro jednofázovou simplexovou metodu. Postup pro dvoufázovou metodu je stejný, jenom s tím rozdílem, že v první fázi počítáme podle pomocné účelové funkce z. Pokud máme řešit minimalizační úlohu, můžeme účelovou funkci vynásobit ( ) a hledat opět její maximum, nebo je možno obrátit kriterium optimality. Příklad. Je dána úloha LP: x + 2x 2 + x 3 40 x + x 2 + 2x 3 25 xj 0, j =,2,3, z = 90x + 95x 2 + 85x 3... max. Vypočtěte optimální řešení, jestliže znáte vektor cen bázických proměnných c optimálního řešení a inverzní matici báze optimálního řešení. T B Protože zde nesledujeme pořadí iterací, označíme ji zjednodušeně B : T B
4. Modifikace simplexové metody T c B = [95,90], B = 2. Soustavu omezení vyrovnáme na rovnice přičtením přídatných proměnných a účelovou funkci vynulujeme: x + 2x 2 + x 3 + x 4 = 40 x + x 2 + 2x 3 + x 5 = 25 xj 0, j =,,5, z 90x 95x 2 85x 3 = 0 Výchozí řešení této úlohy je v tab... Zákl.prom x x 2 x 3 x 4 x 5 b i x. 4 2 0 40 x 5 2 0 25 z j 90 95 85 0 0 0 Tab.. Výchozí řešení Z tab.. jsou jednotlivé submatice výchozího řešení: A = 2 2 I = 0 0 b = 40 25 T c B = [90, 95, 85] u T =[0,0] z=0. Redukované ceny přídatných proměnných, které jsme označili symbolem u T (v optimálním řešení je to vektor duálních proměnných viz kap.) jsou ve výchozím řešení rovny nule stejně jako výchozí hodnota účelové funkce z. T B Protože vektory c a u T považujeme v jednotlivých iteracích pouze za pomocné, neuvádíme u nich pro jednoduchost index s. Podle obr..5 postupně násobíme jednotlivé části výchozí simplexové tabulky a vypočteme tak optimální řešení úlohy: B A 2 2 0 2 0. 3
.6 Úlohy LP s proměnnými omezenými shora 5 B b 40 5 2 25 0 c T B B 2 95, 90 5, 85 c T B 0 B T A c - 0 3 95, 90 90, 95, 85 0, 0, 75 T B B s c b = [ 5, 85 ]. [40,25 ] T = 2325 Vypočtené údaje vyplníme do simplexové tabulky (tab..2). Opt.řešení x x 2 x 3 x 4 x 5 bi x 2 0 5 x 0 3 2 0 Optimálním řešením je vektor z j 0 0 75 5 85 2325 maximální hodnota účelové funkce je Tab..2 Optimální řešení x=(0,5,0,0,0), z=2325..2 Modifikovaná simplexová metoda Velmi jednoduchá modifikace simplexové metody se nabízí již při prvním pohledu na simplexovou tabulku. Vidíme, že v každé iteraci obsahuje jednotkovou submatici vektorů bázických proměnných. Nejjednodušší úpravou je vynechat tuto jednotkovou matici, jak je znázorněno na obr..6.
6. Modifikace simplexové metody A b c T 0 Obr..6 Výchozí tabulka modifikované metody Simplexová tabulka se tím zmenší o m sloupců, tj. odpadne transformace m.(m+) prvků. Algoritmus metody se prakticky nemění, pouze v klíčovém sloupci současné iterace nebude v další iteraci jednotkový vektor, ale tzv. η vektor. Složky η vektoru vypočteme transformací klíčového sloupce tak, že jeho koeficienty (s výjimkou klíčového prvku) dělíme klíčovým prvkem s obráceným znaménkem: η i = a ik, (.) aqk i =,2,,m+, i q, a na místo klíčového prvku zapíšeme jeho převrácenou hodnotu: η q =. (.2) a qk Algoritmus modifikované simplexové metody V eliminačních vzorcích budeme pro jednoduchost zápisu uvažovat matici A, ve které je n sloupců strukturních proměnných, přidáme (n+) ní sloupec pravých stran b i. Řádky matice rozšíříme o (m+) ní řádek účelové funkce s koeficienty z j. Ve výchozím řešení položíme index pořadí iterace s=. Ve vzorcích ho budeme kvůli přehlednosti zapisovat jen tam, kde se přechází z jedné iterace do druhé, tj. při transformaci. Jinak platí index s.. Test optima a určení vstupující proměnné V řádce účelové funkce najdeme nejmenší koeficient g = min j (z j )= z k, j=,2,,n (.3) je-li g < 0, je k-tý sloupec klíčový a nezákladní proměnná v k tém sloupci je proměnná vstupující, je-li g 0, je řešení optimální a výpočet končí.
.6 Úlohy LP s proměnnými omezenými shora 7 2. Určení vystupující proměnné Vypočteme bi t min, i =,2,..., m. a a ik 0 ik je-li t=b q /a qk, je q-tý řádek klíčový a základní proměnná v tomto řádku je proměnná vystupující, je li a ik 0 pro všechna i=, 2,, m optimální řešení neexistuje. 3. Transformace řešení: a. Do klíčového sloupce zapíšeme η vektor : a ( s) ik a a ( s) ik ( s) qk kde i =,2,,m+, i q. b. Klíčový řádek dělíme klíčovým prvkem a (s) qj a a ( s), aqk ( s) aqk (s) qj (s) qk, kde j=, 2,..., n+, j k. c. Ostatní prvky matice A transformujeme podle ( s) ( s) s ( s) ij aij aik aqj a, kde i=, 2,..., m+, j=, 2,..., n+, i q, j k. 4. Zvýšíme index iterace s=s+ a vracíme se k bodu. Příklad.2 Řešte modifikovanou simplexovou metodou úlohu LP: x + 2x 2 + 2x 3 36 2x + 2x 2 + 4x 3 40 xj 0, j =,2,3, z = 2x + 36x 2 + 60x 3... max. Vlastní omezení vyrovnáme na rovnice přičtením přídatných proměnných x 4 a x 5 :
8. Modifikace simplexové metody. iterace x + 2x 2 + 2x 3 + x 4 = 36 2x + 2x 2 + 4x 3 + x 5 = 40 xj 0, j =,,5, z 2x 36x 2 60x 3 = 0 Výchozí řešení je v tab..3 (bez jednotkových vektorů).. Podle kriteria optimality v (.3) je g=min( 2, 36, 60)= 60, klíčový sloupec je tedy třetí. 2. Klíčový řádek je hodnotou t=min(36/2,40/4)=0, tj. je to druhý řádek. Vstupuje proměnná x 3, vystupuje proměnná x 5. 3. Transformujeme tabulku:.iterace x x 2 x 3 b i t x 4 2 2 36 36/2 x 5 2 2 4 40 40/4 z j 2 36 60 0 Tab..3 Výchozí simplexová tabulka a. Třetí sloupec (sloupec vstupující proměnné) nahradíme η-vektorem podle (.) a (.2): (2) a 3 = 2/4= /2, (2) a 23 = /4, (2) z 3 = 60/( 4)=5. b. Podle transformačních vzorců dělíme klíčovým prvkem: (2) a 2 =2/4= /2, (2) a 22 =2/4=/2, c. A ostatní prvky tabulky: (2) a = 2./2=0, (2) z = 2 ( 60)/2=8, z (2) =0 ( 60).0= 600. (2) a 2 =2 2./2=, (2) b 2 =40/4=0. (2) b =36 2.0=6, (2) z 2 = 36 ( 60)./2= 6,
.6 Úlohy LP s proměnnými omezenými shora 9 Transformované řešení zapíšeme do tab..4. V každé iteraci musíme kromě indexu vstupující proměnné v klíčovém řádku vyměnit i index nezákladní proměnné v klíčovém sloupci. Ve třetím sloupci nadepíšeme novou nezákladní proměnnou x 5, ve druhém řádku základní proměnnou x 3. 2. iterace 2.iterace x x 2 x 5 bi t x 4 0 /2 6 6/ x 3 /2 /2 /4 0 0.2 z j 8 6 5 600 Tab..4 Simplexová tabulka v druhé iteraci. V řádce z je ve druhém sloupci záporný koeficient, řešení není optimální. Vstupující proměnná je x 2, klíčový sloupec je druhý. 2. Hodnota t=6, vystupující proměnná je x 4, klíčový řádek je první. 3. Transformované řešení je v tab..5. 3.iterace x x 4 x 5 bi x 2 0 /2 6 x 3 /2 /2 /2 2 z j 8 6 2 696 Tab..5 Optimální řešení Ve druhém sloupci je po transformaci η-vektor, ostatní prvky transformujeme jako v simplexové metodě. Ve druhém sloupci nadepíšeme novou nezákladní proměnnou x 4, v prvním řádku základní proměnnou x 2. 3. iterace 3 Všechny redukované ceny v řádce z jsou kladné, řešení v tab..5 je optimální. x = (0, 6, 2, 0, 0), z=696.3 Revidovaná simplexová metoda
0. Modifikace simplexové metody Na rozdíl od modifikované simplexové metody nyní v simplexové tabulce vynecháme část obsahující matici A a sestavíme výchozí řešení ve zkrácené tabulce na obr..7. I b 0 T 0 Obr..7 Výchozí tabulka revidované metody Princip revidované simplexové metody (RSM) spočívá v tom, že průběžně transformujeme pouze inverzní matici báze dané iterace, pravé strany, koeficienty účelové funkce pod inverzní maticí báze (vektor u T ) a hodnotu účelové funkce. Ostatní údaje necháváme beze změny a v případě potřeby je s transformujeme pomocí matice podle transformačních vzorců z obr..5. V dalších iteracích dostaneme transformovanou část simplexové tabulky: B Bs s B b c T B B s c T B B s b Obr..8 Tabulka RSM v s té iteraci Kromě těchto údajů potřebujeme v každé iteraci simplexového algoritmu ještě koeficienty účelové funkce (redukované ceny) pro test optima a určení vstupující proměnné a transformované koeficienty klíčového sloupce pro určení vystupující proměnné. Všechny tyto údaje můžeme v každé iteraci vypočítat z výchozího zadání modelu pomocí průběžně transformovaných údajů z obr..8: koeficienty v řádce z v s-té iteraci vypočteme podle kde u T = c T B j=,2,,n. Bs (s) z j = u T a j c j (.4) jsou koeficienty účelové funkce pod inverzní maticí báze, klíčový sloupec v s-té iteraci transformujeme podle
.6 Úlohy LP s proměnnými omezenými shora a (s) k = B s a k. (.5) Ve výchozím řešení položíme B s = I, u T = 0, b () = b, s= a definujeme algoritmus revidované simplexové metody:. Test optima a určení vstupující proměnné a. Vypočteme koeficienty v účelové funkci podle (.4): kde j=,2,,n. (s) z j = u T a j c j, b. Dosadíme do účelové funkce hodnoty duálních proměnných: kde j=,2,,m. (s) j n z =u j, c. Testujeme optimalitu řešení obvyklým způsobem: g = min (s) z j = (s) z k, j=,2,,n+m. je-li g<0, je proměnná x k vstupující a k-tý sloupec je klíčový, jinak je řešení optimální a výpočet končí. 2. Určení vystupující proměnné: a. Transformujeme klíčový sloupec podle (.5): b. Určíme klíčový řádek: neexistuje-li a (s) k =B s a k. t = min ( s) i ( s) ik b / a >0. (s) a ik >0 pro žádné i=,2,,m, výpočet končí, je-li t nalezeno v q-tém řádku, je bázická proměnná v tomto řádku proměnná vystupující a q tý řádek je klíčový. 3. Transformace řešení Transformujeme B s, u T, b (s) a z podle transformačních vzorců, ve kterých na místo prvků matice A dosadíme prvky B. 4. Zvýšíme index iterace s=s+ a vracíme se k bodu. s
2. Modifikace simplexové metody Postup výpočtu ukážeme pro srovnání na modifikovanou simplexovou metodou. příkladu, který jsme řešili Příklad.3 Je dána úloha LP v kanonickém tvaru (z příkladu.2): x + 2x 2 + 2x 3 + x 4 = 36 2x + 2x 2 + 4x 3 + x 5 = 40 xj 0, j =,,5, z 2x 36x 2 60x 3 = 0. Vypočtěte revidovanou simplexovou metodou optimální řešení. Ruční výpočet je vhodné uspořádat do dvou tabulek. V simplexové tabulce podle obr..8 transformujeme inverzní matici báze, vektor pravých stran, část účelové funkce (vektor u T ) a hodnotu účelové funkce. Přidáváme klíčový sloupec dané iterace v jeho výchozí a trasformované podobě. V pomocné tabulce uchováváme matici A a počítáme v každé iteraci koeficienty účelové funkce.. iterace Inverzní matici báze výchozího kroku zapíšeme do tab..6 spolu s pravými stranami a vektorem u T..iterace x 4 x 5 b () x 4 0 36 x 5 0 40 u T 0 0 0 Tab..6 Výchozí tabulka RSM Do pomocné tabulky.7 zapíšeme matici A, ceny všech proměnných a vektor duálních proměnných u T. 2 36 60 0 0.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 0
.6 Úlohy LP s proměnnými omezenými shora 3 2 36 60 0 0 A 2 2 4 0 0 z () 2 36 60 0 0 Tab..7 Pomocná tabulka RSM První iteraci popíšeme podrobněji podle jednotlivých bodů algoritmu.. Test optima a určení vstupující proměnné a. V pomocné tabulce vypočteme podle (.4) koeficienty účelové funkce: z = 0.+0.2 2= 2, z 2 = 0.2+0.2 36= 36, z 3 = 0.2+0.4 60= 60. b. Dosadíme z 4 = u =0, z 5 = u 2 =0. c. Klíčový sloupec je podle g=min( 2, 36, 60,0,0) = 60 třetí, vstupuje proměnná x 3. 2. Určení vystupující proměnné a. Výchozí tabulku.6 rozšíříme o dva sloupce jeden pro původní klíčový sloupec a k, druhý pro transformovaný vektor a k (s). Klíčový sloupec transformujeme podle (.5) tak, že ho vynásobíme inverzní maticí báze s-té iterace. V tab..8 jsou a k () a a k totožné. b. K tab..8 přidáme další sloupec, ve kterém vypočteme pomocné podíly a najdeme hodnotu t. Tím učíme vystupující proměnnou a klíčový řádek. Podle t=min(8,0)=0 je v tab..8 klíčový řádek druhý. Je vyznačen tmavším stínováním. 3. Transformace řešení.iterace x 4 x 5 b () a k a k () t x 4 0 36 2 2 8 x 5 0 40 4 4 0 u T 0 0 0 60 60 Tab..8 První iterace určení klíčového řádku Podle obvyklých vzorců transformujeme pouze inverzní matici, pravé strany b a vektor u T. Transformované řešení je v tab..9. 2.iterace x 4 x 5 b (2)
4. Modifikace simplexové metody x 4 /2 6 x 3 0 /4 0 u T 0 5 600 Tab..9 Transformovaná tabulka 2. iterace V pomocné tabulce.0 vypočteme pomocí vektoru u T koeficienty v řádce z (2) a určíme vstupující proměnnou. V řádce z (2) je jediný záporný koeficient, klíčový sloupec je tedy druhý a vstupující proměnná je x 2. 2 36 60 0 0 2.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 0 A 2 2 4 0 5 z (2) 8 6 0 0 5 Tab..0 Test optima ve druhé iteraci V tab.. určíme vystupující proměnnou a klíčový řádek. Vektor vstupující proměnné a 2 z výchozího řešení zapíšeme do tabulky a násobíme inverzní maticí báze. Z koeficientů transformovaného klíčového sloupce vypočteme podle t=min(6/,20/(/2))=min(6,40) hodnotu t=6 a určíme jako vystupující proměnnou x 4. Klíčový řádek je první, klíčový prvek je roven jedné. 2.iterace x 4 x 5 b (2) a k a k (2) t x 4 /2 6 2 6 x 3 0 /4 0 2 /2 20 u T 0 5 600 36 6 Tab.. Určení klíčového řádku ve druhé iteraci
.6 Úlohy LP s proměnnými omezenými shora 5 Metodou úplné eliminace transformujeme inverzní matici báze, pravé strany, vektor u T a hodnotu účelové funkce z v tab... Transformované údaje zapíšeme do tab..2. 3.iterace x 4 x 5 b (3) x 2 /2 6 x 3 /2 /2 2 u T 6 2 696 Tab..2 Transformované řešení ve třetí iteraci 3. iterace Vektor u T přepíšeme do pomocné tabulky.3 a vypočteme koeficienty v řádce z (3). Nejmenší redukovaný cenový koeficient je nezáporný, řešení obsažené v tab..3 je optimální. x = (0, 6, 2, 0, 0), z = 696 2 36 60 0 0 3.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 6 A 2 2 4 0 2 z (3) 8 0 0 6 2 Tab..3 Test optima ve třetí iteraci.4 Multiplikativní simplexová metoda Multiplikativní forma revidované simplexové metody je založena na stejném principu jako revidovaná simplexová metoda, ale liší se od ní způsobem transformace údajů. Netransformuje totiž průběžně celou inverzní matici báze, ale využívá jejího multiplikativního tvaru. Inverzní matici báze je totiž možno vypočítat jako součin elementárních matic B s = E s. E s 2. E 0. (.6)
6. Modifikace simplexové metody Elementární matice E s je jednotková matice, ve které je jednotkový vektor ve sloupci, jehož index odpovídá indexu klíčového řádku s-té iterace, nahrazen η-vektorem (viz (.)-(.2)). Elementární matice nulté iterace je jednotková, tj. E 0 =I. Dosazením (.6) do transformačních vzorců můžeme dosáhnout efektivnějšího výpočtu : transformované pravé strany s té iterace vypočteme podle vztahů na obr..5 násobením výchozích pravých stran maticí B s : Dosadíme-li za B s b (s) = B s b. (.7) její multiplikativní formu (.6), dostaneme b (s) = E s-. E s-2.. E 0. b. (.8) Vzhledem k tomu, že transformované pravé strany potřebujeme v každé iteraci, je výhodné odvodit rekurentní vztah pro jejich výpočet. Z (.8) je zřejmě a po dosazení do (.8) je tedy b (s ) = E s-2. E s-3.. E 0. b b (s) = E s- b (s-), (.9) tj. vektor pravých stran násobíme vždy poslední elementární maticí E s-. vektor u T počítáme podle u T = c T B B s = c T B E s-. E s-2.. E 0, (.0) tj. vektor cen bázických proměnných s-té iterace násobíme postupně všemi elementárními maticemi předchozích iterací (začínáme poslední). klíčový sloupec transformujeme podle vzorce (.5) a (s) k = B s a k = E s. E s 2. E 0 a k, (.) tj. vektor vstupující proměnné z výchozího řešení násobíme postupně všemi elementárními maticemi. Začínáme elementární maticí první iterace. hodnotu účelové funkce je možno vypočítat několika způsoby: a. jako skalární součin vektoru cen bázických proměnných s té iterace a transformovaného vektoru pravých stran s té iterace b (s) :
.6 Úlohy LP s proměnnými omezenými shora 7 z (s) = c T B b(s) (.2) b. jako skalární součin vektoru u (s) a vektoru pravých stran b: z (s) = u T b (.3) c. k účelové funkci předchozí iterace z (s) můžeme přičíst její přírůstek : z (s+) = z (s) + t.z (s) k. (.4) Ve výchozím řešení položíme E 0 =I, u T =0, b () = b, s= a definujeme algoritmus multiplikativní simplexové metody:. Test optima a určení vstupující proměnné a. Podle (.4) vypočteme koeficienty z j : kde j=,2,, n. b. Dosadíme kde j=,2,,m. z j (s) = u T a j c j. (s) j n z = u j, c. Určíme vstupující proměnnou podle j=,2,, n+m: g = min ( s) ( s) j zk z, je-li g<0, je proměnná x k vstupující a k-tý sloupec je klíčový, jinak je řešení optimální a výpočet končí.. Určení vystupující proměnné a. Transformujeme klíčový sloupec podle (.3): b. Určíme klíčový řádek: a (s) k = E s-. E s-2. E 0 a k, t = min ( s) i ( s) ik b / a >0. je-li t nalezeno v q-tém řádku, je bázická proměnná v tomto řádku proměnná vystupující,
8. Modifikace simplexové metody neexistuje-li a (s) ik >0 pro žádné i=,2,,m, není hodnota účelové funkce omezena a výpočet končí. 3. Transformace řešení a. Vypočteme η-vektor podle (.) a (.2): η (s) i = a (s) q = /a (s) η (s) qk, ik /a (s) qk, i =,2,,m+, i q a generujeme matici E s, b. Transformujeme pravé strany podle (.9): b (s+) = E s b (s), c. Vypočteme u T podle (.0): u T = c T B E s. E s. E 0. c. Vypočteme hodnotu účelové funkce podle některého ze vztahů (.2) až (.4). 4. Zvýšíme index iterace s=s+ a vracíme se k bodu. V praktickém výpočtu znamená multiplikativní forma simplexové metody úsporu paměťového místa i počtu iterací. Není totiž třeba si pamatovat všechny elementární matice, stačí uchovat η-vektor a index klíčového řádku každé iterace. Až do m-té iterace je tedy inverzní matice báze vyjádřena úsporněji než v revidované simplexové metodě. Elementární matice není nutné generovat, ale je možné definovat rekurentní vzorce, podle kterých se transformují potřebné údaje: pravé strany transformujeme průběžně podle (.5) ( s) b i + η b (s) q = η ( s) i b ( s) ( s) ( s) q b q. q, i =,,m, i q, b (s) i = { z (.0) odvodíme rekurentní vzorec pro výpočet vektoru u T v s té iteraci:
.6 Úlohy LP s proměnnými omezenými shora 9 ( r) u i i =,,m, i q, u (r) i = { (.6) Σu ( r) j. η r j, j =,, m, i = q, kde s je počet iterací, r =,, s je index iterace, q je index klíčového řádku r-té iterace. pro transformaci klíčového sloupce odvodíme z (.) rekurentní vztah (.7) ( r) a ik + η a (r) qk = η ( r) ( r) i a ( r) ( r) q a qk. qk, i=,,m, i q, kde r =,,s, q je index klíčového řádku r-té iterace. a (r) ik = { Dalších úspor je možno dosáhnout tzv. nenulovým uložením η-vektorů. Řada matic velkých modelů je prázdná, tj. obsahuje velké množství nulových prvků. Jestliže v každém η-vektoru uchováme pouze nenulové prvky a jejich indexy, můžeme při méně než 50% plnosti matice (tj./2 nenulových prvků) ušetřit paměťová místa potřebná k uchování η-vektorů. Při rozsahu paměti současných počítačů a jejím snadném rozšiřování se tento fakt nezdá tak významný, je však třeba si uvědomit, že přinejmenším usnadňuje manipulaci s daty rozsáhlých úloh. Kromě toho je možno upravit rekurentní vzorce tak, aby se operace prováděly jen s nenulovými prvky, což opět urychlí výpočet. Pokud počet η-vektorů přesáhne počet omezení m, což bývá častý jev způsobený tím, že některé proměnné opakovaně do báze vstupují a vystupují, je možno provést reinverzi, tj. transformovat celý model pomocí aktuální báze poslední iterace. Tím se zbavíme přebytečných η-vektorů a navíc zpřesníme výpočet, protože omezíme zaokrouhlovací chyby (blíže viz [7]). Výpočet optimálního řešení multiplikativní simplexovou metodou ukážeme pro ilustraci postupu na malém příkladu, i když speciálně tato modifikace je určena pro počítačové řešení velkých úloh. Ruční řešení je nepřehledné a ve srovnání s ostatními modifikacemi SM je algoritmicky složitější, pomůže však pochopit obecně definovaný algoritmus.
20. Modifikace simplexové metody Příklad.4 Vypočtěte multiplikativní simplexovou metodou optimální řešení úlohy: x + 2x 2 + 2x 3 36 2x + 2x 2 + 4x 3 40 xj 0, j =,2,3, z = 3x + 36x 2 + 60x 3... max. Soustavu omezení vyrovnáme na rovnice přičtením proměnných x 4 a x 5 a vynulujeme účelovou funkci: x + 2x 2 + 2x 3 + x 4 = 36 2x + 2x 2 + 4x 3 + x 5 = 40 xj 0, j =,,5, z 3x 36x 2 60x 3 = 0 Výchozí řešení, tj. elementární matici nulté iterace E 0, vektor pravých stran b () a vektor duálních proměnných u T zapíšeme do tab..4..iterace E 0 b () x 4 0 36 x 5 0 40 u T 0 0 0 Tab..4 Výchozí řešení. iterace První iteraci opět popíšeme podrobněji podle jednotlivých bodů algoritmu multiplikativní simplexové metody.. Test optima a určení vstupující proměnné a. Redukované ceny vypočteme v pomocné tabulce.5 podle (.4) stejně jako v revidované simplexové metodě.
.6 Úlohy LP s proměnnými omezenými shora 2 3 36 60 0 0.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 0 A 2 2 4 0 0 z () 3 36 60 0 0 Tab..5 Test optima v první iteraci b. V řádce z () jsou záporné koeficienty, řešení není optimální. Vstupující proměnná je x 3, klíčový sloupec je třetí. 2. Určení vystupující proměnné a. Transformujeme klíčový sloupec tak, že jej podle (.) násobíme elementární maticí E 0 =I (tj. v první iteraci se nemění stejně jako vektor pravých stran). Do tab..6 zapíšeme b (), a k a a ( ) k (vektory a k a a ( ) k jsou zde stejné). b. Klíčový řádek je podle t=min(36/2,40/4)=min(8,0)=0 řádek druhý, vystupující proměnná je x 5. 3. Transformace řešení.iterace b () a k a k () t η () x 4 36 2 2 8 /2 x 5 40 4 4 0 /4 z () 0 60 60 5 Tab..6 Určení vystupující proměnné v první iteraci a. Vypočteme η-vektor tak, že klíčový sloupec dělíme ( 4), na místo klíčového prvku zapíšeme /4. Generujeme elementární matici E s vektorem η () ve druhém sloupci. Matici E zapíšeme do tabulky.7 a postupně sem doplníme transformované údaje. 2.iterace E b () b (2) x 4 /2 36 6
22. Modifikace simplexové metody x 3 0 /4 40 0 u T 0 5 0 600 Tab..7 Řešení ve druhé iteraci b. Transformujeme vektor b tak, že násobíme vektor b () elementární maticí E : b (2) = E b () = 0 / 2 36 6. / 4 40 0 c. Ceny bázických proměnných jsou c 4 =0, c 3 =60. Podle (.0) vypočteme vektor u T : u T = c T B E = 0,60. 0 / 2 / 4 = 0,5. d. Vypočteme hodnotu účelové funkce podle (.4): z (2) = z () + t.z ( ) k = 0 + 0.60=600 2.iterace Redukované ceny vypočteme v pomocné tabulce.8. V řádce z (2) jsou záporné koeficienty, řešení tedy není optimální. Klíčový sloupec je druhý, vstupující proměnná je x 2. 3 36 60 0 0 2.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 0 A 2 2 4 0 5 z (2) 6 0 0 5 Tab..8 Test optima ve druhé iteraci. Vystupující proměnnou určíme v tab..9. a. Vektor vstupující proměnné x 2 vynásobíme elementárními maticemi předchozí iterace:
.6 Úlohy LP s proměnnými omezenými shora 23 ( k = E a ( ) k = / 2 0 / 4 a 2) 2 = 2 / 2. b. Z tab..9 je t=6, vystupující proměnná je x 4, klíčový řádek je první a klíčový prvek je. 2.iterace b (2) a k a k (2) t η (2) x 4 6 2 6 x 3 0 2 /2 20 /2 z (2) 600 36 6 6 Tab..9 Určení vystupující proměnné v druhé iteraci 3. Počítáme transformované řešení ve třetí iteraci: 3.iterace E 2 b (2) b (3) x 2 0 6 6 x 3 /2 0 2 u T 6 2 600 696 Tab..20 Řešení ve třetí iteraci a. Vektor η (2) vypočteme tak, že klíčový sloupec dělíme ( ) s výjimkou klíčového prvku, který je i nadále roven jedné. Generujeme elementární matici E 2 s vektorem η (2) v prvním sloupci (viz tab..20): 0 E 2 =. / 2 b. Transformujeme pravé strany vynásobením vektoru b (2) z tab..9 elementární maticí E 2 : 06 6 b (3) = E 2. b (2) =. / 2 0 2 c. Podle (.0) vypočteme vektor u T (ceny bázických proměnných jsou c 2 =36, c 3 =60):
24. Modifikace simplexové metody u T = c T B E 2. E = 36,60. 0 / 2 / 2 0 / 4 = / 2 = 6,60 = 6,2 0 / 4 d. Podle (.4) vypočteme hodnotu účelové funkce 3. iterace z (3) = z (2) + t.z ( 2) k = 600 + 6.6=696.. Redukované ceny vypočteme v pomocné tabulce.2. 3 36 60 0 0 3.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 6 A 2 2 4 0 2 z (3) 0 0 6 2 Tab..2 Test optima ve třetí iteraci a. Řešení není optimální, protože v prvním sloupci v z (3) je záporné číslo. b. Vstupující proměnná je x, klíčový sloupec je první. 2. Vystupující proměnnou určíme v tab..22. 3.iterace b (3) a k a k (3) t η (3) x 2 6 0 0 x 3 2 2 /2 4 2 z (3) 696 3 2 Tab..22 Třetí iterace určení vystupující proměnné a. Vektor vstupující proměnné násobíme elementárními maticemi předchozích iterací:
.6 Úlohy LP s proměnnými omezenými shora 25 ( k = E 2. E. a ( ) k = 0 / 2 0. / 2 0 / 4 2 / 2 a 3) b. Jediná možnost pro určení hodnoty t je kladný koeficient /2. Klíčový řádek je druhý, t=4, vystupující proměnná je x 3, klíčový prvek je /2. 3. Transformujeme řešení: a. Vypočteme vektor η (3) tak, že ve druhém řádku zapíšeme převrácenou hodnotu klíčového prvku, ostatní prvky klíčového sloupce dělíme klíčovým prvkem s obráceným znaménkem (tj. násobíme ( 2)). Elementární matice E 3 má vektor η (3) ve druhém sloupci (tab..23). b. Vektor pravých stran b (3) z tab..22 násobíme elementární maticí E 3 : b (4) = E 3 b (3) = c. Podle (.0) vypočteme vektor u T : 0 0 6 6. 2 2 4 u T = c E 3. E 2. E = 36,60 5,3 T B 0 0 2 / 2 0 0 / 2 / 4. d. Hodnotu účelové funkce vypočteme podle (.4): Transformované údaje zapíšeme do tab..23. z (4) = z (3) + t.z ( 3) k = 696 + 4.=700. 4.iterace 4.iterace E 3 b (3) b (4) x 2 0 6 6 x 0 2 2 4 u T 5 3 696 700 Tab..23 Řešení ve čtvrté iteraci. Redukované ceny vypočtené podle (.4) jsou v tab..24. Všechny koeficienty v řádce z (4) jsou nezáporné, vektor x (4) = (4,6,0,0,0) je optimálním řešením zadané úlohy s maximem z= 700.
26. Modifikace simplexové metody 3 36 60 0 0 4.iterace x x 2 x 3 x 4 x 5 u T Matice 2 2 0 5 A 2 2 4 0 3 z (4) 0 0 2 5 3 Tab..24 Test optima ve čtvrté iteraci.5 Úlohy LP s proměnnými omezenými zdola V úlohách LP se často vyskytují omezení typu x j d j, kde d j 0 jsou dolní meze proměnných, které ekonomicky mohou určovat např. minimální množství, při kterém je ještě výroba určitého výrobku rentabilní, nejmenší nutné množství určité výživné látky, které musí obsahovat denní dávka potravin apod. Je li d j =0, jde o obvyklou podmínku nezápornosti. Jestliže je d j >0, rozšíří se model o další omezení. Toto omezení se upraví obvyklým způsobem, tj. odečtením přídatných proměnných a přičtením pomocných proměnných. Model se tím zvětší o tolik řádků, kolik je mezí proměnných, dále se přidávají sloupce přídatných a pomocných proměnných. Úspornější je upravit model jednoduchou substitucí. Definujme vektor proměnných y tak, že x = y + d. (.8) Po dosazení (.8) do omezení a účelové funkce dostaneme úlohu LP A(y + d) b,
.6 Úlohy LP s proměnnými omezenými shora 27 y + d 0, (.9) z = c T y + c T d max. Je li po úpravě pravá strana některého z omezení v (.9) záporná, vynásobíme je ( ). Úlohu řešíme v proměnných y j. Po výpočtu optimálního řešení dosadíme hodnoty y j zpět do (.8) a vypočteme tak hodnoty proměnných x j. K optimální hodnotě účelové funkce z = c T y přičteme výchozí hodnotu danou dolními mezemi proměnných, tj. c T d. Příklad.5 Je dána úloha LP s dolními mezemi proměnných. Upravte model podle (.9) a řešte simplexovou metodou: x + 2x 2 30 2x + 2x 2 20 x 20 x 2 30 z = 0x + 5x 2... max. Model upravíme dosazením (.8) do omezení a účelové funkce a řešíme v tab..25 v proměnných y j : y + 2y 2 30.20 2.30 2y + 2y 2 20 2.20 2.30 y 0 y 2 0 z = 0y + 5y 2 + 0.20 + 5.30... max..iterace y y 2 y 3 y 4 b i y 3 2 0 50 y 4 2 2 0 0 z j 0 5 0 0 0 Tab..25 Výchozí simplexová tabulka. V řádce účelové funkce jsou záporné koeficienty, řešení není optimální. Klíčový sloupec je první, klíčový řádek rovněž. Vstupující proměnná je y, vystupující proměnná y 3. Nové řešení, které je v tab..26, je optimální, protože všechny koeficienty v řádce z jsou nezáporné.
28. Modifikace simplexové metody 2.iterace y y 2 y 3 y 4 b i y 2 0 50 y 4 0 2 2 0 z j 0 5 0 0 500 Tab..26 Optimální řešení Po dosazení do (.8) jsou optimální hodnoty proměnných x =50+20 = 70, x2=0+30=30. Optimálním řešením je tedy vektor x=(70,30,0,0). Maximální hodnota účelové funkce je z= 500+350=850..6 Úlohy LP s proměnnými omezenými shora V úloze LP s horními mezemi proměnných jsou proměnné omezeny zdola podmínkami nezápornosti a shora horními mezemi, tj. musí splňovat omezení 0 x j h j. Omezení proměnných horními mezemi je opět možno formulovat jako další nerovnice modelu s tím, že se model rozšíří stejně jako v předchozím případě o další řádky a další proměnné, tj. sloupce. Není to však nutné, je možno s nimi zacházet podobně jako s podmínkami nezápornosti. Podmínky nezápornosti se v úloze LP neformulují jako vlastní omezení, ale berou se v úvahu v simplexovém algoritmu, který je definován tak, že žádná proměnná je neporuší (pravidlo pro určení klíčového řádku). Úprava simplexového algoritmu v úloze s horními mezemi spočívá v tom, že se podmínky horních mezí proměnných rovněž neformulují jako omezení, ale opět se na ně bere zřetel při určování vstupující a vystupující proměnné a transformaci tabulky. Pravidla takto upravené simplexové metody se tedy komplikují, protože musíme dodržet jak podmínky nezápornosti proměnných, tak podmínky jejich horních mezí. Proměnné, které jsou rovny své horní mezi, považujeme za nezákladní stejně jako proměnné, které se rovnají nule. Rozlišujeme tedy dvojí druh nezákladních proměnných:
.6 Úlohy LP s proměnnými omezenými shora 29. nezákladní proměnné v nule, 2. nezákladní proměnné v horní mezi. Při výpočtu bereme v úvahu to, že nezákladní proměnné v nule svoji hodnotu zvyšují, nezákladní proměnné v horní mezi svoji hodnotu při vstupu do báze snižují. Tím je ovlivněno určení vstupující proměnné a její hodnoty, pravidlo pro určení vystupující proměnné a transformace tabulky: Určení vstupující proměnné:. U nezákladní proměnné v nule je pravidlo pro určení vstupující proměnné stejné jako v simplexové metodě. 2. U proměnné v horní mezi obracíme pravidlo pro určení vstupující proměnné, protože tato proměnná může při vstupu do báze svoji hodnotu pouze snižovat. Představte si ve vzorci pro výpočet přírůstku účelové funkce z = t(c m+ c m+ ) pro jednoduchost, že t má zápornou hodnotu. Potom je Δz>0, je-li koeficient z j kladný. Odtud je zřejmé, že při maximalizaci vybíráme jako vstupující nezákladní proměnnou v horní mezi, která má kladný koeficient v řádce z. Určení hodnoty vstupující proměnné: Předpokládejme, že jako vstupující proměnnou jsme určili nezákladní proměnnou x k.. Její hodnota musí být stanovena tak, aby byly splněny tři podmínky: a. vstupující proměnná neporuší podmínku nezápornosti ani horní mez, b. základní proměnné zůstanou po transformaci tabulky nezáporné, c. základní proměnné nepřekročí po transformaci tabulky svoji horní mez. Rozlišujeme dva případy:. Vstupující proměnná x k = 0. V další iteraci se tato proměnná zvýší o kladnou hodnotu, kterou označíme symbolem t, je tedy x k = 0 + t. a. Podmínka nezápornosti vstupující proměnné nemůže být v tomto případě porušena, protože podle předpokladu je t>0. Aby nebyla překročena horní mez vstupující proměnné, musí platit
30. Modifikace simplexové metody (.20) t h k. b. Pro dodržení podmínek nezápornosti základních proměnných je třeba, aby pravé strany zůstaly po transformaci nezáporné. Po dosazení xk = t jsou upravené pravé strany (.2) b i = b i a ik t 0, kde b i je transformovaná pravá strana v i-tém omezení. Odtud je stejně jako v simplexové metodě pro i té omezení podmínka t b i /a i k, a ik >0. c. pro splnění třetí podmínky musí být nová pravá strana v i-tém řádku (.22) b i = b i a ik t h Bi, kde h Bi je horní mez bázické proměnné v i-tém řádku. Odtud je v i tém řádku 2. Vstupující proměnná x k =h k : t ( h Bi b i ) /a ik, a ik < 0. Do báze vstupuje proměnná, která je ve své horní mezi. V další iteraci se tato proměnná sníží o kladnou hodnotu, kterou opět označíme symbolem t. Je tedy hodnota vstupující proměnné x k = h k t 0 a. Z toho plyne, že v tomto případě by mohla být porušena podmínka nezápornosti, protože podle předpokladu je t>0. Musí tedy opět platit t h k. (.23) b. Pokud jde o zachování podmínek nezápornosti základních proměnných, je třeba si uvědomit, že vstupující proměnná svoji hodnotu sníží o t, takže pravé strany naopak svoji hodnotu zvýší o a ik t. Hodnota t tedy bude omezena podmínkami (.24) b i = b i + a ik t 0
.6 Úlohy LP s proměnnými omezenými shora 3 pro i=,2,,m. c. pro splnění podmínky horních mezí základních proměnných musí být nová pravá strana v i-tém řádku (.25) pro i=,2,,m. b i = b i + a ik t h Bi, Srovnáme li podmínku (.2) s (.24) a obdobně (.22) s (.25), vidíme, že se liší pouze znaménkem u koeficientu a ik. Stačí tedy, když v případě, kdy je vstupující proměnná v horní mezi, změníme v (.2) a (.22) u koeficientů a ik znaménko, a můžeme pro stanovení hodnoty t definovat shodné vzorce pro oba případy. Dosadíme a ik, je-li x k = 0, a ik = { (.26) a ik, je-li xk = h k. Potom můžeme stanovit tři omezující podmínky pro hodnotu t: a. z podmínky nezápornosti a horní meze vstupující proměnné je z (.20) a (.23) t = h k, b. z podmínek nezápornosti základních proměnných je z (.2) a (.24) t 2 bi min, i =,2,..., m. (.27) a 0 a ik ik c. z podmínek horních mezí základních proměnných je z (.22) a (.25) t 3 hbi bi min, i =,2,..., m. a 0 a Z těchto tří omezujících podmínek určíme t podle ik ik (.28) t = min (t, t 2, t 3 ). (.29) Hodnota vstupující proměnné x k je potom:. Je li vstupující proměnná x k =0, je x k = 0 + t. 2. Je li vstupující proměnná x k =h k, je x k = h k t 0.
32. Modifikace simplexové metody Je li t=t, zůstává proměnná x k nezákladní proměnnou, pouze změní svoji hodnotu z nuly na horní mez, popř. naopak. Určení vystupující proměnné Určení vystupující proměnné opět záleží na tom, jakou hodnotu má t: a. t=t vystupující proměnná se neurčuje, b. t=t 2 vystupující proměnná je rovna nule, c. t=t 3 vystupující proměnná je rovna své horní mezi. Transformace řešení: Podle toho, jak jsme určili hodnotu t, rozlišujeme dva druhy iterací: a. nebázická iterace proběhne v případě, kdy hodnota t=t. Proměnná x k zůstává nezákladní proměnnou. Její hodnota buď vzroste z nuly na horní mez nebo naopak klesne z horní meze na nulu. Báze i celá tabulka zůstávají nezměněny, s výjimkou pravých stran, které transformujeme podle b i = b i aik ' t, (.30) ' kde aik jsou koeficienty upraveného klíčového sloupce, i=,, m+ (poslední řádek je řádek účelové funkce). b. je li iterace bázická, postupujeme při transformaci tabulky ve všech řádcích stejně jako v klasické simplexové metodě, vynecháme však sloupec pravých stran. Vektor b transformujeme podle (.30) s výjimkou klíčového řádku (q-tý), kde bude t, je li xk=0, b = { (.3) ' q h k t, je li x k.= h k. Přehled možností při určování vstupující a vystupující proměnné je uveden na obr..9. t Vstupující proměnná (s+) ní iterace Status Vystupující proměnná t=t x k = 0 x k = h k nezákladní x k = h k x k = 0 nezákladní t=t 2 x k = 0 xk = t základní x Bq =0
.6 Úlohy LP s proměnnými omezenými shora 33 x k = h k x k = h k t základní x Bq =0 t=t 3 x k = 0 xk = t základní x Bq = h k x k = h k x k = h k t. základní x Bq = h k Obr..9 Řešení úlohy LP s horními mezemi proměnných Uvedeme nyní přehledně algoritmus řešení úlohy LP s horními mezemi proměnných, ve kterém se na vzorce známé z předchozího textu budeme odvolávat jejich čísly. Algoritmus řešení úlohy LP s horními mezemi proměnných. Test optima a určení vstupující proměnné a. Upravíme účelovou funkci tak, že u proměnných v horní mezi změníme znaménko koeficientu zj: j=,,m+n. b. Testujeme optimalitu podle z j, je-li x k. = 0, g j = { z j, je-li x k. = h k, g = min j (g j ) = g k, j=,, n+m: je-li g<0, je proměnná x k vstupující a k-tý sloupec je klíčový, jinak je řešení optimální a výpočet končí. 2. Určení vystupující proměnné a. Upravíme klíčový sloupec podle (.26). b. Vypočteme hodnotu t podle (.29). c. Určíme vystupující proměnnou a její hodnotu. 3. Transformace tabulky a. je-li t=t, báze se nemění, transformujeme pouze poslední sloupec podle (.30), b. je-li t=t 2 nebo t=t 3, mění se báze a transformujeme tabulku: změníme poslední sloupec podle (.30), do klíčového řádku dosadíme ' b q podle (.3), transformujeme tabulku podle eliminačních vzorců
34. Modifikace simplexové metody c. určíme hodnotu vystupující proměnné: je-li t=t 2, je vystupující proměnná rovna nule, je-li t=t 3, je vystupující proměnná rovna horní mezi. 4. Opakujeme postup od bodu. Příklad.6 Je dána úloha LP. Řešte ji simplexovou metodou upravenou pro horní meze proměnných: 0x + 20x 2 360 2x + 2x 2 48 x 20 x 2 5 z = 40x + 70x 2... max. xj 0, j=, 2, Úlohu přepíšeme do simplexové tabulky (tab..27). Pro lepší orientaci k tabulce přidáme řádek horních mezí proměnných. Pokud proměnná není shora omezena, nahradíme její horní mez symbolem M (řádově dostatečně vysoká hodnota). Dále tabulku rozšíříme o řádek koeficientů g j a o řádek hodnot všech proměnných x j.. iterace Hor.mez 20 5 M M e.iterace x x 2 x 3 x 4 b ( ) x 3 0 20 0 360 x 4 2 2 0 48 z j 40 70 0 0 0 gj 40 70 0 0 x j 0 0 360 48 0 Tab..27 Výchozí řešení.. Test optima a určení vstupující proměnné
.6 Úlohy LP s proměnnými omezenými shora 35 a. Úprava účelové funkce: žádná proměnná není v horní mezi, je tedy g j =z j. b. Test optimality: koeficienty g j jsou nekladné, klíčový sloupec je druhý. 2. Určení vystupující proměnné a. Úprava klíčového sloupce: vstupující proměnná je rovna nule, její sloupec tedy neměníme. b. Určení hodnoty t : vypočteme t jako t=min (t =5, t 2 =min(360/20, 48/2)=8, t 3 =M)=5. Protože t=t, nevstupuje proměnná x2 do báze, ale zůstává nezákladní a vystupuje na svoji horní mez. 3. Transformace tabulky a. Iterace je podle t=t nebázická. Změní se pouze poslední sloupec tabulky (viz tab..28) podle b (2) = b () t.a 2 : b =360 20.5=60, b 2 =48 2.5=8, z=0 ( 70).5=050. b. Proměnná x 2 zůstává nezákladní. Hor.mez e 20 5 M M 2.iterace x x 2 x 3 x 4 b (2) x 3 0 20 0 60 x 4 2 2 0 8 zj 40 70 0 0 050 g j 40 70 0 0 x j 0 5 60 8 0 Tab..28 Nebázická iterace. Hor.mez 20 5 M M e 3.iterace x X 2 x 3 x 4 b (3) x ( ) 2 /0 0 6 x 4 0 (+) 2 2/0 6
36. Modifikace simplexové metody 2. iterace z j 0 0 4 0 290 gj 0 0 4 0 x j 6 5 0 6 Tab..29 Vstupuje proměnná v horní mezi. V řádce g změníme koeficient u proměnné x 2, která je v horní mezi. Klíčový sloupec je první, vstupující proměnná je x. 2. Podle t=min(t, t 2, t 3 ), kde t =20, t2=min(60/0,8/2)=6 a t 3 =M, je t=t 2 =6. Proměnná x vstupuje do báze s hodnotou t=6, vystupující proměnná x 3 je rovna nule. 3. Tabulku transformujeme jako v simplexové metodě, s výjimkou sloupce pravých stran, kde je b =t=6, b 2 =8 2.6=6, z=050 ( 40).6=290. 3. iterace Řešení není optimální. Proměnná x2 má v tab..29 v řádce g záporný koeficient, existuje tedy lepší řešení, které vypočteme tak, že druhý sloupec zvolíme jako klíčový. Vstupující proměnná x2 je v horní mezi, změníme proto v jejím sloupci znaménka. Hodnotu t určíme podle t=min(5, 6/2, (20 6)/ ( 2)) = t 2 = 3. Proměnná x 2 vstupuje do báze s hodnotou h 2 3=2, t=t 2, vystupující proměnná je rovna nule. Iterace je bázická. Tabulku.29 transformujeme obvyklým způsobem, pravé strany přepočteme podle (.30) a (.3): b =6 ( 2).3=2, b 2 =5 3=2, z=290 ( 0).3=320. Nové řešení je v tab..30. Hor.mez e 20 5 M M 4.iterace x x 2 x 3 x 4 b (4) x 0 /0 2 x 2 0 /0 /2 2
.6 Úlohy LP s proměnnými omezenými shora 37 4. iterace zj 0 0 3 5 320 g j 0 0 3 5 x j 2 2 0 0 Tab..30 Optimální řešení úlohy s horními mezemi Žádná z proměnných není ve své horní mezi, koeficienty v řádce z tedy nemění znaménko. Podle řádky g je řešení v tab..30 optimální. Vektor optimálního řešení je x = (2, 2, 0, 0), optimální hodnota účelové funkce je z=320.