Mendelova univerzita v Brně Provozně ekonomická fakulta. programování. Vedoucí práce: Barbora Helešicová

Rozměr: px
Začít zobrazení ze stránky:

Download "Mendelova univerzita v Brně Provozně ekonomická fakulta. programování. Vedoucí práce: Barbora Helešicová"

Transkript

1 Mendelova univerzita v Brně Provozně ekonomická fakulta Podpora řešení úloh lineárního programování Bakalářská práce Vedoucí práce: doc. Ing. Jiří Rybička, Dr. Barbora Helešicová Brno 2010

2 Na tomto místě bych chtěla poděkovat doc. Ing. Jiřímu Rybičkovi, Dr., za vedení bakalářské práce a cenné rady při její tvorbě. Dále děkuji Ondřeji Helešicovi a rodičům za jejich psychickou podporu.

3 Prohlašuji, že jsem tuto bakalářskou práci vypracovala samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne

4 4 Abstract Helešicová, B. A promotion of solving linear programming problems. Bachelor thesis. Brno, The thesis deals with a creation of an user interface design for entering data necessary to solve typical linear programming problems without any knowledge in formulating them. Furthermore, it deals with designing a unit which enables solving the problem by a specialized software Lingo. The thesis includes theoretical information regarding the most common types of problems and their solving methods. Key words optimization problem, linear programming, simplex method, model formulation Abstrakt Helešicová, B. Podpora řešení úloh lineárního programování. Bakalářská práce. Brno, Práce se zabývá tvorbou návrhu vhodného uživatelského rozhraní pro zadávání hodnot potřebných k řešení typických úloh lineárního programování bez znalosti formulace modelu úlohy. Dále se zabývá navržením modulu, který umožní vyřešení úlohy prostřednictvím specializovaného programu Lingo. Součástí práce jsou teoretické informace o hlavních typech těchto úloh a základních metodách jejich řešení. Klíčová slova optimalizační úloha, lineární programování, simplexová metoda, formulace modelu

5 OBSAH 5 Obsah 1 Úvod a cíl práce Úvod do problematiky Cíl práce Úloha lineárního programování Obecný tvar úlohy Standardní tvar úlohy Platné definice a věty Kanonický tvar úlohy Simplexová metoda Základní princip simplexové metody Typické úlohy lineárního programování Kapacitní problém Problém optimálního rozmístění finančních prostředků Výživový (nutriční, směšovací) problém Řezný, krájecí problém Distribuční problém Další metody řešení úloh lineárního programování 17 6 Současný stav 18 7 Tvorba aplikace Návrh uživatelského rozhraní Modul kapacitní problém Modul problém optimálního rozmístění finančních prostředků Modul výživový problém Modul řezný problém Modul distribuční problém Software pro řešení modelu Formulace modelu v Lingu Výsledek úlohy Diskuse Závěr Literatura 33

6 1 ÚVOD A CÍL PRÁCE 6 1 Úvod a cíl práce 1.1 Úvod do problematiky Operační výzkum je soubor samostatných vědních disciplín, zabývá se analýzou a následným řešením věcně různorodých problémů. Operační výzkum lze chápat také jako soubor metod a nástrojů, které rozhodují o tom, jak co nejlépe řešit složité operace ve velkých a složitých systémech. Nejpropracovanější a v praxi nejpoužívanější součástí operačního výzkumu je lineární programování. Typické úlohy spadající do lineárního programování obvykle umožňují vyhledání optimálního řešení daného problému. Těchto typických úloh je celá řada, jedná se o kapacitní problém, řezný problém, problém optimálního rozmístění finančních prostředků, směšovací problém a distribuční problém. Výhodou je, že při řešení všech těchto úloh je možné použít jedinou metodu. Řešení těchto problémů vyžaduje znalost simplexové nebo jiné metody. Simplexová metoda není náročná, ale v praxi je jistě vhodnější použití některého z mnoha programů k řešení těchto úloh. Pro použití těchto programů je nutné samostatně vytvořit model problému. Teprve ten je možné nechat programem vyřešit. Proto programy pro řešení optimalizačních úloh nemůže uživatel používat bez znalosti převodu úlohy ze slovního zadání do podoby soustavy nerovnic. 1.2 Cíl práce Cílem této práce je vytvoření návrhu uživatelského rozhraní pro typické úlohy lineárního programování, které umožní zadání úlohy bez znalosti formulace modelu v podobě soustavy nerovnic. Uživateli by tedy mělo být umožněno zadávat tyto úlohy přímo ze slovního zadání. Dále je cílem navržení modulu, který tvoří nadstavbu programu pro řešení těchto úloh. Aplikace by měla nabízet pět základních typů úloh lineárního programování kapacitní problém, problém optimálního rozmístění finančních prostředků, výživový problém, řezný problém a distribuční problém. Všechny tyto úlohy budou uživateli nabízeny v základním tvaru s možností různých modifikací. Uživatel bude postupně naveden k vyplnění podstatných hodnot ze slovního zadání. Aplikace následně vytvoří soustavu nerovnic, kterou je možné předat vhodnému programu k řešení. Výběr vhodného programu bude také součástí této práce. Získané výsledky budou uživateli prezentovány ve srozumitelné a přehledné podobě. Součástí aplikace by měl být i užitečný návod, který uživateli ulehčí práci a předejde možným chybám v zadání. Součástí práce musí být i analýza metod k řešení optimalizačních úloh a vymezení typických úloh, které bude aplikace nabízet.

7 2 ÚLOHA LINEÁRNÍHO PROGRAMOVÁNÍ 7 2 Úloha lineárního programování 2.1 Obecný tvar úlohy Cílem optimalizačních úloh je zpravidla optimalizace reálného problému. Speciálním případem optimalizační úlohy je úloha lineárního programování. Chceme-li nějaký existující problém řešit jako úlohu lineárního programování, musíme sestavit lineární deterministický statický matematický model problému. Ze slovního zadání musíme stanovit proměnné, a to jak z hlediska jejich věcného významu, tak i počtu, co v daném problému představuje různá omezení, která je při úvahách o řešení nezbytné respektovat, co je považováno za kritérium, podle něhož jsou jednotlivá řešení porovnávána. (Holoubek, 2006) Obecný tvar úlohy má tuto podobu: z extr = c 1 x 1 + c 2 x c n x n (1) a 11 x 1 + a 12 x a 1n x n b 1 a 21 x 1 + a 22 x a 2n x n b 2. a m1 x 1 + a m2 x a mn x n b m (2) kde vztah 1 je účelová (kriteriální) funkce, vztah 2 je soustava vlastních omezujících podmínek, vztah 3 jsou podmínky nezápornosti. Maticová forma zápisu:.. x 1, x 2,..., x n 0 (3) z extr = T c x A x b x 0 kde použité symboly mají následující význam: T c je transponovaný n-složkový vektor koeficientů účelové funkce, x je n-složkový sloupcový vektor strukturních proměnných, A je matice strukturních koeficientů o rozměru m n, b je sloupcový m-složkový vektor hodnot pravých stran vlastních omezujících podmínek, 0 je sloupcový n-složkový nulový vektor. (Holoubek, 2006)

8 2.2 Standardní tvar úlohy 8 Cílem této úlohy je stanovit hodnoty proměnných x 1... x n tak, aby hodnota účelové funkce dosahovala extrému. Hledáme-li co nejvyšší hodnotu účelové funkce, pak se úloha nazývá maximalizační. Hledáme-li nejnižší hodnotu účelové funkce, pak se úloha nazývá minimalizační. 2.2 Standardní tvar úlohy Libovolnou úlohu lineárního programování v obecném tvaru lze převést na tvar standardní. Tento tvar se vyznačuje tím, že obsahuje vlastní omezující podmínky stejného typu rovnice. Převedení do tohoto tvaru provedeme pomocí doplňkových (přídatných) proměnných. Tyto proměnné slouží k vyrovnání levých stran vlastních omezujících podmínek s pravými stranami. Doplňkovou proměnnou buď přičítáme, nebo odečítáme od levé strany podmínky, aby se pravá a levá strana vyrovnaly. Má-li omezující podmínka v obecném tvaru tvar rovnice, pak zůstává ve standardním tvaru nezměněna. Pro doplňkové proměnné platí také podmínky nezápornosti. V účelové funkci se tyto proměnné objevují s nulovým koeficientem, takže hodnotu kritéria nijak neovlivňují. Maticový zápis úlohy ve standardním tvaru: z extr = T c x A x = b x Platné definice a věty Pro úlohu lineárního programování v obecném i standardním tvaru platí následující definice. Definice 1 přípustným řešením úlohy lineárního programování je každý takový vektor řešení x= (x 1, x 2,..., x n ), který vyhovuje všem omezujícím podmínkám. V typickém případě existuje takových přípustných řešení nekonečné množství. (Holoubek, 2006) Definice 2 bázickým řešením úlohy nazveme takové přípustné řešení, kterému odpovídá vektor x= (x 1, x 2,..., x n ), obsahující maximálně m kladných složek. Platí, že má-li úloha přípustné řešení, pak má i řešení bázické. Úloha má vždy konečný počet bázických řešení. (Holoubek, 2006) Definice 3 Bázické řešení úlohy nazýváme nedegenerované, jestliže obsahuje přesně m kladných složek. Jestliže je počet kladných složek menší než m, pak toto řešení nazýváme degenerované. (Rašovský a Šišláková, 2003) Definice 4 Přípustné řešení úlohy nazýváme optimálním, jestliže při něm účelová funkce dosahuje maximální (minimální) hodnotu. (Rašovský a Šišláková, 2003)

