Modely dopravních úloh minimalizující dobu přepravy

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

Download "Modely dopravních úloh minimalizující dobu přepravy"

Transkript

1 Mendelova univerzita v Brně Provozně ekonomická fakulta Modely dopravních úloh minimalizující dobu přepravy Disertační práce Vedoucí práce: doc. Ing. Josef Holoubek, CSc. Ing. Pavel Kolman Brno 2012

2 2

3 Na tomto místě bych rád poděkoval doc. Ing. Josefu Holoubkovi, CSc. za odborné vedení, cenné připomínky a zejména za trpělivost, kterou projevoval v průběhu vzniku této disertační práce. Mé díky patří také všem blízkým, kteří mě při psaní této práce podporovali.

4 4

5 Prohlašuji, že jsem tuto disertační práci vypracoval samostatně s využitím pramenů uvedených v seznamu použité literatury. V Brně dne 30. srpna

6 6

7 7 Abstract Kolman, P. Transportation problem models to minimize transportation time. Dissertation thesis. Brno, In this dissertation, methods were proposed for solving models of specific transportation problem to minimize the necessary transportation time. For the proposed models, software was prepared to find solutions to the models. The methods were verified, statistically evaluated and compared using quality of the obtained solutions and time required for solution finding. Finally, for every described method, a practical example was provided. Abstrakt Kolman, P. Modely dopravních úloh minimalizující dobu přepravy. Disertační práce. Brno, V disertační práci jsou navrženy způsoby řešení specifických typů modelů dopravních úloh minimalizujících čas přepravy. Dále je vytvořen podpůrný software, který tyto modely řeší. Navržené metody jsou verifikovány a statisticky vyhodnoceny, přičemž je porovnána kvalita získaného řešení a čas potřebný k jeho nalezení. U každé metody je předvedena názorná ukázka její aplikace na konkrétním příkladě.

8 8

9 OBSAH 9 Obsah 1 Úvod 13 2 Cíl práce 15 3 Literární přehled Matematické modelování Průběh rozhodovacího procesu Operační výzkum a jeho disciplíny Matematické programování Lineární programování Simplexová metoda Kanonický tvar Test optimality Změna báze Ukončení výpočtu Konečnost simplexové metody Problém degenerace a zacyklení Výběr klíčového políčka dle Tyce Charnesova perturbační metoda Blandův algoritmus výběru klíčového políčka Vícekriteriální optimalizace Lexikografická metoda Úlohy řešené pomocí lineárního programování Typy distribučních úloh Obecná dopravní úloha Kontejnerový dopravní problém Obecný distribuční problém Dopravní úloha s mezičlánkem Přiřazovací problém Úloha o pokrytí Okružní dopravní problém Základní pojmy z informatiky Hodnocení kvality algoritmů Metodika práce Testování statistických hypotéz Testy o tvaru rozdělení χ 2 -test dobré shody Test podle Shapira-Wilka Parametrické testy Hypotéza o střední hodnotě Hypotéza o shodě dvou středních hodnot

10 10 OBSAH Hypotéza o rozptylu Hypotéza o shodě dvou rozptylů Neparametrické testy Wilcoxonův dvouvýběrový test Regresní analýza Lineární regresní model Modelovací jazyk Lingo Ovládání programu Popis jazyka, zápis modelů Využití modelovacího jazyka Nejdůležitější funkce Software Gretl Vývojové prostředí jazyka Delphi Návrh vlastní metodiky Modifikace Blandova algoritmu eliminujícího zacyklení Dynamická dopravní úloha s celkovým přepravovaným množstvím Popis řešeného problému Návrh řešení problému Dynamická dopravní úloha s dílčími limity přepravovaného množství Popis modelu DTPN Rychlý algoritmus úlohy DTPN dávající přípustné řešení Pomalá verze řešení úlohy DTPN, bez ověření optimality řešení Algoritmus nalézající optimální řešení Vlastní práce Knihovna datova struktura.pas Knihovna simplexka.pas Export modelů do Linga Export modelů do TEXu Testování knihovny simplexka.pas Optimalizace krmných směsí Vlastní program pro optimalizaci krmných směsí Vstupní data a jejich formát Výstupní data Modifikace knihovny simplexka.pas Program krmiva.pas Hledání optimálního řešení při míchání krmných směsí Praktické využití programu Dynamická dopravní úloha s celkovým přepravovaným množstvím Nově definované datové struktury Procedury a funkce knihovny dynamicka dopravni uloha.pas Struktura vstupních souborů

11 OBSAH Konzolová aplikace DTP.exe Model přepravy s jednou časovou jednotkou Přeprava kalamitního dřeva Dynamická dopravní úloha s dílčími limity přepravovaného množství Datová struktura modelu Knihovna unit DTPN fast.pas Knihovna unit DTPN slow.pas Knihovna unit DTPN optimal.pas Konzolová aplikace dtpn.exe Meření času výpočtů Srovnání algoritmů Přeprava sklízeného ovoce Diskuze Závěr 131 Literatura 133 Přílohy 136 A Model směšovacího problému 137 B Směšovací problém ve vstupním formátu programu 139 C Denní rozpisy odeslaných a přijatých vagonů 141 D Úlohy DTPN řešené algoritmem fast 143 E Úlohy DTPN řešené algoritmem slow 152 F Úlohy DTPN řešené algoritmem optimal 161 G Denní rozpisy odeslaného a dodaného ovoce 171

12 12 OBSAH

13 1 ÚVOD 13 1 Úvod Mezi charakteristické znaky dnešní doby patří nezpochybnitelný technologický pokrok, který zasahuje do mnoha oborů lidské činnosti, a který se nevyhnul ani oblasti kvantitativních metod. Došlo také ke vzniku zcela nových oborů a ovlivnění těch stávajících nově vzniklými. Mezi relativně nové obory, které v posledních desetiletích zažily obrovský rozvoj, patří i informatika ve spojení s výpočetní technikou. Její vývoj ovlivnil i matematiku a tím i oblast kvantitativních metod, neboť díky možnostem využití výpočetní techniky se těmto oblastem otevřely naprosto nové a dříve netušené možnosti. Úlohy, které byly dříve lidskými silami v reálném čase efektivně neřešitelné, se s pomocí počítačů staly řešitelné hravě. Vznikla celá řada nových metod, které byly dříve nemyslitelné. Mezi tyto obory, které jsou úzce spjaty s rozvojem počítačů, patří i operační výzkum. Rozvoj počítačů umožnil rozvoj matematického modelování a především metod pro řešení těchto modelů. Jednou z nich, univerzální pro řešení modelů lineárního programování, je i simplexová metoda. Obrovskou předností je její poměrně rozumná časová složitost. I když v nejhorším možném případě může být počet kroků potřebných k nalezení optimálního řešení až exponenciální vzhledem k rozměrům modelu, v drtivé většině případů tomu tak není a časová složitost metody je pouze polynomiální. To přispívá k obecně dobré řešitelnosti těchto typů úloh. I když pro většinu řešených problémů jsou k jejich popisu nutné nelineární modely, u nichž bývá nalezení optimáního řešení nepoměrně obtížnější, existuje nezanedbatelná skupina problémů, které lze modelovat pomocí lineárního programování a řešit simplexovou metodou. Potom, existuje-li možnost volby, je lepší sestavit model lineární. V rámci množiny úloh lineárního programování existují i speciální případy těchto úloh. Tyto modely potom mají specifickou strukturu, a ačkoli jsou přímo řešitelné simplexovou metodou, byly vyvinuty metody, které využívají struktury těchto modelů k nalezení optimálního řešení s potenciálně lepší časovou složitostí, než je samotná simplexová metoda. Mezi tyto speciální případy patří i dopravní úlohy, mající za cíl minimalizovat cenu přepravy. Jedním z problémů, který se v matematickém modelování objevuje poměrně často je, že i malá změna zadání způsobí rozsáhlou změnu modelu a do značné míry je schopna ovlivnit i jeho řešitelnost tou kterou metodou. To je případ i dopravních úloh, jejichž optimalizačním kriteriem je minimalizace přepravní doby. Pro tyto typy modelů nebylo možné použít některou ze známých metod řešení, proto bylo nutné pro sestavené modely navrhnout způsob, jak je vyřešit. Využití modelů dopravních úloh minimalizujících dobu potřebnou k přepravě se nabízí zejména v situacích, kdy je třeba co nejrychleji přepravit materiál, ať už z důvodu jeho rychlého podléhání zkáze, či jiného důvodu. Nalezení optimálního řešení může v tomto případě zkrátit dobu přepravy na přijatelné minimum. To je důležité zejména u přepravy materiálu, který rychle podléhá zkáze. V tomto případě

14 14 1 ÚVOD využití kvantitativních metod může znamenat jednak úsporu materiálu, který by v opačném případě došel ke zkáze, a také nezanedbatelnou konkurenční výhodu. V tom spočívá síla využití kvantitativních metod pro podporu rozhodování. Je však třeba si uvědomit, že nástroje kvantitativních metod musí zůstat prostředkem, jak usnadňovat lidem rozhodování v jejich práci, pomáhat jim v jejich pracovních činnostech a zlepšovat výkonnost, nikoli být bičem, kterým budeme takzvaně manažerskými metodami v rámci optimalizace, zefektivňování činností a systémových změn zvyšovat mnohdy již tak velký tlak na samotný výkon s cílem bezduché maximalitace zisku bez ohledu na další souvislosti pro úzkou skupinu vyvolených a tím činit lidský život čím dál tím méně snesitelný.

15 2 CíL PRÁCE 15 2 Cíl práce Během řešení praktických problémů v průběhu spolupráce s praxí vyvstala akutní potřeba řešit speciální typy dopravních úloh, jejichž optimalizačním kriteriem byla minimalizace doby potřebné k přepravení materiálu. Problémem bylo, že pro takto definované problémy neexistovaly známé modely umožňující nalezení optimálního řešení. Všeobecně známé způsoby řešení dopravních úloh nebyly s ohledem na specificka popisovaných modelů aplikovatelné. Výše uvedené skutečnosti byly motivací pro sepsání této disertační práce, v jejímž rámci bylo definováno více cílů, které však spolu bezprostředně souvisí. Prvním cílem je navrhnout způsoby řešení těchto problémů. V této souvislosti bude nutné podrobně popsat charakteristiku řešených problémů včetně důvodů, proč nelze použít některé ze stávajících známých způsobů jejich řešení. V dalším kroku budou obecně popsány způsoby sestavování modelů a následně budou navrženy způsoby, jak tyto modely vyřešit. Druhým z cílů je vytvořit pro popisované problémy software umožňující jejich řešení. Pro tvorbu tohoto software bude použito vývojového prostředí Delphi. Pro popisované problémy budou vytvořeny knihovny s algoritmy, které je řeší. U každé knihovny budou popsány její nejdůležitější funkce a bude uvedena ta část zdrojového kódu, která je něčím specifická, resp. je pro danou knihovnu klíčová. Dále bude vytvořena parametricky ovládaná konzolová aplikace, která umožní řešení i pro běžné uživatele. Tento cíl je nezbytný pro splnění dalších dvou cílů. Třetím cílem je otestování a srovnání navržených algoritmů vzhledem ke kvalitě nalezeného řešení a časové náročnosti výpočtu. Při testování budou náhodně vygenerovány problémy, které budou následně vyřešeny. Doba řešení a kvalita nalezeného řešení budou vzájemně porovnávány, přičemž toto srovnání bude statisticky vyhodnoceno. V této souvislosti bude také verifikována správnost (přípustnost) získaného řešení. Čvrtým cílem je ukázat řešení konkrétního praktického problému s pomocí navržených metod a vytvořeného softwaru, a to včetně nalezení a vypsání optimálního řešení, jeho podrobného okomentování a stanovení z toho vyplývajících závěrů. Posledním krokem bude závěrečné shrnutí získaných poznatků.

16 16 3 LITERÁRNí PŘEHLED 3 Literární přehled V následující kapitole budou stručně uvedeny poznatky, z nichž vychází praktická část práce. 3.1 Matematické modelování Oblast matematického modelování [13, 22, 28] zahrnuje desítky disciplín. Jako příklad lze uvést modelování chemických jevů v biologii, sociologii, demografii, meteorologii, aj. Co je tedy model? Je to zjednodušený popis reálného systému, který obsahuje s ohledem na analyzovaný problém nejpodstatnější prvky a vazby mezi nimi. Při tvorbě modelu není možné a ani žádoucí zachytit všechny detaily, nicméně je nutné zaměřit se na ty části modelu, které jsou z hlediska cíle analýzy podstatné. Při vytváření modelu je třeba brát zřetel na tyto skutečnosti: 1. v případě přílišného zjednodušení modelu oproti skutečnosti budou výsledky, které jeho řešením získáme, nereálné, 2. pokud se budeme snažit o co nejvěrnější zachycení skutečnosti, získáme sice kvalitní model, nicméně jeho analýza bude neuskutečnitelná a výsledky nedosažitelné. Sestavování modelu je tedy vždy hledáním kompromisu mezi dokonalým modelem na straně jedné a jeho snadnou řešitelností na straně druhé Průběh rozhodovacího procesu V rámci rozhodovacího procesu je třeba definovat dvě základní role podílející se na problému: rozhodovatel (rozhodovací subjekt), který je zadavatelem problému, a analytik, který je jeho řešitelem. Jakmile analytik získá z jeho pohledu konečné řešení, nabídne jej rozhodovateli, a ten ho buď akceptuje, nebo vrátí k přepracování společně s poopraveným zadáním problému. Zpětná vazba hraje v tomto procesu velmi důležitou roli. Přesný průběh rozhodovacího procesu je k dispozici na obrázku 1. Rozhodovací proces lze rozdělit do následujících fází [13]: 1. Definice problému. Nejprve je třeba existenci problému rozpoznat a následně jej jasně definovat. 2. Ekonomický model. Je chápán jako podrobný slovní popis problému a těch částí reálného systému, které s tímto problémem souvisejí nebo jej dokonce přímo či nepřímo vyvolávají. Je zapotřebí popsat všechny procesy a činitele, kteří ovlivňují jejich průběh. V této fázi je nesmírně důležitý dialog mezi rozhodovacím subjektem a analytikem.

17 3.1 Matematické modelování 17 reálný systém definice problému ekonomický model implementace matematický model řešení úlohy interpretace výsledků, verifikace modelu Obr. 1: Průběh rozhodovacího procesu. Zdroj: Fábry [13]. 3. Matematický model. Matematický model je obecně převedením ekonomického modelu do světa matematiky či lépe řečeno do světa exaktních věd. Jednotlivé části ekonomického modelu se stávají parametry, proměnnými, funkcemi, rovnicemi, nerovnicemi, grafy, atd. 4. Řešení úlohy. Pokud je v možnostech současné vědy a techniky vyřešit sestavený model v rozumném čase, je jeho vlastní řešení rutinní záležitostí 1 realizovanou obvykle s pomocí konkrétního softwaru. 5. Interpretace výsledků. Jde o slovní vyjádření či vysvětlení numerických výsledků, získaných v předchozím kroku při řešení úlohy. Při interpretaci se analytik vrací zpět přes matematický model až k ekonomickému modelu, kterému zadavatel rozumí, neboť jej společně s analytikem sestavoval. Tato činnost je na obrázku 1 znázorněna šipkou směrem k ekonomickému modelu. Verifikace modelu je ověření správnosti sestaveného modelu a posouzení reálnosti získaných výsledků. 6. Implementace. Tento krok následuje po úspěšné verifikaci modelu, je završením celého rozhodovacího procesu. Zadavatel získal od analytika reálné výsledky a je na něm, aby tyto výsledky uvedl do praxe. Cílem implementace je zlepšit fungování systému. Přestože v tuto chvíli rozhodovací proces končí implementací výsledků, měla by po něm následovat ještě kontrola toho, zda byla provedená změna pro reálný systém skutečně očekávaným přínosem. Chyby se totiž lze dopustit v každé fázi rozhodovacího procesu. 1 O těchto problémech se zmiňuje kapitola 3.11.

18 18 3 LITERÁRNí PŘEHLED 3.2 Operační výzkum a jeho disciplíny Operační výzkum (někdy také Operační analýza) je souborem víceméně samostatných vědeckých disciplín, jejichž společným jmenovatelem je hledání nejlepšího, optimálního řešení. Mezi základní disciplíny operačního výzkumu patří [22]: 1. Matematické programování, které je podrobněji popsáno v sekci Vícekriteriální rozhodování se zabývá analýzou rozhodovacích úloh, kde jsou varianty hodnoceny podle více kriterií zároveň. V typickém případě nejsou hodnotící kriteria ve vzájemném souladu. 3. Teorie grafů patří mezi velmi často používané odvětví operačního výzkumu. Nejčastější použití je v oblasti analýzy a řízení projektů. 4. Teorie zásob se zabývá strategií řízení zásobovacího procesu a optimalizací objemu skladovaných zásob, optimalizačním kriteriem bývá minimalizace nákladů souvisejících s držením, objednáváním a vydáváním zásob ze skladu. 5. Teorie hromadné obsluhy zkoumá chování systémů, ve kterých se vyskytují dva typy jednotek: požadavky, které do systému přicházejí, a obslužné linky, které tyto požadavky vyřizují. S tím souvisí i vznik front. 6. Modely obnovy zkoumají systémy, ve kterých jsou jednotky, které po určité době selžou a je třeba je nahradit novými. Cílem je odhadnout věkovou strukturu těchto jednotek a predikovat počty, které bude třeba nahradit. 7. Markovovy rozhodovací procesy představují obecný prostředek pro popis chování dynamických systémů. Cílem je predikce budoucího chování těchto systémů. 8. Teorie her řeší konfliktní rozhodovací situace. Jednotliví účastníci (hráči) mají strategie chování a na základě jejich uplatnění závisí hráčova výhra či prohra. Teorie her se zabývá hledáním optimálních strategií maximalizujících pravděpodobnost výhry. 9. Simulace je silným nástrojem pro analýzu složitých systémů, které by šly jinak analyzovat jen stěží. Spočívá v experimentování s vytvořeným modelem daného systému na počítačích. Simulace obvykle probíhá ve zrychleném čase. 3.3 Matematické programování Matematické programování se zabývá řešením optimalizačních úloh, ve kterých se jedná o nalezení extrému daného kriteria, definovaného ve tvaru kriteriální funkce n proměnných, na množině variant určených soustavou omezujících podmínek, které jsou zadány ve tvaru lineárních nebo nelineárních rovnic či nerovnic. Matematický model úlohy matematického programování zapíšeme následovně [28]:

19 3.4 Lineární programování 19 maximalizovat (minimalizovat) za podmínek z = f(x 1, x 2,..., x n ), g 1 (x 1, x 2,..., x n ) 0 g 2 (x 1, x 2,..., x n ) 0 (1) g m (x 1, x 2,..., x n ) 0 x 1, x 2,..., x n 0, kde n je počet proměnných modelu, m je počet jeho omezujících podmínek a f( x), g i ( x), i = 1, 2,..., m jsou obecné funkce n proměnných. Z matematického hlediska hledáme hodnoty proměnných x j, které respektují omezující podmínky a zároveň dosahují extrému dané kriteriální funkce. V případě, že účelová funkce a všechny omezující podmínky jsou lineární, mluvíme o úloze lineárního programování, v opačném případě o úloze nelineárního programování. Aplikace úloh lineárního programování jsou poměrně četné, úlohy nelineárního programování jsou s ohledem na jejich mnohdy problematickou řešitelnost výrazně méně používané. Matematické programování zahrnuje mimo jiné následující oblasti: Konvexní programování, které je speciálním případem úlohy matematického programování, kde účelová funkce i omezující podmínky jsou konvexní. Kvadratické programování má kvadratickou a zároveň konvexní účelovou funkci, omezující podmínky jsou lineární. Jde o speciální případ úlohy konvexního programování. Lineární programování, jehož účelová funkce i omezující podmínky jsou lineární. Pro jeho řešení se používá simplexové metody. Je speciálním případem úlohy kvadratického programování s nulovými koeficienty u nelineárních členů Lineární programování Vznik lineárního programování je datován roky Lineární programování proto, že použité funkce popisující model jsou výhradně lineární. Úloha lineárního programování je obecně řešitelná simplexovou metodou. Úlohu lineárního programování lze zapsat následovně: z max(min) = c T x A x b x 0, (2) kde:

