Příklady modelů lineárního programování Příklad 1 Optimalizace výroby konzerv. Podnik vyrábí nějaký výrobek, který prodává v 1 kg a 2 kg konzervách, přičemž se řídí podle následujících velmi zjednodušených předpokladů. Na výrobním zařízení, na kterém se z nakoupených plechů zhotovují plechovky, trvá výroba 100 plechovek bez rozdílu velikosti 1 hodinu. Zařízení může být v provozu nejvýše 70 hodin týdně. Týdně lze k plnění do plechovek připravit 10000 kg výrobku a při plnění nevzniká žádný odpad. Prodejní oddělení může týdně zabezpečit odbyt 6000 kg výrobku v 1 kg konzervách a 8000 kg ve 2 kg konzervách. Konzervy se prodávají v celcích po 100 kusech. Zisk za kus je u 1 kg konzervy 2 Kč a u 2 kg konzervy 3 Kč. Kolik a kterých konzerv má podnik týdně vyrábět, aby za těchto předpokladů dosáhl maximálního zisku? Specifikace veličin modelu: Neřiditelné veličiny jsou zadány v předchozím textu. Jak uvidíme dále, v průběhu tvorby modelu u některých z nich dojde ke změně jednotek. Rozhodovací proměnné (v závorkách jsou jednotky): x 1 množství 1 kg konzerv (100 ks) x 2 množství 2 kg konzerv (100 ks) Výsledková proměnná: z celkový zisk (100 Kč) Pozn.: Volba jednotek u rozhodovacích proměnných vyplývá ze zadání (konzervy se prodávají v celcích po 100 ks), kdežto volba jednotky u výsledkové proměnné je vedena snahou o zjednodušení modelu. Často vhodnou volbou jednotek můžeme zlepšit výpočetní vlastnosti modelu. Účelová funkce: Kritériem rozhodování je hodnota celkového zisku a účelová funkce vyjadřuje závislost této veličiny na rozhodovacích proměnných. z = 2 x 1 + 3 x 2 Pozn.: Zde došlo ke změně jednotky neřiditelných veličin, jimiž jsou zisky za jednotku výrobku. Novou jednotkou hodnot 2 a 3 je 100 Kč /100 ks. Výrobní omezení: Omezení výroby plechovek (závorkách je jednotka): x 1 + x 2 70 (hod) Výraz na levé straně představuje spotřebu kapacity zařízení na výrobu plechovek pro plán výroby konzerv určený hodnotami x 1 a x 2. Koeficienty 1 na levé straně mají jednotku hod /100 ks. - 1 -
Omezení přípravy výrobku: 100 x 1 + 200 x 2 10000 (kg) Na 100 ks 1 kg konzerv se spotřebuje 100 kg výrobku a na 100 ks 2 kg konzerv se spotřebuje 200 kg výrobku. Omezení můžeme zjednodušit volbou jednotky 100 kg pro kapacitu linky na přípravu výrobku. x 1 + 2 x 2 100 (100 kg) Jednotkou koeficientů 1 a 2 je 100 kg / 100 ks. Omezení rozhodovacích proměnných: Odbytová omezení: x 1 60 (100 ks) x 2 40 (100 ks) Zde došlo ke změně jednotky možností odbytu z kg na 100 ks. Podmínky nezápornosti: x 1 0 x 2 0 Nemůžeme vyrábět záporná množství konzerv. Podmínky celočíselnosti (Z označuje množinu celých čísel): Vyrábět můžeme pouze v celcích po 100 ks. maximalizovat x 1 Z x 2 Z z = 2 x 1 + 3 x 2 x 1 + x 2 70 x 1 + 2 x 2 100 x 1 60 x 2 40 x 1, x 2 0 x 1, x 2 Z - 2 -
Tento model je možno řešit graficky nebo pomocí simplexové metody. Řešením modelu jsou optimální hodnoty rozhodovacích proměnných a optimální hodnota účelové funkce x 1,opt = 40, x 2,opt = 30 z opt = 170 Při interpretaci získaného řešení musíme specifikovat, co tyto hodnoty znamenají, a převést je do jednotek odpovídajících zadání. V případě potřeby musíme také předtím provést úpravy související se zjednodušením modelu či postupu řešení (např. úpravu na celočíselné hodnoty). Odpověď na zadaný úkol je tedy následující: podnik má týdně vyrábět 4000 ks 1 kg konzerv a 3000 ks 2 kg konzerv; přitom bude dosahovat zisku 17000 Kč. Dosazením vypočtených hodnot do modelu můžeme získat další užitečné informace. Prvá dvě omezení jsou splněna jako rovnice, což znamená, že kapacity výrobních zařízení jsou plně využity. Nevyužité zůstávají možnosti odbytu na trhu by bylo možno ještě uplatnit 2000 ks 1 kg konzerv a 1000 ks 2 kg konzerv. - 3 -
Příklad 2 Optimalizace výrobního programu Podnik vyrábí dva typy zaměnitelných výrobků za těchto podmínek: slévárna může vyrobit odlitky nejvýše buď pro 80 ks typu I nebo pro 100 ks typu II. lisovna může vyrobit výlisky nejvýše pro buď pro 200 ks typu I nebo pro 60 ks typu II. montáž typu I má kapacitu 60 ks montáž typu II má kapacitu 80 ks. Cena obou typů za 1 ks je 28000 Kč. Je třeba stanovit výrobní program, který zajistí maximální hodnotu produkce. x 1 množství výrobků typu I (ks) x 2 množství výrobků typu II (ks) z celková hodnota produkce (1000 Kč) V zadání nejsou explicitně zadány spotřeby kapacit slévárny a lisovny na jednotky výrobků I a II, můžeme je ale odvodit následujícím způsobem. Jestliže slévárna má kapacitu 100 %, pak na 1 ks výrobku typu I je zapotřebí 5/4 % kapacity (100/80) a na 1 ks výrobku typu II je zapotřebí 1 % kapacity (100/100). Jestliže lisovna má kapacitu 100 %, pak na 1 ks výrobku typu I je zapotřebí 1/2 % kapacity (100/200) a na 1 ks výrobku typu II je zapotřebí 5/3 % kapacity (100/60). maximalizovat z = 28 x 1 + 28 x 2 5 x1 + x 2 100 (%) 4 1 x1 + 2 5 x2 100 (%) 3 x 1 60 (ks) x 2 80 (ks) x 1, x 2 0 x 1, x 2 Z - 4 -
Příklad 3 Optimalizace nákupu surovin Tři prvky P 1, P 2, P 3 jsou obsaženy ve čtyřech různých sloučeninách S 1, S 2, S 3, S 4. Obsahy prvků v jednotlivých sloučeninách, jakož i ceny sloučenin a potřebná množství prvků jsou uvedeny v tabulce. Ve sloupcích 2 5 je množství prvku v g, které lze získat z 1 kg sloučeniny. V posledním sloupci je minimálně potřebné množství prvků v kg. Název prvku množství prvku v g z 1kg sloučeniny S 1 S 2 S 3 S 4 minimálně potřebné množství v kg P 1 0 2 4 5 5 P 2 2 2 0 4 6 P 3 10 5 4 10 18 cena sloučeniny v Kč/kg 15 10 12 25 Má se zjistit, které sloučeniny a v jakém množství je třeba nakoupit, aby bylo získáno potřebné množství prvků za nejnižší cenu. x j z množství suroviny S j (kg) celková cena surovin (Kč) minimalizovat z = 15 x 1 + 10 x 2 + 12 x 3 + 25 x 4 2 x 2 + 4 x 3 + 5 x 4 5000 (g) 2 x 1 + 2 x 2 + 4 x 4 6000 (g) 10 x 1 + 5 x 2 + 4 x 3 + 10 x 4 18000 (g) x 1, x 2, x 3, x 4 0 Při tvorbě modelu je nutno si dát pozor na to, že jednotky v zadání nejsou konzistentní. Množství prvků, které lze získat ze sloučenin, jsou v gramech, kdežto potřeba prvků je udána v kilogramech. Vhodnější v tomto případě bylo upravit jednotky požadovaných množství prvků. - 5 -
Příklad 4 Nutriční problém (jedná se o zvláštní případ směšovacího problému) Krmná směs musí obsahovat alespoň 60 jednotek látky L 1, 160 jednotek látky L 2 a 180 jednotek látky L 3. Směs lze vyrábět ze dvou surovin S 1 a S 2, přičemž 1 kg suroviny S 1 obsahuje 3 jednotky látky L 1, 4 jednotky látky L 2 a 2 jednotky látky L 3 ; 1 kg suroviny S 2 obsahuje 1 jednotku látky L 1, 3 jednotky látky L 2 a 4 jednotky látky L 3. 1 kg suroviny S 1 stojí 14 Kč a 1 kg suroviny S 2 stojí 13 Kč. Je třeba určit množství surovin S 1 a S 2, jejichž smícháním dostaneme krmnou směs s požadovaným obsahem látek L 1, L 2 a L 3 tak, aby celkové náklady na použité suroviny byly co nejnižší. x j z množství suroviny S j (kg) celková cena surovin (Kč) minimalizovat z = 14 x 1 + 13 x 2 3 x 1 + 1 x 2 60 (j) 4 x 1 + 3 x 2 160 (j) 2 x 1 + 4 x 2 180 (j) x 1, x 2 0-6 -
Příklad 5 Řezný problém Strojírenský závod potřebuje pro svoji výrobu 3 druhy kovových tyčí T 1, T 2, T 3, přičemž tyče T 1 mají délku 90 cm, tyče T 2 mají délku 70 cm a tyče T 3 mají délku 50 cm. K dispozici jsou pouze tyče délky 190 cm, které je třeba rozřezat. Přípustné jsou pouze takové způsoby řezání tyčí standardní délky, při kterých nebude odpad větší než 40 cm. Požaduje se 400 tyčí T 1, 400 tyčí T 2 a 1300 tyčí T 3. Má se určit takový řezný plán, při kterém budou splněny požadavky při použití co nejmenšího počtu kusů tyčí standardní délky. Než začneme sestavovat model, musíme nejdříve zjistit všechny možné přípustné způsoby rozřezání tyče standardní délky na požadované tyče. Tyto způsoby, neboli tzv. řezné plány, jsou uvedeny v následující tabulce Požadované tyče řezné plány P 1 P 2 P 3 P 4 P 5 P 6 potřebné množství v ks T 1 (90 cm) 2 1 1 0 0 0 400 T 2 (70 cm) 0 1 0 2 1 0 400 T 3 (50 cm) 0 0 2 1 2 3 1300 odpad v cm 10 30 0 0 20 40 x j z počet standardních tyčí rozřezaných podle j-tého řezného plánu (ks) celkový počet rozřezaných tyčí (ks) minimalizovat z = x 1 + x 2 + x 3 + x 4 + x 5 + x 6 2 x 1 + x 2 + x 3 = 400 (ks) x 2 + 2 x 4 + x 5 = 400 (ks) + 2 x 3 + x 4 + 2 x 5 + 3 x 6 = 1300 (ks) x 1, x 2,..., x 6 0 x 1, x 2,..., x 6 Z Poznamenejme, že v této úloze máme ještě jednu možnost volby kritéria: můžeme požadovat, aby celkový odpad byl minimální. Pak účelová funkce vypadá takto (jednotkou jsou centimetry): z = 10 x 1 + 30 x 2 + 20 x 5 + 40 x 6-7 -
Příklad 6 Dopravní problém Závod na výrobu cementu zásobuje ze dvou skladů S 1 a S 2 tři stálé zákazníky Z 1, Z 2 a Z 3. Tabulka udává měsíční zásoby cementu na skladech (v tunách), měsíční požadavky zákazníků (v tunách) a náklady na přepravu 1 tuny cementu z každého skladu ke každému zákazníkovi. Je třeba určit takový plán rozvozu cementu, při kterém nebudou překročeny kapacity skladů, budou uspokojeny požadavky zákazníků a přepravní náklady budou co nejnižší. Sklady zákazníci Z 1 Z 2 Z 3 zásoby v tunách S 1 5 2 3 30 S 2 2 1 1 75 požadavky v tunách 35 25 45 x ij množství cementu dopravené z i-tého skladu j-tému zákazníkovi (t) z celkové náklady na přepravu minimalizovat z = 5 x 11 + 2 x 12 + 3 x 13 + 2 x 21 + x 22 + x 23 x 11 + x 12 + x 13 30 (t) x 21 + x 22 + x 23 75 (t) x 11 + x 21 = 35 (t) x 12 + x 22 = 25 (t) x 13 + x 23 = 45 (t) x 11, x 12, x 13, x 21, x 22, x 23 0 Prvá dvě omezení se týkají skladů a vyjadřují, že celkové množství dodané z určitého skladu nesmí být větší než jeho kapacita. Další tři omezení vyjadřují, že každý zákazník dostane přesně to množství, které požaduje. Vzhledem k tomu, že součet požadavků zákazníků je roven součtu kapacit skladů (oba mají hodnotu 105), můžeme i prvá dvě omezení zapsat jako rovnice. V takovém případě říkáme, že dopravní problém je vyvážený. - 8 -