9 2.4 Kanonický tvar úlohy 9 Základní věta lineárního programování má-li úloha optimální řešení, potom musí mít i bázické řešení. Z této věty je možné vyvodit, že při hledání optimálního řešení úlohy je možné se zaměřit jen na bázická řešení. (Holoubek, 2006) 2.4 Kanonický tvar úlohy Kanonický tvar úlohy lze vytvořit k libovolné úloze lineárního programování ze standardního tvaru. Získáme jej použitím Gaussovy eliminační metody a elementárních úprav vlastních omezujících podmínek. Gaussova eliminační metoda představuje řešení soustavy lineárních rovnic vyjádřených jako matice převedením dané matice na horní trojúhelníkovou nebo diagonální matici. Tyto úpravy vytvoří na levé straně soustavy čtvercovou jednotkovou submatici (bázi). Její rozměr je shodný s počtem vlastních omezujících podmínek modelu. Proměnné, které v tomto tvaru tvoří jednotkovou submatici, jsou označovány jako bázické. Zbývající proměnné jsou nebázické. Kanonický tvar úlohy obsahuje jedno bázické řešení, které označujeme jako výchozí bázické řešení. Velikosti bázických proměnných jsou rovny hodnotám pravých stran omezujících podmínek, nebázické proměnné jsou rovny nule. Kanonický tvar úlohy lze vytvořit dvěma způsoby: 1. Kanonický tvar je shodný se standardním tvarem. 2. Standardní tvar upravíme za pomoci umělých proměnných. Tyto přičítáme k levé straně pouze těch vlastních omezujících podmínek, které v obecném tvaru měly podobu rovnice nebo nerovnice s relací. Umělé proměnné se stávají bázickými a jsou součástí výchozího bázického řešení. Umělé proměnné musí splňovat podmínky nezápornosti, v účelové funkci se objevují s velmi nevýhodným (prohibitivním) koeficientem M, který zajistí, že jsou v průběhu hledání optimálního řešení z báze odstraněny. (Holoubek, 2006) Kanonický tvar úlohy má tuto podobu: z extr = c 1 x 1 + c 2 x c n x n a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2 a m1 x 1 + a m2 x a mn x n = b m x 1, x 2,..., x n 0....

10 3 SIMPLEXOVÁ METODA 10 3 Simplexová metoda Simplexová metoda umožňuje řešit všechny problémy spadající do lineárního programování bez ohledu na jejich rozsah a složitost. Je nejznámější a nejpoužívanější metodou. Komerční programy pro řešení úloh lineárního programování jsou většinou založeny na primární či duální simplexové metodě. Simplexová metoda je metodou iterační, je založena na Gaussově metodě úplné eliminace. Jejími nejdůležitějšími vlastnostmi jsou: Konečnost. Prakticky to znamená, že pokud existuje optimální řešení, nalezneme je za konečný počet kroků výpočtu, nebo zjistíme, že optimální řešení neexistuje. (Berka, 2008) Jednoduchost algoritmu. Všechny výpočty v simplexové metodě provádíme srovnáváním nebo výpočtem podle jednoduchých vzorců, které obsahují pouze algebraické operace sčítání, násobení, dělení a odčítání. (Berka, 2008) 3.1 Základní princip simplexové metody Simplexová metoda je založena na Gaussově metodě úplné eliminace, která dovoluje získat bázické řešení a postupovat od jednoho bázického řešení k jiným. Simplexová metoda zajišťuje, aby všechna získaná řešení byla přípustná a aby se při přechodu od jednoho bázického řešení ke druhému zlepšovala hodnota účelové funkce. (Rašovský a Šišláková, 2003) Simplexová metoda řeší úlohy v několika krocích: 1. nalezení výchozího bázického řešení, 2. testování výchozího bázického řešení a dalších bázických řešení, 3. podle výsledku testu a) řešení končí v případě, že test optimality byl splněn, b) řešení pokračuje, jestliže test optimality nebyl splněn, 4. v případě nesplnění testu optimality přechod k jinému bázickému řešení daného problému, 5. otestování bázického řešení získaného v předcházejícím bodu, 6. návrat k bodu 3. (Holoubek, 2006) Možné závěry řešení: určení optimálního řešení (existuje-li vůbec), prokázání, že úloha je (za daných podmínek) neřešitelná, upozornění na to, že při formulování problému byla (zřejmě) opomenuta některá omezení, protože úloha má optimální řešení v nekonečnu, hodnota účelové funkce není omezena. (Holoubek, 2006)

11 4 TYPICKÉ ÚLOHY LINEÁRNÍHO PROGRAMOVÁNÍ 11 4 Typické úlohy lineárního programování Následující úlohy jsou typicky řešené v praxi v rámci lineárního programování. Všechny je možné řešit simplexovou metodou. Ze zkušeností s různými úlohami byly sestaveny ilustrativní příklady uvedené v následujícím textu. 4.1 Kapacitní problém Cílem těchto úloh je stanovení optimální struktury výroby při omezených zdrojích. Tyto zdroje mohou být například: finance (výrobní náklady) různé suroviny, materiál čas (pracovní hodiny, strojní čas) energie prostory (půda) Mohou existovat i jiná omezení, například požadavek na výrobu produktů v určitém poměru (v sadách). Kritériem u úloh tohoto typu je obvykle maximalizace zisku, minimalizace nákladů, maximální vyrobené množství některého z výrobků, maximální množství vyrobených sad apod. Strukturní proměnné představují množství výrobků vyjádřené v kusech, popřípadě výměru pěstovaných produktů nebo čas, po který bude výrobek produkován na výrobní lince. Příklad kapacitního problému: Výrobce chce produkovat dva výrobky V 1 a V 2. Pro jejich výrobu má k dispozici 180 kg suroviny S 1 a 200 hod. strojního času S 2. Na základě předběžného průzkumu lze očekávat zisk 2000 Kč za 1 kus výrobku V 1 a 1000 Kč za 1 kus výrobku V 2. Výrobce požaduje vytvoření takové struktury výroby, při které by dosáhl co nejvyššího zisku. Spotřeba suroviny S 1 a času S 2 na produkci jednotlivých výrobků je uvedena tabulce 1. Tab. 1: Spotřeba surovin na produkci výrobků Suroviny Výrobky surovina S 1 surovina S 2 výrobek V výrobek V Formulace modelu: x 1... počet výrobků V 1 x 2... počet výrobků V 2

12 4.2 Problém optimálního rozmístění finančních prostředků 12 Dle slovního zadání bude účelová funkce maximalizační. Představuje maximalizaci zisku v tisících Kč: z max = 2x 1 + 1x 2. Dále vyjádříme vlastní omezující podmínky. Výrobce má k dispozici 180 kg suroviny S 1. Výrobek V 1 spotřebuje 9 kg suroviny S 1, tedy 9x 1. Výrobek V 2 spotřebuje 4 kg suroviny S 1, tedy 4x 2. První omezující podmínka má tedy tvar (v kg): 9x 1 + 4x Obdobně vypadá i další omezující podmínka (v hodinách): 4x 1 + 3x Poslední částí formulace modelu jsou podmínky nezápornosti, které vyloučí všechna řešení, při nichž by proměnné nabývaly záporných hodnot: x 1, x Problém optimálního rozmístění finančních prostředků Cílem těchto úloh je rozdělení finančních prostředků do různých investic nebo do uvažovaných médií. Investiční varianty a uvažovaná média mohou být omezeny hranicemi pro množství prostředků, které mohou být do jednotlivých variant (médií) vloženy a vlastnostmi variant (médií). Vlastnosti mohou být i veličiny, při kterých je podstatná jejich průměrná hodnota (například riziko investice). Tyto vlastnosti jsou ve formulaci modelu vyjádřené formou váženého aritmetického průměru. Kritériem u úloh tohoto typu je obvykle maximalizace výnosu, minimalizace rizika či maximalizace počtu oslovených osob. Strukturní proměnné představují hledané objemy finančních prostředků určené pro jednotlivé investiční varianty či jednotlivá média. Příklad problému: Firma má k dispozici 50 mil. Kč. V úvahu přichází tři investiční varianty. Jsou jimi investice I 1, I 2 a I 3. Investice I 1 by měla být nakoupena v minimálním objemu 5 mil. Kč, investice I 2 a I 3 v minimálním objemu 10 mil. Kč. Riziko spojené s celkovou investicí by nemělo překročit hodnotu 6. Firma požaduje nalezení takové struktury portfolia, která bude maximalizovat výnos a přitom respektovat všechna uvedená omezení. Roční výnos v procentech a hodnota rizika jednotlivých variant jsou uvedeny v tabulce 2. Formulace modelu: x 1... objem financí vložených do investiční varianty I 1 v mil. Kč x 2... objem financí vložených do investiční varianty I 2 v mil. Kč x 3... objem financí vložených do investiční varianty I 3 v mil. Kč

13 4.3 Výživový (nutriční, směšovací) problém 13 Tab. 2: Vlastnosti investičních variant Vlastnosti Investice Výnos Riziko Investice I Investice I Investice I Cílová funkce představuje maximalizaci ročního výnosu (v mil. Kč): z max = 25x x x 3. Omezující podmínka, která vyjadřuje celkovou míru rizika, je formulována jako vážený aritmetický průměr rizik: 3x 1 + 7x 2 + 5x 3 x 1 + x 2 + x 3 6. Poslední částí formulace modelu jsou opět podmínky nezápornosti. 4.3 Výživový (nutriční, směšovací) problém Cílem těchto úloh je vytvoření směsi, která zabezpečí požadavky na dodávku živin, nebo roztoku, který splňuje zadaná omezení. V prvním případě jsou omezením maximální či minimální požadované hodnoty živin. Použité suroviny mají vlastnosti, jakými je například cena suroviny nebo obsah živin v surovině. Ve druhém případě je roztok tvořen surovinami, které jsou určeny svými vlastnostmi. Příkladem těchto vlastností je cena suroviny nebo kyselost (ph). V případě kyselosti a podobných veličin se omezení zapisuje ve formě váženého aritmetického průměru. Strukturní proměnné vyjadřují hledané množství surovin. Kritériem u těchto typů úloh bývá tvorba směsi (roztoku) s co nejnižší cenou, s co nejvyšším (nejnižším) obsahem některé ze surovin nebo tvorba maximálního množství směsi. Příklad problému: Podnik vyrábí roztok ze surovin S 1 a S 2. Tyto suroviny se liší cenou a kyselostí. Požadovaný roztok má mít kyselost 4 ph. Podnik požaduje stanovení takového množství surovin S 1 a S 2, které vytvoří roztok s požadovanými vlastnostmi a s co nejnižší cenou. Údaje vztažené na 1 l uvažovaných surovin jsou uvedeny v tabulce 3. Formulace modelu: x 1... množství suroviny S 1 v litrech x 2... množství suroviny S 2 v litrech