20 20 3 LITERÁRNí PŘEHLED c T = (c 1,..., c n ) je vektor koeficientů účelové funkce, A = (a ij ), kde i = 1,..., m a j = 1,..., n je matice strukturních (technickoekonomických) koeficientů, x = (x 1,..., x n ) T je vektor hledaných proměnných, b = (b 1,..., b m ) T je vektor pravých stran soustavy omezujících podmínek. 3.5 Simplexová metoda Simplexová metoda je univerzální metodou zformulovanou pro řešení neceločíselných úloh lineárního programování. Jedná se o iterativní metodu a byla zformulována Dantzigem v roce Její princip spočívá v testování sousedních vrcholů v rámci množiny přípustných řešení. Zkoumáme, zda zlepší, zhorší či nezmění hodnotu účelové funkce. V praxi je simplexová metoda velmi efektivní, většinou je pro vyřešení úlohy potřeba od 2m do 3m kroků, kde m je počet omezení a její časová složitost je polynomiální [33]. V nejhorším případě může být časová složitost simplexové metody exponenciální, jak dokládá např. [25]. Výpočet simplexovou metodou probíhá ve dvou fázích: 1. fáze nalezení přípustného řešení během výpočtu se pohybujeme ve vrcholech mimo oblast přípustných řešení, alespoň jedna omezující podmínka není splněna, 2. fáze zlepšování přípustného řešení až do dosažení optimálního řešení vrcholy, ve kterých se pohybujeje, náleží do množiny přípustných řešení, dochází k postupnému zlepšování hodnoty účelové funkce. Dále popisovaný algoritmus simplexové metody bude odpovídat dvoufázové metodě s tím rozdílem, že jednotlivé fáze nebudou striktně odděleny Kanonický tvar Mějme úlohu LP, řešitelnou simplexovou metodou. V prvním kroku je nutné ji transformovat na tzv. kanonický tvar. Úloha obsahuje n proměnných 3 a m omezujících podmínek. Při převodu na kanonický tvar se v úloze objeví dva nové typy proměnných: doplňkové a umělé proměnné. 4 Úkolem doplňkových proměnných je upravit jednotlivé omezující podmínky do tvaru rovnic. Jejich hodnota je rovna rozdílu mezi levou a pravou stranou omezující podmínky, koeficient účelové funkce je nulový. U omezujících podmínek ve tvaru 2 Výpočet v rámci obou fází bude probíhat shodně. Rozdíl mezi první a druhou fází výpočtu bude v přítomnosti umělých proměnných v bázi dokud budou v bázi přítomny umělé proměnné s kladnou hodnotou, půjde o první fázi výpočtu, po jejich eliminaci o druhou fázi výpočtu. 3 Proměnná n odpovídá počtu strukturních, doplňkových a umělých proměnných. 4 V některé literatuře je možné se setkat s pojmy přídatná proměnná odpovídající doplňkové a pomocná proměnná odpovídající umělé proměnné.

21 3.5 Simplexová metoda 21 se doplňkové proměnné přičítají, pro omezení typu odečítají. Umělé proměnné mají za úkol doplnit chybějící jednotkové sloupcové vektory tak, aby úloha v kanonickém tvaru obsahovala jednotkovou submatici. Z toho důvodu se vyskytují v omezujících podmínkách, které neobsahují kladnou doplňkovou proměnnou: v omezeních typu = a. V účelové funkci je jejich koeficientům přiřazena prohibitivní sazba: +M pro minimalizační a M pro maximalizační typy úloh, zajišťující jejich přednostní vyřazení z báze (eliminaci). Tab. 1: Pravidla pro přidávání doplňkových a umělých proměnných. Zdroj: vlastní práce. doplňková umělá typ omezení proměnná proměnná +d = +u d +u V kanonickém tvaru obsahuje úloha LP v matici strukturních koeficientů právě m jednotkových sloupcových vektorů, z nichž lze vytvořit jednotkovou submatici (počet jednotkových sloupcových vektorů je identický s počtem vlastních omezujících podmínek). Pak proměnné x 1,..., x m tvořící jednotkovou matici nazveme bazické proměnné, zbývající proměnné x m+1,..., x n jako nebazické proměnné. 5 Hodnoty bazických proměnných jsou rovny hodnotám pravé strany, nebazické proměnné jsou vždy rovny nule. Řešení lze vyjádřit soustavou rovností: x 1 + α 1, m+1 x m α 1n x n = β 1 x 2 + α 2, m+1 x m α 2n x n = β x m + α m, m+1 x m α mn x n = β m (3) Test optimality Vektor řešení soustavy (3) lze zapsat jako x T B = (β { }} { 1,..., β m, 0,..., 0) a hodnota účelové funkce z B = c T x B = c 1 β 1 + c 2 β c m β m. Nyní předpokládejme, že novou bazickou proměnnou se stane proměnná x r namísto proměnné x s. Hodnota do báze nově vstupující proměnné x r = t, pro t > 0. Novému bazickému řešení bude potom odpovídat vektor 5 V literatuře se také může objevit označení základní proměnné pro bazické a nezákladní proměnné pro nebazické proměnné. n m

22 22 3 LITERÁRNí PŘEHLED x R = x 1 = β 1 α 1r t x 2 = β 2 α 2r t. x s = β s α sr t = 0 x m = β m α mr t x m+1 = 0 x r = t. x n = 0 Dosazením vektoru x R do účelové funkce dostaneme výraz z R = c T x R. Jeho rozepsáním a úpravou získáme z R = c 1 β 1 + c 2 β c s β s + c m β m t(c 1 α 1r + c 2 α 2r c s α sr + c m α mr ) + c r t. Substitucí z r = c 1 α 1r + c 2 α 2r c s α sr + c m α mr a vytknutím t před závorku obdržíme z R = z B t(z r c r ). Z uvedeného vyplývá, že výraz t(z r c r ) určuje celkovou změnu účelové funkce. Ke zlepšení hodnoty účelové funkce proto dojde u maximalizačních úloh pouze v případě, že z r c r < 0 a u minimalizačních v případě opačném, tj. z r c r > 0. Označme tento výraz symbolem r a nazvěme jej indexním číslem. Z výše uvedeného odvození lze nyní formulovat test optimality, nejprve obecně: řešení úlohy LP je optimální v tom případě, kdy jakákoli do báze nově vstupující proměnná nezlepší hodnotu účelové funkce. Konkrétně u maximalizačních úloh musí pro všechny proměnné platit j = z j c j 0 a u minimalizačních j = z j c j Změna báze V případě, že při hledání optima je kriterium optimality porušeno, je nutné přejít do některého ze sousedních vrcholů s lepší hodnotou účelové funkce. Obecně probíhá změna báze tak, že je nejdříve určena proměnná vstupující do báze a následně proměnná z báze vystupující dle těchto pravidel: 1. Proměnnou vstupující do báze vybereme podle pravidel: (4) min { j } pro j < 0, resp. (5) max { j } pro j > 0, (6) kde (5) platí pro maximalizační a (6) pro minimalizační typy úloh, j = 1,..., n. 2. Proměnná vystupující z báze s ohledem na dodržení podmínek nezápornosti je nutné zvolit jako vystupující z báze tu bázickou proměnnou, kde je nejmenší podíl pravé strany a kladného strukturního koeficientu, tj. { } βi min pro α ir > 0. (7) α ir

23 3.5 Simplexová metoda 23 Vstupující proměnná v simplexové tabulce určuje tzv. klíčový sloupec, vystupující klíčový řádek. Jejich průsečíkem je klíčový prvek, tzv. pivot. Pro přepočet se použije Gaussova metoda úplné eliminace. Po přepočtu je nutné opět úlohu otestovat kriteriem optimality a případně dále pokračovat ve výpočtu, pokud nově získané řešení není optimální, resp. výpočet ukončit [22, 19, 34] Ukončení výpočtu Po konečném počtu kroků docházíme k výsledku řešené úlohy LP. Situace, které mohou nastat, jsou uvedeny v následujícím výčtu: Úloha má jedno optimální řešení kriterium optimality je splněno, v bázi se nevyskytuje umělá proměnná s kladnou hodnotou a všechna indexní čísla nebázických proměnných jsou různá od nuly. Úloha má více optimálních řešení kriterium optimality je taktéž splněno, v bázi se nevyskytuje umělá proměnná s kladnou hodnotou a alespoň jedno indexní číslo pro nebazickou proměnnou se rovná nule. Úloha nemá konečné optimální řešení kriterium optimality není splněno, v klíčovém p-tém sloupci jsou všechna α ip 0 a z toho důvodu nelze určit proměnnou vystupující z báze. 6 Úloha nemá ani jedno přípustné řešení kriterium optimality je splněno, přičemž v bázi zůstala alespoň jedna umělá proměnná s kladnou hodnotou. 7 Vývojový diagram přesně popisující jednotlivé kroky výpočtu je uveden na obr. 2 na straně 24. Je třeba podotknout, že existuje více modifikací simplexové metody. Vlastní výpočet obvykle probíhá v simplexové tabulce, již podrobně popisuje např. [12]. 6 Obvykle jde o nevhodně sestavený model. 7 Jedná se o případ, kdy byl výpočet ukončen již v první fázi řešení. Druhou fázi není možné zahájit, protože množina přípustných řešení je prázdná.

24 24 3 LITERÁRNí PŘEHLED start formulace kanonického tvaru, určení VBŘ výchozí simplexová tabulka test optimality (výpočet j) ano ne je splněn TO um. prom. = 0 úloha nemá přípustné řešení ne určení klíčového sloupce p konec ano αip 0 úloha nemá konečné OŘ ano ne ano určení klíčového řádku konec nebázická j 0 1 BOŘ ne ne určení klíčového políčka více BOŘ αip 0 konec ano změna báze konec 1 BOŘ + NEBOŘ konec Legenda: VBŘ výchozí bazické řešení TO test optimality OŘ optimální řešení BOŘ bazické optimální řešení NEBOŘ nebazické OŘ Obr. 2: Algoritmus simplexové metody. Zdroj: vlastní práce.

25 3.6 Konečnost simplexové metody Konečnost simplexové metody Podle Lagové [28] najdeme optimální řešení úlohy LP mezi bazickými přípustnými řešeními. Jejich počet je konečný, horní hranice je dána kombinačním číslem ( ) m + n (m + n)! =, (8) m m! n! kde m je počet vlastních omezujících podmínek a n počet proměnných Problém degenerace a zacyklení Simplexová metoda je metodou iterativní a vyznačuje se konečným počtem kroků, potřebných k nalezení optimálního řešení, jejichž horní hranice je určena vztahem (8). Avšak v případě výskytu degenerovaného řešení (bazické řešení obsahuje méně kladných proměnných než vlastních omezujících podmínek) může dojít k situaci, že změna účelové funkce je při změně báze nulová, neboť pravá strana některého z omezení je rovna nule. Pokud se nulová změna účelové funkce vyskytuje ve více řádcích, může dojít k zacyklení. Při ručním výpočtu si řešitel zacyklení snadno uvědomí, ale při výpočtu na počítači se v případě neošetření tohoto problému program dostane do nekonečné smyčky. Proto je důležité tento potenciální problém ošetřit Výběr klíčového políčka dle Tyce Běžně užívaný způsob volby pivota, popsaný v podsekci 3.5.3, nevede nejrychleji k optimálnímu řešení a v extrémních případech hrozí zacyklení, jak uvádí Tyc [42]. Uvádí, že běžně popisovaný postup nechá vstoupit do nové báze vrchol s nejlepším jednotkovým zlepšením učelové funkce, ačkoli jeho celkové zlepšení může být v případě degenerované úlohy i nulové. Do nové báze doporučuje zvolit proměnnou s maximálním celkovým zlepšením účelové funkce dle vzorců: { { }} βi z max = min r min (9) r<0 α ir u maximalizačních typů úloh a { { }} βi z min = max r min r>0 α ir (10) u minimalizačních typů úloh, α ir > 0, i = 1,..., m a r je index proměnných porušujících test optimality. Autory popisovaný způsob nejenže může dojít k optimálnímu řešení při menším počtu kroků, ale také vylučuje možnost vzniku zacyklení, popisovaného např. v [15]. Jak uvádí [42, str. 173]: Je s podivem, že se tomuto tématu věnuje spousta zbytečných stran v řadě seriozních knih, i když jde ve skutečnosti o pseudoproblém, uměle

26 26 3 LITERÁRNí PŘEHLED nastolený zjevně proto, aby se tyto zbytečné strany (a řada zbytečných článků) mohly zaplnit. Zvolíme-li totiž optimální kriterium, nemůže cyklus nikdy nastat z principu. Tento způsob eliminace zacyklení je pouze částečný. Oproti tvrzení Tyce zacyklení spolehlivě zabrání pouze v případě, že existuje { } βi r min 0. (11) α ir Pokud v příslušné bázi neexistuje možnost zvolit pivota, jehož uvedení do báze by způsobilo nenulovou změnu účelové funkce, k zacyklení dojít může. Jako příklad lze zvolit např. libovolný přiřazovací problém rozměru alespoň 10 10, řešený pomocí simplexové metody Charnesova perturbační metoda Princip metody [28, 29] spočívá v úpravě úlohy tak, aby všechny pravé strany měly kladnou hodnotu. Tím zajistíme kladnou změnu účelové funkce. V okamžiku, kdy podle (7) najdeme ve více řádcích b i = 0 a není možno jednoznačně určit klíčový řádek, uvažujeme namísto vektoru pravých stran b vektor perturbovaných pravých stran n b(ε) = b + ε j a j, (12) j=1 kde a j je j-tý sloupec matice strukturních koeficientů A a 0 < ε < 1 je dostatečně malé kladné číslo blízké nule. Uvažujeme pouze řádky, ve kterých jsme našli b i = 0. Seřadíme-li sloupce tabulky a j tak, že na prvním místě je sloupec s kladnými koeficienty, jsou perturbované pravé strany kladné a změna účelové funkce je nenulová. Nemůže tedy dojít k zacyklení báze. Jestliže takový sloupec nenajdeme, můžeme dát na prvních m míst v matici A jednotkové vektory bazických proměnných a tím zaručit kladné perturbované pravé strany. Z takto upravených pravých stran určíme klíčový řádek podle vztahu (7). Protože podle (12) má každý další sloupec menší vliv na hodnotu perturbované pravé strany, nemusíme pracně vypočítávat jejich hodnotu, ale můžeme postupně dělit sloupce seřazené matice A odpovídajícími koeficienty klíčového sloupce tak dlouho, až jednoznačně označíme klíčový řádek (tj. na místo vektoru pravých stran b postupně dosazujeme seřazené sloupce simplexové tabulky). Předpokládejme pro jednoduchost, že klíčový sloupec je k-tý, sloupce jsou uspořádány a k nejednoznačnosti při určování klíčového řádku došlo v prvních dvou sloupcích, tj. b 1 a 1k a b 2 { a11 1. min, a 21 a 1k a 2k }, a 2k. Hledáme tedy:

27 3.6 Konečnost simplexové metody 27 { a12 2. min },, a 22 a 1k a 2k { a13 3. min, a } 23 a 1k a 2k... tak dlouho, až jednoznačně určíme klíčový řádek. Seřazení vektorů a j se pak musí dodržovat během celého výpočtu Blandův algoritmus výběru klíčového políčka V průběhu řešení úloh LP během výpočtu může v jednotlivých iteracích simplexové metody dojít k zacyklení, například u této úlohy lineárního programování [41] z max = 10x 1 57x 2 9x 3 24x 4 0,5x 1 5,5x 2 2,5x 3 + 9x 4 0 0,5x 1 1,5x 2 0,5x 3 + x 4 0 x 1 1 x 1, x 2, x 3, x 4 0 v případě, že pro změnu báze bude volen pivot podle vzorců (5) a (7) běžného užívaného algoritmu určení klíčového políčka, viz kapitola To je velký problém zejména v případě počítačového řešení příslušných úloh, kdy se při výpočtu program dostane do nekonečné smyčky a následuje buď jeho pád nebo vynucené ukončení bez jakékoli šance na nalezení optimálního řešení. Start Je úloha maximalizační? ano Najdi sloupec r, kde r = min{j} pro j > 0. ne Najdi sloupec r, kde r = min{j} pro j < 0. Najdi { řádek } l, kde l = βi min pro α ir > 0. α ir Souřadnice kĺıčového poĺıčka jsou (l, r). Konec Obr. 3: Blandův algoritmus eliminující zacyklení. Zdroj: vlastní práce.

28 28 3 LITERÁRNí PŘEHLED Řešení problému zacyklení přináší Blandův anticyklický algoritmus [3]. Jde o jednoduché pravidlo pro výběr klíčového políčka, skládající se ze dvou částí: výběr klíčového sloupce, kdy ze všech sloupců porušujících test optimality vybere sloupec s nejmenším indexem r, výběr klíčového řádku, kdy ze všech nejmenších podílů vybere ten, který má nejmenší index l. Aplikací tohoto pravidla dojde k eliminaci zacyklení. To je velmi důležité pro stabilitu výpočtů, zejména u speciálních typů úloh LP, které mohou mít díky silné degeneraci k zacyklení sklony. Vývojový diagram použití Blandova anticyklického pravidla je k dispozici na obrázku Vícekriteriální optimalizace Při sestavování modelů rozhodovacích problémů se občas vyskytuje požadavek na nalezení optimálního řešení, které vyhovuje více stanoveným kriteriím. Touto problematikou se zabývá vícekriteriální rozhodování, viz např. [17, 19]. Obecný model vícekriteriálního lineárního programování má tvar: z s max = n c sj x j pro s = 1, 2,..., k, j=1 n a ij x j b i pro i = 1, 2,..., m, (13) j=1 x j 0 pro j = 1, 2,..., n, kde k je počet zvolených kriterií, tj. účelových funkcí. Zápis předpokládá všechny účelové funkce jako maximalizační, což lze zajistit obrácením znamének koeficientů účelové funkce u minimalizačních účelových funkcí. Ačkoli existují i jiné metody vícekriteriální optimalizace, mezi nejčastěji používané patří: metoda globální účelové funkce, lexikografická metoda, metoda cílového programování. Z hlediska zpracování disertační práce je podstatná lexikografická metoda, která je popsána v následující podsekci Lexikografická metoda Při použití této metody musí rozhodovatel určit pořadí významnosti jednotlivých účelových funkcí. Řekněme, že z 1 max je nejdůležitější, další v pořadí je z 2 max, atd.

29 3.8 Úlohy řešené pomocí lineárního programování 29 až poslední je z k max. Řešení popisovanou metodou probíhá v několika krocích, kdy v s-tém kroku, pro s = 1, 2,..., k, řešíme úlohu: z s max = c s x A x b c 1 x z1 c 2 x z2 (14) c s 1 x zs 1 x 0 V každém kroku tedy připojujeme podmínku, že hodnota optimalizovaného kriteria v předchozím kroku neklesne pod ideální hodnotu z s. Přechod k dalšímu kroku je omezen jen na případy, kdy má úloha více než jedno řešení. Proto je v praxi metoda modifikovaná tak, že v každém dalším kroku připustíme předem stanovenou odchylku od získané hodnoty kriteria v kroku předcházejícím, v s-tém kroku tedy řešíme úlohu. z s max = c s x A x b c 1 x z1 δz 1 c 2 x z2 δz 2 (15). c s 1 x zs 1 δz s 1 x 0 Metoda je výhodná v tom, že kopíruje reálné uvažování manažerů při rozhodování o výběru nejvhodnější varianty plánu, jak uvádí Gros [17]. 3.8 Úlohy řešené pomocí lineárního programování S pomocí metod lineárního programování lze řešit poměrně širokou škálu úloh. Zde je výčet těch nejznámějších [28]: 1. Úlohy výrobního plánování (problém alokace zdrojů). Jde o určení výrobního sortimentu v podmínkách omezených vstupů (kapacity surovin, energie, strojového času, atd.) a výstupů (je dán minimální či maximální objem produkce, výrobní poměr výrobků, atd.). Optimalizačním kriteriem je obvykle minimalizace nákladů, resp. maximalizace zisku. 2. Úlohy finančního plánování (optimalizace portfolia). Cílem je určit objem investic do jednotlivých investičních variant. Optimalizačním kriteriem je

30 30 3 LITERÁRNí PŘEHLED maximalizace očekávaného výnosu za určeného maximálního rizika, resp. minimalizace rizika. Proměnné představují objemy investic. 3. Směšovací problém (nutriční, výživový problém). Cílem je vytvořit směs (roztok, slitinu,... ) požadovaných vlastností s tím, že pro její vytvoření lze použít danou nabídku výchozích komponent. Proměnné v úloze odpovídají použitým komponentám, hodnoty proměnných množství (objemu) použitých komponent. Optimalizačním kriteriem je minimalizace nákladů na vytvoření požadované směsi. 4. Úloha o dělení materiálu (řezný problém). Úkolem je rozdělit materiál na menší části tak, aby byl minimalizován odpad. Přitom je třeba respektovat požadavky na to, v jakém poměru mají vzniklé menší části být, kolik jich má vzniknout atd. Úloha o dělení materiálu může být jednorozměrná resp. vícerozměrná. Jednorozměrný problém vede na úlohu lineárního programování, vícerozměrný je výrazně složitější. 5. Rozvrhování pracovníků na směny. V tomto typu úloh bývá definována celá řada omezujících podmínek, vycházejících např. z kvalifikace pracovníků, minimálního nebo pevně stanoveného počtu pracovníků, kteří musí být v jednom okamžiku na směně, atd. Proměnné v modelu určují, zda pracovník na směnu přiřazen bude, resp. nebude. 6. Distribuční úlohy lineárního programování. Jedná se o velkou skupinu úloh, která s ohledem na zaměření disertační práce bude popsána v sekci Typy distribučních úloh V této kapitole je uveden přehled nejčastěji používaných distribučních úloh. I přes veškerou snahu se nepodařilo najít modely, které by řešily dopravní úlohy z hlediska minimalizace času. Distribuční úlohy jsou speciálním případem úloh lineárního programování. Jako úlohy lineárního programování jsou řešitelné běžnou simplexovou metodou. S ohledem na jejich vlastnosti již poměrně malé dopravní úlohy vedou k rozměrným simplexovým tabulkám. S ohledem na jejich specifika lze využít speciálních algoritmů, které výpočet zjednodušují [35] Obecná dopravní úloha Dopravní úlohu lze formulovat za následujících předpokladů [35]: je přepravován stejnorodý produkt (materiál) od dodavatelů k odběratelům, mezi každým dodavatelem a odběratelem je uvažována pouze jedna dopravní cesta, po každé cestě lze převézt libovolné množství materiálu,

