2. část: Základy matematického programování, dopravní úloha. 1
Úvodní pojmy Metody na podporu rozhodování lze obecně dělit na: Eaktní metody metody zaručující nalezení optimální řešení, např. Littlův algortimus, Hakimiho algoritmus atd. Heuristické metody metody, které nezaručují nalezení optimálního řešení, např. Metoda nejbližšího dosud nenavštíveného vrcholu atd. 2
Úvodní pojmy Přípustné řešení je každé řešení, které splňuje omezující podmínky úlohy. Optimální řešení je přípustné řešení, pro které nabývá hodnota optimalizačního kritéria etrému (maima či minima). Optimalizační kritérium je hledisko, pomocí kterého posuzujeme kvalitu jednotlivých přípustných řešení. Je-li optimalizační kritérium formulováno jako funkční vztah, hovoříme o účelové funkci. 3
Matematické modelování Předmětem matematického modelování je sestava a řešení matematických modelů reálných problémů. Matematické modelování patří mezi eaktní metody. Matematické modely lze členit podle mnoha kritérií. Podle toho, zda matematický model obsahuje náhodné proměnné, dělíme: Deterministické modely (proměnné modelu nemají charakter náhodných proměnných). Stochastické modely (proměnné modelu mají charakter náhodných proměnných). 4
Matematické modelování Podle toho, je-li do modelu včleněn čas, dělíme modely na: Statické (neobsahující čas, umožňují rozhodnout se v konkrétní situaci, nikoliv výhledově). Dynamické (obsahující čas, umožňují rozhodovat výhledově). 5
Matematické programování Je třeba provést nějaké rozhodnutí (např. jak naplánovat přepravy určitého materiálu ze skladů k zákazníkům tak, abychom minimalizovali celkové náklady na přepravu). Účelem matematického programování je sestava a řešení rozhodovacích úloh, hledáme optimální řešení vzhledem k definovanému optimalizačnímu kritériu. 6
Matematické programování Modely matematického programování dělíme na: Lineární (podmínky úlohy jsou vyjádřeny lineárními rovnicemi nebo nerovnicemi). Nelineární (podmínky úlohy jsou vyjádřeny nelineárními rovnicemi či nerovnicemi; o nelineární model se jedná i tehdy, je-li část podmínek nelineární a zbytek lineární). 7
Lineární programování Budeme se zabývat jednoduchými lineárními matematickými modely a to statickými a deterministickými. Požadavky na matematický model: Model musí co nejpřesněji vystihovat modelovanou situaci. Model musí být co nejjednodušší. 8
Lineární programování K aplikacím lineárního programování např. patří již uvedené stanovení objemů přeprav mezi zdroji a zákazníky při minimalizaci celkových nákladů za přepravu, stanovení výrobního plánu náhradních dílů do dopravních prostředků při maimalizaci zisku, stanovení střižného plánu plechů při minimalizaci získaného odpadu atd. 9
Lineární programování Každý matematický model je tvořen: Soustavou omezujících podmínek (vymezují množinu přípustných řešení). Účelovou funkcí, která umožňuje posuzovat kvalitu jednotlivých přípustných řešení z pohledu optimalizačního kritéria (např. minimalizace nákladů apod.). 10
Lineární programování Omezující podmínky úlohy dělíme na: Strukturální podmínky (zajišťují splnění podmínek plynoucích ze zadání konkrétního problému). Obligatorní podmínky (specifikují definiční obory proměnných vystupujících v modelu). 11
Lineární programování Do matematického modelu vstupují dvě skupiny veličin: Veličiny konstantní, jejichž hodnoty se v průběhu výpočtu nemění. Veličiny, jejichž hodnoty se v průběhu výpočtu mění proměnné. Pomocí proměnných modelujeme jednotlivá rozhodnutí, z hodnot proměnných musí být po ukončení výpočtu jasné, jaká rozhodnutí máme udělat. 12
Lineární programování V lineárním programování rozlišujeme podle oboru hodnot proměnných dva typy úloh: Úlohy spojitého lineárního modelování. Úlohy celočíselného lineárního modelování. V lineárním programování rozeznáváme tři základní typy oborů hodnot proměnných: Obor nezáporných reálných čísel. Obor nezáporných celých čísel. Obor hodnot 0 a 1. 13
Lineární programování Budeme-li např. rozhodovat o tom, kolik vyrobit šroubků M12, přičemž výrobní jednotkou bude tuna, budou definičním oborem příslušné proměnné nezáporná reálná čísla. Budeme-li rozhodovat o tom, kolik vyrobit automobilů, potom budou definičním oborem proměnné celá nezáporná čísla. Budeme-li rozhodovat o tom, které úseky zařadit do minimální Hamiltonovy kružnice, potom bude definiční obor proměnných {0,1}. 14
Lineární programování V lineárním programování je dovoleno sčítat a odečítat proměnné a násobit proměnné reálnou konstantou. V lineárním programování je dovoleno používat relační znaménka =, a. 15
Dopravní úloha Definice dopravní úlohy: Máme m zdrojů o kapacitách a i, kde i 1,2,..., ma n spotřebitelů s požadavky b j, kde j 1,2,..., n, mezi kterými se přepravuje homogenní typ zásilek. Dále je dána matice sazeb C ij jednotkové náklady na přepravu z i tého zdroje k j tému spotřebiteli. Úkolem dopravní úlohy je potom určit jednotlivé objemy přeprav z i tého zdroje k j tému spotřebiteli tak, aby se minimalizovaly celkové náklady na přepravu. 16
Dopravní úloha Rozeznáváme 3 typy dopravní úlohy: Dopravní úloha vybilancovaná - a i bj. Dopravní úloha nevybilancovaná s přebytkem kapacit zdrojů - a i b. i1 j1 Dopravní úloha nevybilancovaná s nedostatkem kapacit zdrojů - a i bj. m m i1 n n j1 j m i1 n j1 17
Vlastnosti vybilancované dopravní úlohy 1. Množina přípustných řešení vybilancované dopravní úlohy je konvení. Obecně platí, že množina přípustných oblastí může být tvořena: Prázdnou množinou. Konvením polyedrem (bod je považován za konvení polyedr). Neohraničenou konvení oblastí. 18
Vlastnosti vybilancované dopravní úlohy Oblast přípustných řešení Oblast přípustných řešení Konvení polyedr Neohraničená konvení oblast 19
Vlastnosti vybilancované dopravní úlohy 2. Vybilancovaná dopravní úloha má vždy přípustné řešení. 20
Vlastnosti vybilancované dopravní úlohy Důkaz Pro vybilancovanou úlohu platí ij ij A. Zvolme ij a i b A j pro všechna i,j. Musíme ověřit, zda je toto řešení přípustným. i j Jelikož a, b, A 0, potom platí, čili obligatorní podmínky jsou splněny. m n i1 j1 b A i j ij 0 a 21
Vlastnosti vybilancované dopravní úlohy Dále platí pro všechna i, jsou tedy splněny podmínky pro zdroje. Platí pro všechna j, jsou tedy splněny podmínky pro zákazníky. 22 i m j j i n j j i n j ij a A b a A b a 1 1 1 j m j i j m i j i m i ij b A a b A b a 1 1 1
Vlastnosti vybilancované dopravní úlohy Jelikož jsou splněny všechny omezující ai podmínky úlohu, zvolené řešení ij všechna i,j je řešením přípustným. A b j pro 23
Vlastnosti vybilancované dopravní úlohy 3. Vybilancovaná dopravní úloha má vždy optimální řešení. 4. Jsou-li všechny kapacity zdrojů a požadavky spotřebitelů celá nezáporná čísla, každé základní řešení se skládá pouze z celých čísel. 24
Vlastnosti vybilancované dopravní úlohy Oblast přípustných řešení Základní řešení 25
Vlastnosti vybilancované dopravní úlohy 5. Účelová funkce nabývá minima v krajním bodě konveního polyedru, který je množinou přípustných řešení dané úlohy. Jestliže účelová funkce nabývá minima ve více než jednom krajním bodu, dosahuje stejných hodnot ve všech bodech, které jsou konveními kombinacemi bodů, v nichž účelová funkce nabývá minima (leží tedy na spojnici těchto bodů). 26
Matematický model vybilancované dopravní úlohy c 11, 11 a 1 Z 1 c 12, 12 c 21, 21 S 1 b 1 a 2 Z 2 c 22, 22 c, 2 n 2n c, m2 m2 S 2 b 2 m i1 n a i b j1 j c, m1 m1 c, 1 n 1n a m Z m c, mn mn S n b n Proměnná ij objem přepravy mezi i-tým zdrojem a j-tým spotřebitelem. 27
Matematický model vybilancované dopravní úlohy Účelová funkce: f c c min c m1 m1 c 11 m2 11 m2 1 12... c mn... c mn 1n 1n c 21 21 c 22 22... c 2n 2n... Obligatorní podmínky: 11, 12,..., 1 n, 21, 22,..., 2n,... m 1, m2,... mn 0 28
Matematický model vybilancované dopravní úlohy Strukturální podmínky: Kapacita každého zdroje Požadavek každého bude zcela vyčerpána. spotřebitele bude zcela 11 21 m1 12 22 m2......... 1n 2n mn a a......... 1 2 a m splněn. 11 12 1n 21 22 2n......... m1 m2 mn b b......... 1 b 2 n 29
Matematický model vybilancované dopravní úlohy Matematický model ve zkrácené podobě: min f m n i1 j1 c ij ij za podmínek: n j1 ij a i pro i 1,2,..., m m i1 ij b j pro j 1,2,..., n Vyčerpání kapacit zdrojů. Uspokojení požadavků. ij 0 pro i 1,2,..., m a i 1,2,..., n 30
Matematický model nevybilancované DÚ s přebytkem kapacit zdrojů c 11, 11 a 1 Z 1 c 12, 12 c 21, 21 S 1 b 1 a 2 Z 2 c 22, 22 c, 2 n 2n c, m2 m2 S 2 b 2 m i1 n a i b j1 j c, m1 m1 c, 1 n 1n a m Z m c, mn mn S n b n Proměnná ij objem přepravy mezi i-tým zdrojem a j-tým spotřebitelem. 31
Matematický model nevybilancované DÚ s přebytkem kapacit zdrojů Účelová funkce: f c c min c m1 m1 c 11 m2 11 m2... c... c mn mn 1n Obligatorní podmínky: 1 12 1n c 21 21 c 22 22... c 2n 2n... 11, 12,..., 1 n, 21, 22,..., 2n,... m 1, m2,... mn 0 Účelová funkce a obligatorní podmínky mají stejný tvar jako u vybilancované dopravní úlohy! 32
Matematický model nevybilancované DÚ s přebytkem kapacit zdrojů Strukturální podmínky: Kapacita každého zdroje Požadavek každého bude vyčerpána jenom spotřebitele bude zcela částečně nebo zcela. splněn. 11 21 m1 12 22 m2......... 1n 2n mn a a......... 1 2 a m 11 12 1n 21 22 2n......... m1 m2 mn b b......... 1 b 2 n 33
Matematický model nevybilancované DÚ s přebytkem kapacit zdrojů Matematický model ve zkrácené podobě: min f m i1 j1 za podmínek: n c ij ij n j1 ij a i pro i 1,2,..., m m i1 ij b j pro j 1,2,..., n Částečné nebo úplné Uspokojení požadavků. vyčerpání kapacit zdrojů. ij 0 pro i 1,2,..., m a i 1,2,..., n 34
Matematický model nevybilancované DÚ s nedostatkem kapacit zdrojů c 11, 11 a 1 Z 1 c 12, 12 c 21, 21 S 1 b 1 a 2 Z 2 c 22, 22 c, 2 n 2n c, m2 m2 S 2 b 2 m i1 n a i b j1 j c, m1 m1 c, 1 n 1n a m Z m c, mn mn S n b n Proměnná ij objem přepravy mezi i-tým zdrojem a j-tým spotřebitelem. 35
Matematický model nevybilancované DÚ s nedostatkem kapacit zdrojů Účelová funkce: f c c min c m1 m1 c 11 m2 11 m2... c mn... c mn 1n Obligatorní podmínky: 1 12 1n c 21 21 c 22 22... c 2n 2n... 11, 12,..., 1 n, 21, 22,..., 2n,... m 1, m2,... mn 0 Účelová funkce a obligatorní podmínky mají opět stejný tvar jako u vybilancované dopravní úlohy! 36
Matematický model nevybilancované DÚ s nedostatkem kapacit zdrojů Strukturální podmínky: Kapacita každého zdroje Požadavek každého bude zcela vyčerpána. bude uspokojen pouze 11 21 m1 12 22 m2......... 1n 2n mn a a......... 1 2 a m částečně nebo úplně. 11 12 1n 21 22 2n......... m1 m2 mn b b......... 1 b 2 n 37
Matematický model nevybilancované DÚ s nedostatkem kapacit zdrojů Matematický model ve zkrácené podobě: min f m n i1 j1 c ij ij za podmínek: n j1 ij a i pro i 1,2,..., m Vyčerpání kapacit zdrojů. m i1 ij 0 pro i 1,2,..., m a i 1,2,..., n ij b j pro j 1,2,..., n Částečné nebo úplné uspokojení požadavků. 38
Analytické řešení dopravní úlohy K řešení úloh lineárního programování se používá Simpleová metoda. Z výpočetního hlediska není tato metoda pro řešení dopravní úlohy vhodná, proto byl vyvinut G.B. Dantzigem speciální algoritmus pro řešení dopravní úlohy. 39
Analytické řešení dopravní úlohy Pro potřeby výpočtu musíme znát: Počet zdrojů a jejich kapacity a i, kde i 1,2,..., m. Počet spotřebitelů s požadavky. Matici sazeb (jednotkových nákladů) C, jednotlivé prvky c ij této matice odpovídají nákladům na přepravu jedné jednotky mezi i-tým zdrojem a j-tým spotřebitelem. Proměnná ij bude nezáporná. b j, kde j 1,2,..., n 40
Analytické řešení dopravní úlohy Vlastní algoritmus se skládá z následujících kroků: 1) Kontrola vybilancovanosti úlohy, postup na krok 2). 2) Nalezení výchozího řešení, postup na krok 3). 3) Kontrola nedegenerace úlohy, postup na krok 4). 4) Test optimality, není-li řešení optimální, postup na krok 5), v opačném případě algoritmus končí. Vyhledané řešení je řešením optimálním. 5) Transformace řešení a návrat ke kroku 3). 41
Analytické řešení dopravní úlohy krok 1) Algoritmus je vytvořen pro řešení vybilancované dopravní úlohy. Máme-li nevybilancovanou dopravní úlohu s přebytkem kapacit zdrojů, potom přidáme fiktivního spotřebitele S f s požadavkem b f m i1 a i n j1 b j. V případě nevybilancované dopravní úlohy s nedostatkem kapacit zdrojů přidáme fiktivní n m zdroj Z f s kapacitou a b a. f j1 j i1 i 42
Analytické řešení dopravní úlohy krok 2) Výchozí řešení lze určit některou ze tří metod: Metodou severozápadního rohu. Indeovou metodou. Vogelovou aproimační metodou. 43
Analytické řešení dopravní úlohy krok 2) Metoda severozápadního rohu: Jako první obsazujeme maimálním objemem přepravy pole odpovídající prvnímu zdroji a prvnímu zákazníkovi. V případě vyčerpání kapacity příslušného zdroje se přesouváme na další řádek, v opačném případě o jedno pole doprava. Pole obsazujeme tedy postupně od levého horního rohu (tedy severozápadu). 44
Analytické řešení dopravní úlohy Indeová metoda: krok 2) Postupně obsazujeme pole s nejnižší sazbou, přičemž postupujeme od sazeb nižších k sazbám vyšším. Vyskytuje-li se v tabulce více stejných sazeb, potom vybíráme libovolnou z nich. Nulové sazby (tedy ty, které odpovídají fiktivním přepravám) obsazujeme jako poslední v pořadí. 45
Analytické řešení dopravní úlohy krok 2) Vogelova aproimační metoda: 1) V každé řadě vypočítáme diferenci, nelze-li diference spočítat, postup na krok 4), v opačném případě jdeme na krok 2). 2) Vyhledáme řadu s maimální diferencí, v této řadě vyhledáme pole s nejnižší sazbou a to obsadíme maimálním možným objemem přepravy. Je-li více řad s maimální diferencí, potom vybíráme tu řadu, ve které je nejnižší sazba ze všech těchto řad a na toto pole umístíme maimální možný objem přepravy. Postup na krok 3). 46
Analytické řešení dopravní úlohy krok 2) Vogelova aproimační metoda: 3) Řadu, jejíž kapacitu nebo požadavek jsme vyčerpali, pomyslně vyškrtneme a při dalším postupu vedoucím k vyhledání výchozího řešení s ní dočasně nepracujeme, návrat na krok 1). 4) Obsadíme pole odpovídající zbylým hodnotám, vyhledané řešení je výchozím řešením. 47
Analytické řešení dopravní úlohy krok 2) Použitím některé z uvedených 3 metod získáme výchozí řešení, které je základní. Řešení je základní tehdy, pokud graf, který vznikne spojením obsazených polí vodorovnými a svislými čarami, neobsahuje kružnici. 48
Analytické řešení dopravní úlohy krok 3) Získané řešení je nedegenerované, pokud je přepravami obsazeno (m + n 1) polí. Případnou degeneraci odstraníme tak, že chybějící počet polí obsadíme nulovými objemy přepravy, přičemž je třeba opět respektovat, aby řešení bylo základní, tedy nuly lze umisťovat pouze na pole tak, aby v grafu nevznikla kružnice. 49
Analytické řešení dopravní úlohy krok 4) Test optimality řešení se skládá ze 3 kroků: 1) Výpočet potenciálů u i a v j podle vztahu u i + v j = c ij. Potenciály počítáme pouze s využitím sazeb na obsazených polích počítáme (m + n) potenciálů a máme pouze (m + n 1) rovnic. Jeden potenciál položíme roven nule (doporučuje se za nulový potenciál volit ten, který odpovídá řadě s největším počtem obsazených polí). Ostatní potenciály dopočítáme podle výše uvedeného vztahu. 50
Analytické řešení dopravní úlohy krok 4) 2) Výpočet nepřímých sazeb c ij podle vztahu c ij ui v j. Tyto nepřímé sazby vypočítáme pro všechna pole, postupujeme-li správně, potom musí na obsazených polích platit c. ij c ij 3) Platí-li na všech polích nerovnost c ij c ij, potom je aktuální řešení optimálním. Pokud toto neplatí pro všechna pole, potom je nutno přistoupit k transformaci řešení krok 5). 51
Analytické řešení dopravní úlohy krok 5) Před transformací vypočteme hodnotu účelové funkce aktuálního řešení, tato hodnota se po provedení transformace řešení nesmí zvýšit. Samotnou transformaci provedeme následujícím postupem: V tabulce vyhledáme nejvyšší kladný rozdíl c ij c ij (kandidát s nejvyšší možnou úsporou) a na toto pole umístíme dosud neznámý objem přepravy t. V řešící tabulce vyhledáme uzavřený obvod, přičemž se můžeme pohybovat pouze vodorovně nebo svisle a měnit směr lze pouze na polích obsazených přepravami. V místech lomení obvodu střídavě odečítáme a přičítáme objem přepravy t. Hodnota t je rovna nejmenšímu objemu přepravy na polích, na kterých se hodnota t odečítá. 52
Dantzigova ε perturbační metoda V případě velké degenerovanosti úlohy lze k odstranění degenerace úlohy použít tuto metodu. Metoda spočívá v úpravě vstupů úlohy: a i ai pro i 1,2,..., m (všechny kapacity zdrojů zvýšíme o ε. b j bj pro j 1,2,..., n 1; b n bn m (všechny požadavky zůstanou stejné kromě požadavku posledního spotřebitele, který navýšíme o mε. 53
Dantzigova ε perturbační metoda Číslo ε se nazývá perturbační konstanta a určí se podle vztahu: k 10 2m, kde k představuje řád nejnižší kapacity zdroje, resp. nejnižšího požadavku spotřebitele. Před hledáním výchozího řešení upravíme vstupy úlohy, vyhledáme výchozí řešení a poté hodnoty podle běžných zásad zaokrouhlíme na celá čísla. Takto získáme nedegenerované řešení. 54