14 4.4 Řezný, krájecí problém 14 Tab. 3: Cena a kyselost surovin Suroviny Vlastnosti S 1 S 2 kyselost 5 2 cena Cílová funkce minimalizuje cenu roztoku (v Kč): z min = 20x x 2. Omezující podmínka zajistí, že průměrná kyselost roztoku bude 4 ph. Zapíše se ve formě váženého aritmetického průměru: 5x 1 + 2x 2 x 1 + x 2 = 4. Poslední částí formulace modelu jsou opět podmínky nezápornosti. 4.4 Řezný, krájecí problém Tyto úlohy řeší optimální rozřezání výchozího materiálu na menší části. Omezením může být maximální (minimální) požadované množství částí, případně maximální odpad vznikající při jednotlivých způsobech rozřezání. Cílovou funkcí bývá minimalizace celkového odpadu, minimalizace počtu použitého výchozího materiálu či minimalizace počtu provedených řezů. Strukturní proměnné vyjadřují počet kusů výchozího materiálu rozřezaného určitým způsobem. Příklad problému: Podnik má k dispozici 12m prkna, která chce rozřezat na 3m, 4m a 6m části. Maximální odpad na jeden kus výchozího materiálu je 2 m. Požadovaný počet desek je uveden v tabulce 4. Jak má podnik prkna rozřezat, aby byly splněny následující požadavky? 1. Vznik minimálního množství odpadu. 2. Použití minimálního množství výchozího materiálu. 3. Provedení minimálního množství řezů. Tab. 4: Délky desek a jejich požadované počty Délka desky (m) Počet desek (ks) Formulace modelu: První částí formulace modelu je vytvoření všech řezných variant, které respektují zadaná omezení. V tomto případě je omezením maximální odpad z jedné desky 2 m.

15 4.5 Distribuční problém 15 Tab. 5: Řezné varianty Řezná schémata 3m deska m deska m deska Odpad Řezy Řezných schémat je celkem 7, proto bude existovat 7 strukturních proměnných. x 1... počet desek výchozího materiálu nařezaných podle 1. varianty. x 7... počet desek výchozího materiálu nařezaných podle 7. varianty Cílová funkce v prvním případě minimalizuje celkový odpad ze všech řezných variant (v m) z min = x 3 + 2x 5 + 2x 6, ve druhém případě minimalizuje množství použitého výchozího materiálu (použije minimum řezných variant) z min = x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7, ve třetím případě minimalizuje počet provedených řezů z min = 3x 1 + 3x 2 + 3x 3 + 2x 4 + 2x 5 + 3x 6 + x 7. Omezujícími podmínkami jsou v tomto problému pouze počty desek. Uvedené nerovnice vyjadřují minimální počet desek vzniklých ve všech řezných variantách. 4x 1 + 2x 2 + x 3 + 2x x 3 + 3x 4 + x 5 + x 6 12 x 2 + x 5 + 2x 7 4 Poslední částí formulace modelu jsou opět podmínky nezápornosti. 4.5 Distribuční problém Distribuční úlohy zajišťují optimální převoz zboží od dodavatelů k odběratelům. Omezením bývají požadavky dodavatelů na množství doručeného zboží, kapacity dodavatelských skladů a vzdálenosti nebo náklady na dopravu mezi dodavateli a odběrateli. Jsou-li celkové požadavky odběratelů rovny celkovým kapacitám dodavatelů, pak jsou omezující podmínky zapisovány ve formě rovnic. Jsou-li požadavky vyšší než kapacity, jsou omezující podmínky požadavků zapsány jako nerovnice s relací, v opačném případě jsou omezující podmínky kapacit zapsány jako nerovnice s relací.

16 4.5 Distribuční problém 16 Cílem úlohy obvykle bývá minimalizace vzdáleností nebo dopravních nákladů mezi dodavateli a odběrateli. Strukturní proměnné vyjadřují množství zboží přepravené od určitého dodavatele k určitému odběrateli. Příklad problému: Ze dvou skladů S 1 a S 2 se zásobují tři odběratelé O 1, O 2 a O 3. Kapacita skladu S 1 je 4000 ks výrobku, kapacita skladu S 2 je 5000 ks výrobku. Odběratel O 1 požaduje 2000 ks, odběratel O ks a odběratel O ks výrobku. Zákazník požaduje stanovení takového plánu rozvozu, při kterém budou dopravní náklady minimální. Náklady na přepravu 1 ks výrobku jsou uvedeny v tabulce 6. Tab. 6: Náklady na přepravu zboží Odběratelé Sklady O 1 O 2 O 3 S S Formulace modelu: x počet kusů výrobku přepraveného ze skladu S 1 odběrateli O 1 x počet kusů výrobku přepraveného ze skladu S 1 odběrateli O 2. x počet kusů výrobku přepraveného ze skladu S 2 odběrateli O 3 Cílová funkce minimalizuje dopravní náklady: z min = 24x x x x x x 23. Celkový požadavek odběratelů je = 9000 ks, kapacita skladů je = 9000 ks. Existujícími zásobami je tedy možné plně uspokojit potřeby odběratelů. Proto budou omezující podmínky ve formě rovnic. x 11 + x 12 + x 13 = 4000 x 21 + x 22 + x 23 = 5000 x 11 + x 21 = 2000 x 12 + x 22 = 3000 x 13 + x 23 = 4000 Poslední částí formulace modelu jsou opět podmínky nezápornosti.

17 5 DALŠÍ METODY ŘEŠENÍ ÚLOH LINEÁRNÍHO PROGRAMOVÁNÍ 17 5 Další metody řešení úloh lineárního programování Simplexová metoda je dle dlouholetých zkušeností velmi rychlá pro většinu úloh lineárního programování. Na úlohu s m omezujícími podmínkami stačí v průměru 2m až 3m iterací. V roce 1972 ale V. Klee a J. Minty sestavili příklad, který dokazuje, že simplexová metoda může mít až exponenciální složitost. (Carreira, 2009) První algoritmus k řešení úloh lineárního programování, který má nejhůře polynomiální složitost, byl navržen Leonidem Khachiyanem v roce Jednalo se o elipsoidovou metodu pro úlohy lineárního programování. Tato metoda se však v praxi projevila jako neefektivní, v průměru je simplexová metoda lepší. Metoda elipsoidů je velmi výhodná pouze pro řešení úloh kombinatorického typu, kde simplexová metoda selhává. To je i důvodem, proč se tato metoda v běžné praxi nerozšířila tak, jak se původně očekávalo. Dalším problémem je, že na rozdíl od simplexové metody zde vypočítáváme druhé odmocniny a použitá čísla nemusí být přesná. (Berka, 2008) Karmarkarův algoritmus byl představen v roce 1984 Narendrarem Karmarkarem. Byl to po metodě elipsoidů další algoritmus, který řešil úlohy lineárního programování v polynomiálním čase. Je založen na metodě vnitřních bodů, která na rozdíl od simplexové metody neprochází po hranici oblasti přípustných řešení, ale pohybuje se i uvnitř této oblasti. Většina dnešních programů na řešení úloh lineárního programování je založena na primární a duální simplexové metodě a metodě vnitřních bodů.

18 6 SOUČASNÝ STAV 18 6 Současný stav V současnosti existuje mnoho programů k řešení úloh z oblasti operačního výzkumu. Pro úlohy lineárního programování používají většinou simplexový algoritmus, často také nabízejí možnost použití metody vnitřních bodů. Následuje několik nejznámějších nástrojů pro řešení těchto úloh. AIMMS modelovací prostředí vytvořené společností Paragon Decision Technology Inc. Řeší úlohy lineárního, nelineárního i celočíselného programování. K řešení úloh používá například řešitele CPLEX a GUROBI (viz dále). Nabízí i možnost vytvořit si vlastní řešení problému. (Optimization Software for Operations Research Applications, 2009) AMPL modelovací jazyk pro úlohy lineárního a nelineárního programování. Byl vytvořen společností Bell Laboratories. Používá řešitele CPLEX a GUROBI (viz dále). (AMPL, 2009) CPLEX vytvořen studiem ILOG společnosti IBM. Pro řešení úloh využívá hlavně simplexový algoritmus, a to i pro rozsáhlé úlohy. Pro úlohy určitého typu nabízí i metodu vnitřních bodů. (IBM ILOG CPLEX, 2009) GAMS modelovací systém vytvořený společností GAMS Development Corporation. Slouží k řešení lineárních, nelineárních i celočíselných úloh většího rozsahu. (GAMS, 2009) GUROBI vytvořen společností GUROBI Optimization. Je k dispozici jak samostatně, tak jako součást jiných modelovacích systémů (AIMMS, AMPL a další). Používá simplexový algoritmus i metodu vnitřních bodů. (The Gurobi Optimizer, 2009) Lingo nástroj vytvořený společností Lindo Systems Inc. Slouží k vytváření a řešení lineárních, nelineárních, celočíselných a globálních optimalizačních modelů. Obsahuje modelovací jazyk a sadu řešitelů úloh. K řešení úloh lineárního programování Lingo používá dva zabudované řešitele. První je na bázi primární a duální simplexové metody. Tento postačuje k řešení běžných úloh. Pro úlohy větších rozměrů a složitosti má Lingo řešitele, který je založený na metodě vnitřních bodů. (LINGO 11.0, 2008) MOPS program vytvořený firmou MOPS Optimierungssysteme. Je vhodný pro řešení rozsáhlých úloh lineárního a celočíselného programování. Používá jak primární a duální simplexovou metodu, tak i metodu vnitřních bodů. (MOPS Studio, 2009) STORM vytvořen společností Storm Software, Inc. Slouží k řešení nejčastěji používaných úloh z oblasti operačního výzkumu a statistiky. Tento program je používán k výuce. Úlohy řeší pomocí primární a duální simplexové metody, umožňuje zobrazení simplexové tabulky v jednotlivých krocích řešení. (Holoubek, 2006)