31 3.9 Typy distribučních úloh 31 přepravní náklady jsou přímo úměrné přepravovanému množství. V rámci dopravní úlohy je dáno m dodavatelů D 1,..., D m a n odběratelů O 1,..., O n. Každý z dodavatelů má kapacitu skladu a i, pro 1 i m a každý z odběratelů určený požadavek b j, 1 j n. Přepravovaný materiál může být přepraven od libovolného dodavatele k libovolnému odběrateli, náročnost přepravy mezi i-tým dodavatelem a j-tým odběratelem je ohodnocena cenou c ij. Kapacity dodavatelů nesmí být překročeny, požadavky odběratelů musí být uspokojeny, tzn. m a i n b j. 8 Pak, při splnění uvedených podmínek, lze model dopravní úlohy i=1 j=1 zapsat takto [34]: Z min = m n c ij x ij (16) i=1 j=1 n x ij a i (i = 1, 2,..., m) (17) j=1 m x ij = b i (j = 1, 2,..., n) (18) i=1 x ij 0 (19) Model obsahuje celkem m + n omezujících podmínek. Prvních m omezujících podmínek určených dle vzorce (17) zajišťuje nepřekročení kapacity žádného z dodavatelů. Následujících n omezujících podmínek vyjádřených vzorci (18) zaručí naplnění požadavků každého z odběratelů. Tato dopravní úloha je přímo řešitelná simplexovou metodou. Její rozměry jsou však částečně limitující: úloha o m dodavatelích a n odběratelích bude mít v základním tvaru m + n omezujících podmínek a m n strukturních proměnných, přičemž při převodu do kanonického tvaru by přibylo dalších m doplňkových a n umělých proměnných. Přitom struktura úlohy zůstává neměnná s nejméně m n (m+n 1) nulovými proměnnými v matici úlohy v základním tvaru. Rozměry úlohy a její charakteristické vlastnosti byly důvodem k vytvoření speciálních algoritmů s vyšší efektivitou řešení. Ty jsou popsány např. v [34] Kontejnerový dopravní problém Představuje modifikaci dopravního problému, kdy je přeprava realizována s pomocí kontejnerů o kapacitě K jednotek. Náklady na přepravu jsou vztaženy na jeden kontejner bez ohledu na to, zda je či není plný. 8 Za takto zadaných podmínek je úloha, kde a i < b j neřešitelná, matematicky ovšem řešitelná je a ekonomický smysl dává také.

32 32 3 LITERÁRNí PŘEHLED kde: Model kontejnerového dopravního problému zapíšeme jako m n z min = c ij y ij i=1 j=1 n x ij a i, j=1 m x ij = b j, (20) i=1 x ij Ky ij, x ij 0, y ij 0, celá, x ij je objem přepravy v počtu přepravených jednotek mezi i-tým dodavatelem a j-tým odběratelem, y ij je počet kontejnerů pro přepravu mezi i-tým dodavatelem a j-tým odběratelem, c ij jsou náklady na přepravu jednoho kontejneru mezi i-tým dodavatelem a j-tým odběratelem, a i je kapacita i-tého dodavatele, b j je požadavek j-tého odběratele, K je kapacita kontejneru. Opět budeme předpokládat, že součet kapacit dodavatelů je větší nebo roven součtu požadavků odběratelů Obecný distribuční problém Obecný distribuční problém se liší od dopravního problému v tom, že kapacity dodavatelů a požadavky odběratelů nejsou uvedeny ve stejných jednotkách. Pro vzájemnou porovnatelnost je třeba do modelu zařadit přepočítací koeficienty. Matematický model obecného distribučního problému zapíšeme následovně: m n z min(max) = c ij x ij i=1 j=1 n x ij a i, (21) j=1 m k ij x ij = b j, i=1 x ij 0,

33 3.9 Typy distribučních úloh 33 kde: x ij jsou proměnné modelu, c ij jsou cenové koeficienty, a i je kapacita i-tého dodavatele (zdroje) v měrných jednotkách č. 1, b j je požadavek j-tého odběratele v měrných jednotkách č. 2, k ij jsou přepočítací koeficienty popisující vztah mezi i-tým zdrojem a j-tým požadavkem Dopravní úloha s mezičlánkem Je modifikací úlohy Dopravní problém zde má dva navazující stupně. V prvním je přepravováno zboží od dodavatelů (výrobců) D i do meziskladu M j, ve druhém z meziskladu M j k odběratelům O k, pro i = 1,..., m, j = 1,..., n a k = 1,..., s. Optimalizačním kriteriem je minimalizace celkové náročnosti dopravy. Matematický model obecného distribučního problému zapíšeme následovně: z min = m n n s c ij x ij + d jk y jk i=1 j=1 j=1 k=1 m x ij i=1 n x ij a i, j=1 m x ij b j, i=1 s y jk b j, (22) k=1 n y jk = p k, j=1 s y jk = 0, k=1 x ij, y ij 0, kde: x ij jsou proměnné modelu vztahující se k přepravě od D i do M j, y jk jsou proměnné modelu vztahující se k přepravě z M j k O k, c ij jsou cenové koeficienty vztahující se k dopravě od D i do M j, d jk jsou cenové koeficienty vztahující se k dopravě z M j k O k, a i je kapacita i-tého dodavatele (zdroje), b j je kapacita j-tého meziskladu, p k je požadavek k-tého odběratele.

