UNIVERZITA OBRANY KATEDRA EKONOMETRIE UČEBNÍ TEXT PRO DISTANČNÍ STUDIUM EKONOMICKO-MATEMATICKÉ METODY RNDr. Michal ŠMEREK doc. RNDr. Jiří MOUČKA, Ph.D. B r n o 2 0 0 8
Anotace: Skriptum Ekonomicko-matematické metody je učební text pro distanční studium předmětu Ekonomicko-matematické metody v kombinovaném studijním programu na Fakultě ekonomiky a managementu Univerzity obrany v Brně. Obsahuje základy teorie ekonomicko-matematických metod v rozsahu, který odpovídá základnímu kurzu ekonomicko-matematických metod schválenému akreditačním řízením. Způsob zpracování textu respektuje skutečnost, že student bude pracovat s textem samostatně bez pomoci vyučujícího. Klíčová slova: Soustava lineárních rovnic, soustava lineárních nerovnic, kanonický tvar soustavy lineárních rovnic, základní a vedlejší proměnná, základní a nezákladní řešení, degenerované a nedegenerované řešení, přípustné a nepřípustné řešení, optimální a neoptimální řešení, alternativní řešení, úloha výrobního plánování, směšovací úloha, rozdělovací úloha, obecná úloha lineárního programování, grafická metoda, simplexová metoda, výchozí řešení, základní proměnná, doplňková proměnná, test optimálnosti řešení, zlepšování řešení, metoda umělé báze, pomocná proměnná, pomocná účelová funkce, rozšířená úloha lineárního programování, dualita, duálně simplexová metoda, parametrické lineární programování, dopravní úloha, vyrovnaná dopravní úloha, nevyrovnaná dopravní úloha, Vogelova aproximační metoda, výchozí základní řešení, test optima, uzavřený okruh, přiřazovací problém, maďarská metoda, nezávislé nuly, Königova věta, krycí čáry. Skriptum neprošlo redakční ani jazykovou úpravou. Projednáno a schváleno na metodickém shromáždění katedry dne 28. 4. 2008. Recenzenti: doc. RNDr. Josef KALAS, CSc. RNDr. Vratislava MOŠOVÁ, CSc. c Michal ŠMEREK, Jiří MOUČKA, 2008 ISBN 978-80-7231-526-0
Obsah Předmluva 5 1 ÚVOD 6 2 MATEMATICKÉ ZÁKLADY LINEÁRNÍHO PROGRAMOVÁNÍ 9 2.1 Soustava lineárních rovnic......................... 9 2.2 Soustava lineárních nerovnic........................ 15 2.3 Shrnutí 2. kapitoly............................. 19 2.4 Test ke kapitole 2.............................. 19 3 FORMULACE ÚLOH LINEÁRNÍHO PROGRAMOVÁNÍ 21 3.1 Úloha výrobního plánování......................... 21 3.2 Směšovací úloha............................... 23 3.3 Rozdělovací úloha.............................. 26 3.4 Obecná úloha lineárního programování.................. 28 3.5 Shrnutí 3. kapitoly............................. 30 3.6 Test ke kapitole 3.............................. 30 4 GRAFICKÁ METODA 31 4.1 Grafická metoda řešení úloh lineárního programování.......... 31 4.2 Shrnutí 4. kapitoly............................. 36 4.3 Test ke kapitole 4.............................. 36 5 SIMPLEXOVÁ METODA 37 5.1 Nalezení výchozího řešení.......................... 38 5.2 Test optimálnosti řešení.......................... 40 5.3 Zlepšování řešení.............................. 41 5.4 Shrnutí 5. kapitoly............................. 45 5.5 Test ke kapitole 5.............................. 45 6 METODA UMĚLÉ BÁZE 47 6.1 Metoda umělé báze............................. 47 6.2 Shrnutí 6. kapitoly............................. 51 6.3 Test ke kapitole 6.............................. 51 7 DUALITA V ÚLOHÁCH LINEÁRNÍHO PROGRAMOVÁNÍ 53 7.1 Pojem duality a konstrukce duální úlohy................. 53 7.2 Ekonomická interpretace duální úlohy................... 61 7.3 Duálně simplexová metoda......................... 62 7.4 Shrnutí 7. kapitoly............................. 67 7.5 Test ke kapitole 7.............................. 67 3
8 PARAMETRICKÉ LINEÁRNÍ PROGRAMOVÁNÍ 69 8.1 Parametrizace pravých stran........................ 69 8.2 Parametrizace koeficientů účelové funkce................. 72 8.3 Shrnutí 8. kapitoly............................. 77 8.4 Test ke kapitole 8.............................. 77 9 DOPRAVNÍ ÚLOHA 79 9.1 Vyrovnaná dopravní úloha......................... 79 9.2 Vogelova aproximační metoda....................... 82 9.3 Test optima................................. 87 9.4 Zlepšování řešení.............................. 89 9.5 Degenerované a alternativní řešení dopravních úloh........... 92 9.6 Nevyrovnaná dopravní úloha........................ 98 9.7 Shrnutí 9. kapitoly............................. 103 9.8 Test ke kapitole 9.............................. 103 10 PŘIŘAZOVACÍ PROBLÉM 105 10.1 Přiřazovací problém minimalizačního typu................ 105 10.2 Přiřazovací problém maximalizačního typu................ 113 10.3 Shrnutí 10. kapitoly............................. 116 10.4 Test ke kapitole 10............................. 116 Seznam literatury 119 Rejstřík 121 Vstup do verze k prohlížení na obrazovce. 4
5 Předmluva Tento učební text byl vytvořen především pro studenty kombinovaného studia Fakulty ekonomiky a managementu Univerzity obrany v Brně, kteří budou studovat předmět Ekonomicko-matematické metody distanční formou. Svým stylem navazuje na studijní materiály vytvořené na katedře ekonometrie v předchozích letech pro výuku předmětů Matematika a Statistika distanční formou. Prezentovaná učební látka je uspořádaná a členěná stejným způsobem, což umožní studentům využít své zkušenosti ze studia dříve absolvovaných předmětů a využít stejný styl práce při studiu. Zařazení mnoha ilustrativních řešených příkladů, úloh k procvičení a testů umožňuje využití předkládaného učebního textu i studenty prezenčního studia Fakulty ekonomiky a managementu i studenty jiných fakult a vysokých škol studujících předmět Ekonomicko-matematické metody, Operační výzkum či Operační analýza se stejným obsahem a v obdobném rozsahu. Vědní disciplína Operační výzkum někdy také nazývaná Operační analýza se zabývá formulováním, modelováním a řešením rozmanitých rozhodovacích situací, tedy situací, ve kterých rozhodovací subjekt vybírá nejlepší řešení z mnoha možných řešení, které jsou k dispozici. Předmět Ekonomicko-matematické metody chápeme jako Operační výzkum zkoumající ekonomické rozhodovací situace. Z řady dílčích disciplín Operačního výzkumu předkládáme čtenářům základy lineárního programování, především simplexovou metodu a její modifikace, kterou využíváme při řešení úloh výrobního plánování, směšovacích a rozdělovacích úloh. V druhé části skript je rozebírána dopravní úloha a přiřazovací problém, což jsou ve své podstatě opět úlohy lineárního programování, ale vzhledem k jejich specifické formě jsou řešeny speciálními metodami. Za jednotící linii lze považovat použitý matematický aparát. Jedná se o základní pojmy a techniky lineární algebry, které by student většinou měl znát z předmětu Matematika. Děkujeme všem, kteří nám nějakým způsobem pomohli při přípravě tohoto textu. Za pečlivé přečtení textu a cenné připomínky patří naše poděkování zejména oběma recenzentům RNDr. Vratislavě Mošové, CSc. a doc. RNDr. Josefu Kalasovi, CSc. Za kontrolu textu a propočítání příkladů děkujeme rovněž Aleši Koutnému, studentovi druhého ročníku FEM UO. Děkujeme také všem, kteří nám svými postřehy, připomínkami a náměty budou ochotni pomoci dále zkvalitnit obsah i formu tohoto učebního textu. Brno, 19. 4. 2008 Michal Šmerek michal.smerek@unob.cz Jiří Moučka jiri.moucka@unob.cz katedra ekonometrie FEM UO v Brně
6 1 ÚVOD S rozvojem technologií se komplikují i různé výrobní procesy. Potřeba modelovat rozhodovací situace, umět hledat optimální rozhodnutí, řešení, způsobila rozvoj odvětví nazývaného OPERAČNÍ VÝZKUM (nebo též OPERAČNÍ ANALÝZA či EKONO- MICKO - MATEMATICKÉ METODY). Operačním výzkumem se rozumí souhrn metod, jimiž se řeší rozhodovací situace. Řeší se problémy, které mají více možných řešení, a mezi nimi se hledá to řešení, které nejlépe vyhovuje zadanému cíli. Takové řešení se nazývá optimální řešení. Každý rozhodovací problém má několik fází řešení: 1. Daný problém se analyzuje z ekonomického hlediska, tj. tvoří se ekonomický model. 2. Sestaví se odpovídající matematický model. 3. Řeší se matematický model - hledá se konkrétní číselné řešení. 4. Interpretace výsledků řešení. 5. Realizace řešení. ad 1. Výsledkem rozboru ekonomické reality bývá kvalitativní a kvantitativní popis situace - vlastní slovní zadání úlohy. Problémy sledujeme na zjednodušených modelech (modelem rozumíme zjednodušený obraz skutečnosti; uvažujeme pouze ty stránky skutečnosti, které jsou z hlediska studovaného jevu významné). Ekonomický model by měl obsahovat: CÍL (kritérium) - musí být jasně vymezen. Příkladem může být např. maximalizace zisku, minimalizace nákladů,... PROCESY, které probíhají při dané rozhodovací situaci. ČINITELE ovlivňující daný proces a popis vztahů mezi procesy a činiteli. 1.0.1 Příklad. Podnik vyrábí tři druhy výrobků V 1, V 2 a V 3. Na výrobu jednoho výrobku V 1 spotřebuje 15 kg suroviny S, 3 kwh energie E a výroba trvá 1 h strojového času T. Na výrobu jednoho výrobku V 2 spotřebuje 20 kg suroviny S, 4 kwh energie E a výroba trvá 1 h strojového času T. 2 Na výrobu jednoho výrobku V 3 spotřebuje 40 kg suroviny S, 7 kwh energie E a výroba trvá 3 h strojového času T. Prodejem každého výrobku V 1 dosáhne podnik zisku 700 Kč, u výrobku V 2 je to 500 Kč a u výrobku V 3 1300 Kč. Podnik má k dispozici 10 000 kg suroviny S, 4000 kwh energie E a 1000 h strojového času T. Při jakém plánu výroby bude zisk podniku maximální?
7 Ekonomickým modelem je již samotné slovní zadání úlohy. Často se však takový ekonomický model uvádí i ve formě tabulky. EKONOMICKÝ Výrobky Disponibilní MODEL V 1 V 2 V 3 množství surovina S 15 20 40 10 000 energie E 3 4 7 4 000 strojový čas T 1 1 2 3 1 000 zisk 700 500 1 300 max ad 2. Abychom mohli daný ekonomický model řešit, musíme vyjádřit podmínky i cíl procesu pomocí matematických prostředků (funkce, rovnice, nerovnice,... ). Tím vytvoříme odpovídající matematický model. Řešením tohoto modelu pak dostáváme odpovídající řešení. Jsou-li funkce, rovnice a nerovnice používané v daném matematickém modelu pouze lineární (tj. 1. stupně), jde o úlohu lineárního programování. 1.0.2 Příklad. V podniku se provádějí tři činnosti, výroba výrobků V 1, V 2 a V 3, tedy matematický model bude obsahovat 3 proměnné: x 1... počet vyrobených výrobků V 1, x 2... počet vyrobených výrobků V 2, x 3... počet vyrobených výrobků V 3. Matematické vyjádření omezujících podmínek: i) Nelze vyrábět záporné množství výrobků = x 1 0; x 2 0; x 3 0. Jsou to tzv. podmínky nezápornosti. ii) Při výrobě jednoho výrobku V 1 spotřebujeme 15 kg suroviny S. Vyrobímeli x 1 těchto výrobků, spotřebujeme 15 x 1 kg suroviny S. Analogicky i pro výrobky V 2 a V 3. Spotřeba suroviny S celkem je tedy: S : 15x 1 + 20x 2 + 40x 3 kg. Celková spotřeba nesmí přesáhnout disponibilní množství. Tedy: S : 15x 1 + 20x 2 + 40x 3 10 000. Analogicky postupujeme i pro spotřebu energie a strojového času: E : 3x 1 + 4x 2 + 7x 3 4 000, T : x 1 + 0,5x 2 + 3x 3 1 000. Uvedené tři nerovnice se nazývají vlastní omezující podmínky. Úkolem je určit plán výroby, tj. vektor výroby x = (x 1, x 2, x 3 ), při němž bude zisk maximální. Hodnota zisku pro daný plán výroby je dána funkcí z = 700x 1 + 500x 2 + 1 300x 3.
8 Taková funkce se nazývá účelová funkce. Účelová funkce v tomto případě je maximalizačního typu. Celkově má tedy matematický model úlohy takový tvar: z = 700x 1 + 500x 2 + 1 300x 3 max, 15x 1 + 20x 2 + 40x 3 10 000, 3x 1 + 4x 2 + 7x 3 4 000, x 1 + 0,5x 2 + 3x 3 1 000, x 1 0, x 2 0, x 3 0. Sestavení matematického modelu úlohy lineárního programování, stejně jako další fáze řešení, jsou předmětem studia v následujících kapitolách.
9 2 MATEMATICKÉ ZÁKLADY LINEÁRNÍHO PROGRAMOVÁNÍ Tato kapitola slouží k zopakování a prohloubení těch částí učiva základního kurzu matematiky, jež budeme využívat při řešení úloh lineárního programování (dále jen LP). Především zde uvedeme definice soustavy lineárních rovnic (SLR), soustavy lineárních nerovnic (SLN), řešení těchto soustav, jejich vlastnosti a základní věty s těmito pojmy spojené. Cílem kapitoly je: zopakovat si řešení soustavy lineárních rovnic, řešení soustavy úplnou eliminací, zopakovat si soustavy lineárních nerovnic, převod SLN na SLR, seznámit se s pojmy kanonický tvar SLR, základní a vedlejší proměnná, základní a nezákladní řešení, degenerované a nedegenerované řešení, atd. 2.1 Soustava lineárních rovnic 2.1.1 Definice. Soustavou m lineárních rovnic o n neznámých rozumíme systém rovnic a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1, a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2, (2.1)....... a m1 x 1 + a m2 x 2 +... + a mn x n = b m, přitom pro ni lze užít i ekvivalentní maticový zápis A x T = b T, kde A je matice soustavy, x T je vektor neznámých a b T je vektor absolutních členů. Matice R = (A b T ) je tzv. rozšířená matice soustavy. 2.1.2 Poznámka. Matice soustavy (2.1) je a 11 a 12... a 1n a 21 a 22... a 2n A =.... a m1 a m2... a mn
10 2 MATEMATICKÉ ZÁKLADY LP Rozšířená matice soustavy (2.1) má tvar a 11 a 12... a 1n b 1 a 21 a 22... a 2n b 2 R =...., a m1 a m2... a mn b m vektor absolutních členů je a vektor neznámých b = (b 1, b 2,..., b m ), a tedy b T = x = (x 1, x 2,..., x n ), a tedy x T = b 1 b 2. b m x 1 x 2. x n. 2.1.3 Definice. Řešením soustavy lineárních rovnic (2.1) rozumíme každou n-tici x = (x 1, x 2,..., x n ), pro niž je splněno všech m rovnic dané soustavy. Podmínku řešitelnosti soustavy lineárních rovnic udává tzv. Frobeniova věta: 2.1.4 Věta. (Frobeniova) Soustava (2.1) má řešení právě tehdy, když hodnost matice A matice R, tj. když h(a) = h(r). je rovna hodnosti Důkaz. viz např. v [Moučka1], str. 74. Frobeniovu větu doplňuje tzv. věta o počtu řešení: 2.1.5 Věta. (O počtu řešení SLR) a) Je-li h(a) = h(r) = n, má soustava (2.1) právě jedno řešení. b) Je-li h(a) = h(r) = h < n, má soustava (2.1) nekonečně mnoho řešení závislých na n h parametrech. c) Je-li h(a) < h(r), soustava (2.1) nemá řešení.
2.1 Soustava lineárních rovnic 11 2.1.6 Poznámka. V úlohách LP se nejčastěji budeme setkávat s případem b), kdy soustava má nekonečně mnoho řešení. 2.1.7 Příklad. Řešte soustavu lineárních rovnic: x 1 2x 2 + x 3 + x 4 = 1, x 1 2x 2 + x 3 x 4 = 1, x 1 2x 2 + x 3 + 5x 4 = 5. Řešení. SLR řešíme úpravou rozšířené matice na schodovitý tvar: 1 2 1 1 1 1 2 1 1 1 ( 1 2 1 1 1 0 0 0 2 2 1 2 1 1 1 0 0 0 1 1 1 2 1 5 5 0 0 0 4 4 Hodnost matice A je rovna hodnosti matice R a tato hodnost je menší než počet proměnných (h(a) = h(r) = 2 < 4). Tedy soustava rovnic má nekonečně mnoho řešení závislých na n h = 4 2 = 2 parametrech. Zřejmě x 4 = 1. Parametry s a t pak můžeme volit např. tímto způsobem: x 2 = s, x 3 = t, kde s, t R. Potom x 1 = 1 + 2x 2 x 3 x 4 = 2s t. Řešení x = (2s t, s, t, 1), kde s, t R, je tedy obecným řešením uvažované soustavy lineárních rovnic. Chceme-li určit nějaké konkrétní řešení, zvolíme za s a t konkrétní čísla. 2.1.8 Příklad. Určete alespoň čtyři konkrétní řešení soustavy lineárních rovnic z předchozího příkladu. Řešení. Za parametry s a t stačí zvolit konkrétní reálná čísla, např.: i) s = 2, t = 1 = x = (3, 2, 1, 1), ii) s = 1, t = 0 = x = (2, 1, 0, 1), iii) s = 1, t = 1 = x = ( 3, 1, 1, 1), iv) s = 0, t = 0 = x = (0, 0, 0, 1). ). 2.1.9 Definice. Řešení, které získáme z obecného řešení, v němž každý parametr je roven některé proměnné, tím způsobem, že za všechny parametry volíme nuly, se nazývá základní řešení. Neznámé, jež mají roli parametrů (v počtu n h) se nazývají vedlejší proměnné, ostatní neznámé (v počtu h) se nazývají základní (bázické) proměnné.
12 2 MATEMATICKÉ ZÁKLADY LP 2.1.10 Příklad. V příkladě 2.1.7 jsme za parametry volili neznámé x 2, x 3, a tedy x 2, x 3 jsou vedlejší proměnné, zatímco zbývající proměnné, tj. x 1, x 4, jsou základní. Řešení iv) soustavy, tj. x = (0, 0, 0, 1), je základní řešení soustavy, protože jsme za parametry (tj. za vedlejší proměnné) zvolili nuly. 2.1.11 Definice. Jsou-li v základním řešení všechny základní proměnné nenulové, nazývá se základní řešení nedegenerované. Je-li v základním řešení alespoň jedna základní proměnná rovna nule, nazývá se základní řešení degenerované. 2.1.12 Příklad. Řešení iv) soustavy lineárních rovnic z úvodního příkladu tohoto odstavce, tj. x = (0, 0, 0, 1), je degenerované, protože základní proměnná x 1 = 0. Často budeme pracovat se soustavou lineárních rovnic v tzv. kanonickém tvaru. 2.1.13 Definice. Řekneme, že soustava h lineárních rovnic je v kanonickém tvaru, pokud její matice soustavy obsahuje všech h sloupců jednotkové matice řádu h, a to bez ohledu na jejich pořadí. Uvažujeme-li např. soustavu rovnic tvaru jsou zřejmé následující skutečnosti: x 1 + a 1,h+1 x h+1 + + a 1n x n = b 1, x 2 + a 2,h+1 x h+1 + + a 2n x n = b 2,......... x h + a h,h+1 x h+1 + + a hn x n = b h, (2.2) 1. Jedná se o soustavu h lineárně nezávislých rovnic. Evidentně totiž nelze žádnou z těchto rovnic vyjádřit jako lineární kombinaci ostatních rovnic. 2. Hodnost matice soustavy je h, hodnost rozšířené matice soustavy je také h, počet proměnných je n, a tedy, podle věty 2.1.5, existuje nekonečně mnoho řešení závislých na n h parametrech. 3. Z tohoto tvaru lze přímo určit základní řešení. Volbou x h+1 = x h+2 = = x n = 0 (vedlejší proměnné, tj. n h parametrů) získáme x 1 = b 1, x 2 = b 2,..., x h = b h (základní proměnné). Proto základní řešení soustavy (2.2) je x = (b 1, b 2,..., b h, 0,..., 0). Matice soustavy (2.2) je A h = 1 0 0 a 1,h+1 a 1n 0 1 0 a 2,h+1 a 2n......... (2.3) 0 0 1 a h,h+1 a hn
2.1 Soustava lineárních rovnic 13 Obsahuje právě h různých základních jednotkových sloupcových vektorů (v (2.3) tvoří jednotkovou submatici). Tyto sloupcové vektory určují základní proměnné. Uvedeného principu využíváme při řešení soustavy (2.1). Matici A soustavy (2.1) převedeme pomocí elementárních ekvivalentních úprav na matici A h soustavy, která je v kanonickém tvaru. Obě soustavy jsou ekvivalentní a řešení (základní) určíme ze soustavy v kanonickém tvaru. 2.1.14 Příklad. Nalezněte všechna základní řešení SLR: x 1 + 11x 2 + 4x 4 = 30, 2x 1 + 8x 2 2x 3 + 2x 4 = 18, 6x 2 + 2x 3 + 2x 4 = 22. Řešení. Vlastní řešení provedeme úplnou eliminací v tabulce 2.1. Z.p. x 1 x 2 x 3 x 4 b i (1) 11 0 4 30 2 8 2 2 18 0 6 2 2 22 x 1 1 11 0 4 30 0 14 2 6 42 0 6 (2) 2 22 x 1 1 11 0 4 30 0 8 0 ( 4) 20 x 3 0 3 1 1 11 x 1 1 3 0 0 10 x 4 0 2 0 1 5 x 3 0 (1) 1 0 6 x 1 1 0 ( 3) 0 8 x 4 0 0 2 1 7 x 2 0 1 1 0 6 x 3 1 8 0 1 0 3 3 x 4 ( 2) 0 0 1 5 3 3 1 x 2 1 0 0 10 3 3 x 3 0 0 1 1 7 2 2 x 1 1 0 0 3 2 x 2 0 1 0 1 2 Tab. 2.1 Určování základních řešení v příkladu 2.1.14 5 2 5 2 (a ij ) značí klíčový prvek, viz def. 2.1.15 x 2 je vedlejší proměnná volíme x 2 = 0 x (1) = (10, 0, 6, 5) x 3 je vedlejší proměnná volíme x 3 = 0 x (2) = ( 8, 6, 0, 7) x 1 je vedlejší proměnná volíme x 1 = 0 x (3) = (0, 10 3, 8 3, 5 3 ) x 4 je vedlejší proměnná volíme x 4 = 0 x (4) = ( 5 2, 5 2, 7 2, 0)
14 2 MATEMATICKÉ ZÁKLADY LP Každý krok tabulky přísluší jiné soustavě lineárních rovnic, které jsou však ekvivalentní. V každém dalším kroku nově vytvoříme základní jednotkový sloupcový vektor (hovoříme o vstupující proměnné, tj. proměnné, která vstupuje do množiny základních proměnných). Určili jsme všechna základní řešení soustavy tří lineárně nezávislých rovnic o čtyřech neznámých. Jsou čtyři; je jich právě tolik, kolika způsoby lze vybrat trojici základních proměnných (ze čtyř). Nebo jinak, je jich právě tolik, kolika způsoby lze vybrat jednu vedlejší proměnnou (ze čtyř). 2.1.15 Definice. Klíčovým prvkem matice rozumíme zvolený nenulový prvek matice, pomocí něhož vhodnými řádkovými úpravami matice změníme tento prvek na jedničku a vynulujeme všechny ostatní prvky matice ležící ve stejném sloupci jako klíčový prvek. 2.1.16 Poznámka. Počet všech základních řešení soustavy m lineárně nezávislých rovnic o n neznámých je nejvýše roven kombinačnímu číslu ( ) ( ) n n n! = = m n m m!(n m)!. 2.1.17 Úkoly a problémy k modulu 2.1 1. Nalezněte všechna základní řešení SLR: a) x 1 + x 2 3x 3 + x 4 = 2, 4x 1 + x 2 + x 4 = 14, x 1 2x 2 + x 3 x 4 = 2. b) 2x 1 + 3x 2 + x 3 = 30, x 1 2x 2 + 3x 3 = 35. c) x 1 + 3x 2 = 18, 5x 1 + 2x 2 = 25, x 1 + x 2 = 8. d) x 1 + x 2 = 10, 3x 1 x 2 = 2, x 1 + 3x 2 = 20. e) x 1 + x 2 + x 3 + x 4 = 16, x 2 + 2x 3 + 3x 4 = 20. 2. Nalezněte základní řešení soustavy lineárních rovnic s danou množinou M základních proměnných:
2.2 Soustava lineárních nerovnic 15 a) M = {x 1, x 2, x 3 }, x 1 + 3x 2 + 5x 3 + 7x 4 + 9x 5 = 40, x 1 x 2 + x 3 x 4 + x 5 = 12, 2x 1 + x 3 x 5 = 23. b) M = {x 2, x 3, x 4 }, 2x 1 6x 2 + x 3 x 4 = 7, x 1 + x 2 x 3 + x 5 = 1, x 1 + 2x 2 + x 3 + 2x 4 + x 5 = 10. c) M = {x 3, x 5 }, x 1 x 2 x 3 x 4 + x 5 = 4, x 2 2x 3 3x 4 + 4x 5 = 20. d) M = {x 1, x 2, x 3 }, 2x 1 + x 2 + 3x 3 x 4 = 16, x 1 x 2 + x 3 + x 4 = 4, x 1 + x 2 + x 3 = 6. Řešení. 1. a) (4, 4, 0, 6); (0, 12, 4, 26); ( 13, 1, 3, 0); (3, 0, 1, 2). 4 4 b) (11, 0, 8); (0, 5, 15); ( 165, 40, 0). 7 7 c) (3, 5). d) φ. e) ( 4, 20, 0, 0); (6, 0, 10, 0); ( 28, 0, 0, 20 ); (0, 12, 4, 0); (0, 14, 0, 2); (0, 0, 28, 12). 3 3 2. a) (9, 2, 5, 0, 0). b) (0, 1, 2, 3, 0). c) (0, 0, 2, 0, 6). d) (0, 1, 5, 0), řešení je degenerované. 2.2 Soustava lineárních nerovnic Úloha lineárního programování vede často právě k soustavě lineárních nerovnic (dále jen SLN). Tu se naučíme převádět na soustavu lineárních rovnic. Už známým způsobem potom k dané SLR najdeme SLR, která je v kanonickém tvaru a získáme tedy také výchozí základní řešení. 2.2.1 Definice. Je-li A matice soustavy, x T vektor neznámých a b T vektor absolutních členů, rozumíme soustavou m lineárních nerovnic o n neznámých soustavu A x T b T, tj. a i1 x 1 + a i2 x 2 + + a in x n b i, i = 1, 2,..., m. (2.4) Přitom symbol zastupuje některý ze symbolů,, případně ještě obecněji jeden ze symbolů, =,.
16 2 MATEMATICKÉ ZÁKLADY LP 2.2.2 Definice. Řešením soustavy lineárních nerovnic (2.4) rozumíme každou n- tici x = (x 1, x 2,..., x n ), pro niž je splněno všech m nerovnic dané soustavy. Nerovnice převádíme na rovnice pomocí tzv. doplňkových proměnných x i, i = 1, 2,..., m. Doplňková proměnná vyjadřuje absolutní hodnotu rozdílu levé a pravé strany (L i a P i ) příslušné nerovnice, tj. x i = L i P i, i = 1, 2,..., m. Z jejich významu je zřejmé, že musí splňovat podmínky nezápornosti Potom nerovnice (2.4) typu přejdou v rovnice x i 0, i = 1, 2,..., m. (2.5) a i1 x 1 + a i2 x 2 + + a in x n + x i = b i, i = 1, 2,..., m, (2.6) a nerovnice (2.4) typu přejdou v rovnice a i1 x 1 + a i2 x 2 + + a in x n x i = b i, i = 1, 2,..., m. (2.7) Dostaneme soustavu m lineárních rovnic o m + n neznámých s podmínkami nezápornosti (2.5). Každému řešení SLN (2.4) odpovídá určité řešení příslušné SLR (2.6) nebo (2.7), a naopak. Uvedené tvrzení je předmětem následující věty. 2.2.3 Věta. n-tice (x 1, x 2,..., x n ) je řešením soustavy lineárních nerovnic (2.4) právě tehdy, když (n + m)-tice (x 1, x 2,..., x n, x 1, x 2,..., x m) je řešením soustavy lineárních rovnic (2.6) nebo (2.7) (případně jejich kombinace), přičemž jsou splněny podmínky nezápornosti(2.5). 2.2.4 Příklad. Soustavu lineárních nerovnic 7x 1 + 5x 2 850, 2x 1 + 2x 2 300 převeďte pomocí doplňkových proměnných na SLR a úplnou eliminací nalezněte takové její základní řešení, že na pozici vedlejších proměnných budou doplňkové proměnné. Řešení. SLN převedeme na SLR, tj. zavedeme doplňkové proměnné x 1 0 a x 2 0. 7x 1 + 5x 2 + x 1 = 850, 2x 1 + 2x 2 + x 2 = 300. SLR je už v kanonickém tvaru (základní proměnné jsou x 1 a x 2), přikročíme k tabulce,
2.2 Soustava lineárních nerovnic 17 v níž postupně určíme požadované řešení, viz tab. 2.2. Z.p. x 1 x 2 x 1 x 2 b i x 1 7 5 1 0 850 x 2 2 (2) 0 1 300 x 1 (2) 0 1-5 2 100 1 x 2 1 1 0 150 2 1 x 1 1 0-5 50 2 4 x 2 0 1-1 7 100 2 4 x 1 = x 2 = 0 x (1) = (0, 0; 850, 300) x 1 = x 2 = 0 x (2) = (0, 150; 100, 0) x 1 = x 2 = 0 x (3) = (50, 100; 0, 0) Tab. 2.2 Řešení příkladu 2.2.4 V posledním kroku tabulky jsme získali požadované řešení, tj. x = (50, 100; 0, 0).
18 2 MATEMATICKÉ ZÁKLADY LP 2.2.5 Úkoly a problémy k modulu 2.2 1. SLN převeďte pomocí doplňkových proměnných na SLR a úplnou eliminací nalezněte takové její základní řešení, že na pozici vedlejších proměnných budou pouze doplňkové proměnné. a) 6x 1 + 2x 2 12, x 1 + 5x 2 16. b) 6x 1 + 2x 2 12, x 1 + 5x 2 16. c) 2x 1 + x 2 10, x 1 + 3x 2 9. d) x 1 x 2 3, x 1 + 2x 2 0. e) x 1 + 11x 2 + 4x 3 30, x 1 + 4x 2 + x 3 9, 3x 2 + x 3 11. f) x 1 + x 2 6, x 1 x 2 2, x 1 + 2x 2 6. Řešení. 1. a) (1, 3; 0, 0). b) (1, 3; 0, 0). c) (3, 4; 0, 0). d) (2, 1; 0, 0). e) ( 8, 6, 7; 0, 0, 0). f) (4, 2; 0, 0, 6), (2, 4; 0, 4, 0).
2.3 Shrnutí 2. kapitoly 19 2.3 Shrnutí 2. kapitoly Klíčová slova: Soustava lineárních rovnic, matice soustavy, rozšířená matice soustavy, řešitelnost a počet řešení SLR, úplná eliminace, soustava lineárních nerovnic, převod SLN na SLR, kanonický tvar SLR, základní a vedlejší proměnná, základní řešení, degenerované a nedegenerované řešení. Základní úlohy: Nalezení základního řešení pro zadanou množinu základních proměnných, či nalezení všech základních řešení dané soustavy lineárních rovnic. Převod soustavy lineárních nerovnic na soustavu lineárních rovnic zavedením doplňkových proměnných. Řešení soustav lineárních nerovnic. Doporučená literatura pro hlubší studium: [Kříž]: str. 5 21, [Moučka1]: str. 72 90. 2.4 Test ke kapitole 2 1. Nalezněte základní řešení soustavy lineárních rovnic 2x 1 + 18x 2 + x 3 + 4x 4 = 20, x 1 + x 2 + x 3 + x 4 = 10 s danou množinou M základních proměnných. V případě, že získané základní řešení je degenerované, pak to uveďte. a) M = {x 1, x 3 }. b) M = {x 3, x 4 }. 2. Soustavu lineárních nerovnic 2x 1 + 18x 2 + x 3 + 4x 4 20, x 1 + x 2 + x 3 + x 4 10 převeďte na soustavu lineárních rovnic. Nalezněte základní řešení příslušné soustavy lineárních rovnic s danou množinou M základních proměnných. V případě, že získané základní řešení je degenerované či nepřípustné, pak to uveďte.
20 2 MATEMATICKÉ ZÁKLADY LP a) M = {x 1, x 3 }. b) M = {x 3, x 4 }. c) M = {x 4, x 1}. 3. Soustavu lineárních podmínek x 1 + 2x 2 40, 3x 1 + x 2 50, x 1 + x 2 = 20 převeďte na soustavu lineárních rovnic. Nalezněte základní řešení příslušné soustavy lineárních rovnic s danou množinou M základních proměnných. V případě, že získané základní řešení je degenerované či nepřípustné, pak to uveďte. a) M = {x 1, x 1, x 2}. b) M = {x 2, x 1, x 2}. Řešení. 1. a) (10, 0, 0, 0), degenerované. b) (0, 0, 20 3, 10 3 ). 2. a) (10, 0, 0, 0; 0, 0), degenerované. b) (0, 0, 20, 10 ; 0, 0). 3 3 c) (0, 0, 0, 10; 20, 0). 3. a) (20, 0; 20, 10), nepřípustné. b) (0, 20; 0, 30), degenerované, přípustné.
21 3 FORMULACE ÚLOH LINEÁRNÍHO PROGRA- MOVÁNÍ V tomto odstavci se zaměříme na formulování úloh lineárního programování, budeme se zabývat sestavováním matematických modelů typických úloh, které se řeší metodami LP. Na konkrétních příkladech si ukážeme, co budeme rozumět úlohou výrobního plánování, co směšovací úlohou a co rozdělovací úlohou, ale také to, jak matematický model dané úlohy sestavit a co znamenají jednotlivé prvky tohoto modelu. Cílem kapitoly je: naučit se vytvářet matematický model úlohy výrobního plánování, naučit se vytvářet matematický model směšovací úlohy, naučit se vytvářet matematický model rozdělovací úlohy, pochopit podstatu (typické vlastnosti, společné znaky, atd.) těchto jednotlivých typů úloh. 3.1 Úloha výrobního plánování S úlohou tohoto typu jsme se již setkali v úvodní kapitole. Uveďme další příklad. 3.1.1 Příklad. Podnik vyrábí dva druhy výrobků V 1, V 2. Tabulka 3.1 udává spotřebu surovin S 1 a S 2 v kg potřebných na výrobu 1 ks výrobku. Zisk z jednoho výrobku V 1 je 18 Kč, zisk z jednoho výrobku V 2 je 8 Kč. Dále je v tabulce uvedeno množství surovin, jimiž podnik disponuje. Úkolem je stanovit optimální výrobní plán, aby podnik dosáhl maximálního možného zisku. Na tomto místě ovšem nebudeme úlohu řešit, ale vytvoříme matematický model úlohy. V 1 V 2 Disponibilní množství S 1 [kg/ks] 4 2 2 000 S 2 [kg/ks] 4 1 1 600 zisk [Kč/ks] 18 8 max Tab. 3.1 Ekonomický model úlohy z příkladu 3.1.1 Řešení. Máme-li vytvořit matematický model, musíme vyjádřit problém matematickými prostředky. Nejprve je třeba nadefinovat proměnné: x i značí počet výrobků V i, i = 1, 2.
22 3 FORMULACE ÚLOH LP Z významu proměnných je evidentní, proč musí být platit podmínky nezápornosti: x i 0, i = 1, 2. Vektor x = (x 1, x 2 ) budeme nazývat vektorem výroby. Tento vektor jednoznačně určuje výrobní plán podniku. Dále zformulujeme vlastní omezující podmínky. Výraz 4x 1 + 2x 2 vyjadřuje množství suroviny S 1 (v kg) potřebné na výrobu x 1 výrobků V 1 a x 2 výrobků V 2. Toto množství nemůže převýšit množství, které má podnik na dané období k dispozici. Tedy: 4x 1 + 2x 2 2 000. Stejným způsobem lze získat i omezující podmínku týkající se spotřeby suroviny S 2 : 4x 1 + x 2 1 600. Celkový zisk příslušející danému výrobnímu plánu je dán funkcí z = z(x 1, x 2 ) = 18x 1 + 8x 2. Podnik má dosáhnout maximálního zisku, tudíž účelová funkce je maximalizačního typu. Píšeme z = z(x 1, x 2 ) = 18x 1 + 8x 2 max. Hovoříme o maximalizační úloze. Získali jsme všechny prvky matematického modelu, zapíšeme ho souhrnně: z = 18x 1 + 8x 2 max, 4x 1 + 2x 2 2 000, 4x 1 + x 2 1 600, x 1 0, x 2 0. 3.1.2 Úkoly a problémy k modulu 3.1 1. Závod vyrábí dva druhy výrobků V 1 a V 2. Na jejich výrobu potřebuje surovinu S a stojové zařízení Z. Pro plánovací období má k dispozici 1 500 kg suroviny a 240 strojových hodin na zařízení. Na výrobu 1 ks výrobku V 1 je potřeba 10 kg suroviny S a 2 strojové hodiny na zařízení Z; na výrobu 1 ks výrobku V 2 je potřeba 8 kg suroviny S a 1 strojová hodina na zařízení Z. Zisk z jednoho výrobku V 1 je 308 Kč, zisk z jednoho výrobku V 2 je 214 Kč. Úkolem je stanovit optimální výrobní plán, aby podnik dosáhl maximálního možného zisku. Vytvořte matematický model úlohy.
3.2 Směšovací úloha 23 2. Podnik vyrábí výrobky A a B. Měsíčně má k dispozici 2 400 kg suroviny S a 3 200 hodin strojového času Z na zařízení a 1 200 hodin z časového fondu F pracovníků. Na výrobu 1 ks výrobku A je potřeba 6 kg S, 4 h Z a 2 h F. Na výrobu 1 ks výrobku B je potřeba 4 kg S, 8 h Z, 2 h F a 2 výrobky A. Výrobek A slouží jako polotovar (součástka) pro výrobek B. Zisk z jednoho výrobku A je 80 Kč, zisk z jednoho výrobku B je 200 Kč. Úkolem je stanovit optimální měsíční výrobní program s maximálním ziskem. Vytvořte matematický model úlohy. 3. Podnik vyrábí tři druhy výrobků V 1, V 2 a V 3 ze tří různých surovin S 1, S 2 a S 3, kterých má k dispozici po řadě 12, 21 a 12 tun. Na výrobu 1 ks výrobku V 1 je potřeba 1 kg suroviny S 1, 2 kg S 2 a 0,5 kg S 3 ; na výrobu 1 ks výrobku V 2 je potřeba 2 kg S 2 a 2 kg S 3 ; na výrobu 1 ks výrobku V 3 je potřeba 2 kg S 1 a 3 kg S 2. Zisk z jednoho výrobku V 1, resp. V 2, resp. V 3 je 10, resp. 15, resp. 18 Kč. Úkolem je stanovit optimální výrobní plán, aby podnik dosáhl maximálního možného zisku. Vytvořte matematický model úlohy. Řešení. 1. z = 308x 1 + 214x 2 max, 10x 1 + 8x 2 1 500, 2x 1 + x 2 240, x 1 0, x 2 0. 2. z = 80x 1 + 40x 2 max, 6x 1 + 4x 2 2 400, 4x 1 + 8x 2 3 200, 2x 1 + 2x 2 1 200, x 1 + 2x 2 0, x 1 0, x 2 0. 3. z = 10x 1 + 15x 2 + 18x 3 max, 3.2 Směšovací úloha x 1 + 2x 3 12 000, 2x 1 + 2x 2 + 3x 3 21 000, 0,5x 1 + 2x 2 12 000, x 1 0, x 2 0, x 3 0. Podstatu směšovací úlohy, která je také známa pod názvem nutriční úloha, budeme opět demonstrovat na příkladu.
24 3 FORMULACE ÚLOH LP 3.2.1 Příklad. Podnik má vytvořit krmnou směs, která by obsahovala alespoň 308 mg vápníku a alespoň 214 mg hořčíku. Používá přitom dvou typů krmiv. Jeden kilogram krmiva K 1 obsahuje 10 mg vápníku, 8 mg hořčíku a stojí 150 Kč. Jeden kilogram krmiva K 2 obsahuje 8 mg vápníku, 1 mg hořčíku a stojí 24 Kč. Úkolem je stanovit složení výsledné krmné směsi tak, aby náklady na její pořízení byly co nejmenší. Na tomto místě se omezíme na vytvoření matematického modelu. Řešení. Je výhodné všechny údaje přenést do přehledné tabulky: K 1 K 2 Minimální množství Ca [mg/kg] 10 8 308 M g [mg/kg] 8 1 214 náklady [Kč/kg] 150 24 max Tab. 3.2 Ekonomický model úlohy z příkladu 3.2.1 Vytvoříme matematický model této směšovací úlohy. Proměnné x i značí množství (v kg) krmiva K i ve výsledné směsi, i = 1, 2. Řešení je pak představováno vektorem x = (x 1, x 2 ), který budeme nazývat směšovacím vektorem. I zde musí být splněny podmínky nezápornosti, x i 0, i = 1, 2, neboť nelze použít záporné množství krmiva. Použije-li podnik x 1 kg krmiva K 1 a x 2 kg krmiva K 2, bude množství vápníku a hořčíku ve výsledné směsi: Ca : 10x 1 + 8x 2, Mg : 8x 1 + x 2. V souvislosti s minimálním požadovaným množstvím vápníku a hořčíku ve výsledné směsi, mají vlastní omezující podmínky tvar: Ca : 10x 1 + 8x 2 308, Mg : 8x 1 + x 2 214. Náklady z na pořízení směsi jsou dány účelovou funkcí Účelová funkce je minimalizačního typu. Celkově matematický model úlohy je: z = z(x 1, x 2 ) = 150x 1 + 24x 2. z = 150x 1 + 24x 2 min, 10x 1 + 8x 2 308, 8x 1 + x 2 214, x 1 0, x 2 0.
3.2 Směšovací úloha 25 3.2.2 Úkoly a problémy k modulu 3.2 1. Podnik má ze surovin S 1 a S 2 co nejlevněji vyrobit směs, která by obsahovala alespoň 160 g vitamínu A a alespoň 500 g vitamínu C. 1 kg suroviny S 1 obsahuje 1 g vitamínu A a 2 g vitamínu C a stojí 30 Kč; 1 kg suroviny S 2 obsahuje 1 g vitamínu A a 5 g vitamínu C a stojí 50 Kč. Úkolem je stanovit optimální směšovací vektor. Vytvořte matematický model úlohy. 2. Metalurgický závod má vyrobit nejméně 4 000 kg zinku Zn a nejméně 3 000 kg cínu Sn. K dispozici má tři druhy rud. 1 tuna rudy A obsahuje 10 kg Zn a 6 kg Sn a stojí 200 Kč; 1 tuna rudy B obsahuje 2 kg Zn a 6 kg Sn a stojí 150 Kč; 1 tuna rudy C obsahuje 12 kg Zn a 4 kg Sn a stojí 250 Kč. Úkolem je stanovit v jakém množství je třeba jednotlivé druhy rud použít, aby celková nákupní cena rud byla minimální. Vytvořte matematický model úlohy. 3. Úkolem je ze surovin S 1 a S 2 co nejlevněji vytvořit směs o celkové hmotnosti 6 kg tak, aby tato směs obsahovala alespoň 8 g hořčíku a alespoň 60 g vápníku, přičemž 1 kg suroviny S 1 obsahuje 1 g hořčíku, 12 g vápníku a jeho cena je 12 Kč; 1 kg suroviny S 2 obsahuje 1,5 g hořčíku, 10 g vápníku a jeho cena je 20 Kč. Vytvořte matematický model úlohy. Řešení. 1. z = 30x 1 + 50x 2 min, x 1 + x 2 160, 2x 1 + 5x 2 500, x 1 0, x 2 0. 2. z = 200x 1 + 150x 2 + 250x 3 min, 10x 1 + 2x 2 + 12x 3 4 000, 6x 1 + 6x 2 + 4x 3 3 000, x 1 0, x 2 0, x 3 0. 3. z = 12x 1 + 20x 2 min, x 1 + x 2 = 6, x 1 + 1,5x 2 8, 12x 1 + 10x 2 60, x 1 0, x 2 0.
26 3 FORMULACE ÚLOH LP 3.3 Rozdělovací úloha I tento typ úlohy a tvorbu matematického modelu si ukážeme na příkladu. 3.3.1 Příklad. Uvažujme, že máme k dispozici dostatečné množství základních lan o délce 32 m. K dalšímu použití potřebujeme alespoň 12 ks 20m lan, alespoň 20 ks 11m lan a alespoň 26 ks 6m lan. Úkolem je stanovit tzv. optimální skladbu řezných plánů vzhledem k minimálnímu odpadu. Sestavíme matematický model úlohy. Řešení. Nejprve musíme jednotlivé řezné plány (tj. způsoby, jimiž lze rozřezat základní lana délky 32 m na kusy délky 20 m, 11 m a 6 m ) stanovit a určit kolik základních lan každým z těchto způsobů rozřežeme. Sestavíme tabulku řezných plánů, viz tab. 3.3. 32 m Řezný plán Požadované I. II. III. IV. V. množství 20 m 1 1 0 0 0 12 11 m 1 0 2 1 0 20 6 m 0 2 1 3 5 26 odpad [m] 1 0 4 3 2 min Tab. 3.3 Tabulka řezných plánů z příkladu 3.3.1 Řezný plán I. znamená, že ze základního lana délky 32 m nařežeme 1 ks 20 m dlouhého lana, 1 ks 11 m dlouhého lana a zbude odpad délky 1 m. Význam ostatních řezných plánů můžeme interpretovat analogicky. Vytvoříme matematický model této rozdělovací úlohy. Proměnné x i značí počet základních 32 m dlouhých lan rozřezaných podle i-tého řezného plánu, i = 1, 2,..., 5. Řešení je pak představováno vektorem x = (x 1, x 2, x 3, x 4, x 5 ), který budeme nazývat rozdělovací vektor. I zde musí být splněny podmínky nezápornosti, x i 0, i = 1, 2,..., 5, neboť žádným ze způsobů nelze rozřezat záporné množství lan. Rozřežeme-li x 1 lan podle řezného plánu I.,..., x 5 lan podle řezného plánu V., nařežeme x 1 + x 2 ks 20 m dlouhých lan, x 1 + 2x 3 + x 4 ks 11 m dlouhých lan, 2x 2 + x 3 + 3x 4 + 5x 5 ks 6 m dlouhých lan, a zbude odpad s celkovou délkou (v metrech) z = x 1 + 4x 3 + 3x 4 + 2x 5.
3.3 Rozdělovací úloha 27 Celkově matematický model úlohy je: z = x 1 + 4x 3 + 3x 4 + 2x 5 min, x 1 + x 2 12, x 1 + 2x 3 + x 4 20, 2x 2 + x 3 + 3x 4 + 5x 5 26, x i 0, i = 1, 2,..., 5. 3.3.2 Příklad. Modifikujme předchozí příklad následovně. Všechny předpoklady i požadavky zůstávají stejné, pouze změníme kritérium optimality. Nechť je nyní cílem určit optimální skladbu řezných plánů z hlediska minimálního počtu rozřezaných lan o základní délce 32 m. Sestavíme matematický model úlohy LP. Řešení. Matematický model se od předchozího bude lišit jen tvarem účelové funkce: z = x 1 + x 2 + x 3 + x 4 + x 5 min. 3.3.3 Úkoly a problémy k modulu 3.3 1. Podnik řeže ze základních tyčí délky 80 cm tyče délek 50 cm, 40 cm a 25 cm. Jejich minimální požadovaná množství jsou po řadě 50 ks, 80 ks a 95 ks. Úkolem je stanovit optimální skladbu řezných plánů z hlediska minimalizace odpadu. Vytvořte matematický model úlohy. 2. Podnik má dostatečnou zásobu základních lan délky 52 m. Je potřeba z nich nařezat alespoň 60 kusů lan délky 18 m a alespoň 100 kusů lan délky 11 m. Úkolem je stanovit optimální skladbu řezných plánů z hlediska minimalizace odpadu. Vytvořte matematický model úlohy. 3. K dispozici jsou tyče základní délky 1,5 m. Je potřeba z nich nařezat alespoň 120 ks délky 90 cm, alespoň 80 ks délky 60 cm a alespoň 110 ks délky 45 cm. Úkolem je stanovit optimální skladbu řezných plánů z hlediska minimalizace odpadu. Vytvořte matematický model úlohy.
28 3 FORMULACE ÚLOH LP Řešení. 1. z = 5x 1 + 15x 3 + 5x 4 min, x 1 50, 2x 2 + x 3 80, x 1 + x 3 + 3x 4 95, x 1 0, x 2 0, x 3 0, x 4 0. 2. z = 5x 1 + x 2 + 8x 3 min, 2x 1 + x 2 60, x 1 + 3x 2 + 4x 3 100, x 1 0, x 2 0, x 3 0. 3. z = 15x 2 + 30x 3 + 15x 5 min, x 1 + x 2 120, x 1 + 2x 3 + x 4 80, x 2 + 2x 4 + 3x 5 110, x 1 0, x 2 0, x 3 0, x 4 0, x 5 0. 3.4 Obecná úloha lineárního programování Jak již bylo uvedeno, soustavu lineárních nerovnic lze pomocí doplňkových proměnných převést na soustavu lineárních rovnic. Obecně jde o to, nalézt řešení soustavy lineárních rovnic, splňující podmínky nezápornosti, takové, aby lineární účelová funkce nabyla svého maxima, resp. minima (podle typu úlohy). Úlohu LP lze obecně matematicky vyjádřit následovně: Hledáme řešení soustavy m rovnic o n neznámých (m < n) a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1, a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2,....... a m1 x 1 + a m2 x 2 +... + a mn x n = b m, takové, aby byly splněny podmínky nezápornosti, tj. a aby účelová funkce x i 0, i = 1, 2,..., n, z = c 1 x 1 + c 2 x 2 + + c n x n nabyla maxima, resp. minima. Příslušná SLR má nekonečně mnoho řešení (viz Věta 2.1.4 Frobeniova, m < n). Smysl mají pouze přípustná řešení (tj. řešení, splňující navíc i podmínky nezápornosti).
3.4 Obecná úloha LP 29 Přípustné řešení, pro něž účelová funkce nabývá maximum (resp. minimum) se nazývá optimální řešení. 3.4.1 Věta. (Základní věta LP) Úloha LP má optimální řešení úloha LP má základní optimální řešení. 3.4.1 Důsledek. Při hledání optimálního řešení se můžeme omezit jen na základní řešení, kterých je konečně mnoho. Smysl mají jen základní přípustná řešení (tj. základní řešení splňující navíc i podmínky nezápornosti).
30 3 FORMULACE ÚLOH LP 3.5 Shrnutí 3. kapitoly Klíčová slova: Formulace úloh LP, ekonomický model úlohy, matematický model úlohy, proměnná, vlastní omezující podmínky, podmínky nezápornosti, účelová funkce, úloha výrobního plánování, směšovací úloha, rozdělovací úloha, obecná úloha LP. Základní úlohy: Najít matematický model úlohy LP zadané slovně. Pochopit princip úloh výrobního plánování, směšovacích úloh, rozdělovacích úloh a poznat společné prvky a rozdílné prvky těchto typů úloh LP. Doporučená literatura pro hlubší studium: [Holoubek]: str. 11 18, [Jablonský]: str. 25 40, [Kříž]: str. 22 26, [Mošová]: str. 5 12. 3.6 Test ke kapitole 3 1. K dispozici jsou cívky s elektrickým kabelem délky 108 m. Pro další použití z nich podnik potřebuje nařezat alespoň 30 ks kabelů délky 50 m, alespoň 60 ks délky 40 m a alespoň 150 ks délky 30 m. Sestavte matematický model rozdělovacího problému, v němž cílem bude: a) minimalizace odpadu. b) minimalizace počtu rozřezaných cívek. Řešení. 1. a) z = 8x 1 + 18x 2 + 28x 3 + 28x 4 + 8x 5 + 18x 6 min, 2x 1 + x 2 + x 3 30, x 2 + 2x 4 + x 5 60, x 3 + 2x 5 + 3x 6 150, x 1 0, x 2 0, x 3 0, x 4 0, x 5 0, x 6 0. b) z = x 1 + x 2 + x 3 + x 4 + x 5 + x 6 min, 2x 1 + x 2 + x 3 30, x 2 + 2x 4 + x 5 60, x 3 + 2x 5 + 3x 6 150, x 1 0, x 2 0, x 3 0, x 4 0, x 5 0, x 6 0.
31 4 GRAFICKÁ METODA Cílem kapitoly je: naučit se řešit úlohy LP grafickou metodou. 4.1 Grafická metoda řešení úloh lineárního programování Úlohy LP, v níž vystupují jen dvě proměnné lze řešit graficky. Přitom každý bod v rovině souřadnice x 1, x 2 představuje právě jedno řešení. 4.1.1 Poznámka. V principu lze grafickou metodu použít i v případě tří proměnných (každé řešení je pak představováno nějakým bodem prostoru). Už si tedy nevystačíme papírem, tužkou a pravítkem, museli bychom modelovat trojrozměrně, což zpravidla činí praktické potíže. Grafické řešení úlohy lineárního programování (se dvěmi proměnnými x 1, x 2 ) se odehrává v kartézské souřadnicové soustavě (dimenze dvě), kde jednotlivé souřadnice představují právě hodnoty jednotlivých proměnných. Osy jsou proto označené jmény proměnných, v našem případě x 1, x 2. Nejprve je potřeba znázornit množinu všech přípustných řešení X P. Tato množina je průnikem množiny řešení jednotlivých omezujících podmínek (vlastní omezující podmínky a podmínky nezápornosti). Přitom množinou řešení vyhovující lineární nerovnici je polorovina a množinou řešení vyhovující lineární rovnici je přímka. Průnikem těchto množin je buď ohraničená množina v tom případě je to konvexní k-úhelník, k m+n, kde m je počet vlastních omezujících podmínek, n je počet proměnných, nebo neohraničená konvexní množina, mající k hran a k 1 vrcholů. Budeme uvažovat maximalizační úlohu. Potom hledáme takové přípustné řešení (x 1, x 2 ) X P, aby hodnota účelové funkce z = z(x 1, x 2 ) = c 1 x 1 + c 2 x 2 byla maximální možná. Představme si množinu všech přímek typu c 1 x 1 + c 2 x 2 = s, s R. Jedná se o rovnoběžky, všechny s normálovým vektorem n = (c 1, c 2 ). Body (x 1, x 2 ) na každé takové přímce mají stejnou hodnotu účelové funkce z = c 1 x 1 + c 2 x 2 = s. Stačí vzít přímku kolmou na normálový vektor n a rovnoběžně ji ve směru vektoru n posunout do místa posledního průniku s množinou přípustných řešení X P. Tento poslední průnik odpovídá množině všech optimálních řešení X opt. Je zřejmé, že tato množina může být prázdná, jednoprvková nebo obsahovat nekonečně mnoho prvků.
32 4 GRAFICKÁ METODA 4.1.2 Poznámka. Případ, kdy množina X opt obsahuje nekonečně mnoho prvků nastává ve dvou kvalitativně odlišných případech: 1. posledním průnikem je úsečka. Krajní body úsečky potom odpovídají dvěma základním optimálním řešením úlohy. 2. posledním průnikem je polopřímka. Krajní bod polopřímky potom odpovídá jedinému základnímu optimálnímu řešení úlohy. 4.1.3 Poznámka. Hodnota účelové funkce z = z(x 1, x 2 ) = c 1 x 1 +c 2 x 2 roste ve směru normálového vektoru n = (c 1, c 2 ). V případě minimalizační úlohy proto poslední průnik kolmice na vektor n a množiny X P hledáme co nejdále proti směru vektoru n. 4.1.4 Poznámka. Grafická metoda využívá přímých výpočtů, např. souřadnice bodu (tj. hodnoty proměnných v daném řešení) se určí řešením soustavy dvou rovnic (rovnice přímek protínajících se v daném bodě) o dvou neznámých. 4.1.5 Příklad. Grafickou metodou řešte úlohu LP zadanou matematickým modelem: 7x 1 + 5x 2 850, 2x 1 + 2x 2 300, z = 7x 1 + 6x 2 max, x 1 0, x 2 0. Řešení. Nejprve nalezneme množinu X P všech přípustných řešení. Řešení vyhovující omezující podmínce 7x 1 + 5x 2 850 vyplní v grafu polorovinu s hraniční přímkou 7x 1 +5x 2 = 850. Tato přímka musí procházet např. body [0, 170] a [ 850, 0] (dvěma body 7 je přímka určena jednoznačně). Jelikož každá přímka rozděluje rovinu na dvě opačné poloroviny, musíme rozhodnout, která z nich odpovídá nerovnici 7x 1 + 5x 2 850. K tomu stačí vzít libovolný bod, který neleží na dané přímce (a tedy 7x 1 +5x 2 850) a zjistit, zda pro něj je nerovnice splněna. Pokud ano, daný bod leží v hledané polorovině; pokud ne, hledanou polorovinou je polorovina opačná. S výhodou použijeme počátek, tj. bod O = [0, 0]. Omezující podmínka 7x 1 + 5x 2 850 je splněna (0 850). Počátek tedy leží v hledané polorovině (1). Tuto polorovinu vyznačíme v grafu jejím označením a šipkou vycházející z hraniční přímky dané poloroviny. Stejným postupem najdeme i polorovinu (2) všech řešení splňujících podmínku druhou, tj. 2x 1 + 2x 2 300. Podobně najdeme i poloroviny (3) a (4) odpovídající podmínkám nezápornosti. Řešení je přípustné právě tehdy, když splňuje všechny vlastní omezující podmínky a podmínky nezápornosti. Proto množinu X P všech přípustných řešení získáme průnikem těchto čtyř polorovin. Množina X P je čtyřúhelník OABC, kde O = [0, 0], A = [ 850, 0], 7 B = [50, 100] a C = [0, 150]. Na obr. 4.1 je množina X P vyznačena šedou barvou. Přitom např. souřadnice bodu B jsme získali řešením soustavy rovnic 7x 1 + 5x 2 = 850, 2x 1 + 2x 2 = 300
4.1 Grafická metoda řešení úloh LP 33 (bod B leží současně na hraničních přímkách polorovin (1) a (2)). Obr. 4.1 Řešení úlohy 4.1.5 grafickou metodou Potřebujeme najít optimální řešení, tj. takové přípustné řešení, které maximalizuje hodnotu účelové funkce. Z toho důvodu vyznačíme normálový vektor n = (7, 6), jež přísluší dané účelové funkci (vzhledem k vyšší přehlednosti je v obr. 4.1 vyznačen jeho desetinásobek). Najdeme kolmici na vektor n, která je co nejdále ve směru vektoru n a přitom má neprázdný průnik s množinou X P. Tuto přímku vyznačíme v grafu je označena symbolem z max. Vyznačíme také poslední průnik (tj. průnik přímky z max s množinou X P ). Je to bod B. Množina všech optimálních řešení je tedy jednoprvková, píšeme Maximální hodnota účelové funkce je X opt = B = [50, 100]. z max = z(b) = 7 50 + 6 100 = 950.
34 4 GRAFICKÁ METODA 4.1.6 Příklad. Grafickou metodou řešte úlohu LP zadanou matematickým modelem: 7x 1 + 5x 2 850, 2x 1 + 2x 2 300, z = 2x 1 + 7x 2 max, x 1 0, x 2 0. Řešení. Vzhledem k tomu, že omezující podmínky i podmínky nezápornosti jsou stejné jako v příkladu 4.1.5, je stejná i množina X P všech přípustných řešení úlohy. Obr. 4.2 Řešení úlohy 4.1.6 grafickou metodou Rozdílná je účelová funkce. Zkonstruujeme normálový vektor n = (2, 7) příslušný dané účelové funkci, viz obr. 4.2. I zde najdeme kolmici na vektor n, která má poslední (ve směru vektoru n) neprázdný průnik s množinou X P. Dostaneme tak: X opt = C = [0, 150], z max = z(c) = 2 0 + 7 150 = 1 050.
4.1 Grafická metoda řešení úloh LP 35 4.1.7 Poznámka. Na předchozích dvou příkladech je názorně vidět, že účelová funkce má podstatný vliv na optimální řešení.
36 4 GRAFICKÁ METODA 4.2 Shrnutí 4. kapitoly Klíčová slova: Grafická metoda, přímka a polorovina v rovině, průnik konvexních množin v rovině, množina všech přípustných řešení X P, normálový vektor n, množina všech optimálních řešení X opt. Základní úlohy: Najít všechna optimální řešení úlohy LP grafickou metodou. Doporučená literatura pro hlubší studium: [Holoubek]: str. 19 26, [Jablonský]: str. 40 50, [Kříž]: str. 27 35, [Mošová]: str. 13 23. 4.3 Test ke kapitole 4 1. Grafickou metodou vyřešte úlohu 1. z úkolů 3.1.2 na straně 22. 2. Grafickou metodou vyřešte úlohu 2. z úkolů 3.1.2 na straně 22. 3. Grafickou metodou vyřešte úlohu 1. z úkolů 3.2.2 na straně 25. 4. Grafickou metodou vyřešte úlohu 3. z úkolů 3.2.2 na straně 25. Řešení. 1. X opt = [70, 100], z max = 42 960 Kč. 2. X opt = [400, 0], z max = 32 000 Kč. 3. X opt = [100, 60], z min = 6 000 Kč. 4. X opt = [2, 4], z min = 104 Kč.
37 5 SIMPLEXOVÁ METODA Cílem studia kapitoly je: seznámit se s postupem nalezení výchozího základního přípustného řešení úlohy LP, zavést simplexovou tabulku a naučit se v ní orientovat, umět rozhodnout, zda dané řešení je či není optimální, umět najít lepší základní řešení v případě, že dané řešení není optimální, naučit se řešit úlohy LP simplexovou metodou. Simplexová metoda je výpočetní postup pro určení optimálního řešení úloh lineárního programování. Algoritmus simplexové metody je schematicky znázorněn na obr. 5.1. Obr. 5.1 Schéma algoritmu simplexové metody Při řešení úlohy LP vždy nejprve získáme výchozí základní přípustné řešení. K tomu je potřeba mít omezující podmínky úlohy ve tvaru soustavy lineárních rovnic v kanonickém tvaru. Jelikož omezující podmínky v úloze LP bývají zpravidla ve tvaru nerovnic, je prvním krokem převod této soustavy lineárních nerovnic (SLN) na soustavu lineárních rovnic (SLR). Pokud tato soustava není v kanonickém tvaru, tak ji na kanonický tvar převedeme. Obdržením SLR v kanonickém tvaru jsme vlastně současně získali výchozí základní přípustné řešení příslušné úlohy. Testem optima lze zjistit, zda dané základní řešení je či není optimální. V případě, že výchozí základní přípustné řešení je
38 5 SIMPLEXOVÁ METODA optimální, našli jsme optimální řešení a algoritmus končí. V opačném případě nalezneme lepší základní přípustné řešení úlohy, tj. řešení s vyšší hodnotou účelové funkce u maximalizační úlohy, resp. řešení s nižší hodnotou účelové funkce u minimalizační úlohy. Na toto lepší řešení opět aplikujeme test optima, atd. Protože základních řešení je konečný počet, viz 2.1.16 Poznámka, po konečném počtu kroků dospějeme k optimálnímu řešení. Podrobněji se jednotlivým částem simplexového algoritmu věnují příslušné moduly této kapitoly. 5.1 Nalezení výchozího řešení Nejprve je potřeba nalézt výchozí základní přípustné řešení. Tzn., že omezující podmínky se vyjádří ve formě soustavy lineárních rovnic v kanonickém tvaru s nezápornou pravou stranou všech rovnic, tj. b i 0, i = 1, 2,..., n. Jak toho dosáhnout, s ohledem na konkrétní tvar omezujících podmínek, je obsahem následující diskuse: 1. Je-li některé b i < 0, i = 1, 2,..., n, pak danou rovnici či nerovnici násobíme číslem ( 1). Získáme tak u všech omezujících podmínek nezáporné pravé strany, tj. b i 0, i = 1, 2,..., n. 2.a) Jestliže omezující podmínky jsou ve tvaru Ax b, b i 0, i = 1, 2,..., m, pak soustavu lineárních nerovnic převedeme pomocí doplňkových proměnných x i 0, i = 1, 2,..., n na soustavu lineárních rovnic, která již je v kanonickém tvaru. Získáme a 11 x 1 + a 12 x 2 +... + a 1n x n + x 1 = b 1, a 21 x 1 + a 22 x 2 +... + a 2n x n + x 2 = b 2,.......... a m1 x 1 + a m2 x 2 +... + a mn x n + x m = b m. Odtud dostáváme výchozí základní řešení ve tvaru x = (x 1, x 2,..., x n ; x 1, x 2,..., x m) = (0, 0,..., 0; b 1, b 2,..., b m ). Toto řešení je přípustné, neboť b i nezápornosti). 0, i = 1, 2,..., m (vyhovuje podmínkám 2.b) Jestliže alespoň jedna omezující podmínka je ve tvaru a i1 x 1 + a i2 x 2 + + a in x n b i, b i 0, pak soustavu lineárních nerovnic převedeme na soustavu lineárních rovnic, která však není v kanonickém tvaru, např.: x 1 2x 2 5, x 1 2x 2 x 1 = 5, 2x 1 + 3x 2 2, 2x 1 + 3x 2 x 2 = 2, x 1 0, x 2 0; x 1 0, x 2 0, x 1 0, x 2 0.