19 7 TVORBA APLIKACE 19 7 Tvorba aplikace 7.1 Návrh uživatelského rozhraní Cílem práce je vytvořit návrh uživatelského rozhraní, které umožní zadání optimalizační úlohy bez znalosti formulace modelu. Pro tento návrh byly vybrány výše uvedené typické úlohy lineárního programování, protože jsou řešeny nejčastěji. Úlohy jsou nabízeny v základním tvaru a v nejběžnějších modifikacích. Všechny tyto úlohy se formulují obdobným způsobem. Hlavní rozdíl mezi nimi je v interpretaci slovního zadání. Proto se návrh skládá z pěti modulů. Každý modul řeší jeden ze základních typů optimalizačních úloh. Výběr správného modulu provede uživatel pomocí tlačítek v úvodním okně aplikace. Tato tlačítka jsou popsána názvem úlohy a krátkým popiskem, který usnadní uživateli výběr. V případě nutnosti je k dispozici návod, ve kterém jsou jednotlivé úlohy popsány podrobněji. Úvodní okno aplikace je na obrázku 1. Obr. 1: Úvodní okno aplikace Každá úloha obsahuje základní informace, v případě kapacitního problému se jedná například o počet produktů, surovin a cílovou funkci. Dále obsahuje vztahy (například mezi produkty a surovinami) a další informace, jakými jsou například

20 7.2 Modul kapacitní problém 20 názvy a omezená množství či poměrové sady. Zadávaných informací je tedy velmi mnoho a některé jsou nepovinné. Pro přehlednost je tedy zadání úlohy rozděleno do postupných dialogů. Uživatel prochází dialogy a postupně zadává požadované informace. Dialogy jsou uspořádány tak, aby byly informace požadovány v logické posloupnosti a zadávání bylo vzhledem ke slovnímu zadání co nejpřirozenější. Zadávání začíná obecnou charakteristikou úlohy, následuje popis názvů a maximálních či minimálních hodnot strukturních proměnných a omezení, dále následují nepovinné formuláře (například produktové sady), formuláře vztahů mezi strukturními proměnnými a omezeními a okno s výsledky. Každé dialogové okno obsahuje v pravém horním rohu logo daného typu úlohy, které usnadňuje uživateli orientaci. Dále obsahuje název okna a krátký popisek, který navede uživatele k zadání správných informací. Mezi jednotlivými okny je možné přecházet (i zpět). Tím je umožněna například oprava nesprávně vyplněných hodnot. V každém okně je k dispozici tlačítko, po jehož stisknutí si má uživatel možnost prohlédnout návod na zadávání daného typu úlohy. Kvůli kontrole zadáváných hodnot bylo zavedeno, že hodnoty zadané v některém okně obvykle ovlivňují okna následující. Výběr cílové funkce obvykle ovlivní počet omezení v úloze. Počet produktů, investic, dodavatelů, odběratelů ovlivní množství políček v dalších formulářích. Zadané názvy se také objevují v následujících formulářích. Některá okna se objeví jen tehdy, zadá-li uživatel v některém z předchozích oken určité omezení. Toto velmi zjednodušuje práci s aplikací a nedovolí uživateli chybně měnit počet strukturních proměnných a omezení. Posloupnost dialogů tedy vytváří jednodušší a srozumitelnější aplikaci, nehodí se však pro zadávání většího množství hodnot, případně i pro opakované zadávání úlohy, kde uživatel mění pouze některé hodnoty. Pro toto použití je zavedeno zadávání pomocí textového souboru. Po načtení dat ze souboru je možné pohybovat se mezi okny a zadané hodnoty upravovat. Celá aplikace je vytvořená v programovacím prostředí Delphi a využívá komponent tohoto prostředí (například tlačítka, editační okna, obrázky). Hodnoty zadané uživatelem zpracovává zápisem do textového souboru, aby bylo možné tento soubor předat nástroji k řešení optimalizačních úloh. K řešení úloh byl vybrán program Lingo (viz dále). Výsledek úlohy by měl být prezentován ve srozumitelné formě, proto je využito názvů, které uživatel v aplikaci zadává a tyto názvy jsou přiřazeny strukturním proměnným. 7.2 Modul kapacitní problém V případě, že si uživatel v hlavní nabídce zvolí kapacitní problém, zobrazí se první formulář (obrázek 2). Zde uživatel zadá základní charakteristiku problému: 1. Počet druhů produktů odpovídá počtu strukturních proměnných ve formulaci modelu. Jejich počet je omezen na maximálně 20 druhů. 2. Povolení produktových sad zatržení této nabídky umožní výrobu produktů v sadách.

21 7.2 Modul kapacitní problém Počet druhů surovin suroviny a omezení, ze kterých se v modelu formulují omezující podmínky. Jejich počet je omezen na maximálně 20 druhů. 4. Měrná jednotka kusy umožňuje změnu měrné jednotky vyráběných produktů. 5. Cíl úlohy v rozbalovací nabídce jsou na výběr všechny běžné cíle tohoto typu úlohy. Po vyplnění hodnot uživatel postoupí k dalšímu formuláři stiskem tlačítka Další. Aplikace provede kontrolu formátu všech vepisovaných hodnot. V případě chybného formátu nebo chybějící hodnoty si vynutí opravu formou dialogového okna s upozorněním. Stiskem tlačítka Zpět je možné se z kteréhokoliv formuláře přepnout na předchozí formulář. Tlačítko? otevře nabídku help. Obr. 2: První formulář modulu kapacitní problém Druhý formulář tohoto modulu (obrázek 3) obsahuje pole k vyplnění názvů produktů, případně jejich minimálního či maximálního vyráběného množství. Počet polí se liší podle počtu druhů produktů zadaného v prvním formuláři. Názvy uživatel vyplňuje pouze kvůli interpretaci výsledků. Hodnoty množství vytvoří jednoduché omezující podmínky x i hodnota.

22 7.2 Modul kapacitní problém 22 Obr. 3: Druhý formulář modulu kapacitní problém Třetí formulář obsahuje pole k vyplnění názvů surovin a jiných omezení, případně jejich maximálního a minimálního množství. V prvním řádku je automaticky nastaven název omezení podle cílové funkce vybrané v prvním formuláři (například při výběru cílové funkce minimalizace nákladů se v prvním řádku objeví omezení Náklady ). Hodnoty množství se objeví na pravých stranách vlastních omezujících podmínek. Čtvrtý formulář (obrázek 4) umožňuje zadání poměru mezi produkty. Zobrazí se pouze tehdy, zvolí-li uživatel v prvním formuláři možnost Povolit produktové sady. Pátý formulář obsahuje tabulku. Řádky tabulky tvoří suroviny a omezení zadané ve třetím formuláři, sloupce tabulky tvoří produkty zadané ve druhém formuláři. Do buněk tabulky uživatel vepisuje spotřebu dané suroviny na výrobu daného produktu. Podle těchto hodnot se vytvářejí koeficienty strukturních proměnných v omezujících podmínkách a v cílové funkci. Šestý formulář obsahuje opět tabulku. Do buněk tabulky se vepisují maximální či minimální hodnoty celkové spotřeby suroviny na určitý produkt (je-li zadáno, že na výrobu produktu x i je dovoleno spotřebovat maximálně y jednotek suroviny S j ).

23 7.3 Modul problém optimálního rozmístění finančních prostředků 23 Po vyplnění všech formulářů se vytvoří textový soubor a do něj se zapíše kompletní formulace modelu. Tento model stačí předat programu na řešení optimalizačních úloh. Výsledek řešení se objeví ve formě výpisu strukturních proměnných, ke kterým jsou přiřazeny názvy zadané uživatelem ve druhém formuláři a jejich výsledné hodnoty. Obr. 4: Formulář k zadání poměrových sad 7.3 Modul problém optimálního rozmístění finančních prostředků Tento modul obsahuje stejný počet formulářů, jako předchozí modul kapacitního problému. V prvním formuláři uživatel opět vyplní základní charakteristiku problému: 1. Počet investičních variant odpovídá počtu strukturních proměnných ve formulaci modelu. Omezen na maximální počet 20 variant. 2. Počet druhů omezení omezení investic (například výnosnost, riziko, náklady), ze kterých se tvoří v modelu omezující podmínky. Omezen na maximální počet 20 druhů.