34 34 3 LITERÁRNí PŘEHLED Dvoustupňové dopravní úlohy lze řešit buď simplexovou metodou nebo pomocí upraveného algoritmu modifikované metody užívané pro řešení dopravních úloh, jak uvádí Holoubek [19] Přiřazovací problém Podle Jablonského [22] lze přiřazovací problém charakterizovat jako úlohu, ve které se jedná o nalezení vzájemně jednoznačného přiřazení dvojice jednotek ze dvou skupin (jednotky z 1. skupiny si označíme A i pro i = 1..., n, jednotky ze druhé skupiny B j pro j = 1,..., n) tak, aby toto přiřazení přineslo co největší efekt. Obě skupiny mají stejný počet prvků. Matematický model přiřazovacího problému zapíšeme následovně: z min(max) = n i=1 n c ij x ij j=1 n x ij = 1, j=1 n x ij = 1, (23) i=1 x ij = { 0 1, kde: x ij má hodnotu 1, je-li jednotka A i přiřazena jednotce B j, v opačném případě má hodnotu 0, c ij je cena přiřazení jednotky A i jednotce B j. Přiřazovací problém je možné řešit buď simplexovou metodou (která je obecnější), anebo tzv. Maďarskou metodou, která byla vyvinuta specielně pro tento typ problému Úloha o pokrytí Cílem úlohy o pokrytí je rozhodnout o výstavbě K obslužných stanic, které mohou být umístěny v obvodech O i pro i = 1,..., n a kde n > K. S rozhodnutím o výstavbě je třeba přiřadit každé stanici pole působnosti, tj. obvody, které jimi budou obsluhovány. Matematický model úlohy o pokrytí je následující: z min = n n c ij x ij f j i=1 j=1

35 3.9 Typy distribučních úloh 35 kde: n x ij ny i, j=1 n x ij = 1, (24) i=1 n y i = K, i=1 x ij, y i = { 0 1, x ij má hodnotu 1, je-li obvod O j obsluhován stanicí zřízenou v obvodě O i, y i má hodnotu 1 v případě, že stanice je zřízena v lokalitě O i, v opačném případě má hodnotu 0, K je počet stanic. Tato úloha je modifikací přiřazovacího problému Okružní dopravní problém Problém se občas nazývá Úloha obchodního cestujícího. Je dáno n míst A 1, A 2,..., A n. Obchodní cestující se nachází ve výchozím stanovišti (např. A 1 ) a musí postupně navštívit všechna zbývající stanoviště. Každé z nich musí být navštíveno právě jednou. Po jejich navštívení se vrací do výchozího stanoviště. Optimalizačním kriteriem je najít okruh s nejkratší vzdáleností. Matematický model přiřazovacího problému zapíšeme následovně: kde: z min(max) = n i=1 n c ij x ij j=1 n x ij = 1, j=1 n x ij = 1, (25) i=1 δ i δ j + nx ij n 1, { 0 x ij = 1, x ij má hodnotu 1, pojede-li obchodní cestující přímo z místa A i do místa A j, v opačném případě má hodnotu 0, c ij je vzdálenost mezi místy A i a B j,

36 36 3 LITERÁRNí PŘEHLED podmínka δ i δ j + nx ij n 1 má za úkol zabránit vzniku dílčích okruhů. Nalezení optimálního řešení je u této úlohy velmi obtížné. Obtížnost je dána jak počtem omezujících podmínek, tak i počtem proměnných a jejich bivalentností. Protože tento problém má velké množství praktických aplikací, pro nalezení řešení se používají speciální algoritmy, dávající suboptimální řešení. Problematika časové složitosti při hledání optimálního řešení je popsána např. v [10] Základní pojmy z informatiky Vzhledem k tomu, že se část disertační práce věnuje programování, je třeba definovat pojmy, které se v ní budou vyskytovat. Definice jsou převzaty z [2, 39]. Proměnná v informatickém slova smyslu je způsob odkazání se do počítačové paměti v počítačovém programu. Toto místo v paměti obsahuje hodnotu číselnou, textovou, resp. jiný, složitější typ dat. Datový typ je způsob uchování dat, který obsahuje specifický typ resp. rozsah hodnot. Při ukládání dat do proměnných musí být každá proměnná přiřazena konkrétnímu datovému typu. Běžná data obsahují celočíselné hodnoty, reálné hodnoty, znaky, znakové řetězce a pole. Dále mohou být definovány speciální, např. datové, časové, booleovské, anebo proměnlivé datové typy. Algoritmus je množina instrukcí, někdy zvaných procedury nebo funkce, která se používá k vykonání některého úkolu. Může jím být jednoduchý proces, jako např. součet dvou čísel, nebo složitá funkce, jako např. nalezení optimálního řešení úlohy lineárního programování. Datová struktura je způsob uchovávání a organizování dat v počítači tak, aby mohly být efektivně využity. Podmnožinou datových struktur jsou datové typy. Ty se rozdělují na primitivní, smíšené a abstraktní. Příklady jednotlivých kategorií datových typů jsou uvedeny v následujícím seznamu. Primitivní datové typy, jejímiž zástupci jsou např. boolean hodnota true/false, char jeden znak, float uchovává reálné číslo, double uchovává reálné číslo většího rozsahu, integer uchovává celočíselné struktury Složené datové typy, např. Pole (Array), Záznam (Record), Union, Variant Abstraktní datové typy, např.

37 3.11 Hodnocení kvality algoritmů 37 Kontejner, Seznam, Fronta, Zásobník, String, Graf Hodnocení kvality algoritmů Při návrhu resp. porovnávání kvality algoritmů, je vhodné se při posuzování zaměřit na tato kriteria [7, 8]: Rychlost výpočtu (časová složitost). Jak dlouho budeme čekat, než algoritmus vrátí výsledek. Paměťovou náročnost (paměťová složitost). Kolik paměti program zabere? Bude disponibilní paměť stačit? Časová náročnost tvorby programu. Jak dlouho bude trvat, než program napíšeme a odladíme? Časová složitost algoritmu spuštěného na vstup D je počet kroků, které algoritmus provede. Časová složitost algoritmu je funkce T : N N, kde T (n) je (maximální) počet kroků, které provede algoritmus běžící na datech o velikosti n. Paměťovou složitost lze definovat jako funkci spotřeby paměti v závislosti na velikosti vstupních dat n. Krokem algoritmu je myšlena jedna operace (instrukce) daného stroje (počítače). Je to např. přiřazení, aritmetická operace +,,, /, vyhodnocení podmínky, apod. Za krok algoritmu lze tedy považovat libovolnou operaci proveditelnou v konstantním čase. Označme velikost vstupu jako n a nechť c je nějaká konstanta. Časové složitosti c n budeme říkat lineární, časové složitosti c n 2 kvadratická, c n 3 kubická a c a n pro a > 1 exponenciální. S časovou složitostí algoritmu úzce souvisí i doba jeho výpočtu. Představme si počítač, který zvládne 10 9 kroků za vteřinu 9. Potom tabulka 2 udává čas potřebný k realizaci výpočtu v závislosti na časové složitosti algoritmu pro velikost vstupu n. Z tabulky 2 je vidět, že všechny výpočty, kromě těch s časovou složitostí 2 n a n!, budou trvat rozumný čas. Proto budeme považovat algoritmy s nejvýše polynomiální časovou složitostí za rozumné a těm ostatním se budeme snažit vyhnout. Při rozhodování o dalším využití algoritmů je nutné provést jejich vzájemné porovnání. To lze provádět prakticky i teoreticky. Při teoretickém porovnávání lze odhadnout počet kroků algoritmu a jeho spotřebu paměti. V případě, že je algoritmus komplikovaný, může být nalezení správných odhadů obtížné. Reálné hodnoty 9 Jde o běžný počítač z roku 2012.

38 38 3 LITERÁRNí PŘEHLED Tab. 2: Čas výpočtu v závislosti na velikosti vstupních dat. Zdroj: Černý [7]. n = 10 n = 100 n = n = log n 3,3 ns 6,7 ns 10 ns 20 ns n 3,2 ns 10 ns 31,6 ns 1 µs n 10 ns 100 ns 1 µs 1 ms n log n 33 ns 664 ns 9,9 µs 20 ms n ns 10 µs 1 ms 16,5 min n 3 1 µs 1 ms 1 s 31 let 2 n 1 µs let let n! 3 ms let mohou být mnohokrát horší než nejlepší odhady. Velmi často také záleží na charakteru dat. Proto mnohdy nezbývá než algoritmy otestovat na simulovaných nebo reálných datech. V praxi se ale také může stát, že praktickým porovnáním algoritmů dostaneme opačný závěr než jejich teoretickým porovnáním. Tedy, že se algoritmus s teoreticky vysokou časovou složitostí může prakticky chovat lépe, než algoritmus s teoreticky nízkou časovou složitostí. Příkladem může být simplexový algoritmus. V nejhorším případě má exponenciální časovou složitost, ale na praktických datech se chová daleko lépe než všechny známé polynomiální algoritmy pro lineární programování.

39 4 METODIKA PRÁCE 39 4 Metodika práce 4.1 Testování statistických hypotéz Dle [18, 30] se statistickou hypotézou rozumí určitý předpoklad o parametrech či tvaru rozdělení zkoumaného znaku. Tento vyslovený předpoklad nazýváme nulovou hypotézou a značíme H 0. Proti této hypotéze stavíme tzv. alternativní hypotézu H 1, která neguje v nulové hypotéze uváděné tvrzení. Hypotéza může být formulována jako oboustranná, test hypotézy je potom dvoustranným testem; anebo jednostranná, dělící se dále na pravostrannou a levostrannou. Tyto jednostranné hypotézy jsou následně testovány jednostranným testem, pravostranným či levostranným. Testovaná hypotéza může ve skutečnosti platit anebo neplatit. Během testování může být hypotéza zamítnuta nebo nezamítnuta; bez ohledu na skutečnost, zda platí či neplatí. Vznikají možnosti uvedené v tabulce 3: Tab. 3: Chyby I. a II. druhu a jejich pravděpodobnosti. Zdroj: Hindls [18]. Skutečnost Úsudek o H 0 H 0 je pravdivá H 0 je nepravdivá správné rozhodnutí, chyba II. druhu, Nezamítá se 1 α β chyba I. druhu, správné rozhodnutí, Zamítá se α 1 β Pravděpodobností 1 β nazýváme sílu testu, tj. pravděpodobnost zamítnutí nulové hypotézy H 0, platí-li alternativní hypotéza H 1. Síla testu 1 β ani pravděpodobnost chyby druhého druhu β není známa. Pravděpodobnost chyby prvního druhu α si zvolíme sami a nazveme ji hladinou významnosti. Obvykle volíme 5% nebo 1% hladinu významnosti. Testové kriterium T bude nabývat hodnot z výběrového prostoru S, rozděleného na dvě disjunktní podmnožiny: hodnot svědčících ve prospěch hypotézy H 0, tzv. obor nezamítnutí V, hodnot svědčících ve prospěch alternativní hypotézy H 1, tzv. kritický obor W. Pro obě podmnožiny V, W výběrového prostoru S platí, že S = V W a V +W =. Při testování dále postupujeme podle následujícího schematu: 1. Je vyslovena nulová hypotéza H 0 a alternativní hypotéza H Je zvolena hladina významnosti α. 3. Je určen kritický obor: výběrový prostor S testového kriteria T je rozdělen na dva podprostory nekritický obor V a kritický obor W. Velikost kritického oboru je stanovena tak, abychom se chyby prvního druhu dopustili nejvýše ve

40 40 4 METODIKA PRÁCE 100α procentech případů. Musí být tedy splněno α = P (T W H 0 ). Při znalosti rozdělení T za podmínky H 0 lze určit kritický obor, který se liší podle toho, zda jde o jednostranné či oboustranné testy: pokud ve prospěch H 1 svědčí nízké hodnoty testového kriteria, bude kritický obor určen intervalem W (T min ; T α, v případě, že ve prospěch H 1 svědčí vysoké hodnoty testového kriteria, pak je kritický obor určen intervalem W T 1 α ; T max ), jestliže ve prospěch H 1 svědčí extrémní (tj. vysoké a nízké) hodnoty testového kriteria, pak je kritický obor určen sjednocením intervalů W ( T min ; T α 2 T1 α ; T ) max Výpočet hodnoty testového kriteria dle vzorce pro výpočet hodnoty kriteria určíme jeho hodnotu. 5. Formulace závěrů testu můžeme dojít k těmto dvěma možnostem: Hodnota testového kriteria leží v kritickém oboru, tj. T W platí při 100α% riziku nesprávnosti tohoto výroku. Hypotézu H 0 zamítáme ve prospěch alternativní hypotézy H 1. Hodnota testového kriteria náleží do oboru přijetí, tj. T V, hypotézu H 0 nezamítáme a konstatujeme, že hypotéza H 1 nebyla prokázána. 4.2 Testy o tvaru rozdělení Pomocí těchto testů ověříme, zda sledovaná data mají některé ze známých rozdělení s daným parametrem, či nikoli. Podle výsledků testů o tvaru rozdělení budou následně použity buď parametrické nebo neparametrické testy χ 2 -test dobré shody Pomocí tohoto testu lze otestovat, zda má základní soubor zvolené rozdělení či nikoli. Test se vyskytuje ve více obměnách: Nulová hypotéza H 0 předpokládá, že v základním souboru roztříděném podle zvoleného znaku do k skupin jsou podíly variant v základním souboru rovny číslům π 0,1, π 0,2,..., π 0,k.

41 4.2 Testy o tvaru rozdělení 41 Nulová hypotéza H 0 předpokládá, že základní soubor má rozdělení určitého typu včetně znalosti parametrů. Pak jde o tzv. úplně specifikovaný model. Nulová hypotéza H 0 předpokládá, že základní soubor má rozdělení určitého typu, přičemž parametry rozdělení nejsou známy. Mluvíme o neúplně specifikovaném modelu. Za testové kriterium je zvolena statistika G = k (n i nπ 0,i ) 2 i=1 nπ 0,i, (26) kde n i jsou pozorované četnosti a nπ 0,i jsou teoretické četnosti v i-té skupině pro i = 1,..., k. Pro dostatečný počet pozorování má statistika G přibližně χ 2 -rozdělení s ν = k 1 stupni volnosti. Alternativní hypotéza H 1 neguje nulovou hypotézu, tzn. tvrdí, že rozdělení je jiné, popřípadě že má jiné parametry než námi zvolené rozdělení. Kritický obor je vymezen pro hodnoty statistiky G χ 2 1 α(ν) pro ν = k h 1 stupňů volnosti, kde k je počet tříd a h počet odhadovaných parametrů. χ 2 test dobré shody popisuje např. [14] Test podle Shapira-Wilka Testuje hypotézu H 0, že data pochází z normálního rozdělení. Nechť x 1,..., x n jsou pozorovaná data. Ta uspořádáme podle velikosti tak, že dostaneme neklesající posloupnost Jako testovací kriterium bude použita statistika W : x 1 x 2... x n. (27) W = ( m i=1 a (n) i (x ) ) 2 n i+1 x i, (28) n (x i x) 2 i=1 kde x = 1 n n x i, m = n 2 i=1 v případě, že n je sudé, m = n 1 2 v případě, že n je liché a a (n) i jsou konstanty generované z průměrů, rozptylů a kovariancí pořadové statistiky z výběru rozsahu n normálního rozdělení, viz. např. Handbook of Statistical Methods [32], tabulka 15. Jestliže hodnota W W α, pak hypotézu o normalitě základního souboru zamítáme. W α jsou kritické hodnoty tohoto testu.

42 42 4 METODIKA PRÁCE 4.3 Parametrické testy V rámci těchto testů jsou testovány parametry rozdělení základního souboru Hypotéza o střední hodnotě Používá se pro ověření, že průměr základního souboru µ se rovná určité hodnotě µ 0. Nulová hypotéza je formulována jako H 0 : µ = µ 0 oproti alternativní hypotéze H 1 : µ µ 0 při oboustranném, resp. H 1 : µ > µ 0 nebo H 1 : µ < µ 0 při jednostranném testu. V případě znalosti rozptylu základního souboru σ je zvoleno testové kriterium U = x µ 0 n, (29) σ při neznalosti rozptylu základního souboru má testové kriterium tvar U = x µ 0 n, (30) s x přičemž veličina U má normované normální rozdělení. V případě, že testujeme výběr menšího rozsahu (pro n 30), pak je jako testové kriterium použita statistika mající studentovo t-rozdělení s ν = n 1 stupni volnosti Hypotéza o shodě dvou středních hodnot t = x µ 0 n, (31) s x Použijeme v případě, že potřebujeme porovnat dva výběry. Na základě tohoto porovnání usuzujeme na vlastnosti základních souborů. Test lze provádět za trojího předpokladu [18]: 1. V případě znalosti rozptylů obou základních souborů existují dva soubory se středními hodnotami µ 1 a µ 2 s rozptyly σ 2 1 a σ 2 2. Předpokládáme normalitu rozdělení obou souborů. U obou souborů spočítáme výběrový průměr x 1 a x 2 z náhodných výběrů o rozsahu n 1 a n 2. Pak je nulová hypotéza formulována jako H 0 : µ 1 = µ 2, resp. µ 1 µ 2 = 0. Alternativní hypotézy a kritický obor jsou uvedeny v tabulce 4. Za testové kriterium je zvolena statistika mající v případě platnosti H 0 normální rozdělení. U = x 1 x 2, (32) σ σ2 2 n 1 n 2

43 4.3 Parametrické testy 43 Tab. 4: Formulace alternativních hypotéz a vymezení kritických oborů za předpokladu znalosti rozptylů obou základních souborů. Zdroj: Hindls [18]. Test Alternativní hypotéza H 1 Kritický obor oboustranný µ 1 = µ 2, resp. µ 1 µ 2 = 0 W (, u α 2 jednostranný µ 1 < µ 2, resp. µ 1 µ 2 < 0 W (, u α µ 1 > µ 2, resp. µ 1 µ 2 > 0 W u 1 α, ) u1 α 2, ) 2. Pokud neznáme rozptyly základního souboru, ale víme, že jsou stejné, použijeme statistiku t = x 1 x 2, (33) (n 1 1)s (n 2 1)s n 1 + n 2 2 n 1 n 2 mající při platnosti H 0 studentovo t-rozdělení s ν = n 1 + n 2 2 stupni volnosti. Kritický obor je vymezen podobně jako při znalosti rozptylů obou souborů v tabulce 4 s tím rozdílem, že kvantily u α normálního rozdělení jsou nahrazeny kvantily t α studentova rozdělení. 3. Jestliže neznáme rozptyly základních souborů a nemůžeme očekávat jejich shodu, pak použijeme testové kriterium t = x 1 + x 2 s s 2 2 n 1 n 2, (34) které má studentovo t-rozdělení s ν stupni volnosti, přičemž ν vypočteme podle vzorce: ν = ( s s 2 2 n 1 ( ) s n 1 n n 2 ) 2 ( s 2 2 n 2 ) 2 1 n (35) Vymezení kritického oboru proběhne analogicky jako v případě shodných rozptylů Hypotéza o rozptylu V případě normálního rozdělení základního souboru provedeme výběr o rozsahu n pozorování. Na něm otestujeme hypotézu, že rozptyl základního souboru je roven hodnotě σ 2 0. Pak nulová hypotéza je formulována ve tvaru H 0 : σ 2 = σ 2 0,

44 44 4 METODIKA PRÁCE alternativní hypotézy budou formulovány takto: H 1 : σ 2 σ 2 0 pro oboustrannou, H 1 : σ 2 > σ 2 0 pro pravostrannou a H 1 : σ 2 < σ 2 0 pro levostrannou alternativní hypotézu. Pak jako testové kriterium použijeme statistiku χ 2 = (n 1)s 2 x σ 2 0, (36) kde s 2 x je výběrový rozptyl. Popisovaná statistika má v případě platnosti nulové hypotézy χ 2 rozdělení s ν = n 1 stupni volnosti. Kritický obor je určen: ( ) W 0, χ 2 α χ 2 1, α 2 2 u oboustranné hypotézy H 1 : σ 2 σ 2 0, W (0, χ 2 α pro pravostrannou hypotézu H 1 : σ 2 > σ 2 0 a W χ 2 1 α, ) pro levostrannou hypotézu H 1 : σ 2 < σ Hypotéza o shodě dvou rozptylů Existují dva výběrové soubory o rozsazích n 1 a n 2, z nichž jsou vypočteny výběrové rozptyly s 2 1 a s 2 2. Nulová hypotéza je formulována ve tvaru H 0 : σ 2 1 = σ 2 2. Alternativní hypotézy jsou zvoleny v tomto tvaru: H 1 : σ 2 1 σ 2 2 pro oboustrannou, H 1 : σ 2 1 > σ 2 2, resp. H 1 : σ 2 1 < σ 2 2 pro jednostranné alternativní hypotézy. Jako testové kriterium použijeme statistiku F = s 2 1 s 2 2, (37) která má F rozdělení s ν 1 = n 1 1 a ν 2 = n 2 1 stupňů volnosti a kritické obory jsou vymezeny následovně: W ( 0, F α 2 [n 1 1; n 2 1] F 1 α 2 [n 1 1; n 2 1], ) pro oboustrannou hypotézu H 1 : σ 2 1 σ 2 2, W (0, F α [n 1 1; n 2 1] pro jednostrannou hypotézu H 1 : σ 2 1 < σ 2 2 a W F 1 α [n 1 1; n 2 1], ) pro jednostrannou hypotézu H 1 : σ 2 1 > σ 2 2. F α [ν 1 ; ν 2 ] jsou kvantily F -rozdělení na hladině významnosti α při ν 1 a ν 2 stupních volnosti. 4.4 Neparametrické testy V případě neznalosti rozdělení základního souboru a nutnosti testování jeho vybraných charakteristik se používají neparametrické testy.

45 4.5 Regresní analýza Wilcoxonův dvouvýběrový test Nechť (X 1, X 2,..., X m ) a (Y 1, Y 2,..., Y n ) jsou dva nezávislé náhodné výběry ze dvou spojitých rozdělení. Ověřujeme hypotézu H 0 : distribuční funkce rozdělení obou výběrů jsou shodné. Všech m + n hodnot uspořádáme do neklesající posloupnosti, tvořící tzv. sdružený výběrový soubor. Jednotlivým hodnotám sdruženého výběrového souboru přiřadíme pořadí. Součet pořadí x 1, x 2,..., x n označíme T 1, součet pořadí y 1, y 2,..., y n označíme T 2. Vypočítáme hodnoty charakteristik m(m + 1) U 1 = m n + T 1, (38) 2 n(n + 1) U 2 = m n + T 2. (39) 2 Jako testové kriterium použijeme statistiku U = min {U 1, U 2 }. Hypotézu H 0 zamítáme na hladině významnosti α, pokud U U α, kde U α jsou kritické hodnoty Wilcoxonova dvouvýběrového testu. V případě, že m, n jsou velká čísla (m + n 2 > 100), lze jako testové kriterium použít statistiku U 1 m n U = 2, (40) m n (m + n + 1) 12 která má za platnosti testované hypotézy asymptoticky normální normované rozdělení N(0, 1). Hypotézu H 0 tedy zamítáme na hladině významnosti α, jestliže U u α, jak uvádí [30] Regresní analýza Regresní analýza se používá pro odhad parametrů regresního modelu, v případě této práce půjde o odhad času výpočtu navrhovaných algoritmů v závislosti na počtu vstupních proměnných. Ve vlastní práci bude využita dvojitá logaritmická funkční forma modelu Lineární regresní model Za předpokladu stochastické lineární závislosti mezi vysvětlovanou proměnnou Y a k vysvětlujícími proměnnými X 1, X 2,..., X k ve tvaru Y = β 1 X 1 + β 2 X β k X k + u, (41) kde u je náhodná složka a β j je j-tý regresní koeficient, resp. parametr, lze X 1 specifikovat jako zvláštní (umělou) proměnnou, která nabývá ve všech pozorováních

46 46 4 METODIKA PRÁCE hodnoty jedné, takže vztah (41) lze psát jako Y = β 1 + β 2 X β k X k + u, (42) přičemž β 1 je absolutní člen, resp. úrovňová konstanta. Jestliže pro náhodnou složku platí, že E(u) = 0, pak očekávanou hodnotu Y jako funkci daných hodnot vysvětlujících proměnných můžeme vyjádřit pomocí deterministického vztahu E(Y ) = β 1 + β 2 X β k X k, (43) který se nazývá regresní funkcí základního souboru. Regresní koeficienty β 2, β 3,..., β k měří změnu E(Y ) odpovídající jednotkové změně libovolné vysvětlující proměnné, přičemž ostatní proměnné zůstávají zachovány. Vzhledem k tomu, že koeficienty regresní rovnice ani parametry rozdělení náhodné složky v základním souboru neznáme, musíme se spokojit s jejich odhady získanými z výběrových dat. K dispozici máme zpravidla konečný výběr z n pozorování, z nichž každé obsahuje konkrétní hodnotu vysvětlované proměnné Y a množinu k hodnot vysvětlujících proměnných X 1, X 2,..., X k. Výpočet regresních parametrů se provádí pomocí metody nejmenších čtverců, uvádí [20]. 4.6 Modelovací jazyk Lingo Dopravní úlohy, vyskytující se v této práci, budou optimalizovány v programu Lingo. Hlavním důvodem je možnost využití modelovacího jazyka, umožňujícího poměrně jednoduchého zápisu modelů, a dále také možnosti propojení takto vzniklých modelů s daty, nalézajícími se mimo definovaný model. Nezanedbatelným faktem mluvícím ve prospěch tohoto programu je také skutečnost, že Provozně ekonomická fakulta (PEF) vlastní licenci Lingo Extended, která umožňuje řešit lineární matematické modely bez omezení maximálního počtu proměnných a omezujících podmínek, a to včetně bivalentních, celočíselných resp. nelineárních proměnných. Program Lingo umožňuje řešit matematické modely, které však do něj musí být zapsány v požadovaném formátu. Tím je buď klasický zápis modelů v běžném tvaru, využití modelovacího jazyka nebo možnost načtení dat ve formátu MPS (Mathematical Programming System), který byl vyvinut v šedesátých letech minulého století firmou IBM a je doposud takovým standardem, že jakýkoli program, mající ambice být označován jako profesionální jej má implementován [23] Ovládání programu Samotný program je spustitelný pod operačním systémem Windows a jeho ovládání se až na vlastní specifika neliší od ostatních programů spustitelných pod tímto operačním systémem. V horní části programu se nachází hlavní menu, z něhož je možné

47 4.6 Modelovací jazyk Lingo 47 se dostat k nastavení libovolných parametrů programu. Pro rychlejší přístup jsou přímo v panelu nástrojů nacházejícím se pod hlavním menu umístěny nejpoužívanější ikony. Většinou se jedná o typické ikony (New, Open, atd.), ale jsou zde i ty, které jsou použitelné při řešení modelu a jeho výpisu, jako např.: Solve, jenž řeší model, který se nachází v aktuálně vybraném okně programu. Po stisku tohoto tlačítka dojde k výpisu všech proměnných uvedených v modelu a jejich hodnot, a to do samostatného okna. Solution. K jeho aktivování dojde až po vyřešení matematického modelu stiskem tlačítka Solve. Umožňuje vypsat vybrané proměnné, a to buď všechny, nebo jen ty nenulové. Matrix Picture, která do nového okna zakreslí ve formě obrázku znázorňujícího matici strukturu proměnných vyskytujících se v modelu. Samozřejmě je třeba zdůraznit, že modely je nutné zapisovat syntakticky správně: nezapomínat na ukončování každého výrazu středníkem, na shodné názvy proměnných, na správné použití funkcí a jejich parametrů a zejména na párování závorek. Při jakékoli syntaktické chybě nedojde k výpočtu modelu. Protože zejména párování závorek může u složitějších modelů způsobovat problémy, je přímo v panelu nástrojů k dispozici tlačítko pro kontrolu spárování závorek Match Parenthesis Popis jazyka, zápis modelů Optimalizované modely sestávají obvykle z těchto 3 částí [27]: účelová funkce, proměnné modelu, omezení modelu, přičemž všechny tyto části bude obsahovat jakýkoli model, který má být optimalizován. U všech proměnných vyskytujících se v modelu je automaticky počítáno s jejich nezáporností. Program Lingo nerozlišuje mezi velkými a malými písmeny, tj. není case sensitive. Každý matematický výraz musí být ukončený středníkem, v opačném případě tento model nebude vyřešen a program upozorní na syntaktickou chybu v modelu. Model může začít klíčovým slovem MODEL, potom musí být ukončen slovem END. Pro větší přehlednost je vhodné je uvádět. Klíčová slova jsou v programu Lingo zvýrazněna modře. V případě, že autor potřebuje některou část okomentovat, použije vykřičník. Od tohoto znaku až po první výskyt středníku je všechen text považován za komentář

48 48 4 METODIKA PRÁCE a nebude při výpočtu interpretován. Komentář je v programu zvýrazněn zelenou barvou. Za klíčovým slovem MODEL následuje buď přímo zápis účelové funkce a vlastních omezení u jednodušších modelů, nebo definice množin, jejich prvků a atributů v případě složitější struktury zapisovaných matematických modelů. Každá definovaná proměnná vyskytující se v modelu musí začínat některým ze symbolů abecedy (A Z). Za ním mohou již následovat symboly abecedy (A Z), číselné symboly (0 9), nebo znak podtržítko ( ). Horní limit pro délku jména proměnné je 32 znaků. Při zápisu matematických výrazů lze použít běžné matematické operátory +, -, *, /, (, ), <, =, >, aj. Je možné použít i funkce nadefinované v programu. Ať už v účelové funkci nebo při vlastních omezeních, vždy musí být mezi koeficientem a proměnnou operátor. Nelze tedy zapsat např. 3x, v tomto případě Lingo upozorní na sytaktickou chybu. Správný zápis je 3*x. Účelová funkce se zapisuje jako běžný matematický výraz a začíná dle optimalizačního kriteria buď slovem MAX= pro maximalizační nebo MIN= pro minimalizační typy úloh. Za rovnítkem následuje zápis proměnných modelu vyskytujících se v účelové funkci násobených koeficienty účelové funkce, výraz je ukončen středníkem. V případě, že se optimalizační kriterium v modelu nevyskytuje, řeší Lingo soustavu (ne)rovnic. S ohledem na vlastnosti matematických modelů, které jsou řešitelné jen v případě, že všechny omezující podmínky jsou ve tvaru rovnosti či neostré nerovnosti, je možno nerovnosti v matematickém modelu zapisovat buď jako <= či >= nebo jen pomocí znaků < nebo >, které budou programem považovány za, resp.. Lingo automaticky předpokládá nezápornost všech proměnných vyskytujících se v modelu. V modelu tedy není nutné zapisovat podmínky nezápornosti. Pokud chceme, aby jedna či více proměnných mohla nabývat libovolných hodnot v oboru reálných čísel, musíme pro tuto proměnnou použít zapsanou Využití modelovacího jazyka Při zápisu matematických modelů často dochází k situaci, že zapisovaný model má své charakteristické vlastnosti, díky nimž lze i skutečně rozsáhlý model s mnoha proměnnými zapsat poměrně úsporně. To je možné pomocí modelovacího jazyka, který je v programu Lingo implementován. Pro přehlednější a efektivnější zápis modelů je vhodné model strukturovat. [22] uvádí následující strukturu:

49 4.6 Modelovací jazyk Lingo 49 Obr. 4: Ukázka zápisu jednoduchého modelu dopravní úlohy v programu Lingo. Zdroj: vlastní práce. MODEL: SETS:!definice množin, jejich prvků a atributů; ENDSETS DATA:!specifikace vstupních dat; ENDDATA INIT:!nastavení počátečních hodnot proměnných; ENDINIT END Výhoda této struktury zápisu je zřejmá. Je oddělen model (zapsaný pomocí modelovacího jazyka) od dat, která lze dle potřeby měnit. Vlastní popis modelu pomocí modelovacího jazyka se obvykle zadává mezi část SETS, kde je definována datová struktura, a část DATA, obsahující parametry modelu. Sekce SETS je volitelnou částí modelu. Začíná klíčovým slovem SETS: a je ukončena klíčovým slovem ENDSETS. V modelu množinová sekce uvedena být nemusí, může se vyskytovat jednou či vícekrát, a to kdekoli v modelu dle potřeby. Jediným

50 50 4 METODIKA PRÁCE požadavkem je, že množiny se svými atributy musí být definovány předtím, než je na ně v modelu poprvé odkazováno [38]. Jak uvádí [22], v rámci sekce SETS jsou definovány množiny, prvky množin a jejich atributy. Lingo rozeznává dva druhy množin: primitivní a odvozené. Primitivní množiny jsou souborem prvků, jejichž počet nezávisí na jiných množinách. Je to pouhý výčet prvků, které mají společné vlastnosti atributy. Syntaxe zápisu primitivní množiny je následující: jmeno mnoziny/prvky mnoziny/:atributy; Jako příklad lze uvést množinu dodavatelů, obsahující dva prvky (dodavatele dod1 a dod2) s atributem kapacita: dodavatele/dod1,dod2/:kapacita; V případě, že je nutno definovat velký počet prvků množiny, je zápis výčtem všech prvků nepraktický. Prvky mohou být zadány pořadovými čísly. Zápis stejného problému s 20 dodavateli by potom vypadal následovně: dodavatel/dod1..dod20/:kapacita; Odvozené množiny definují své prvky jako kombinaci prvků primitivních množin nebo jako podmnožinu primitivní množiny. Zápis odvozené množiny je následující: jmeno mnoziny(primitivni mnoziny):atributy; Příkladem může být například odvozená množina přeprava, obsahující dvě primitivní množiny dodavatelé (definováni v předchozím odstavci) a odběratelé. Jejími atributy budou přepravované množství a vzdálenost. Zápis pak bude následující: preprava(dodavatel, odberatel): mnozstvi, vzdalenost; Přes datovou sekci modelu do modelu vstupují data, a to v následujícím tvaru: atribut=seznam hodnot; přičemž hodnoty jsou odděleny čárkami či mezerami. Počet hodnot zvoleného atributu se musí shodovat s počtem prvků dané množiny, v opačném případě je indikována chyba a výpočet přerušen. Zápis dat může být následující: DATA:!kapacity dodavatelů, požadavky odběratelů; kapacita= 20, 30; pozadavek= 15, 15, 20;!vzdálenosti mezi dodavateli a odběrateli; vzdalenost= 5, 2, 7 8, 4, 3; ENDDATA

51 4.6 Modelovací jazyk Lingo 51 Jak je vidět, atribut množství se ve vstupních datech nevyskytuje. Jedná se totiž o hledanou proměnnou, proto budou jeho hodnoty získány až vyřešením modelu Nejdůležitější funkce Funkce jsou jednou z nejdůležitějších vlastností modelovacího jazyka. Charakteristickou vlasností funkcí je, že začínají za nímž následuje název funkce a parametry funkce uvedené v závorce. [23] rozlišuje několik kategorií funkcí podle jejich určení, jako např. matematické funkce, indexové funkce, funkce pro popis vlastností modelu, aj. Mezi nejčastěji používané funkce patří indexové funkce. Je jich celkem 5, z nichž zápis prvních @PROD) je mnoziny logicka podminka:vyraz); přičemž logická podmínka nemusí být uvedena. Pokud není uvedena, provádí se funkce pro všechny prvky množiny, v opačném případě pro ty prvky, které uvedenou podmínku splňují. Odlišný způsob zápisu mnoziny logicka podminka:vyrazy,omezujici podminky); což lze interpretovat takto: pro vybrané prvky množiny proveď uvedené výrazy (což může být buď jeden výraz nebo více výrazů oddělených středníkem). V následující ukázce byla použita suma jako funkce pro výpočet hodnoty účelové funkce, kdy je sčítáno množství materiálu násobené vzdáleností. Ve druhém případě se jedná o zápis omezujících podmínek na straně dodavatelů, kde byla použita pro zápis omezujících podmínek zajišťujících nepřekročení maximální kapacity každého dodavatele.!účelová funkce modelu; MIN=@SUM(preprava:mnozstvi*vzdalenost);!omezující podmínky zajišťující nepřekročení kapacity ); Mezi funkce, které je vhodné zmínit, patří ještě která proměnnou x definuje jako bivalentní, tj. nabývající hodnot 0 nebo 1; další funkcí je která proměnnou x definuje jako celočíselnou. Poslední zmíněnou funkcí je která proměnnou x limituje v intervalu DM x HM.

