Klíčová slova: simplexová metoda 1 Simplexová metoda Postup výpočtu: 1. Nalezení výchozího řešení. 2. Test optima: pokud je řešení optimální výpočet končí, jinak krok 3. 3. Iterační krok, poté opět test optima. 1.1 Příklad 1 Balírny čaje Dukát a.s. plánují na následující období výrobu dvou směsí čaje Zlatá směs a Standard. Pro výrobu těchto směsí mají smluvně k dispozici od dodavatelů tři druhy černého čaje (označme je C 1, C 2, C 3 ) postupně o kapacitě 10, 12 a 15 tun lišících se kvalitou a samozřejmě i nákupní cenou. Při výrobě obou směsí je třeba dodržovat technologické postupy, které mimo jiné určují, jaké procento jednotlivých komponent bude použito při této výrobě. Následující tabulka ukazuje skladbu obou směsí ( v tunách komponenty na 1 tunu směsi): Tab. 4.1: skladba kávových smˇesí: čajová směs kapacita (t) druh čaje Zlatá směs Standard C 1 0,5 0,10 10 C 2 0,25 0,5 12 C 3 0,25-15 Na základě přímých a nepřímých nákladů souvisejících s výrobou a vzhledem k předpokládané ceně obou směsí byl vykalkulován zisk, který činí 10000 Kč resp. 8000 Kč na 1 tunu směsi Zlatá směs resp. Standard. Management firmy Dukát a.s. chce samozřejmě naplánovat produkci tak, aby byl její celkový zisk maximální. 1
1.2 Řešení 1.2.1 Výchozí řešení Matematický model (úč. fce v tis.): z max = 10x 1 + 8x 2 0, 5x 1 + 0, 1x 2 10 0, 25x 1 + 0, 5x 2 12 0, 25x 1 15 x i 0, i = 1, 2 Tato soustava lineárních rovnic je v obecném tvaru, je nutné ji převést na standardní tvar pomocí přídatných proměnných. 0, 5x 1 + 0, 1x 2 + x 1 10 0, 25x 1 + 0, 5x 2 + x 2 12 0, 25x 1 + x 3 15 x i 0, i = 1, 2 Tato soustava je v kanonickém tvaru, protože odpovídající matice strukturních koeficientů obsahuje 3 jednotkové vektory, které lze uspořádat do jednotkové matice. Soustava obsahuje 5 proměnných a 3 rovnice. Soustava má tedy maximálně 10 základních řešení (tj. počet způsobů jak lze vybrat 3 základní proměnné z celkového počtu 5 proměnných). Základní (bazické) proměnné jsou x 1, x 2, x 3 Nezákladní proměnné jsou x 1, x 2. Pokud položíme tyto nezákladní proměnné rovny 0, potom z dané soustavy rovnic snadno získáme hodnoty základních proměnných: x 1 = 10, x 2 = 12, x 3 = 15 Řešení získané tímto způsobem je, vzhledem k nezápornosti všech jeho složek, základním řešením dané úlohy LP. Po získání výchozího základního řešení lze přistoupit v jednotlivých iteracích k testu optimality a ke zlepšování řešení. Celý výpočet je organizován v tzv. simplexové tabulce. x 1 1/2 1/10 1 0 0 10 x 2 1/4 1/2 0 1 0 12 x 3 1/4 0 0 0 1 15 z -10-8 0 0 0 0 2
Poslední řádek obsahuje koeficienty účelové funkce v anulovaném tvaru, tj. tvaru, ve kterém jsou všechny proměnné modelu převedeny na levou stranu a na pravé straně je absolutní člen, který udává počáteční hodnotu účelové funkce ( ta je zpravidla rovna 0). V našem případě: z 10x 1 8x 2 = 0 Základní proměnné: x 1... vyjadřuje nespotřebovanou část suroviny C 1 (v tunách) x 2... vyjadřuje nespotřebovanou část suroviny C 2 (v tunách) x 3... vyjadřuje nespotřebovanou část suroviny C 3 (v tunách) Výchozí základní řešení: X 1 = (0, 0, 10, 12, 15), z = 0 Nic se nevyrábí hodnota účelové funkce je nulová. Nespotřebovány jsou veškeré suroviny, řešení není tudíž optimální. 1.2.2 Test optima: při maximalizaci, jsou li z j 0 pro všechna j = 1, 2,..., n, základní řešení je maximální, je li z j 0 alespoň pro jedno j = 1, 2,..., n, základní řešení není maximální. při minimalizaci, jsou li z j 0 pro všechna j = 1, 2,..., n, základní řešení je minimální, je li z j 0 alespoň pro jedno j = 1, 2,..., n, základní řešení není minimální. 1.2.3 Přechod na nové řešení: Jedna z nezákladních proměnných se stane základní: vybereme j-tý sloupec s minimální zápornou hodnotou v úč. fci, (v případě minimalizační úlohy vybíráme maximální kladnou hodnotu), v daném sloupci vybereme všechny koeficienty větší než 0, vypočteme podíly pravých stran b i a vybraných koeficientů, vystupující proměnnou je ta, na kterou připadne minimální podíl i-tý řádek, klíčovým prvkem je prvek na průsečíku i-tého řádku a j-tého sloupce a ij. 3
V našem případě je tedy klíčový první sloupec (z 1 = 10), vstupující proměnnou je tedy x 1. Klíčovým řádkem je první řádek (jednotlivé podíly jsou 10 : 1/2 = 20, 12 : 1/4 = 48, 15 : 1/4 = 60 minimum je 20) vystupující proměnou je tedy x 1. Přechod k novému řešení provedeme pomocí Gaussovy eliminační metody: Výchozí ˇrešení s vyznaˇceným klíˇcovým prvkem: Nové ˇrešení: x 1 1/2 1/10 1 0 0 10 x 2 1/4 1/2 0 1 0 12 x 3 1/4 0 0 0 1 15 z -10-8 0 0 0 0 x 1 1 1/5 2 0 0 20 x 2 0 9/20-1/2 1 0 7 x 3 0-1/20-1/2 0 1 10 z 0-6 20 0 0 200 Nové základní řešení vyplývající z druhého kroku je tedy: X 2 = (20, 0, 0, 7, 10), z = 200 Vyrábí se 20 tun směsi Zlatá směs. Ze surovin je plně spotřebována komponenta C 1, zůstává nevyužito 7 tun komponenty C 2 a 10 tun komponenty C 3. Hodnota produkce je 200 000 tis. Kč. Výpočet dále pokračuje testem optimality, řešení není ještě optimální. Ve třetím kroku simplexové tabulky přejdeme na další základní řešení. Vstupující proměnnou je x 2 a nahrazuje vystupující proměnnou x 2, která se stává nezákladní. Optimální ˇrešení: x 1 1 0 20/9-4/9 0 152/9 x 2 0 1-10/9 20/9 0 140/9 x 3 0 0-10/18 1/9 1 97/9 z 0 0 120/9 120/9 0 880/3 4
Ve třetím iteračním kroku dostáváme optimální řešení, nebot všechna z j 0: X opt = (16,89, 15,56, 0, 0, 10,78), z = 293,3 Optimálním výrobním programem je vyrábět 16,89 tun Směsi Super a 15,56 tun směsi Standard. Při tomto výrobním programu jsou plně spotřebovány čaje C 1 a C 2 Nevyužito zůstává 10,78t čaje C 3. Hodnota produkce je 293 333,3 tis. Kč a z daných surovin není možno za předpokládaných podmínek získat větší. Nenulové hodnoty v řádku účelové funkce simplexové tabulky pod přídatnými proměnnými x 1 a x 2 jsou tzv. stínové ceny udávají nám o kolik vzroste hodnota úč. fce pokud zvýšíme kapacitu příslušného zdroje o jednotku. V našem případě, pokud zvýšíme kapacitu čaje C 1 o tunu, zvýší se účelová funkce o 13 333,33 Kč. Z pohledu balíren Dukát a. s. to má tedy význam, zda se vyplatí nakoupit o tunu více čaje C 1. 1.3 Příklad 2 Nalezněte řešení úlohy LP: Při platnosti těchto omezení: Simplexová tabulka: z min = 6x 1 2x 2 8x 3 x 1 + 2x 2 6 x 1 4x 2 2x 3 8 x 2 + x 3 7 x i 0, i = 1, 2, 3 x 1 x 2 x 3 x 1 x 2 x 3 b i x 1-1 2 0 1 0 0 6 x 2 1-4 -2 0 1 0 8 x 3 0-1 1 0 0 1 7 z -6 2 8 0 0 0 0 Při volbě vstupující a vystupující proměnné je třeba myslet na skutečnost, že se jedná o minimalizační úlohu. Vstupující proměnnou je tedy sloupec s nejvyšší kladnou hodnotou v řádku účelové funkce. Dále se postupuje stejně jako u maximalizační úlohy. Vstupující proměnnou je tedy x 3 a vystupující proměnnou je x 3 (v tomto případě je to jednodušší tím, že ve 3. sloupci je jediný kladný koeficient vyšší než 0 ve 3. řádku). 5