• Nebyly nalezeny žádné výsledky

Alternativní optimální řešení je úsečka (zdroj: autor)

3.2.2 Alternativní optimální řešení je polopřímka

Optimálním řešením této úlohy je polopřímka vedoucí z bodu X[8,6,6]. Bod Y[8,6,7] určuje její směr.

maximalizovat funkci (3.2.1), za podmínek

1

Řešení této úlohy je v aplikaci správně vyobrazeno, zelenou barvou je vyznačena množina přípustných řešení, která pokračuje do nekonečna ve směru žlutých bodů, stejně jako polopřímka (optimální řešení). (viz obrázek 27).

3.3 Neomezená hodnota účelové funkce

Pokud nastane případ, že hodnota účelové funkce je neomezená, je v grafu vykreslena množina přípustných řešení, která pokračuje do nekonečna ve směru žlutých bodů (viz obrázek 28). Toto nastane například v uvedené úloze.

maximalizovat funkci (3.2.1), za podmínek

1

Obrázek 28 Výsledek v aplikaci při neomezené hodnotě účelové funkce (zdroj: autor)

4 Závěr

Cílem této bakalářské práce bylo pomocí programovacího jazyka Javascript vytvořit webovou aplikaci, která graficky zobrazuje řešení úloh lineárního programování se třemi proměnnými. Vedlejším cílem bylo, aby aplikace byla co nejjednodušší k ovládání, zadávání modelů úloh a aby výsledné grafy byly co nejvíce srozumitelné a přehledné.

Tyto cíle se podařilo splnit a aplikace je tak funkční a připravena k použití kýmkoliv. Její funkčnost byla otestována mnoha praktickými testovacími úlohami s různými možnostmi výsledků, typy grafů a optimálními řešeními. Do aplikace lze zadávat omezení s maximálně třemi strukturními proměnnými ve tvaru rovnice i nerovnice. Zadávání nulových, identických, nebo lineárně závislých omezení bylo ošetřeno. Pokud je zadána dvourozměrná úloha, aplikace ji nedokáže správně vykreslit, jelikož je připravená pouze na úlohy trojrozměrné.

Vytvořená aplikace s využitím vykreslovací knihovny Plotly.js zobrazí uživateli graf představující grafické řešení zadané úlohy lineárního programování. Do aplikace je možné zadávat neomezený počet omezení, avšak s maximálně třemi strukturními proměnnými a jednou účelovou funkcí. Za použití autorem navrhnutého algoritmu aplikace určí typ výsledku úlohy. Poté podle typu výsledku vykreslí příslušný graf reprezentující vizualizaci úlohy a nalezne řešení úlohy, které je viditelné v grafu a je i slovně interpretováno pod grafem samotným.

Aby byl graf pro uživatele co nejpřehlednější, může uživatel měnit průhlednost hraničních rovin nebo je úplně skrýt a zobrazit si tak pouze řešení samotné. S grafem lze také libovolně otáčet, přibližovat ho, oddalovat ho nebo si jako obrázek uložit pohled na graf. Další výhodou aplikace je rychlé zadávání, upravování i mazání modelu úlohy. Uživatel do předpřipravených formulářů vyplňuje pouze parametry rovnice či nerovnice a z menu vybírá operátor omezení či hledaný extrém účelové funkce.

Vývoj aplikace se neobešel bez potíží. Některé z problémů se podařilo úspěšně vyřešit, jiné zůstávají nedořešené, neboť jejich řešení je časově náročné nebo jsou limitovány technickými možnostmi vykreslovací knihovny. Pokud bych vytvářel aplikaci znovu, zvolil bych místo javascriptu nadstavbu typescript. Využitím typescriptu bych si ušetřil mnoho práce při hledání drobných chyb, hlavně s nesrovnalostmi datových typů. Použitá knihovna na typ takovéto aplikace také není nejvhodnější a nebylo snadné vymyslet, jak ji vhodně použít. Pro tento typ aplikace by bylo nejlepší vyvinout vlastní vykreslovací knihovnu, která by měla veškerou funkcionalitu potřebnou k vytváření takto specifických grafů.

Do budoucna je možné aplikaci rozšířit o další funkcionalitu. Například o průběžné vykreslování grafu během zadávání modelu, ukládání jednotlivých modelů nebo vyznačení směru poloprostorů omezení. Další možností je adaptace aplikace na celočíselné nebo vícekriteriální programování. Možností rozšíření aplikace je skutečně mnoho, a ne všechny jsou nyní zřejmé. Další možnosti se ukážou až postupem času a uživatelským testováním.

Výsledná aplikace je volně dostupná na adrese: LPgraph.com

Použitá literatura

BETTINGER, Pete, BOSTON, Kevin a GREBNER, Donald, 2017. Chapter 7 – Linear Programming. In: sciencedirect.com, ed. Forest Management and Planning (Second Edition) [online]. Second Edition. B.m.: AcademicPress, s. 153–176. [cit. 2021-04-27].

ISBN 978-0-12-809476-1. Dostupné z: doi:10.1016/B978-0-12-809476-1.00007-2 GEOGEBRA, ©2021. GeoGebra [online] [cit. 2021-10-14]. Dostupné

z: https://www.geogebra.org/

JABLONSKÝ, Josef, LAGOVÁ, Milada, 2009. Lineární modely. 2. vydání. Praha:

Nakladatelství Oeconomica, ISBN 978-80-245-1511-3.

KANNAN, T. R., DINAKARAN, G. a LAVANYA, N. J., 2004. A Graphical Approach for Solving Three Variable Linear Programming Problems. In: Researchgate.net[online].

[cit. 2021-04-27]. Dostupné z:

https://www.researchgate.net/publication/269094440_A_Graphical_Approach_for_

Solving_Three_Variable_Linear_Programming_Problems

KOLMAN, Bernard, BECK, Robert, 1995. Elementary Linear Programming with Applications. London (UK): Academic Press, 2. edice. ISBN 978-0-12-417910-3 MATĚJKA, Jakub. Program pro grafické zobrazení řešení úloh lineárního programování. Praha, 2021. Bakalářská práce. Vysoká škola ekonomická v Praze.

MATHWORKS, ©1994-2021. MATLAB - MathWorks [online]. Natick: The MathWorks Inc. [cit. 2021-10-14]. Dostupné

z: https://www.mathworks.com/products/matlab.html

NEBESOVÁ, Anna. Program pro grafické zobrazení řešení v úlohách lineárního programování. Praha, 2017. Bakalářská práce. Vysoká škola ekonomická v Praze.

WOLFRAMALPHA, ©2021. Wolfram|Alpha: Making the world’s knowledge computable [online] [cit. 2021-10-25]. Dostupné z: https://www.wolframalpha.com XUE, Dingyu, 2020. Solving Optimization Problems with MATLAB [e-kniha]. Čína:

De Gruyter STEM. [cit. 2021-05-01] ISBN 978-3-11-066369-3. Dostupné z: https://books.google.cz/books?id=CovZDwAAQBAJ

I

Přílohy

Příloha A: Soubory webové aplikace

Soubor ve formátu ZIP archiv, obsahující veškeré soubory se zdrojovým kódem aplikace.

Příloha B: Diagram výpočtu optimálního řešení (maximalizace)

Soubor ve formátu PNG, diagram popisující výpočet optimálního řešení v případě maximalizace účelové funkce.