52 52 4 METODIKA PRÁCE 4.7 Software Gretl Pro statistické výpočty bude použit software Gretl [16]. Jde o open-source software pod licencí GNU-GPL, který je k dispozici volně ke stažení, např. z odkazu http: //gretl.sourceforge.net/. 4.8 Vývojové prostředí jazyka Delphi Pro vývoj vlastních aplikací je použito vývojové prostředí jazyka Delphi, jehož ukázka je k dispozici na obrázku 5. Obr. 5: Ukázka vývojového prostředí programovacího jazyka Delphi. Zdroj: vlastní práce. Při vlastním programování, tj. při tvorbě aplikací, je často nutné nahlédnout do literatury, v níž jsou popsány specifické procedury a funkce, které mají být aplikovány, resp. je popsána jejich syntaxe. K tomuto účelu budou využívány zejména tyto zdroje: [1, 6, 9, 24, 40].

53 5 NÁVRH VLASTNí METODIKY 53 5 Návrh vlastní metodiky Protože modely distribučních úloh popsané v sekci 3.9 neřeší přepravu z hlediska času, bylo nutné tyto modely navrhnout. 5.1 Modifikace Blandova algoritmu eliminujícího zacyklení Jedním z nejdůležitějších problémů, které bylo nutné vyřešit s ohledem na stabilitu výpočtů programu, byla eliminace zacyklení v průběhu výpočtu. Při zacyklení dochází k situaci, kdy po několika krocích výpočtu se algoritmus dostane do báze, ve které se nacházel v některém z předchozích kroků. Celková změna účelové funkce je přitom nulová. Pokud dojde k reálnému (tj. nenulovému) zlepšení hodnoty účelové funkce, k zacyklení dojít nemůže. To byla základní myšlenka modifikace vylepšení klasického způsobu výběru klíčového políčka Blandovým anticyklickým pravidlem. Počáteční kroky modifikovaného algoritmu se neliší od původního. Nejprve dojde k nalezení klíčového sloupce, následně řádku. V tuto chvíli klasický algoritmus vrací souřadnice klíčového políčka. Zde však dochází k modifikaci je testována celková změna účelové funkce, tj. r βl α lr (44) V případě, že je změna účelové funkce nenulová, vrací algoritmus souřadnice klíčového políčka. Pokud je nulová, reálně hrozí zacyklení, a proto dochází k výběru klíčového políčka pomocí Blandova pravidla. Jako klíčový je zvolen sloupec s nejmenším indexem j, který porušuje kritérium optimality. Klíčový řádek je zvolen standardně, jako { } βl min (45) α lr pro α lr > 0. Pokud existuje více minimálních podílů, zvolíme ten s nejmenším indexem. Vývojový diagram upraveného algoritmu je k dispozici na obrázku 6. Ačkoli se při vlastním programování vycházelo z upraveného algoritmu, bylo nutné některé části pozměnit. Jednou z těchto změn je tolerance celkové změny účelové funkce. Ačkoli model pracuje s datovými proměnnými typu real48, zajišťujícími v rámci programovacího jazyka Delphi maximální možnou přesnost, v průběhu výpočtů dochází poměrně často k zaokrouhlování a kumulujícím se nepřesnostem. To může způsobit nenulovou změnu účelové funkce, způsobenou zaokrouhlováním a k nečekanému zacyklení. Proto je při identifikaci změny účelové funkce nastavena tolerance, určená hodnotou proměnné ε. Pokud je celková změna účelové funkce (v absolutní hodnotě) menší než ε, program považuje celkovou změnu za nulovou a vybírá podle Blandova necyklícího algoritmu. Modifikovaný Blandův algoritmus je podrobně otestován a porovnán s klasickým Blandovým algoritmem v kapitole na straně 70.

54 54 5 NÁVRH VLASTNí METODIKY Start Najdi sloupec r, kde r = max{ j } pro j > 0. ne Je úloha maximalizační? ano Najdi { řádek } l, kde l = βi min pro α ir > 0. α ir Najdi sloupec r, kde r = min{ j } pro j < 0. r β l α lr = 0 ano Je úloha maximalizační? ano Najdi sloupec r, kde r = min{j} pro j > 0. ne ne Najdi sloupec r, kde r = min{j} pro j < 0. Najdi { řádek } l, kde l = βi min pro α ir > 0. α ir Souřadnice kĺıčového poĺıčka jsou (l, r). Konec Obr. 6: Modifikovaný Blandův algoritmus pro výběr klíčového políčka. Zdroj: vlastní práce. 5.2 Dynamická dopravní úloha s celkovým přepravovaným množstvím Před řešením vlastního problému bude problém podrobně popsán. Při popisu modelu budou popsány nejprve ty části, které jsou shodné s klasickou dopravní úlohou, a následně budou popsány odlišnosti a důvody, proč pro tento model nelze použít klasickou dopravní úlohu. Potom bude následovat návrh na řešení modelu. Vzhledem k tomu, že hledáme optimální řešení v čase, lze úlohu nazvat Dynamická dopravní úloha. Proto bude v dalších částech práce, zejména ve zdrojovém kódu, v souvislosti s touto úlohou používána zkratka DTP Z anglického ekvivalentu Dynamic Transportation Problem.

55 5.2 Dynamická dopravní úloha s celkovým přepravovaným množstvím Popis řešeného problému Účastníky dopravního problému jsou dodavatelé a odběratelé. Mějme tedy m dodavatelů D 1,..., D m a n odběratelů O 1,..., O n. Jejich úkolem je přepravit homogenní materiál od dodavatelů k odběratelům. Doba přepravy mezi každým dodavatelem a odběratelem je známa. V těchto požadavcích se úloha shoduje s klasickou dopravní úlohou, popsanou v podsekci Avšak oproti předcházejícímu modelu zde existuje více rozdílů. První spočívá v tom, že zde je optimalizačním kriteriem co nejkratší celková doba přepravy. 11 Dílčí doby trvání přepravy mezi jednotlivými dodavateli a odběrateli jsou s ohledem na algorimus řešení kladná celá čísla. Dalším rozdílem je fakt, že v tomto typu modelu nejsou dány celkové kapacity dodavatelů resp. pořadavky odběratelů. Účastníci přepravy jsou limitováni maximální denní kapacitou materiálu, kterou jsou schopni odeslat, popřípadě požadavky, které jsou schopni přijmout. Ta se může v jednotlivých dnech měnit, přičemž po určité době se pravidelně opakuje. Doba, po které se kapacity dodavatelů resp. požadavky odběratelů pravidelně opakují (např. týden), bude nazývána časový úsek. Časový úsek (týden) se skládá z časových jednotek (dní). Dále je dáno celkové množství materiálu, které má být přepraveno. V průběhu přepravy nesmí u odběratelů docházet k nahromadění více materiálu, než jsou schopni v příslušné časové jednotce zpracovat Návrh řešení problému Optimalizačním kriteriem modelu DTP je přeprava materiálu od dodavatelů k odběratelům v co nejkratším celkovém čase. Idea řešení vychází z následující myšlenky: maximalizujeme-li při daném množství materiálu přepravu za jeden časový úsek (např. týden) a tento plán rozepisujeme tak dlouho, dokud existuje materiál určený k převozu, doba potřebná k přepravě materiálu bude minimální. Ačkoli se tedy jedná o dopravní úlohu, primárně sestavený model bude maximalizačního typu. Hledanými proměnnými jsou odesílané (resp. přijímané) množství materiálu odeslaného v k-té časové jednotce od dodavatele D i k odběrateli O j, které jsou značeny x 12 i,j,k. Má-li úloha celkem m dodavatelů, n odběratelů a r časových jednotek v jednom časovém úseku, potom bude obsahovat celkem m n r proměnných. Koeficienty účelové funkce c i,j,k budou mít všechny stejnou hodnotu 1, potom účelovou funkci zapíšeme jako m n r z max = x i,j,k. (46) i=1 j=1 k=1 V modelu se budou vyskytovat omezující podmínky dvojího typu. Prvním typem jsou omezení dodavatelů. Zde je třeba vzít v potaz fakt, že nesmí být odesláno 11 Důvodem pro minimalizaci doby přepravy může být např. fakt, že přepravovaný materiál rychle podléhá zkáze. 12 Toto značení platí pouze pro metodiku, v dalších modelech se může lišit, nicméně v každém modelu budou proměnné definovány.

56 56 5 NÁVRH VLASTNí METODIKY více materiálu, než je limit příslušného dodavatele i pro danou časovou jednotku b i,,k 13. To znamená, že v modelu bude celkem m r omezujících podmínek na straně dodavatelů. Od dodavatele lze materiál odeslat k libovolnému odběrateli, takže pro i-tého dodavatele a k-tou časovou jednotku bude omezující podmínka definována: x i,1,k + x i,2,k x i,j,k x i,n,k b i,,k (47) Sestavit omezující podmínky odběratelů je poněkud složitější. Musí platit, že nesmí být přijato více materiálu, než je požadavek odběratele v dané časové jednotce. Avšak doba trvání přepravy od dodavatelů je různá, což je třeba vzít v úvahu. Proto bude omezující podmínka j-tého odběratele v k-té časové jednotce vypadat následovně: x 1,j,K + x 2,j,K x i,j,k x m,j,k b,j,k, (48) kde K je doba odeslání materiálu vypočítaná dle vzorce K = [k d(i, j)] mod r, (49) kde d(i, j) je doba přepravy materiálu mezi i-tým dodavatelem a j-tým odběratelem, r je počet časových jednotek jednoho časového úseku. Těmito omezujícími podmínkami zajístíme již v době odeslání, že odběrateli bude dovezeno právě takové množství materiálu, které nepřekračuje jeho denní limit v příslušné časové jednotce. Část vzorce mod r popisuje zbytek po celočíselném dělení. Vyřešením úlohy získáme maximální množství materiálu, které jsme během jednoho časového úseku schopni přepravit. Nyní, s ohledem na požadavek co nejrychlejšího ukončení přepravy, budeme ze všech optimálních řešení, garantujících přepravení stejného množství materiálu budeme hledat to z nich, u kterého je doba přepravy mezi dodavateli a odběrateli minimální. Pro tento krok použijeme lexikografickou metodu. Matematický model upravíme přidáním nové omezující podmínky garantující přepravované množství materiálu v časovém úseku: m i=1 n j=1 k=1 r x i,j,k = zmax, (50) kde z max je hodnota účelové funkce optimálního řešení předchozího modelu. Přidáním nové omezující podmínky redukujeme množinu přípustných řešení na ta řešení, která byla v původní úloze optimální. Ostatní řešení se stanou nepřípustnými. Přípustnost úlohy je zajištěna, neboť požadujeme řešení, kterého je možné za daných podmínek dosáhnout. Změníme typ a koeficienty účelové funkce: z min = m n r d(i, j) x i,j,k, (51) i=1 j=1 k=1 13 Symbol v indexu znamená všechny účastníky, v tomto případě odběratele.

57 5.3 Dynamická dopravní úloha s dílčími limity přepravovaného množství 57 kde d(i, j) je stejně jako v přechozím případě doba přepravy materiálu mezi i-tým dodavatelem a j-tým odběratelem. Získané řešení představuje maximum, které lze přepravit během jednoho časového úseku, přičemž ze všech těchto řešení bylo vybráno to s nejmenší celkovou časovou náročností. Pro vyřešení celé přepravy je nutné řešení reprezentující jeden časový úsek rozepsat. Začneme materiálem odeslaným od dodavatelů v den, který je označen jako začátek přepravy, přičemž plán přepravy bude odpovídat optimálnímu řešení modelu pro příslušnou časovou jednotku. Zbývající celkové množství materiálu snížíme o materiál, který byl v daném dni odeslán. Do dne, který odpovídá dni odeslání zvýšenému o dobu přepravy mezi příslušným dodavatelem a odběratelem, zapíšeme dodaný materiál a o tuto hodnotu snížíme celkové požadované množství materiálu. Pokračujeme dalším dnem tak dlouho, dokud je celkové zbývající množství materiálu k přepravě kladné. Jakmile klesne na nulu, výpočet ukončíme. Celkovou dobu přepravy určíme jako rozdíl mezi dnem posledního dodání a prvního odeslání materiálu. 5.3 Dynamická dopravní úloha s dílčími limity přepravovaného množství V této sekci bude nejprve popsán řešený problém včetně rozdílů mezi klasickou dopravní úlohou a modelem DTP. Následně budou navrženy metody jeho řešení včetně způsobu otestování optimality získaného řešení. Pro popisovaný model byla zvolena zkratka DTPN Popis modelu DTPN Jsou dáni účastníci přepravy: m dodavatelů D 1,..., D m a n odběratelů O 1,..., O n. Jejich úkolem je přepravit homogenní materiál od dodavatelů k odběratelům. Doba přepravy mezi každým dodavatelem a odběratelem je známa, je to kladné celé číslo. Každý z dodavatelů má určenu jak svou maximální denní kapacitu (resp. kapacitu za časovou jednotku), tak i celkovou kapacitu materiálu, který má být odeslán. Zatímco celkové kapacity zůstávají neměnné, denní kapacity se mohou v jednotlivých časových jednotkách časového úseku měnit. Totéž platí i pro požadavky odběratelů, u kterých jsou dány jak požadavky pro jednotlivé dny, tak i celkové požadavky na materiál, který má být dodán. Stejně jako v modelu DTP, nesmí při převozu dojít k nahromadění většího množství materiálu, než jsou schopni odběratelé v příslušné časové jednotce zpracovat. V souvislosti s problémem vyváženosti úlohy je dán požadavek, že alespoň jedna strana přepravy musí být plně uspokojena. V případě, že je součet kapacit dodavatelů menší než součet požadavků odběratelů, bude veškerý materiál odvezen, avšak někteří z odběratelů nebudou uspokojeni. V opačném případě nebude odvezen veš-

58 58 5 NÁVRH VLASTNí METODIKY kerý materiál který je k dispozici, ale všichni odběratelé budou uspokojeni. Z tohoto pohledu bude mít řešená úloha vždy přípustné řešení Rychlý algoritmus úlohy DTPN dávající přípustné řešení S pomocí tohoto algoritmu získáme přípustné řešení úlohy. Důvodem pro jeho uvedení je mimo jiné i požadavek na nalezení přípustného řešení v dále popsaných modelech. Toto řešení bude následně vylepšováno. Myšlenka nalezení přípustného řešení je poměrně jednoduchá: v každém dni odešlu maximální množství materiálu tak, aby všechny omezující podmínky byly splněny. U omezujících podmínek dodavatelů to není problém, neboť k odesílání dochází právě v daném dni. U odběratelů budou jejich požadavky sníženy o materiál nacházející se na cestě od dodavatelů. Pro maximalizaci denně odeslaného množství materiálu sestavíme jednoduchý matematický model k-tého dne, který následně popíšeme. Bude obsahovat celkem m n proměnných, kde m je počet dodavatelů a n odběratelů. Proměnné x i,j,k budou popisovat množství materiálu, odeslané od i-tého dodavatele j-tému odběrateli k- tý den přepravy. Všechny koeficienty účelové funkce c i,j budou mít hodnotu 1 a úloha bude maximalizační (hledáme řešení, které maximalizuje odeslané množství materiálu ve zvoleném dni), tj. z max = m n x i,j,k. (52) i=1 j=1 V modelu se budou vyskytovat následující typy omezujících podmínek: Od každého z dodavatelů nesmí být odesláno více než je jeho maximální denní limit, celkem m omezujících podmínek. Žádnému z odběratelů nesmíme v jeden den dopravit více materiálu, než je jeho maximální limit pro tento den. Protože je doba přepravy různá (maximálně může trvat až r časových jednotek), sestavíme nejvýše n r omezujících podmínek 14. Nesmí být překročeny celkové limity odběratelů, celkem n omezujících podmínek. 15 Prvním typem omezujících podmínek je m omezujících podmínek, týkajících se dodavatelů. Každá z nich vyjadřuje, že nesmí být odesláno více materiálu, než je limit pro k-tý den, proto omezení i-tého dodavatele bude zapsáno ve tvaru x i,1,k + x i,2,k x i,j,k x i,n,k b i,,k, (53) 14 Sestavujeme jen ty omezující podmínky, které mohou reálně nastat. 15 Omezující podmínky popisující celkové limity dodavatelů nejsou sestavovány, protože tyto limity jsou brány v úvahu při sestavování omezujících podmínek týkajících se dodavatelů v jednotlivých dnech.