24 7.4 Modul výživový problém Množství peněžních prostředků udává celkové množství peněžních prostředků určených k investování. 4. Cíl úlohy. V dalším formuláři vyplní uživatel pro přehlednost názvy investičních variant a maximální či minimální výši investice do dané varianty. Tyto položky jsou nepovinné. V případě jejich vyplnění jsou v modelu zapsány jako omezující podmínky ve tvaru x i hodnota, kde x i představuje množství peněz investovaných do dané investiční varianty. Ve třetím formuláři uživatel vyplní názvy omezení a jejich maximální či minimální hodnoty. V prvním řádku tohoto formuláře je automaticky nastaveno omezení podle vybrané cílové funkce. Ve druhém řádku je nastaveno omezení peněžních prostředků, jehož maximální hodnota je určena množstvím peněžních prostředků z prvního formuláře (minimální hodnotu může uživatel doplnit). Hodnoty z tohoto formuláře se objevují na pravých stranách vlastních omezujících podmínek. Čtvrtý a pátý formulář se skládá opět z tabulek, do kterých uživatel vepisuje hodnoty omezení pro jednotlivé investiční varianty, případně i maximální či minimální množství omezení na danou investici. 7.4 Modul výživový problém První formulář tohoto problému obsahuje pole k vyplnění základní charakteristiky úlohy: 1. Počet druhů surovin jedná se o suroviny potřebné k vytvoření směsi nebo roztoku. Jejich počet odpovídá počtu strukturních proměnných. Počet druhů surovin je omezen na Počet druhů omezení a živin omezení surovin (například cena) a obsah živin v surovinách, slouží k vytvoření omezujících podmínek. Jejich počet je omezen na maximálně 20 druhů. 3. Požadované množství směsi nepovinná položka. Uživatel ji vyplní pouze tehdy, přeje-li si vytvoření určitého množství směsi nebo roztoku. 4. Cíl úlohy. Ve druhém formuláři vyplní uživatel názvy surovin a jejich maximální či minimální množství. Tyto položky jsou nepovinné. V případě vyplnění jsou zapsány v modelu jako omezující podmínky ve tvaru x i hodnota, kde x i představuje množství dané suroviny použité pro výrobu směsi nebo roztoku. Třetí formulář (obrázek 5) obsahuje názvy omezení a živin a jejich maximální či minimální hodnoty. Tyto položky jsou nepovinné. V případě, že je uživatel nevyplní, do pole MIN se automaticky přiřadí 0. První řádek je vyplněn podle hodnoty

25 7.5 Modul řezný problém 25 Obr. 5: Třetí formulář modulu výživový problém cílové funkce vybrané v prvním formuláři. V posledním sloupci je možné zatrhnout průměrovou veličinu (například ph). Ve čtvrtém formuláři uživatel zapíše do tabulky množství živin (a omezení) v jednotlivých surovinách. 7.5 Modul řezný problém V prvním formuláři řezného problému zadá uživatel tyto informace: 1. Rozměry materiálu jedná se o rozměr výchozího materiálu. Tato hodnota je použita pro výpočet řezných variant. 2. Počet řezných variant počet druhů menších částí, na které chce uživatel rozdělit výchozí materiál. Počet řezných variant je omezen na Maximální odpad nepovinná položka. Určuje, jaký nejvyšší odpad může vzniknout při nařezání jednoho kusu výchozího materiálu. Je-li zadán, musí být respektován při vytváření řezných variant. 4. Cílová funkce. Ve druhém formuláři (obrázek 6) uživatel zadá rozměry požadovaných řezů, jejich popis (nepovinná položka potřebná pro přehlednou interpretaci výsledků) a po-

26 7.5 Modul řezný problém 26 žadované maximální či minimální množství řezů. Z těchto informací aplikace vytvoří řezné varianty a ze všech vyhovujících variant vytvoří cílovou funkci a omezující podmínky. Pravé strany omezujících podmínek jsou tvořeny počty řezů z druhého formuláře. Obr. 6: Druhý formulář modulu řezný problém

27 7.6 Modul distribuční problém Modul distribuční problém V prvním formuláři zadá uživatel tyto informace: 1. Počet dodavatelů počet je omezen na maximálně 10 dodavatelů. 2. Počet odběratelů počet je omezen na maximálně 10 odběratelů. 3. Cíl úlohy. Obr. 7: Čtvrtý formulář modulu distribuční problém Strukturní proměnné vyjadřují cesty od dodavatelů k odběratelům. Počet strukturních proměnných je tedy dán součinem počtu dodavatelů a počtu odběratelů. Ve druhém formuláři zadá uživatel názvy odběratelů a jejich požadavky na dodávku zboží, ve třetím formuláři názvy dodavatelů a jejich skladové kapacity. Z těchto údajů se tvoří vlastní omezující podmínky. Porovnáním celkových požadavků odběratelů a celkových kapacit dodavatelů se určí tvar omezujících podmínek. Čtvrtý formulář (obrázek 7) je tabulka, do níž uživatel vepisuje vzdálenosti nebo náklady na dopravu mezi dodavateli a odběrateli. Tyto hodnoty tvoří koeficienty strukturních proměnných v cílové funkci.

28 8 SOFTWARE PRO ŘEŠENÍ MODELU 28 8 Software pro řešení modelu Při výběru nástroje pro výpočet úloh bylo nutné brát v úvahu několik parametrů. Prvním z nich byla dostupnost nástroje. Byly upřednostňovány ty nástroje, u kterých je možné získat demo verzi či studentskou licenci. Druhým parametrem byla dostupnost a užitečnost dokumentace. Ta by měla být snadno dostupná, přehledná a dostatečně obsáhlá. S její pomocí se určuje tvar zápisu modelu. Třetím parametrem byl způsob zápisu modelu. Je žádoucí, aby se zápis příliš nelišil od jednoduchého zápisu pomocí soustavy nerovnic (viz kapitolu 4). Posledním parametrem je spolupráce s aplikací. Aplikace by měla bez problémů předat nástroji model úlohy a stejně jednoduše i obdržet výsledek, a to ve formátu, který lze dále jednoduše zpracovávat. Podle těchto parametrů byly hodnoceny nejznámější nástroje k řešení optimalizačních úloh, jejichž stručný popis je uveden výše. Hodnotící stupnice je od 1 do 5, přičemž 1 je nejlepší výsledek. Hodnocení je uvedeno v tabulce 7. Tab. 7: Srovnání parametrů optimalizačních nástrojů Dostupnost Dokumentace Zápis Spolupráce Průměr AIMMS ,75 AMPL ,25 CPLEX GAMS ,5 GUROBI ,75 Lingo ,25 MOPS STORM ,75 Podle průměrné známky byl vybrán nástroj Lingo od společnosti LINDO Systems. Ostatní hodnocené nástroje obvykle uspěly v dostupnosti. Většina je nabízena jako demo verze nebo na studentskou licenci (v obou případech se jedná o omezené verze). Dokumentace byla u všech nástrojů dostačující, stejně tak i způsob spolupráce s aplikací. Většině nástrojů lze model předat ve formě textového či jiného souboru. Rozhodujícím faktorem byl způsob zápisu modelu. V jednoduchosti zápisu jasně dominuje Lingo a CPLEX, který však není dobře dostupný. Ostatní nástroje vyžadují složitější zápis, obvykle s velkým množstvím vyhrazených slov. Při výběru jiného nástroje by se tedy značně zkomplikoval způsob formulace modelu. Demo verze programu Lingo je omezena, a to počtem omezujících podmínek a počtem strukturních proměnných. Omezujících podmínek lze zadat maximálně 150, strukturních proměnných maximálně 300. Dodržení uvedeného rozsahu úlohy je zajištěno tím, že jsou hodnoty vložené uživatelem kontrolovány, jestli nepřesahují omezené hodnoty.

29 8.1 Formulace modelu v Lingu 29 Dokumentace k programu Lingo je volně dostupná a obsahuje veškeré potřebné informace o způsobu formulace modelu. Formulace je velmi jednoduchá (viz dále). Spolupráce s aplikací je také jednoduchá, model i výsledek lze předat jako textový soubor. 8.1 Formulace modelu v Lingu Při řešení optimalizačních úloh v Lingu je nutné dodržovat správný zápis modelu. Prvním řádkem zápisu je MODEL:. Na dalším řádku je formulována cílová funkce. Tato funkce je uvozena MAX = v případě maximalizační funkce, nebo MIN = v případě minimalizační funkce. Za tímto slovem následuje běžný zápis cílové funkce, koeficienty strukturních proměnných se zapisují se znakem *. Na konci funkce musí být znak ;. Desetinná čísla se zapisují s desetinnou tečkou. MODEL: MIN/MAX = k x1 + k x k xn; Omezující podmínky mají stejná pravidla zápisu jako cílová funkce. Na konci každé podmínky musí být znak ;. Podmínky nezápornosti se musí zapsat pro každou proměnnou zvlášť. xi 0; Při formulaci modelu v aplikaci je tedy nutné dodržovat správný zápis. Je potřeba sledovat počet proměnných a za poslední proměnnou v dané podmínce (či cílové funkci) zapsat středník. Program LINGO umožňuje vkládat modely jako textové soubory s příponou.lng. Formulace modelu je proto zapisovaná do souboru s touto příponou. 8.2 Výsledek úlohy Program Lingo vytváří výsledek úlohy jako textový soubor s příponou.lgr. Název souboru zůstává stejný jako název souboru s modelem. Výsledný soubor obsahuje tyto informace: Nalezení optimálního řešení Global optimal solution found (je-li nalezeno optimální řešení), Optimal solution found at step (v případě více možných řešení vypisuje krok, ve kterém bylo vybrané řešení nalezeno), No feasible solution (neexistuje-li optimální řešení). Tato informace je ve výsledném formuláři uživateli prezentována pouze v případě, neexistuje-li optimální řešení. Hodnota cílové funkce (je prezentována i ve výsledném formuláři). Strukturní proměnné, jejich hodnoty a redukované ceny. Strukturní proměnné jsou ve výsledku vypsány spolu s popisky a poté jsou k nim přiřazeny hodnoty. Redukované ceny se uživateli nezobrazí. Ke každé omezující podmínce stínové ceny a množství nevyužitého zdroje. Tyto informace se ve výsledném formuláři nezobrazují.