59 5.3 Dynamická dopravní úloha s dílčími limity přepravovaného množství 59 kde b i,,k je příslušný denní limit i-tého dodavatele v k-tém dni převozu a symbolem je myšlen libovolný odběratel. Zde je třeba upozornit, že pokud celkové zbývající množství materiálu je menší než příslušný denní limit i-tého dodavatele b i,,k, bude pravá strana příslušného omezení touto hodnotou nahrazena. S omezujícími podmínkami na straně odběratelů je situace poněkud složitější, neboť jejich denní limity již mohou být sníženy o materiál, který byl odeslán příslušnému odběrateli v předchozích dnech od některého z dodavatelů (s výjimkou dne zahájení přepravy, kdy tato situace nenastane). Proto je nejprve nutné zjistit maximálni dobu přepravy r, dle vzorce r = max {d(i, j)}, (54) kde d(i, j) je doba trvání přepravy mezi i-tým dodavatelem (i = 1,..., m) a j-tým odběratelem (j = 1,..., n). Materiál byl odeslán v jednom dni, ale k odběratelům bude dopraven v průběhu nejvýše r dní. Proto bude sestaveno nejvýše n r omezujících podmínek popisujících tyto dny. Ve skutečnosti však budou sestavována jen ta omezení, ve kterých může být materiál odeslaný v k-tém dni reálně dodán. Omezující podmínka, popisující limit j-tého odběratele s doručením materiálu za k + p dní od jeho odeslání, kde 1 p r, bude vyjádřena: a 1,j x 1,j,k a i,j x i,j,k a m,j x m,j,k b,j,k+p r x i,j,k+p l, (55) l=1 kde x i,j,k+p l je materiál dodaný od i-tého dodavatel j-tému odběrateli l dní před dnem dodání k + p a strukturní koeficienty a i,j nabývají hodnoty { 1, jestliže d(i, j) = p, a i,j = 0 jinak. (56) Omezující podmínky má smysl sestavovat pouze pro ty hodnoty p, které se vyskytují v matici doby trvání přepravy. Posledním typem omezení jsou celkové limity odběratelů. Omezující podmínka, limitující celkové odeslané množství materiálu j-tého odběratele v k-tém dni, bude sestavena podle vzorce: k 1 x 1,j,k x i,j,k x m,j,k B,j x,j,q, (57) kde výraz B,j reprezentuje celkové požadavky j-tého odběratele a výraz k 1 q=1 x,j,q q=1 množství materiálu odeslaného od libovolného dodavatele j-tému odběrateli. Vyřešení modelu pro jeden den (jednu časovou jednotku) ovlivní pravé strany modelu v dalších dnech (časových jednotkách). Model je sestavován a řešen tak

60 60 5 NÁVRH VLASTNí METODIKY dlouho, dokud není veškerý disponibilní materiál odvezen od dodavatelů, resp. dokud není odběratelům přivezen všechen materiál, který požadují. S pomocí tohoto algoritmu získáme přípustné řešení popisované úlohy. Tato metoda byla pracovně nazvána fast Pomalá verze řešení úlohy DTPN, bez ověření optimality řešení U zde popisovaného algoritmu bude oproti předchozímu sestaven model pro celou dobu přepravy. Problémem je, že doba přepravy není známa. Proto bude nejprve nalezeno přípustné řešení a na základě doby přepravy získaného řešení bude sestaven matematický model. Pro nalezení přípustného řešení bude použit algoritmus popsaný v podsekci Sestavovaný model bude obsahovat celkem m n (q + r) strukturních proměnných, kde symboly m a n odpovídají značení z předchozícho modelů, q je počet dní, kdy se bude materiál odvážet, a r maximální doba přepravy mezi dodavateli a odběrateli. Je nutné, aby q bylo natolik velké, aby byl tento čas dostačující pro nalezení přípustného a případně i optimálního řešení modelu. To zaručí např. použití algoritmu popsaného v podsekci Model bude mít opět maximalizační účelovou funkci ve tvaru z max = q+r m n (q + r k + 1) x i,j,k. (58) i=1 j=1 k=1 Koeficient účelové funkce c i,j,k = (q + r k + 1) zaručuje, že cena odváženého materiálu bude s každým dnem klesat o jednotku. Simplexový algoritmus v takto formulovaném modelu zajistí odvoz maximálního množství materiálu co nejdříve po zahájení přepravy, čímž nepřímo dojde ke zkrácení doby potřebné k přepravě. Omezující podmínky modelu budou opět několika typů, celkem jich bude model obsahovat m q + n (q + r) + m + n. Prvních m q omezujících podmínek hlídá maximální denní odeslané množství materiálu. Omezující podmínku popisující i- tého dodavatele v k-tém dni, kdy materiál odesíláme, zapíšeme dle vzorce n x i,j,k b i,,k. (59) j=1 Dalších n (q+r) omezujících podmínek zaručuje nepřekročení maximálního množství materiálu dodaného v jednom dni, pro j-tého odběratele v k-tém dni ji zapíšeme jako m x i,j,k b,j,k, (60) kde K je doba odeslání materiálu, vypočítaná dle vzorce i=1 K = k d(i, j). (61)

61 5.3 Dynamická dopravní úloha s dílčími limity přepravovaného množství 61 Následuje sestavení m omezujících podmínek zaručujících, že za celé období nebude odesláno více materiálu, než má příslušný dodavatel k dispozici, tj. nepřekročení celkového limitu i-tého dodavatele zapíšeme jako q+r n x i,j,k B i,, (62) j=1 k=1 kde B i, je celková kapacita i-tého dodavatele. Posledních n omezujících podmínek zaručuje, že v průběhu celého období nedojde k nepřekročení požadavků na dodaný materiál. Pro j-tého odběratele bude omezující podmínka zapsána ve tvaru q+r m x i,j,k B,j. (63) i=1 k=1 Ačkoli výsledky jsou oproti algoritmu popsanému v podsekci neporovnatelně lepší, ani v tomto modelu nelze ověřit, že nalezené řešení je optimální. Nevýhodou algoritmu je poměrně rychle rostoucí čas výpočtu při zvětšující se velikosti řešeného modelu. Popisovaná metoda byla nazvána slow Algoritmus nalézající optimální řešení Z důvodu uvedeného v posledním odstavci podsekce byl navržen poslední algoritmus. Sestavení matematického modelu se do značné míry shoduje s modelem popsaným v podsekci 5.3.3, z toho důvodu budou popsány jen rozdíly mezi oběma modely. Výhodou tohoto modelu je, že na něm lze otestovat optimalitu získaného řešení. Podobně jako v předchozím modelu je nutné odhadnout dobu přepravy. Je ale nutné, aby odhadovaná doba přepravy, pro kterou je model sestavován, byla větší nebo rovna optimální době přepravy. V opačném případě nebude mít model přípustné řešení. Pro odhad doby přepravy bude použita metoda fast, popsaná v podsekci Ta tento požadavek garantuje. Omezující podmínky modelu definované ve vzorcích (59) (63), budou použity také v současném modelu. Dále bude přidána nová omezující podmínka, která zaručuje přepravení daného množství materiálu, podle vzorce { q+r m n m } n x i,j,k = min B i,, B,j. (64) i=1 j=1 k=1 Model je tedy sestaven, s výjimkou účelové funkce. Cílem je minimalizovat dobu odeslání materiálu. Idea nalezení optimálního řešení a testování jeho optimality je následující: Model je sestaven pro q + r dnů, avšak materiál je odesílán prvních q dnů. Účelovou funkci, která bude maximalizační, sestavíme tak, že proměnné reprezentující i=1 j=1

62 62 5 NÁVRH VLASTNí METODIKY prvních q 1 dnů budou mít koeficienty účelové funkce 1 a proměnné reprezentující q-tý až q + r-tý den koeficienty 0. Tuto úlohu vyřešíme. Pokud úloha má přípustné řešení a zároveň se hodnota účelové funkce rovná výrazu { m } n zmax = min B i,, B,j, (65) i=1 pak počet dní přepravy odpovídající q dnům není optimem, protože existuje přípustné řešení, které odešle veškerý materiál v méně než q dnech (a to bylo právě nalezeno). V případě, že řešení je přípustné a zároveň platí nerovnice { m } n zmax < min B i,, B,j, (66) i=1 pak počet dní přepravy odpovídající q dnům je optimem, protože neexistuje přípustné řešení, které by bylo schopno přepravit materiál v méně než q dnech. To proto, že koeficienty v účelové funkci mají hodnotu 1 u proměnných reprezentujících prvních q 1 dní a součet množství převezeného materiálu je menší, než má být reálně převezeno. Pokud nalezené řešení není optimální, tj. platí výraz (65), provedeme následující úpravu modelu: koeficientům reprezentujícím q-tý až q + r-tý den nastavíme prohibitivní sazbu M, a koeficentům pro q 1-ní den koeficienty 0. Pro takto upravený model se dosažené řešení stane nepřípustným, proto jej znovu vyřešíme. Takto pokračujeme, dokud nenalezneme řešení, které splňuje výraz (66). Toto řešení je optimální, přičemž doba potřebná k odeslání veškerého materiálu je rovna indexu dne odeslání proměnných majících koeficient účelové funkce rovný nule. Pokud bychom chtěli minimalizovat dobu dodání místo doby odeslání, budeme postupovat analogicky, pouze změny v číslování koeficientů účelové funkce budeme provádět s ohledem na den dodání materiálu, namísto dne odeslání. Při vlastním výpočtu není nutné při snižování počtu kroků řešit pokaždé upravenou úlohu celou znovu. Stačí v právě řešené úloze změnit typ proměnných v q-tém dni na umělé a nastavit jim prohibitivní sazbu M a proměnným v q 1. dni nastavit koeficienty účelové funkce rovny 0. Dále je nutné u proměnných, které jsou bazické, změnit toto nastavení i u vektoru koeficientů účelové funkce bazických proměnných, a takto modifikovanou úlohu dořešit. Tato modifikace umožní nezanedbatelné urychlení výpočtu, jak je popsáno ve vlastní práci. Je ale možná pouze v softwaru vlastní výroby, protože zde dochází ke změnám přímo uvnitř simplexového algoritmu. To žádný známý komerční software neumožňuje. Popisovaná metoda byla nazvána optimal. j=1 j=1

63 6 VLASTNí PRÁCE 63 6 Vlastní práce Stěžejní část vlastní práce spočívá v aplikaci metod navržených ve vlastní metodice, jejich otestování a praktické ukázce jejich využití. Tvorba softwarové podpory byla nezbytná pro ověření řešitelnosti navržených algoritmů. Vytvořené programy jsou k dispozici na přiloženém CD ve složce programy. Zdrojové kódy nejsou součástí disertační práce. Případní zájemci si o ně mohou požádat na ové adrese pavel.kolman@mendelu.cz. Aby bylo možné splnit definované cíle práce, bylo nutné vytvořit balík knihoven schopných řešit úlohy lineárního programování. Tyto knihovny budou využity při řešení speciálních typů dopravních úloh popsaných v kapitole 5. První vytvořenou knihovnou je datova struktura.pas. V ní byly definovány strukturované datové typy potřebné při řešení úloh lineárního programování simplexovou metodou. Dále byla vytvořena knihovna simplexka.pas využívající datovou strukturu z předcházející knihovny, do níž byly implementovány procedury a funkce, řešící dílčí kroky při optimalizaci úloh lineárního programování. Následovala knihovna export.pas, jejímž úkolem je převádět modely z implementovaného datového typu do zvoleného formátu, např. TEX, Excel, Lingo či jiného. Poslední knihovnou je knihovna testy.pas. Společně s knihovnou export.pas byla využívána výhradně pro hromadné testování správného řešení náhodně vygenerovaných modelů. V následujících podkapitolách budou tyto knihovny popsány podrobněji. 6.1 Knihovna datova struktura.pas Před tvorbou libovolné knihovny je nutné vytvořit její datovou strukturu. Prvním krokem bylo vytvoření strukturovaného datového typu Tumela a definice jeho aritmetických operací. Při výpočtu se v simplexové tabulce vyskytuje v koeficientech účelové funkce umělých proměnných a v indexním řádku u indexních čísel. Vlastní datový typ je reprezentován dvěma proměnnými datového typu real48 prohibitivní sazbou a reálnou hodnotou dané proměnné, viz řádky 2 a 3 zdrojového kódu. Z čistě programátorských důvodů byly do datového typu přidány ještě pomocné proměnné typ (řádek 4), reprezentující typ proměnné, basic (řádek 5) datového typu boolean nabývající hodnoty true či false podle toho, zda je daná proměnná bazická či nikoli. Poslední proměnnou je x (řádek 6) datového typu integer, kde je v případě bazických proměnných uchován index řádku s jedničkou a u nebazických proměnných index klíčového řádku Tumela = record M: real48; { prohibitivní sazba } r: real48; { skutečná hodnota } typ: Ttyppromenne; { typ proměnné - strukturní, doplňková a umělá } basic: boolean; { bazická nebo nebazická proměnná } x: integer; { řádek s 1 u bazických, resp. klíčový řádek u nebazických }

64 64 6 VLASTNí PRÁCE { definice operátorů } class operator Equal(A, B: Tumela): boolean; // = class operator Equal(A: Tumela; B: real): boolean; // = class operator Equal(A: real; B: Tumela): boolean; // =... end; Po definici proměnných v datovém typu Tumela následuje definice aritmetických a relačních operátorů. Velkou výhodou je možnost další práce přímo s aritmetickými či relačními operátory i pro datový typ Tumela. Takže např. pro sčítání tří proměnných a, b a c datového typu Tumela stačí nadefinovat operátor pro sčítání (Add) a dále již jejich součet běžně zapisovat jako a + b + c. Identicky budou nadefinovány i další potřebné operátory. Tím dojde ke značnému zpřehlednění zdrojového kódu, neboť při absenci této vlastnosti by bylo nutné pro každou operaci se strukturovaným datovým typem vytvořit vlastní funkci. Součet proměnných a, b a c by se potom zapisoval následovně: soucet(soucet(a,b),c) class operator Tumela.Add(A, B: Tumela): Tumela; // + begin result.m := A.M + B.M; result.r := A.r + B.r; end; class operator Tumela.Add(A: Tumela; B: real): Tumela; // + begin result.m := A.M; result.r := A.r + B; end; class operator Tumela.Add(A: real; B: Tumela): Tumela; // + begin result.m := B.M; result.r := A + B.r; end; Při definování aritmetických a relačních vlastností operátorů bylo využito přetěžování a každý operátor byl definován ve třech verzích. V první verzi byly vstupními proměnnými dvě proměnné typu Tumela, ve druhé byla první proměnná datového typu Tumela a druhá reálného datového typu, ve třetí tomu bylo naopak. Tím došlo ke značnému zjednodušení zdrojového kódu programu, neboť bylo umožněno provádět operace s různými datovými typy. Takto byly definovány všechny relační operátory, tj., <, =, > a. Z aritmetických operátorů byly definovány operace sčítání, odčítání a násobení. Ukázka zdrojového kódu operátoru součtu Add je k dispozici na řádcích Ve vlastní knihovně se nachází v části implementation.

65 6.2 Knihovna simplexka.pas 65 Nyní bylo možné nadefinovat datový typ TLPproblem, obsahující veškeré informace o řešené úloze lineárního programování. Jeho zdrojový kód je k dispozici na řádcích Protože je zdrojový kód podrobně okomentován, není nutné se o tomto datovém typu podrobněji rozepisovat TLPproblem = record c: Tucfce; { vektor koeficientů účelové funkce, typu Tumela } A: Tstrkoef; { matice strukturních koeficientů rozměru m n } relace: Trelace; { vektor relací, =, } B: Tpravestrany; { vektor pravých stran omezujících podmínek, typu real48 } typ: Ttypulohy; { typ úlohy: z max, z min } end; Datový typ TLPproblem je vhodný pro uložení vlastní obecné úlohy LP, nicméně pro její řešení vhodný není. Proto byl vytvořen datový typ TLPcanonicalform, reprezentující úlohu lineárního programování v kanonickém tvaru. V ní, na rozdíl od identické úlohy v obecném tvaru, již nejsou potřeba relační operátory. Dále je nově přidán vektor koeficientů účelové funkce bazických proměnných c b a vektor indexních čísel delta. Dále je zde přidána proměnná Z datového typu Tumela, obsahující hodnotu účelové funkce daného řešení, a booleovská proměnná pripustne informující, zda je dané řešení přípustné TLPcanonicalform = record c: Tucfce; { vektor koeficientů účelové funkce, typu Tumela } A: Tstrkoef; { matice strukturních koeficientů } c b: Tucfce; { vektor koeficientů úč. fce baz. proměnných, typu Tumela } B: Tpravestrany; { vektor pravých stran omezujících podmínek, typu real48 } delta: Tindexniradek; { vektor indexních čísel, typu Tumela } Z: Tumela; { hodnota účelové funkce na daném kroku } typ: Ttypulohy; { typ úlohy: z max, z min } pripustne: boolean; { test přípustnosti daného řešení } end; Posledním strukturovaným datovým typem v knihovně je Treseni obsahující informace o nalezeném řešení. V datovém typu Treseni se nachází booleovská proměnná pripustne, nabývající hodnoty true v případě, že obsažené řešení je přípustné, a false v opačném případě. Dále se zde vyskytuje celočíselná proměnná kroku obsahující počet kroků nutných k nalezení příslušného řešení. Následuje vektor x, což je jednorozměrné pole obsahující datový typ real48. V něm jsou uloženy hodnoty všech strukturních proměnných, včetně nulových. 6.2 Knihovna simplexka.pas Přehled veškerých procedur a funkcí této knihovny je k dispozici na obrázku 7 na straně 66. Protože se algoritmus řešení úloh LP simplexovou metodou v podstatných

66 66 6 VLASTNí PRÁCE aspektech neodlišuje od notoricky známého postupu, budou při popisu jednotlivých podprogramů knihovny simplexka.pas zmíněny pouze jejich vstupy a výstupy a nejdůležitější části zdrojového kódu, popisující podstatnou či problematickou část zdrojového kódu programu. Protože jsou níže uvedené podprogramy velmi často součástí jiných podprogramů, resp. jsou uvnitř cyklu či na jiných místech programu, nelze jednoznačně určit jejich logické pořadí. Proto jsou uváděny a popisovány tak, jak se vyskytují ve zdrojovém kódu programu. První definovanou funkcí je sumproduct, vracející skalární součin dvou vektorů reálných čísel. Pokud mají oba vektory rozdílný počet složek, funkce vrací nulu. Procedura delta má jeden vstupně/výstupní parametr obsahující příslušný krok řešení úlohy lineárního programování v kanonickém tvaru. Výstupem procedury je proměnná lpc datového typu TLPcanonicalform, včetně indexních čísel dané úlohy. unit simplexka.pas function sumproduct(a, B: array of real48): real48; procedure delta(var lpc: TLPcanonicalform); function kanonicky tvar(lp: TLPproblem): TLPcanonicalform; function kriterium optimality(lpc: TLPcanonicalform): boolean; function zmen bazi(lpc: TLPcanonicalform; pivot: Tsouradnice): TLPcanonicalform; function klicovy radek(lpc: TLPcanonicalform; sloupec: integer): Tsouradnice; function klicove policko necyklici(lpc: TLPcanonicalform): Tsouradnice; function klicove policko(lpc: TLPcanonicalform): Tsouradnice; function vyresit ulohu LP(lp: TLPproblem; var reseni: Treseni): boolean; Obr. 7: Procedury a funkce knihovny simplexka.pas. Zdroj: vlastní práce. Následuje funkce kanonicky tvar. Vstupním parametrem je úloha lineárního programování, výstupním identická úloha v kanonickém tvaru. Před vlastním převodem do kanonického tvaru je nutné správně určit počet všech proměnných v modelu (tj. strukturních, doplňkových a umělých). Algoritmus určení jejich počtu je uveden na řádcích zdrojového kódu, celkový počet všech proměnných úlohy je obsažen v proměnné pom pom := length(lp.c) + length(lp.relace); for i := low(lp.relace) to high(lp.relace) do

67 6.2 Knihovna simplexka.pas if lp.relace[i] = GE then inc(pom); Počet strukturních proměnných je neměnný a odpovídá délce vektoru koeficientů účelové funkce. Navíc každá omezující podmínka typu, resp. = má jednu doplňkovou či umělou proměnnou, omezení typu dvě. Proto je na řádku 46 do proměnné pom přiřazen součet počtu proměnných a omezujících podmínek, zvýšený o počet omezení typu, viz řádky Po identifikaci rozměrů upravené úlohy dojde k nastavení velikosti polí a převedení úlohy z obecného tvaru do kanonického. Následně je volána funkce delta a jsou spočítána indexní čísla, přičemž dojde k vrácení úlohy v kanonickém tvaru. Úkolem funkce kriterium optimality je pouze rozhodnout, zda je nalezené řešení optimální či nikoli. Funkce vrací hodnotu true v případě, že je nalezené řešené optimální, jinak vrací hodnotu false. Funkce zmen bazi má dva parametry. Prvním je datový typ TLPcanonicalform obsahující příslušný krok úlohy LP. Druhým je Tsouradnice obsahující souřadnice klíčového políčka. U této funkce je třeba zmínit ošetření potenciálních chyb vzniklých při výpočtu. Příčinou problému jsou nenulová pole vyskytující se v bázi, vzniklá vlivem zaokrouhlování. Důsledkem neošetření této chyby jsou špatně nalezená optimální řešení, resp. nečekané zacyklení. Problém je ošetřen na řádku 53 a podrobně popsán v podsekci pom := -1;... for j := low(lpc.c) to high(lpc.c) do if abs((pom * lpc.a[pivot.i, j] + lpc.a[i, j])) < epsilon then lpc.a[i, j] := 0 else lpc.a[i, j] := pom * lpc.a[pivot.i, j] + lpc.a[i, j]; Po změně báze dle klíčového políčka je uvnitř funkce zmen bazi aktualizován indexní řádek voláním funkce delta a následně otestováno, zda je nově získané řešení přípustné. Vstupními parametry funkce klicovy radek jsou kanonický tvar úlohy LP a index klíčového sloupce. Funkce vrací souřadnice klíčového políčka v proměnné datového typu Tsouradnice. V případě, že v úloze existují dva či více minimálních podílů, vrací ten s nižším indexem. Pro stabilitu programu je velmi důležitá funkce klicove policko necyklici. Jde o aplikaci Blandova algoritmu, popsaného v podsekci Je volána jen tehdy, pokud je při standardním výběru klíčového políčka celková změna účelové funkce nulová a zabraňuje zacyklení programu. Z toho důvodu je na řádcích vypsán kompletní zdrojový kód této funkce. Funkce vybírá jako klíčový ten sloupec porušující test optimality, který má nejmenší index. Tím u degenerovaných úloh zabraňuje vzniku zacyklení. Pro určení klíčového řádku je volána funkce klicovy radek a takto

68 68 6 VLASTNí PRÁCE získané souřadnice klíčového políčka jsou výstupem jak funkce klicovy radek, tak i funkce klicove policko necyklici function klicove policko necyklici(lpc: TLPcanonicalform): Tsouradnice; var j: integer; souradnice: Tsouradnice; begin { nastaví souřadnice mimo pole } souradnice.i := -1; souradnice.j := -1; { maximalizační úloha } if lpc.typ = MAXIM then begin for j := low(lpc.c) to high(lpc.c) do if souradnice.j = -1 then if (lpc.delta[j] < 0) and not(lpc.c[j].basic) then souradnice := klicovy radek(lpc, j) end else { minimalizační úloha analogicky jako maximalizační }... { vrací souřadnice } result := souradnice; end; U funkce klicove policko dochází nejprve k hledání toho klíčového sloupce, který nejvíce porušuje test optimality. Následně je na řádku 87 testována celková změna účelové funkce. Pokud je nulová (může dojít k zacyklení), je volána funkce klicove policko necyklici, viz řádek 88. Vývojový diagram je podrobně popsán na obrázku 6, strana 54. Ve skutečnosti však není testována nulová změna účelové funkce, nýbrž celková změna menší než ε. Je to ze stejného důvodu jako u funkce zmen bazi const epsilon = ; { tolerance zaokrouhlovacích chyb }... implementation... function klicove policko(lpc: TLPcanonicalform): Tsouradnice;... { při nulové změně účelové funkce vybírám podle necyklícího algoritmu } if abs((podil * lpc.delta[souradnice.j].r)) < epsilon then souradnice := klicove policko necyklici(lpc);

69 6.2 Knihovna simplexka.pas 69 Poslední funkcí je vyresit ulohu LP. Je zastřešující funkcí celé knihovny a spouští se se dvěma parametry. Její hlavička je zapsána i v části interface, tzn. je použitelná i mimo knihovnu. Funkce se skládá ze dvou částí: v první části dochází k hledání optimálního řešení, ve druhé k jeho výpisu. Jakým způsobem je hledáno optimální řešení, je zřejmé z řádků Jde o cyklus, při němž je na začátku nalezeno klíčové políčko a následně podle něj změněna báze. Pro ukončení cyklu je podstatné nalezení optimálního řešení, resp. zjištění, že daná úloha je neohraničená či nemá optimální řešení. Na začátku hledání jsou obě souřadnice klíčového políčka nastaveny na hodnotu 1, přičemž dochází k jejich přepisování. V případě, že klíčový sloupec či řádek není nalezen, zůstává index klíčového řádku roven 1. To je podmínkou pro ukončení cyklu, viz řádek repeat pivot := klicove policko(lpc); if pivot.i = -1 then konec := true else lpc := zmen bazi(lpc, pivot); until konec; Funkce vrací hodnotu true v případě, že nalezené řešení je přípustné. Dále je v parametru reseni obsažen vektor optimálního řešení problému Export modelů do Linga Protože Ústav statistiky a operačního výzkumu vlastní časově neomezenou verzi Extended Lingo 13 včetně možnosti řešení celočíselných a nelineárních modelů, byla do knihovny simplexka.pas implementována možnost exportu řešených modelů do jazyka programu Lingo. Ta bude využita zejména při testování knihovny a ověřování správnosti výsledků. Samotný export je řešen pomocí dvou funkcí. První, model2lingo, převede matematický model uložený v proměnné datového typu TLPproblem do textového řetězce datového typu string, druhá zapis model LINGO tento textový řetězec zapíše do souboru. Uvnitř funkce model2lingo byla vytvořena pomocná funkce real2string, která převádí jednotlivé koeficienty modelu z datového typu real48 na textový řetězec. Při převodu dochází k zaokrouhlení převáděné hodnoty na 8 desetinných míst a k nahrazení desetinné čárky desetinnou tečkou, jak vyžaduje program Lingo. Po spuštění funkce model2lingo nejprve dojde k vypsání typu modelu a koeficientů účelové funkce, následně dochází k výpisu jednotlivých omezujících podmínek. Celý model je vypsán do proměnné string, která tvoří výstup funkce. Úkolem funkce zapis model lingo je zapsat matematický model zadaný na vstupu do určeného souboru. Po spuštění je volána funkce model2lingo a její výstup zapsán

70 70 6 VLASTNí PRÁCE do textového řetězce, který je následně uložen do zvoleného souboru. Ukázka modelu převedeného pomocí funkce model2lingo je na obrázku 8. Obr. 8: Matematický model převedený do jazyka programu Lingo. Zdroj: vlastní práce. Aby bylo možné použít převod modelů do jazyka programu Lingo i mimo vývojové prostředí Delphi, byl vytvořen dávkový soubor nazvaný lp2lingo.exe. Spouští se se dvěma parametry: vstupním parametrem je soubor s matematickým modelem, výstupním soubor, do kterého bude uložen identický model ve formátu programu Lingo Export modelů do TEXu Důvod pro implementaci této funkce byl ryze praktický, umožnit rychlý zápis libovolného matematického modelu ve formátu pro TEX. Mimo disertační práci lze export do TEXu využít v pedagogické praxi, např. při přípravě přednášek a cvičení, resp. při sazbě skript. Za tímto účelem byla vytvořena konzolová aplikace lp2tex.exe spouštěná se dvěma parametry: vstupním souborem obsahujícím matematický model a výstupním souborem s tím samým modelem ve formátu pro TEX. Výhodou konzolové aplikace je její univerzální použitelnost a možnost dávkového zpracování souborů. Ukázka výstupu do TEXu je k dispozici v levé části obrázku 11 na straně Testování knihovny simplexka.pas Před dalším použitím knihovny simplexka.pas v praxi bylo nutné provést její otestování. Byly náhodně vygenerovány různé typy modelů s rozdílným počtem proměnných. U každého takto testovaného modelu byl zkoumán počet iterací nutných k nalezení optimálního řešení (resp. zjištění neexistence přípustného řešení), čas výpočtu a hodnota účelové funkce. Vektor nalezeného řešení z důvodu možné existence více optimálních řešení testován nebyl. Dále byl každý model vyexportován do Linga a v něm také vyřešen, přičemž byly porovnány hodnoty účelové funkce řešení z knihovny simplexka.pas a z Linga. V případě jejich shody byl model považován za správně vyřešený. Generování modelů a jejich řešení probíhalo automaticky, pro

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno Přednáška č. 9 Katedra ekonometrie FEM UO Brno Distribuční úlohy Budeme se zabývat 2 typy distribučních úloh dopravní úloha přiřazovací problém Dopravní úloha V dopravním problému se v typickém případě

Více

Dualita v úlohách LP Ekonomická interpretace duální úlohy. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Dualita v úlohách LP Ekonomická interpretace duální úlohy. Jiří Neubauer. Katedra ekonometrie FEM UO Brno Přednáška č. 6 Katedra ekonometrie FEM UO Brno Uvažujme obecnou úlohu lineárního programování, tj. úlohu nalezení takového řešení vlastních omezujících podmínek a 11 x 1 + a 1 x +... + a 1n x n = b 1 a

Více

2.4.11 Nerovnice s absolutní hodnotou

2.4.11 Nerovnice s absolutní hodnotou .. Nerovnice s absolutní hodnotou Předpoklady: 06, 09, 0 Pedagogická poznámka: Hlavním záměrem hodiny je, aby si studenti uvědomili, že se neučí nic nového. Pouze používají věci, které dávno znají, na

Více

Tvorba trendové funkce a extrapolace pro roční časové řady

Tvorba trendové funkce a extrapolace pro roční časové řady Tvorba trendové funkce a extrapolace pro roční časové řady Příklad: Základem pro analýzu je časová řada živě narozených mezi lety 1970 a 2005. Prvním úkolem je vybrat vhodnou trendovou funkci pro vystižení

Více

( ) 2.4.4 Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208

( ) 2.4.4 Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208 .. Kreslení grafů funkcí metodou dělení definičního oboru I Předpoklady: 01, 08 Opakování: Pokud jsme při řešení nerovnic potřebovali vynásobit nerovnici výrazem, nemohli jsme postupovat pro všechna čísla

Více

Kvadratické rovnice pro studijní obory

Kvadratické rovnice pro studijní obory Variace 1 Kvadratické rovnice pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Kvadratické

Více

Kvadratické rovnice pro učební obory

Kvadratické rovnice pro učební obory Variace 1 Kvadratické rovnice pro učební obory Autor: Mgr. Jaromír JUŘEK Kopírování a jkaékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Kvadratické

Více

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f.

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f. I. Funkce dvou a více reálných proměnných 5. Lokální extrémy. Budeme uvažovat funkci f = f(x 1, x 2,..., x n ), která je definovaná v otevřené množině G R n. Řekneme, že funkce f = f(x 1, x 2,..., x n

Více

Umělá inteligence. Příklady využití umělé inteligence : I. konstrukce adaptivních systémů pro řízení technologických procesů

Umělá inteligence. Příklady využití umělé inteligence : I. konstrukce adaptivních systémů pro řízení technologických procesů Umělá inteligence Pod pojmem umělá inteligence obvykle rozumíme snahu nahradit procesy realizované lidským myšlením pomocí prostředků automatizace a výpočetní techniky. Příklady využití umělé inteligence

Více

M - Rovnice - lineární a s absolutní hodnotou

M - Rovnice - lineární a s absolutní hodnotou Rovnice a jejich ekvivalentní úpravy Co je rovnice Rovnice je matematický zápis rovnosti dvou výrazů. př.: x + 5 = 7x - M - Rovnice - lineární a s absolutní hodnotou Písmeno zapsané v rovnici nazýváme

Více

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou .8.9 Parametrické rovnice a nerovnice s absolutní hodnotou Předpoklady: 0,, 806 Pedagogická poznámka: Opět si napíšeme na začátku hodiny na tabuli jednotlivé kroky postupu při řešení rovnic (nerovnic)

Více

E-ZAK. metody hodnocení nabídek. verze dokumentu: 1.1. 2011 QCM, s.r.o.

E-ZAK. metody hodnocení nabídek. verze dokumentu: 1.1. 2011 QCM, s.r.o. E-ZAK metody hodnocení nabídek verze dokumentu: 1.1 2011 QCM, s.r.o. Obsah Úvod... 3 Základní hodnotící kritérium... 3 Dílčí hodnotící kritéria... 3 Metody porovnání nabídek... 3 Indexace na nejlepší hodnotu...4

Více

= musíme dát pozor na: jmenovatel 2a, zda je a = 0 výraz pod odmocninou, zda je > 0, < 0, = 0 (pak je jediný kořen)

= musíme dát pozor na: jmenovatel 2a, zda je a = 0 výraz pod odmocninou, zda je > 0, < 0, = 0 (pak je jediný kořen) .8.7 Kvadratické rovnice s parametrem Předpoklady: 507, 803 Pedagogická poznámka: Na první pohled asi každého zarazí, že takřka celá hodina je psána jako příklady a studenti by ji měli vypracovat samostatně.

Více

Lokální a globální extrémy funkcí jedné reálné proměnné

Lokální a globální extrémy funkcí jedné reálné proměnné Lokální etrémy Globální etrémy Použití Lokální a globální etrémy funkcí jedné reálné proměnné Nezbytnou teorii naleznete Breviáři vyšší matematiky (odstavec 1.). Postup při hledání lokálních etrémů: Lokální

Více

SPOLEHLIVOST KONSTRUKCÍ & TEORIE SPOLEHLIVOSTI část 2: Statistika a pravděpodobnost

SPOLEHLIVOST KONSTRUKCÍ & TEORIE SPOLEHLIVOSTI část 2: Statistika a pravděpodobnost SPOLEHLIVOST KONSTRUKCÍ & TEORIE SPOLEHLIVOSTI část 2: Statistika a pravděpodobnost Drahomír Novák Jan Eliáš 2012 Spolehlivost konstrukcí, Drahomír Novák & Jan Eliáš 1 část 2 Statistika a pravděpodobnost

Více

( ) 2.5.7 Neúplné kvadratické rovnice. Předpoklady: 020501

( ) 2.5.7 Neúplné kvadratické rovnice. Předpoklady: 020501 ..7 Neúplné kvadratické rovnice Předpoklady: Pedagogická poznámka: Tato hodina patří mezi vzácné výjimky, kdy naprostá většina studentů skončí více než pět minut před zvoněním. Nechávám je dělat něco jiného

Více

STEREOMETRIE. Vzdálenost bodu od přímky. Mgr. Jakub Němec. VY_32_INOVACE_M3r0113

STEREOMETRIE. Vzdálenost bodu od přímky. Mgr. Jakub Němec. VY_32_INOVACE_M3r0113 STEREOMETRIE Vzdálenost bodu od přímky Mgr. Jakub Němec VY_32_INOVACE_M3r0113 VZDÁLENOST BODU OD PŘÍMKY V PROSTORU Při hledání vzdálenosti bodu od geometrického útvaru v prostoru je nutné si vždy úlohu

Více

3.2.4 Podobnost trojúhelníků II

3.2.4 Podobnost trojúhelníků II 3..4 odobnost trojúhelníků II ředpoklady: 33 ř. 1: Na obrázku jsou nakresleny podobné trojúhelníky. Zapiš jejich podobnost (aby bylo zřejmé, který vrchol prvního trojúhelníku odpovídá vrcholu druhého trojúhelníku).

Více

Informace k novému vydání učebnice 2015 Manažerské účetnictví nástroje a metody (2. aktualizované a přepracované vydání) OBSAH 2015

Informace k novému vydání učebnice 2015 Manažerské účetnictví nástroje a metody (2. aktualizované a přepracované vydání) OBSAH 2015 Informace k novému vydání učebnice 2015 Manažerské účetnictví nástroje a metody (2. aktualizované a přepracované vydání) Na jaře 2015 bylo publikováno i druhé vydání učebnice nakladatelství Wolters Kluwer

Více

2.7.2 Mocninné funkce se záporným celým mocnitelem

2.7.2 Mocninné funkce se záporným celým mocnitelem .7. Mocninné funkce se záporným celým mocnitelem Předpoklady: 70 Mocninné funkce se záporným celým mocnitelem: znamená? 3 y = = = = 3 y y y 3 = ; = ; = ;.... Co to Pedagogická poznámka: Nechávám studenty,

Více

Srovnání posledních dvou verzí studijních plánů pro studijní obor. Informační systémy. (studijní program Aplikovaná informatika)

Srovnání posledních dvou verzí studijních plánů pro studijní obor. Informační systémy. (studijní program Aplikovaná informatika) Srovnání posledních dvou verzí studijních plánů pro studijní obor Informační systémy (studijní program Aplikovaná informatika) Úvod Ve STAGu jsou poslední verze studijních plánů pro studijní obor Informační

Více

Základy. analýzy hlavních komponent a multivariačních regresních metod pro spektrální analýzu

Základy. analýzy hlavních komponent a multivariačních regresních metod pro spektrální analýzu Základy analýzy hlavních komponent a multivariačních regresních metod pro spektrální analýzu Multivariační analýza dat použití mnoha proměnných zároveň základem tabulka - matice dat řádky - vzorky sloupce

Více

{ } 9.1.9 Kombinace II. Předpoklady: 9108. =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce.

{ } 9.1.9 Kombinace II. Předpoklady: 9108. =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce. 9.1.9 Kombinace II Předpoklady: 9108 Př. 1: Je dána pěti prvková množina: M { a; b; c; d; e} =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce. Vypisujeme

Více

INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY

INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY INŽENÝRSKÁ MATEMATIKA LOKÁLNÍ EXTRÉMY FUNKCÍ DVOU PROMĚNNÝCH Robert Mařík 2. října 2009 Obsah z = x 4 +y 4 4xy + 30..................... 3 z = x 2 y 2 x 2 y 2........................ 18 z = y ln(x 2 +y)..........................

Více

Rozvrhování zaměstnanců

Rozvrhování zaměstnanců Rozvrhování zaměstnanců 23. dubna 2014 1 Úvod 2 Rozvrhování volných dnů 3 Rozvrhování směn 4 Cyklické rozvrhování směn 5 Rozvrhování pomocí omezujících podmínek Rozvrhování zaměstnanců Jedná se o problém

Více

Pingpongový míček. Petr Školník, Michal Menkina. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

Pingpongový míček. Petr Školník, Michal Menkina. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Petr Školník, Michal Menkina TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci projektu ESF CZ.1.7/../7.47, který je spolufinancován

Více

Google AdWords - návod

Google AdWords - návod Google AdWords - návod Systém Google AdWords je reklamním systémem typu PPC, který provozuje společnost Google, Inc. Zobrazuje reklamy ve výsledcích vyhledávání či v obsahových sítích. Platí se za proklik,

Více

SUPPORT VECTOR MACHINES

SUPPORT VECTOR MACHINES SUPPORT VECTOR MACHINES (SVM Algoritmy nosných vektorů) Stručný úvod do efektivní metody lineární klasifikace Jan Žižka Ústav informatiky PEF, Mendelova universita v Brně Lineární oddělování tříd, výhody

Více

Vzdělávací oblast: Matematika a její aplikace. Obor vzdělávací oblasti: Seminář z matematiky. Ročník: 7. Poznámky

Vzdělávací oblast: Matematika a její aplikace. Obor vzdělávací oblasti: Seminář z matematiky. Ročník: 7. Poznámky Vzdělávací oblast: Matematika a její aplikace Obor vzdělávací oblasti: Seminář z matematiky Ročník: 7. Výstupy - kompetence Učivo Průřezová témata,přesahy, a další poznámky - převádí jednotky délky, času,

Více

MS WORD 2007 Styly a automatické vytvoření obsahu

MS WORD 2007 Styly a automatické vytvoření obsahu MS WORD 2007 Styly a automatické vytvoření obsahu Při formátování méně rozsáhlých textů se můžeme spokojit s formátováním použitím dílčích formátovacích funkcí. Tato činnost není sice nijak složitá, ale

Více

ALGEBRA LINEÁRNÍ, KVADRATICKÉ ROVNICE

ALGEBRA LINEÁRNÍ, KVADRATICKÉ ROVNICE ALGEBRA LINEÁRNÍ, KVADRATICKÉ ROVNICE A NEROVNICE, SOUSTAVY ROVNIC A NEROVNIC 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.

Více

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK Autor: Josef Fröhlich Verze dokumentu: 1.1 Datum vzniku: 4.4.2006 Datum poslední úpravy: 10.4.2006 Liberecká IS, a.s.;jablonecká 41; 460 01 Liberec V; IČ: 25450131;

Více

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 18 TVORBA PLOCH]

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 18 TVORBA PLOCH] Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Ing. Aleš Najman [ÚLOHA 18 TVORBA PLOCH] 1 ÚVOD V této kapitole je probírána tématika tvorby ploch pomocí funkcí vysunutí, rotace a tažení. V moderním světě,

Více

Hodnocení způsobilosti procesu. Řízení jakosti

Hodnocení způsobilosti procesu. Řízení jakosti Hodnocení způsobilosti procesu Řízení jakosti Hodnocení způsobilosti procesu a její cíle Způsobilost procesu je schopnost trvale dosahovat předem stanovená kriteria kvality. Snaha vyjádřit způsobilost

Více

Soustavy lineárních rovnic

Soustavy lineárních rovnic 1 Soustavy lineárních rovnic Příklad: Uvažujme jednoduchý příklad soustavy dvou lineárních rovnic o dvou neznámých x, y: x + 2y = 5 4x + y = 6 Ze střední školy známe několik metod, jak takové soustavy

Více

http://www.zlinskedumy.cz

http://www.zlinskedumy.cz Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Autor Ročník 2, 3 Obor Anotace CZ.1.07/1.5.00/34.0514 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Elektronické obvody, vy_32_inovace_ma_42_06

Více

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013 Výsledky testování školy Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy Školní rok 2012/2013 Základní škola Ústí nad Orlicí, Komenského 11 Termín zkoušky:

Více

1.1.1 Kvadratické rovnice (dosazení do vzorce) I

1.1.1 Kvadratické rovnice (dosazení do vzorce) I .. Kvadratické rovnice (dosazení do vzorce) I Předpoklady: základní početní operace Rovnicí se nazývá vztah rovnosti mezi dvěma výrazy obsahujícími jednu nebo více neznámých. V této kapitole se budeme

Více

KVADRATICKÉ ROVNICE A NEROVNICE (včetně řešení v C)

KVADRATICKÉ ROVNICE A NEROVNICE (včetně řešení v C) Projekt ŠABLONY NA GVM Gymnázium Velké Meziříčí registrační číslo projektu: CZ.1.07/1.5.00/34.0948 IV-2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol KVADRATICKÉ

Více

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013 Výsledky testování školy Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy Školní rok 2012/2013 Gymnázium, Šternberk, Horní náměstí 5 Termín zkoušky: 13.

Více

Vztah mezi dvěma čísly, které se rovnají, se nazývá rovnost, jako například : ( 2) 3 = 8 4 = 2 ; 16 = 4 ; 1 = 1 a podobně. 2

Vztah mezi dvěma čísly, které se rovnají, se nazývá rovnost, jako například : ( 2) 3 = 8 4 = 2 ; 16 = 4 ; 1 = 1 a podobně. 2 Lineární rovnice o jedné neznámé O rovnicích obecně Vztah mezi dvěma čísly, které se rovnají, se nazývá rovnost, jako například : ( ) 8 ; 6 ; a podobně. ; Na rozdíl od rovností obsahuje rovnice kromě čísel

Více

AUTORKA Barbora Sýkorová

AUTORKA Barbora Sýkorová ČÍSLO SADY III/2 AUTORKA Barbora Sýkorová NÁZEV SADY: Číslo a proměnná číselné označení DUM NÁZEV DATUM OVĚŘENÍ DUM TŘÍDA ANOTACE PLNĚNÉ VÝSTUPY KLÍČOVÁ SLOVA FORMÁT (pdf,, ) 1 Pracovní list číselné výrazy

Více

Systém zvukové signalizace a spouštění motoru na základě stavu světla

Systém zvukové signalizace a spouštění motoru na základě stavu světla Systém zvukové signalizace a spouštění motoru na základě stavu světla vzorová úloha (SŠ) Jméno Třída.. Datum.. 1. Teoretický úvod Cílem této úlohy je sestavit systém sledující stav světla, které bude vyhodnocováno