30 8.2 Výsledek úlohy 30 Redukované ceny udávají, o kolik by se zhoršila hodnota účelové funkce, kdybychom zařadili do optimálního řešení jednu jednotku dané proměnné. Je-li tato hodnota kladná, znamená to, že použití proměnné zhoršuje hodnotu účelové funkce. Je-li tato hodnota rovna nule, je produkce efektivní a tato proměnná je součástí optimálního řešení. Stínové ceny poskytují informace o tom, kolik jednotek hodnoty účelové funkce připadá na 1 jednotku pravé strany dané omezující podmínky. Vyjadřuje, jak se změní hodnota účelové funkce, změníme-li pravou stranu omezující podmínky o jednotku. (Holoubek, 2006) Příklad interpretace výsledku u distribuční úlohy je na obrázku 8. Obr. 8: Výsledek distribuční úlohy

31 9 DISKUSE 31 9 Diskuse Podařilo se vytvořit návrh aplikace, která umožňuje zadání a řešení optimalizační úlohy bez znalosti formulace modelu úlohy. Aplikace nabízí všechny typické úlohy lineárního programování v jejich základním tvaru s možností různých modifikací. U všech typických úloh lineárního programování může existovat mnoho modifikací, které tato aplikace nenabízí. Vzhledem k tomu, že cílem práce byla tvorba návrhu aplikace, je rozsah nabízených úloh dostačující. Existuje i několik typů netypických optimalizačních úloh vícekriteriální lineární optimalizace, cílové a celočíselné programování a další druhy distribučních úloh (přiřazovací a okružní problém). Tyto úlohy nebyly součástí této práce, ale jejich zavedení do aplikace by bylo jistě užitečné. Vzhledem k povaze aplikace by bylo nutné pro každý nový typ úlohy vytvořit samostatný modul. Uživatelské rozhraní je navrženo tak, aby zajistilo správné zadání hodnot uživatelem a bylo zároveň přehledné a jednoduché k použití. Obsahuje pouze prvky, na které jsou uživatelé zvyklí i z jiných, běžně používaných aplikací. Pro všechny typy úloh je k dispozici návod, který obsahuje i ukázky správně vyplněných polí formulářů. Aplikace spolupracuje s programem Lingo, který řeší úlohy lineárního, nelineárního i celočíselného programování. V této práci je použita demo verze, která je omezena pouze počtem proměnných a omezujících podmínek. Aplikace je těmto omezením přizpůsobená. I přesto dostačuje svým rozsahem k řešení běžných úloh. Pro rozměrnější úlohy je potřeba používat plnou verzi programu Lingo. Omezení v aplikaci lze jednoduše odstranit.

32 10 ZÁVĚR Závěr Práce se zabývala návrhem uživatelského rozhraní a modulu k zadávání a řešení typických úloh lineárního programování. První částí práce bylo seznámení se základními tvary formulace úloh. Dále byly vymezeny typické úlohy lineárního programování. Jedná se o kapacitní problém, směšovací problém, problém optimálního rozmístění finančních prostředků, řezný problém a distribuční problém. U každé z těchto úloh byly na příkladech vysvětleny různé modifikace zadání. Tyto informace byly použity ke tvorbě uživatelského rozhraní aplikace. Součástí práce je i popis metod pro řešení úloh lineárního programování, jejich porovnání a hodnocení zejména vzhledem k jejich časové náročnosti a použitelnosti v praxi. Jako nejvhodnější metoda k řešení běžných úloh byla určena simplexová metoda. Tato metoda má v nejhorším případě exponenciální časovou složitost, avšak v praxi se této složitosti obvykle nedosahuje. Program Lingo k řešení optimalizačních úloh používá nejčastěji právě simplexovou metodu, případně i metodu vnitřních bodů. Aplikace byla vytvořena v programovacím prostředí Delphi v programovacím jazyce Object Pascal. Nejdříve bylo navrženo uživatelské rozhraní, které se skládá z několika po sobě jdoucích formulářů. Díky tomuto uspořádání je zadávání úlohy jednoduché a přehledné. Při opakovaném řešení úloh či pro úlohy s větším rozsahem je možné vkládat data do formuláře z textového souboru. Dále bylo nutné přihlédnout k formě zápisu modelu v programu Lingo a podle ní přizpůsobit zápis modelu z dat jednotlivých formulářů. Model i výsledek problému je předáván v textovém souboru. Vytvořená aplikace je vhodná k použití ve výuce, případně i ve firmách k řešení běžných úloh nevelkého rozsahu.uživatelské rozhraní může být použito jako návrh k tvorbě aplikace s rozsáhlejším spektrem úloh a modifikací.