Více

Katedra matematiky Matematika a byznys Příklady odhadů a předpovědí časových posloupností

Katedra matematiky Matematika a byznys Příklady odhadů a předpovědí časových posloupností Západočeská univerzita v Plzni Katedra matematiky Matematika a byznys Příklady odhadů a předpovědí časových posloupností Jméno: Číslo: Email: Martin Procházka A6525 m.walker@centrum.cz Úvod V tomto textu

Více

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE Nové formy výuky s podporou ICT ve školách Libereckého kraje IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE Podrobný návod Autor: Mgr. Michal Stehlík IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE 1 Úvodem Tento

Více

Rozklad nabídkové ceny servisních služeb ve znění II. opatření k nápravě ze dne 1. 11. 2012

Rozklad nabídkové ceny servisních služeb ve znění II. opatření k nápravě ze dne 1. 11. 2012 Příloha č. 5 Servisní smlouvy Rozklad nabídkové ceny servisních ve znění II. opatření k nápravě ze dne 1. 11. 2012 Část P2_5 1 Obsah 1 OBSAH... 2 2 INSTRUKCE... 3 3 ZÁVAZNÝ FORMULÁŘ PRO ROZKLAD NABÍDKOVÉ

Více

Ministerstvo pro místní rozvoj. podprogram 117 513

Ministerstvo pro místní rozvoj. podprogram 117 513 Pokyny pro vyplnění elektronické žádosti podprogram 117 513 Podpora výstavby technické infrastruktury Elektronická žádost je umístěna na internetové adrese http://www3.mmr.cz/zad a lze na ni vstoupit i

Více

Internetová agentura. Předimplementační analýza webu

Internetová agentura. Předimplementační analýza webu Internetová agentura Předimplementační analýza webu 1. OBSAH 1. OBSAH... 1 VSTUPNÍ DOTAZNÍK... 2 Základní informace o firmě... 2 Základní informace o webu... 4 Marketingové kanály... 5 Obsah a rozvoj webu...

Více

( ) ( ) ( ) 2 ( ) 2.7.16 Rovnice s neznámou pod odmocninou II. Předpoklady: 2715

( ) ( ) ( ) 2 ( ) 2.7.16 Rovnice s neznámou pod odmocninou II. Předpoklady: 2715 .7.6 Rovnice s neznámou pod odmocninou II Předpoklady: 75 Př. : Vyřeš rovnici y + + y = 4 y + + y = 4 / ( y + + y ) = ( 4) y + + 4 y + y + 4 y = 6 5y + 4 y + y = 8 5y + 4 y + y = 8 - v tomto stavu nemůžeme

Více

Vedoucí bakalářské práce

Vedoucí bakalářské práce Univerzita Pardubice, Fakulta ekonomicko-správní, Ústav Posudek vedoucího bakalářské práce Jméno studenta Téma práce Cíl práce Vedoucí bakalářské práce Barbora RUMLOVÁ ANALÝZA A POTENCIÁLNÍ ROZVOJ CESTOVNÍHO

Více

1.3.1 Kruhový pohyb. Předpoklady: 1105

1.3.1 Kruhový pohyb. Předpoklady: 1105 .. Kruhový pohyb Předpoklady: 05 Předměty kolem nás se pohybují různými způsoby. Nejde pouze o přímočaré nebo křivočaré posuvné pohyby. Velmi často se předměty otáčí (a některé se přitom pohybují zároveň

Více

Operativní plán. Operativní řízení stavby

Operativní plán. Operativní řízení stavby Operativní plán Operativní řízení stavby OPERATIVNÍ PLÁN - celkový časový plán je pro potřeby řízení stavby málo podrobný Operativní plán - zpracovávají se podrobnější časové plány operativní plány (OP)

Více

Soustavy lineárních rovnic

Soustavy lineárních rovnic Soustavy lineárních rovnic Buď (T, +, ) těleso. Pak soustava 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,................................... a m1 x 1 + a m2 x

Více

Google Apps. pošta 2. verze 2012

Google Apps. pošta 2. verze 2012 Google Apps pošta verze 0 Obsah Obsah... Úvod... Přečtení emailu... Napsání emailu... Odpověď na email... 6 Úvod V dnešní době chce mít každý své informace po ruce. Díky Internetu a online aplikacím je

Více

Přínosy ekodesignu pro. Klára Ouředníková a Robert Hanus Centrum inovací a rozvoje www.cir.cz

Přínosy ekodesignu pro. Klára Ouředníková a Robert Hanus Centrum inovací a rozvoje www.cir.cz Přínosy ekodesignu pro inovující výrobní podnik Klára Ouředníková a Robert Hanus Centrum inovací a rozvoje www.cir.cz Co je to ekodesign? Základním cílem ekodesignu je snížit dopady výrobku na životní

Více

Obchodní řetězec Dokumentace k návrhu databázového systému

Obchodní řetězec Dokumentace k návrhu databázového systému Mendelova univerzita v Brně, Provozně ekonomická fakulta Obchodní řetězec Dokumentace k návrhu databázového systému 1. Úvod Cílem této práce je seznámit čtenáře s návrhem databázového systému Obchodní

Více

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY Po vytvoření nové společnosti je potřeba vytvořit nové uživatele. Tato volba je dostupná pouze pro administrátory uživatele TM s administrátorskými právy. Tento

Více

Podpora personálních procesů v HR Vema

Podpora personálních procesů v HR Vema Podpora personálních procesů v HR Vema Portálové řešení aplikací Řízení procesů s využitím workflow Personální procesy Nástup a změna pracovního zařazení Hodnocení zaměstnanců Rozdělování odměn Plánování

Více

M A N A G E M E N T. Akad. rok 2009/2010, Letní semestr MANAGEMENT - VŽ 1

M A N A G E M E N T. Akad. rok 2009/2010, Letní semestr MANAGEMENT - VŽ 1 M A N A G E M E N T 5 MANAGEMENT - VŽ 1 V Ý Z N A M S T R A T E G I C K É H O M A N A G E M E N T U MANAGEMENT - VŽ 2 STRATEGICKÝ MANAGEMENT Představuje souhrn aktivit jako je : 1. výzkum tržních podmínek,

Více

Zvyšování kvality výuky technických oborů

Zvyšování kvality výuky technických oborů Zvyšování kvality výuky technických oborů Klíčová aktivita IV. Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol Téma IV.. Kvadratické funkce, rovnice a nerovnice

Více

Semestrální práce NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE. Daniel Tureček zadání číslo 18 cvičení: sudý týden 14:30

Semestrální práce NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE. Daniel Tureček zadání číslo 18 cvičení: sudý týden 14:30 Semestrální práce NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE Daniel Tureček zadání číslo 18 cvičení: sudý týden 14:30 1. Ověření stability tranzistoru Při návrhu úzkopásmového zesilovače s tranzistorem je potřeba

Více

Art marketing Činoherního klubu

Art marketing Činoherního klubu Vyšší odborná škola informačních služeb, Praha Institute of Technology, Sligo Art marketing Činoherního klubu Projekt ročníkové práce Vypracovala: Jana Pokorná, DiS. Vedoucí práce: Ing. Radka Johnová Datum

Více

EXPONENCIÁLNÍ A LOGARITMICKÁ FUNKCE

EXPONENCIÁLNÍ A LOGARITMICKÁ FUNKCE Projekt ŠABLONY NA GVM Gymnázium Velké Meziříčí registrační číslo projektu: CZ.1.07/1.5.00/34.0948 IV-2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol EXPONENCIÁLNÍ

Více

M - Příprava na 2. zápočtový test pro třídu 2D

M - Příprava na 2. zápočtový test pro třídu 2D M - Příprava na 2. zápočtový test pro třídu 2D Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. VARIACE 1 Tento

Více

Microsoft Office. Word styly

Microsoft Office. Word styly Microsoft Office Word styly Karel Dvořák 2011 Styly Používání stylů v textovém editoru přináší několik nesporných výhod. Je to zejména jednoduchá změna vzhledu celého dokumentu. Předem připravené styly

Více

Téma 10: Podnikový zisk a dividendová politika

Téma 10: Podnikový zisk a dividendová politika Téma 10: Podnikový zisk a dividendová politika 1. Tvorba zisku (výsledku hospodaření) 2. Bod zvratu a provozní páka 3. Zdanění zisku a rozdělení výsledku hospodaření 4. Dividendová politika 1. Tvorba hospodářského

Více

3. Ve zbylé množině hledat prvky, které ve srovnání nikdy nejsou napravo (nevedou do nich šipky). Dát do třetí

3. Ve zbylé množině hledat prvky, které ve srovnání nikdy nejsou napravo (nevedou do nich šipky). Dát do třetí DMA Přednáška Speciální relace Nechť R je relace na nějaké množině A. Řekneme, že R je částečné uspořádání, jestliže je reflexivní, antisymetrická a tranzitivní. V tom případě značíme relaci a řekneme,

Více

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Informační

Více

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu

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

Zadavatel: Moravskoslezský kraj se sídlem Ostrava, 28. října 117, PSČ 702 18 IČ: 70890692

Zadavatel: Moravskoslezský kraj se sídlem Ostrava, 28. října 117, PSČ 702 18 IČ: 70890692 Zadavatel: Moravskoslezský kraj se sídlem Ostrava, 28. října 117, PSČ 702 18 IČ: 70890692 Veřejná zakázka: Úvěrový rámec na předfinancování a spolufinancování projektů zadávaná v otevřeném řízení podle

Více

EKONOMICKO-MATEMATICKÉ METODY

EKONOMICKO-MATEMATICKÉ METODY Evropský polytechnický institut, s.r.o. 1. soukromá vysoká škola na Moravě Kunovice EKONOMICKO-MATEMATICKÉ METODY prof. Ing. Petr Dostál, CSc. Mgr. Věra Matuštíková Mgr. Iva Jevčaková 2011 Název: Ekonomicko-matematické

Více

a. vymezení obchodních podmínek veřejné zakázky ve vztahu k potřebám zadavatele,

a. vymezení obchodních podmínek veřejné zakázky ve vztahu k potřebám zadavatele, Doporučení MMR k postupu zadavatelů při zpracování odůvodnění účelnosti veřejné zakázky, při stanovení obchodních podmínek pro veřejné zakázky na stavební práce a při vymezení podrobností předmětu veřejné

Více

4.6.6 Složený sériový RLC obvod střídavého proudu

4.6.6 Složený sériový RLC obvod střídavého proudu 4.6.6 Složený sériový LC obvod střídavého proudu Předpoklady: 41, 4605 Minulá hodina: odpor i induktance omezují proud ve střídavém obvodu, nemůžeme je však sčítat normálně, ale musíme použít Pythagorovu

Více

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu

Více

Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy

Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana (celkem 7) Polyadické - zobrazené mnohočlenem desítková soustava 3 2 532 = 5 + 3 + 2 + Číselné soustavy Číslice tvořící zápis čísla jsou vlastně

Více

Zvyšování kvality výuky technických oborů

Zvyšování kvality výuky technických oborů Zvyšování kvality výuky technických oborů Klíčová aktivita IV. Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol Téma IV.. Kvadratické funkce, rovnice a nerovnice

Více

KONSTRUKČNÍ ÚLOHY ŘEŠENÉ UŽITÍM MNOŽIN BODŮ

KONSTRUKČNÍ ÚLOHY ŘEŠENÉ UŽITÍM MNOŽIN BODŮ Projekt ŠABLONY NA GVM Gymnázium Velké Meziříčí registrační číslo projektu: CZ.1.07/1.5.00/34.0948 IV-2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol KONSTRUKČNÍ

Více

DOPRAVNÍK PRO BIOMASU

DOPRAVNÍK PRO BIOMASU DOPRAVNÍK PRO BIOMASU konstruování v Autodesk Inventor 11 Autor: Petr Voltr 2007 Níže popisovaný dopravník je určen pro dopravu biomasy z uskladňovacího prostoru k prostoru dávkovače paliva pro topeniště

Více

JEDNACÍ ŘÁD FORMÁTOVÉHO VÝBORU NÁRODNÍ DIGITÁLNÍ KNIHOVNY

JEDNACÍ ŘÁD FORMÁTOVÉHO VÝBORU NÁRODNÍ DIGITÁLNÍ KNIHOVNY JEDNACÍ ŘÁD FORMÁTOVÉHO VÝBORU NÁRODNÍ DIGITÁLNÍ KNIHOVNY Článek 1 Úvodní ustanovení 1. Jednací řád Formátového výboru Národní digitální knihovny upravuje zejména způsob svolávání zasedání, účasti, rozhodování

Více

FAKTORY OVLIVŇUJÍCÍ VÝKONNOST A PRACOVNÍ ZAUJETÍ ZAMĚSTNANCŮ

FAKTORY OVLIVŇUJÍCÍ VÝKONNOST A PRACOVNÍ ZAUJETÍ ZAMĚSTNANCŮ ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA Katedra řízení Teze k diplomové práci na téma: FAKTORY OVLIVŇUJÍCÍ VÝKONNOST A PRACOVNÍ ZAUJETÍ ZAMĚSTNANCŮ Autor: Vedoucí diplomové práce:

Více

Abstrakt. Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování

Abstrakt. Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování Abstrakt Následující text obsahuje detailní popis algoritmu Minimax, který se používá při realizaci rozhodování počítačového hráče v jednoduchých deskových hrách, a jeho vylepšení Alfa-Beta ořezávání,

Více

Využití EduBase ve výuce 2

Využití EduBase ve výuce 2 B.I.B.S., a. s. Využití EduBase ve výuce 2 Projekt Vzdělávání pedagogů v prostředí cloudu reg. č. CZ.1.07/1.3.00/51.0011 Mgr. Jitka Kominácká, Ph.D. a kol. 2015 1 Obsah 1 Obsah... 2 2 Úvod... 3 3 Aktivita:

Více

4. Výčtem prvků f: {[2,0],[3,1],[4,2],[5,3]}

4. Výčtem prvků f: {[2,0],[3,1],[4,2],[5,3]} 1/27 FUNKCE Základní pojmy: Funkce, definiční obor, obor hodnot funkce Kartézská soustava souřadnic, graf funkce Opakování: Číselné množiny, úpravy výrazů, zobrazení čísel na reálné ose Funkce: Zápis:

Více

Vrtání závitů bez vyrovnávací hlavičky (G331, G332)

Vrtání závitů bez vyrovnávací hlavičky (G331, G332) Předpoklady Funkce Technickým předpokladem pro vrtání závitů bez vyrovnávací hlavičky je vřeteno s regulací polohy a systémem pro měření dráhy. Vrtání závitů bez vyrovnávací hlavičky se programuje pomocí

Více

Paretova analýza. StatSoft

Paretova analýza. StatSoft StatSoft Paretova analýza Paretův diagram je důležitým nástrojem pro manažerské rozhodování. Umožňuje proniknout do podstaty jevů, napomáhá oddělit podstatné faktory řešeného problému od méně podstatných.

Více

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27 cs-cz Poznámky k verzi Scania Diagnos & Programmer 3, verze 2.27 Verze 2.27 nahrazuje verzi 2.26 programu Scania Diagnos & Programmer 3 a podporuje systémy ve vozidlech řady P, G, R a T a řady F, K a N

Více

Komora auditorů České republiky

Komora auditorů České republiky Komora auditorů České republiky Opletalova 55, 110 00 Praha 1 Aplikační doložka KA ČR Požadavky na zprávu auditora definované zákonem o auditorech ke standardu ISA 700 Formulace výroku a zprávy auditora

Více

Matice a maticová algebra, soustavy lineárních rovnic, kořeny polynomu a soustava nelin.rovnic

Matice a maticová algebra, soustavy lineárních rovnic, kořeny polynomu a soustava nelin.rovnic co byste měli umět po dnešní lekci: definovat matici, přistupovat k jejím prvkům provádět základní algebraické operace spočíst inverzní matici najít řešení soustavy lineárních rovnic určit vlastní čísla

Více

Zadání bakalářské/diplomové práce

Zadání bakalářské/diplomové práce Analýza systémového chování experimentální smyčky S-ALLEGRO V rámci projektu SUSEN Udržitelná energetika bude vyprojektována a postavena experimentální heliová smyčka S-Allegro. Tato smyčka má modelově

Více

INFORMACE K POKUSNÉMU OVĚŘOVÁNÍ ORGANIZACE PŘIJÍMACÍHO ŘÍZENÍ SŠ S VYUŽITÍM JEDNOTNÝCH TESTŮ

INFORMACE K POKUSNÉMU OVĚŘOVÁNÍ ORGANIZACE PŘIJÍMACÍHO ŘÍZENÍ SŠ S VYUŽITÍM JEDNOTNÝCH TESTŮ INFORMACE K POKUSNÉMU OVĚŘOVÁNÍ ORGANIZACE PŘIJÍMACÍHO ŘÍZENÍ SŠ S VYUŽITÍM JEDNOTNÝCH TESTŮ INFORMACE PRO UCHAZEČE O PŘIJETÍ KE STUDIU ZÁKLADNÍ INFORMACE KE KONÁNÍ JEDNOTNÝCH TESTŮ Český jazyk a literatura

Více

Název a registrační číslo projektu: Číslo a název oblasti podpory: Realizace projektu: Autor: Období vytváření výukového materiálu: Ročník:

Název a registrační číslo projektu: Číslo a název oblasti podpory: Realizace projektu: Autor: Období vytváření výukového materiálu: Ročník: Název a registrační číslo projektu: CZ.1.07/1.5.00/34.0498 Číslo a název oblasti podpory: 1.5 Zlepšení podmínek pro vzdělávání na středních školách Realizace projektu: 02. 07. 2012 01. 07. 2014 Autor:

Více

Metodické listy pro kombinované studium předmětu ŘÍZENÍ LIDSKÝCH ZDROJŮ. Metodický list č. 1

Metodické listy pro kombinované studium předmětu ŘÍZENÍ LIDSKÝCH ZDROJŮ. Metodický list č. 1 Metodický list č. 1 Název tematického celku: Řízení lidských zdrojů význam a úloha v organizaci Pojetí a význam personální práce Vývojové fáze (koncepce) personální práce Personální činnosti, personální

Více

PŘÍLOHA č. 2B PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU

PŘÍLOHA č. 2B PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU PŘÍLOHA č. 2B PRAVIDEL PRO ŽADATELE A PŘÍJEMCE PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU OPERAČNÍ PROGRAM TECHNICKÁ POMOC Vydání 1/7, platnost a účinnost od 04. 04. 2016 Obsah 1 Změny v projektu... 3

Více

Zvyšování kvality výuky technických oborů

Zvyšování kvality výuky technických oborů Zvyšování kvality výuky technických oborů Klíčová aktivita IV. Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti žáků středních škol Téma IV.. Kvadratické funkce, rovnice a nerovnice

Více

PŘEPOČET ZÚČTOVANÝCH ZÁLOH V 10% NA 14% V KONOCOVÉ

PŘEPOČET ZÚČTOVANÝCH ZÁLOH V 10% NA 14% V KONOCOVÉ PŘEPOČET ZÚČTOVANÝCH ZÁLOH V 10% NA 14% V KONOCOVÉ FAKTUŘE 2012 Výrazná změna, která nás v letošním roce potkala je změna sazby DPH. NASTAVENÍ SAZEB DPH Nastavení jednotlivých sazeb DPH provedete v menu

Více

DUM 11 téma: Nástroje pro transformaci obrázku

DUM 11 téma: Nástroje pro transformaci obrázku DUM 11 téma: Nástroje pro transformaci obrázku ze sady: 2 tematický okruh sady: Bitmapová grafika ze šablony: 09 Počítačová grafika určeno pro: 2. ročník vzdělávací obor: vzdělávací oblast: číslo projektu:

Více

POSDOKTORSKÉ PROJEKTY 2012

POSDOKTORSKÉ PROJEKTY 2012 POSDOKTORSKÉ PROJEKTY 2012 Mezi osobní náklady hrazené z dotace lze zařadit náklady na: Mzdu nebo plat (dále jen mzdy) včetně pohyblivých složek, náhrad za dovolenou na zotavenou a náhrad za dočasnou pracovní

Více

PSYCHOLOGIE JAKO VĚDA

PSYCHOLOGIE JAKO VĚDA Název materiálu: Psychologie jako věda Autor materiálu: Mgr. Kateřina Kaderková Zařazení materiálu: výuková prezentace Šablona: Inovace a zkvalitnění výuky prostřednictvím ICT (III/2) Název a označení

Více

CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014

CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014 (CT) Výběrové šetření výsledků žáků 2014 Uživatelská příručka pro přípravu školy Verze 1 Obsah 1 ÚVOD... 3 1.1 Kde hledat další informace... 3 1.2 Posloupnost kroků... 3 2 KROK 1 KONTROLA PROVEDENÍ POINSTALAČNÍCH

Více