33 11 LITERATURA Literatura AMPL [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: Berka, M. Lineární programování [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: Carreira-Perpiňán, Miguel Á. Simplex method [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: GAMS [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: Holoubek, J. Ekonomicko-matematické metody. 1. vyd. Brno: Mendelova zemědělská a lesnická univerzita v Brně, s. ISBN IBM ILOG CPLEX [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: LINGO 11.0 Optimization Modeling Software for Linear, Nonlinear, and Integer Programming [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: index.php?option=com content&view=article&id=2&itemid=10. MOPS Studio [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: Optimization Software for Operations Research Applications [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu: Rašovský, M. Šišláková, H. Ekonomicko-matematické metody. 1. vyd. Brno: Mendelova zemědělská a lesnická univerzita v Brně, s. ISBN The Gurobi Optimizer [on-line] [cit ]. Dokument ve formátu HTML. Dostupný na Internetu:

4EK311 Operační výzkum. 2. Lineární programování

4EK311 Operační výzkum. 2. Lineární programování 4EK311 Operační výzkum 2. Lineární programování 2.2 Matematický model úlohy LP Nalézt extrém účelové funkce z = c 1 x 1 + c 2 x 2 + + c n x n na soustavě vlastních omezení a 11 x 1 + a 12 x 2 + a 13 x

Více

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení 4EK213 Lineární modely 12. Dopravní problém výchozí řešení 12. Distribuční úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Úlohy reklamního plánování

Více

Metodické pokyny pro práci s modulem Řešitel v tabulkovém procesoru Excel

Metodické pokyny pro práci s modulem Řešitel v tabulkovém procesoru Excel Metodické pokyny pro práci s modulem Řešitel v tabulkovém procesoru Excel Modul Řešitel (v anglické verzi Solver) je určen pro řešení lineárních i nelineárních úloh matematického programování. Pro ilustraci

Více

Obecná úloha lineárního programování. Úloha LP a konvexní množiny Grafická metoda. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Obecná úloha lineárního programování. Úloha LP a konvexní množiny Grafická metoda. Jiří Neubauer. Katedra ekonometrie FEM UO Brno Přednáška č. 3 Katedra ekonometrie FEM UO Brno Optimalizace portfolia Investor se s pomocí makléře rozhoduje mezi následujícími investicemi: akcie A, akcie B, státní pokladniční poukázky, dluhopis A, dluhopis

Více

4EK201 Matematické modelování. 2. Lineární programování

4EK201 Matematické modelování. 2. Lineární programování 4EK201 Matematické modelování 2. Lineární programování 2.1 Podstata operačního výzkumu Operační výzkum (výzkum operací) Operational research, operations research, management science Soubor disciplín zaměřených

Více

Příklady modelů lineárního programování

Příklady modelů lineárního programování 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

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 Mgr. Sekničková Jana, Ph.D. 2. PŘEDNÁŠKA MATEMATICKÝ MODEL ÚLOHY LP Mgr. Sekničková Jana, Ph.D. 2 OSNOVA PŘEDNÁŠKY Obecná formulace MM Množina

Více

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28.

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28. Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25 Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

4EK212 Kvantitativní management. 2. Lineární programování

4EK212 Kvantitativní management. 2. Lineární programování 4EK212 Kvantitativní management 2. Lineární programování 1.7 Přídatné proměnné Přídatné proměnné jsou nezáporné Mají svoji ekonomickou interpretaci, která je odvozena od ekonomické interpretace omezení

Více

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy Metody lineární optimalizace Simplexová metoda Dvoufázová M-úloha Duální úloha jednofázová Post-optimalizační analýza Celočíselné řešení Metoda větví a mezí Distribuční úlohy 1 OÚLP = obecná úloha lineárního

Více

Lineární programování

Lineární programování 24.9.205 Lineární programování Radim Farana Podklady pro výuku pro akademický rok 203/204 Obsah Úloha lineárního programování. Formulace úlohy lineárního programování. Typické úlohy lineárního programování.

Více

4EK311 Operační výzkum. 4. Distribuční úlohy LP část 1

4EK311 Operační výzkum. 4. Distribuční úlohy LP část 1 4EK311 Operační výzkum 4. Distribuční úlohy LP část 1 4. Distribuční úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Úlohy reklamního plánování (plánování

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 3. přednáška SIMPLEXOVÁ METODA I. OSNOVA PŘEDNÁŠKY Standardní tvar MM Základní věta LP Princip simplexové metody Výchozí řešení SM Zlepšení řešení

Více

Ekonomická formulace. Matematický model

Ekonomická formulace. Matematický model Ekonomická formulace Firma balící bonboniéry má k dispozici 60 čokoládových, 60 oříškových a 85 karamelových bonbónů. Může vyrábět dva druhy bonboniér. Do první bonboniéry se dávají dva čokoládové, šest

Více

Obr. P1.1 Zadání úlohy v MS Excel

Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel. Výpočet budeme demonstrovat

Více

Systémové modelování. Ekonomicko matematické metody I. Lineární programování

Systémové modelování. Ekonomicko matematické metody I. Lineární programování Ekonomicko matematické metody I. Lineární programování Modelování Modelování je způsob zkoumání reality, při němž složitost, chování a další vlastnosti jednoho celku vyjadřujeme složitostí, chováním a

Více

Simplexové tabulky z minule. (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25

Simplexové tabulky z minule. (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25 Simplexové tabulky z minule (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25 Simplexová metoda symbolicky Výchozí tabulka prom. v bázi zákl. proměné přídatné prom. omez. A E b c T 0 0 Tabulka po přepočtu

Více

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel Přílohy Příloha 1 Řešení úlohy lineárního programování v MS Excel V této příloze si ukážeme, jak lze řešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel 2007. Výpočet budeme demonstrovat

Více

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Optimální výrobní program Radka Zahradníková e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Obsah 1 Lineární programování 2 Simplexová metoda 3 Grafická metoda 4 Optimální výrobní program Řešení

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání

Více

Parametrické programování

Parametrické programování Parametrické programování Příklad 1 Parametrické pravé strany Firma vyrábí tři výrobky. K jejich výrobě potřebuje jednak surovinu a jednak stroje, na kterých dochází ke zpracování. Na první výrobek jsou

Více

4EK213 Lineární modely. 4. Simplexová metoda - závěr

4EK213 Lineární modely. 4. Simplexová metoda - závěr 4EK213 Lineární modely 4. Simplexová metoda - závěr 4. Simplexová metoda - závěr Konečnost simplexové metody Degenerace Modifikace pravidla pro volbu vstupující proměnné Blandovo pravidlo Kontrola výpočtu

Více

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

4EK213 Lineární modely. 5. Dualita v úlohách LP

4EK213 Lineární modely. 5. Dualita v úlohách LP 4EK213 Lineární modely 5. Dualita v úlohách LP 5. Dualita v úlohách LP Obecné vyjádření simplexové tabulky Formulace duálního problému Formulace symetrického duálního problému Formulace nesymetrického

Více

4EK201 Matematické modelování. 4. Typické úlohy lineárního programování

4EK201 Matematické modelování. 4. Typické úlohy lineárního programování 4EK201 Matematické modelování 4. Typické úlohy lineárního programování 4. Typické úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Směšovací problémy

Více

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde

Více

Lineární programování

Lineární programování Lineární programování Petr Tichý 19. prosince 2012 1 Outline 1 Lineární programování 2 Optimalita a dualita 3 Geometrie úlohy 4 Simplexová metoda 2 Lineární programování Lineární program (1) min f(x) za

Více

4EK311 Operační výzkum. 3. Optimalizační software a stabilita řešení úloh LP

4EK311 Operační výzkum. 3. Optimalizační software a stabilita řešení úloh LP 4EK311 Operační výzkum 3. Optimalizační software a stabilita řešení úloh LP 3.1 Příklad matematický model Lis: 1 x 1 + 2 x 2 120 [min] Balení: 1 x 1 + 4 x 2 180 [min] Poptávka: 1 x 1 1 x 2 90 [krabiček]

Více

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika. 4.8.3. Cvičení z matematiky Předmět Cvičení z matematiky je vyučován v sextě a v septimě jako volitelný předmět. Vzdělávací obsah vyučovacího předmětu Cvičení z matematiky vychází ze vzdělávací oblasti

Více

4EK213 Lineární modely. 10. Celočíselné programování

4EK213 Lineární modely. 10. Celočíselné programování 4EK213 Lineární modely 10. Celočíselné programování 10.1 Matematický model úlohy ILP Nalézt extrém účelové funkce z = c 1 x 1 + c 2 x 2 + + c n x n na soustavě vlastních omezení a 11 x 1 + a 12 x 2 + a

Více

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo 0. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo (PEF PaA) Petr Gurka aktualizováno 9. prosince 202 Obsah Základní pojmy. Motivace.................................2 Aritmetický vektorový

Více

4EK212 Kvantitativní management. 3. Typické úlohy LP

4EK212 Kvantitativní management. 3. Typické úlohy LP 4EK212 Kvantitativní management 3. Typické úlohy LP 3. Typické úlohy LP a ILP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Úlohy reklamního plánování (plánování

Více

13. Lineární programování

13. Lineární programování Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

IB112 Základy matematiky

IB112 Základy matematiky IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic

Více

Karta předmětu prezenční studium

Karta předmětu prezenční studium Karta předmětu prezenční studium Název předmětu: Číslo předmětu: 545-0259 Garantující institut: Garant předmětu: Exaktní metody rozhodování Institut ekonomiky a systémů řízení RNDr. Radmila Sousedíková,

Více

Globální matice konstrukce

Globální matice konstrukce Globální matice konstrukce Z matic tuhosti a hmotnosti jednotlivých prvků lze sestavit globální matici tuhosti a globální matici hmotnosti konstrukce, které se využijí v řešení základní rovnice MKP: [m]{

Více

1.1 Typy úloh LP. Klíčová slova: úlohy LP, formulace modelu. 1. Formulace ekonomického modelu.

1.1 Typy úloh LP. Klíčová slova: úlohy LP, formulace modelu. 1. Formulace ekonomického modelu. Klíčová slova: úlohy LP, formulace modelu. 1 Úlohy Lineárního programování Lineární programování je jednou z částí operačního výzkumu a zpravidla se používá pro řešení optimalizačních úloh ekonomických

Více

skladbu obou směsí ( v tunách komponenty na 1 tunu směsi):

skladbu obou směsí ( v tunách komponenty na 1 tunu směsi): 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

Více

7. přednáška Systémová analýza a modelování. Přiřazovací problém

7. přednáška Systémová analýza a modelování. Přiřazovací problém Přiřazovací problém Přiřazovací problémy jsou podtřídou logistických úloh, kde lze obecně říci, že m dodavatelů zásobuje m spotřebitelů. Dalším specifikem je, že kapacity dodavatelů (ai) i požadavky spotřebitelů

Více

Nástroje pro analýzu dat

Nástroje pro analýzu dat 7 Nástroje pro analýzu dat V té to ka pi to le: Ověřování vstupních dat Hledání řešení Řešitel Scénáře Citlivostní analýza Rychlá analýza Kapitola 7 Nástroje pro analýzu dat Součástí Excelu jsou nástroje

Více

Návod na základní používání Helpdesku AGEL

Návod na základní používání Helpdesku AGEL Návod na základní používání Helpdesku AGEL Úvod Přihlášení Nástěnka Vyhledání a otevření úlohy Otevření úlohy Seznam úloh Vyhledávání úloh Vytvoření nové úlohy Práce s úlohami Editace úlohy Změna stavu

Více

Konvexní množiny Formulace úloh lineárního programování. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Konvexní množiny Formulace úloh lineárního programování. Jiří Neubauer. Katedra ekonometrie FEM UO Brno Přednáška č. 2 Katedra ekonometrie FEM UO Brno Euklidovský prostor E n Pod pojmem n-rozměrný euklidovský prostor budeme rozumnět prostor, jehož prvky jsou uspořádané n-tice reálných čísel X = (x 1, x 2,...,

Více

6 Simplexová metoda: Principy

6 Simplexová metoda: Principy 6 Simplexová metoda: Principy V této přednášce si osvětlíme základy tzv. simplexové metody pro řešení úloh lineární optimalizace. Tyto základy zahrnují přípravu kanonického tvaru úlohy, definici a vysvětlení

Více

4EK201 Matematické modelování 5. Speciální úlohy lineárního programování

4EK201 Matematické modelování 5. Speciální úlohy lineárního programování 4EK201 Matematické modelování 5. Speciální úlohy lineárního programování 4. Typické úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Směšovací problémy

Více

12. Lineární programování

12. Lineární programování . Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum)

Více

OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA [ MOPV ] METODY OPERAČNÍHO VÝZKUMU

OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA [ MOPV ] METODY OPERAČNÍHO VÝZKUMU OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA [ MOPV ] METODY OPERAČNÍHO VÝZKUMU Distanční opora RNDr. Miroslav Liška, CSc. OSTRAVA 2002 1 Simplexová metoda je iterační výpočetní postup pro nalezení optimálního

Více

4.Řešení optimalizačních úloh v tabulkových kalkulátorech

4.Řešení optimalizačních úloh v tabulkových kalkulátorech 4.Řešení optimalizačních úloh v tabulkových kalkulátorech Tabulkové kalkulátory patří mezi nejpoužívanější a pro běžného uživatele nejdostupnější programové systémy. Kromě základních a jim vlastních funkcí

Více

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule. Matice Definice. Maticí typu m n nazýváme obdélníkové pole, tvořené z m n reálných čísel (tzv. prvků matice), zapsaných v m řádcích a n sloupcích. Značíme např. A = (a ij ), kde i = 1,..., m, j = 1,...,

Více

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu 4EK311 Operační výzkum 1. Úvod do operačního výzkumu Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka Garant kurzu:

Více

P ílohy. P íloha 1. ešení úlohy lineárního programování v MS Excel

P ílohy. P íloha 1. ešení úlohy lineárního programování v MS Excel P ílohy P íloha 1 ešení úlohy lineárního programování v MS Excel V této p íloze si ukážeme, jak lze ešit úlohy lineárního programování pomocí tabulkového procesoru MS Excel 2007. Výpočet budeme demonstrovat

Více

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

4EK212 Kvantitativní management. 1. Úvod do kvantitativního managementu a LP

4EK212 Kvantitativní management. 1. Úvod do kvantitativního managementu a LP 4EK212 Kvantitativní management 1. Úvod do kvantitativního managementu a LP Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka

Více

Operační výzkum. Vícekriteriální programování. Lexikografická metoda. Metoda agregace účelových funkcí. Cílové programování.

Operační výzkum. Vícekriteriální programování. Lexikografická metoda. Metoda agregace účelových funkcí. Cílové programování. Operační výzkum Lexikografická metoda. Metoda agregace účelových funkcí. Cílové programování. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu

Více

Teorie her a ekonomické rozhodování. 2. Maticové hry

Teorie her a ekonomické rozhodování. 2. Maticové hry Teorie her a ekonomické rozhodování 2. Maticové hry 2.1 Maticová hra Teorie her = ekonomická vědní disciplína, která se zabývá studiem konfliktních situací pomocí matematických modelů Hra v normálním tvaru

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

Obecná úloha lineárního programování

Obecná úloha lineárního programování Obecná úloha lineárního programování Úloha Maximalizovat hodnotu c T x (tzv. účelová funkce) za podmínek Ax b (tzv. omezující podmínky) kde A je daná reálná matice typu m n a c R n, b R m jsou dané reálné

Více

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru 1 1. Lineární algebra 1.1. Lineární závislost a nezávislost vektorů. Hodnost matice Aritmetické vektory Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ).

Více

Operační výzkum. Přiřazovací problém.

Operační výzkum. Přiřazovací problém. Operační výzkum Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační číslo projektu: CZ..7/2.2./28.326

Více

Příklady ke cvičením. Modelování produkčních a logistických systémů

Příklady ke cvičením. Modelování produkčních a logistických systémů Modelování produkčních a logistických systémů Katedra logistiky, kvality a automobilové techniky Garant, přednášející, cvičící: Jan Fábry 10.12.2018 Příklady ke cvičením Opakování lineárního programování

Více

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC Pojm: Algebraická rovnice... rovnice obsahující pouze celé nezáporné mocnin neznámé, tj. a n n + a n 1 n 1 +... + a 2 2 + a 1 + a 0 = 0, kde n je přirozené číslo.

Více

2. část: Základy matematického programování, dopravní úloha. Ing. Michal Dorda, Ph.D.

2. část: Základy matematického programování, dopravní úloha. Ing. Michal Dorda, Ph.D. 2. část: Základy matematického programování, dopravní úloha. 1 Úvodní pojmy Metody na podporu rozhodování lze obecně dělit na: Eaktní metody metody zaručující nalezení optimální řešení, např. Littlův algortimus,

Více

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam.

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam. 10.6.7 POSTUP TVORBY KOMBINOVANÉHO SEZNAMU 1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam. 2. V rozbalovací nabídce se seznamem datových typů vyberte volbu

Více

Úvod do lineární algebry

Úvod do lineární algebry Úvod do lineární algebry 1 Aritmetické vektory Definice 11 Mějme n N a utvořme kartézský součin R n R R R Každou uspořádanou n tici x 1 x 2 x, x n budeme nazývat n rozměrným aritmetickým vektorem Prvky

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi

Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi 2.2. Cíle Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi Předpokládané znalosti Předpokladem zvládnutí

Více

RNDr. Sousedíková Radmila, Ph.D.

RNDr. Sousedíková Radmila, Ph.D. INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Eaktní metody rozhodování - operační výzkum RNDr. Sousedíková Radmila,

Více

STATISTICA Téma 1. Práce s datovým souborem

STATISTICA Téma 1. Práce s datovým souborem STATISTICA Téma 1. Práce s datovým souborem 1) Otevření datového souboru Program Statistika.cz otevíráme z ikony Start, nabídka Programy, podnabídka Statistika Cz 6. Ze dvou nabídnutých možností vybereme

Více

Operace s maticemi. 19. února 2018

Operace s maticemi. 19. února 2018 Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice

Více

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi

Více

Přiřazovací problém. Přednáška č. 7

Přiřazovací problém. Přednáška č. 7 Přiřazovací problém Přednáška č. 7 Přiřazovací problém je jednou podtřídou logistických úloh. Typickým problémem může být nejkratší převoz materiálu od dodavatelů ke spotřebitelům. spotřebitelé a i dodavatelé

Více

Microsoft Office. Excel ověření dat

Microsoft Office. Excel ověření dat Microsoft Office Excel ověření dat Karel Dvořák 2011 Ověření dat Při zadávání dat přímo z klávesnice je poměrně vysoké procento chybovosti, ať už jde o překlepy nebo zadání dat mimo předpokládaný rozsah.

Více

1 Řešení soustav lineárních rovnic

1 Řešení soustav lineárních rovnic 1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty

Více

Soustavy linea rnı ch rovnic

Soustavy linea rnı ch rovnic [1] Soustavy lineárních rovnic vlastnosti množin řešení metody hledání řešení nejednoznačnost zápisu řešení a) soustavy, 10, b) P. Olšák, FEL ČVUT, c) P. Olšák 2010, d) BI-LIN, e) L, f) 2009/2010, g)l.

Více

"Optimalizace krmných směsí"

Optimalizace krmných směsí Nabídka programu "Optimalizace krmných směsí" Vážení zákazníci, nabízíme Vám program "Optimalizace krmných směsí", který Vám simplexovou metodou zajistí respektování norem výživy i sledování nepovinných

Více

Numerické metody a programování. Lekce 8

Numerické metody a programování. Lekce 8 Numerické metody a programování Lekce 8 Optimalizace hledáme bod x, ve kterém funkce jedné nebo více proměnných f x má minimum (maximum) maximalizace f x je totéž jako minimalizace f x Minimum funkce lokální:

Více

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. Matice přechodu Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. u příkladu 7 (v ) dostaneme: Nyní bychom mohli postupovat jako u matice homomorfismu

Více

Matematika B101MA1, B101MA2

Matematika B101MA1, B101MA2 Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet

Více

1 0 0 u 22 u 23 l 31. l u11

1 0 0 u 22 u 23 l 31. l u11 LU dekompozice Jedná se o rozklad matice A na dvě trojúhelníkové matice L a U, A=LU. Matice L je dolní trojúhelníková s jedničkami na diagonále a matice U je horní trojúhelníková. a a2 a3 a 2 a 22 a 23

Více

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB Optimalizace a multikriteriální hodnocení funkční způsobilosti pozemních staveb Anotace: Optimalizace objektů pozemních staveb

Více

Soustavy lineárních rovnic a determinanty

Soustavy lineárních rovnic a determinanty Soustavy lineárních rovnic a determinanty Petr Hasil Přednáška z matematiky Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny

Více

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 41 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán magický čtverec, pro nějž platí,

Více

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ KOMPLEXNÍ ČÍSLA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu INVESTICE

Více

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová. [1] Terminologie [2] Soustavy lineárních rovnic vlastnosti množin řešení metody hledání řešení nejednoznačnost zápisu řešení Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová matice.

Více

1 Vektorové prostory.

1 Vektorové prostory. 1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které

Více

V této kapitole bude popsán software, který je možné využít pro řešení rozhodovacích problémů popisovaných v těchto skriptech.

V této kapitole bude popsán software, který je možné využít pro řešení rozhodovacích problémů popisovaných v těchto skriptech. Kapitola 1 Softwarová podpora V této kapitole bude popsán software, který je možné využít pro řešení rozhodovacích problémů popisovaných v těchto skriptech. Solver (Řešitel) Pro řešení úloh lineárního

Více

Jeden ze způsobů zadávání dat v programu MS Access je pomocí tabulek. Ovšem mnohem výhodnější způsob je pomocí tzv. formulářů.

Jeden ze způsobů zadávání dat v programu MS Access je pomocí tabulek. Ovšem mnohem výhodnější způsob je pomocí tzv. formulářů. 10.12 TVORBA FORMULÁŘE 10.12.1 VYTVOŘENÍ JEDNODUCHÉHO FORMULÁŘE Jeden ze způsobů zadávání dat v programu MS Access je pomocí tabulek. Ovšem mnohem výhodnější způsob je pomocí tzv. formulářů. Jak jste se

Více

Gymnázium Jiřího Ortena, Kutná Hora

Gymnázium Jiřího Ortena, Kutná Hora Předmět: Náplň: Třída: Počet hodin: Pomůcky: Cvičení z matematiky algebra (CZMa) Systematizace a prohloubení učiva matematiky: Číselné obory, Algebraické výrazy, Rovnice, Funkce, Posloupnosti, Diferenciální

Více

Problém lineární komplementarity a kvadratické programování

Problém lineární komplementarity a kvadratické programování Problém lineární komplementarity a kvadratické programování (stručný učební text 1 J. Rohn Univerzita Karlova Matematicko-fyzikální fakulta Verze: 17. 6. 2002 1 Sepsání tohoto textu bylo podpořeno Grantovou

Více

Systematická tvorba jízdního řádu 2. cvičení

Systematická tvorba jízdního řádu 2. cvičení Projektování dopravní obslužnosti Systematická tvorba jízdního řádu 2. cvičení Ing. Zdeněk Michl Ústav logistiky a managementu dopravy ČVUT v Praze Fakulta dopravní Rekapitulace zadání Je dána následující

Více

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 Mgr. Sekničková Jana, Ph.D. GARANT KURZU Prof. Ing. Josef Jablonský, CSc. Místnost: NB 437 Konzultační hodiny: úterý 13:00 15:00 E-mail: jablon@vse.cz

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy... Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................

Více

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet Řešené příklady z lineární algebry - část 2 Příklad 2.: Určete determinant matice A: A = 4 4. Řešení: Determinant matice řádu budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku

Více

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí: Řešené příklady z lineární algebry - část 1 Typové příklady s řešením Příklady jsou určeny především k zopakování látky před zkouškou, jsou proto řešeny se znalostmi učiva celého semestru. Tento fakt se

Více

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu. Determinanty Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Determinanty Definice determinantu Sarrusovo a křížové pravidlo Laplaceův rozvoj Vlastnosti determinantu Výpočet determinantů 2 Inverzní

Více

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém Obsah přednášky Mgr. Květuše Sýkorová Optimalizace Lineární programování Distribuční úlohy Okružní problém KI Př UJEP Ústí nad Labem Nederivační metody Metody 1D optimalizace Derivační metody Optimalizace

Více