2. část: Základy matematického programováí, dopraví úloha. 1
Úvodí pomy Metody a podporu rozhodováí lze obecě dělit a: Eaktí metody metody zaručuící alezeí optimálí řešeí, apř. Littlův algortimus, Hakimiho algoritmus atd. Heuristické metody metody, které ezaručuí alezeí optimálího řešeí, apř. Metoda ebližšího dosud eavštíveého vrcholu atd. 2
Úvodí pomy Přípusté řešeí e každé řešeí, které splňue omezuící podmíky úlohy. Optimálí řešeí e přípusté řešeí, pro které abývá hodota optimalizačího kritéria etrému (maima či miima). Optimalizačí kritérium e hledisko, pomocí kterého posuzueme kvalitu edotlivých přípustých řešeí. Je-li optimalizačí kritérium formulováo ako fukčí vztah, hovoříme o účelové fukci. 3
Matematické modelováí Předmětem matematického modelováí e sestava a řešeí matematických modelů reálých problémů. Matematické modelováí patří mezi eaktí metody. Matematické modely lze čleit podle moha kritérií. Podle toho, zda matematický model obsahue áhodé proměé, dělíme: Determiistické modely (proměé modelu emaí charakter áhodých proměých). Stochastické modely (proměé modelu maí charakter áhodých proměých). 4
Matematické modelováí Podle toho, e-li do modelu včleě čas, dělíme modely a: Statické (eobsahuící čas, umožňuí rozhodout se v kokrétí situaci, ikoliv výhledově). Dyamické (obsahuící čas, umožňuí rozhodovat výhledově). 5
Matematické programováí Je třeba provést ěaké rozhodutí (apř. ak apláovat přepravy určitého materiálu ze skladů k zákazíkům tak, abychom miimalizovali celkové áklady a přepravu). Účelem matematického programováí e sestava a řešeí rozhodovacích úloh, hledáme optimálí řešeí vzhledem k defiovaému optimalizačímu kritériu. 6
Matematické programováí Modely matematického programováí dělíme a: Lieárí (podmíky úlohy sou vyádřey lieárími rovicemi ebo erovicemi). Nelieárí (podmíky úlohy sou vyádřey elieárími rovicemi či erovicemi; o elieárí model se edá i tehdy, e-li část podmíek elieárí a zbytek lieárí). 7
Lieárí programováí Budeme se zabývat edoduchými lieárími matematickými modely a to statickými a determiistickými. Požadavky a matematický model: Model musí co epřesěi vystihovat modelovaou situaci. Model musí být co eedodušší. 8
Lieárí programováí K aplikacím lieárího programováí apř. patří iž uvedeé staoveí obemů přeprav mezi zdroi a zákazíky při miimalizaci celkových ákladů za přepravu, staoveí výrobího pláu áhradích dílů do dopravích prostředků při maimalizaci zisku, staoveí střižého pláu plechů při miimalizaci získaého odpadu atd. 9
Lieárí programováí Každý matematický model e tvoře: Soustavou omezuících podmíek (vymezuí možiu přípustých řešeí). Účelovou fukcí, která umožňue posuzovat kvalitu edotlivých přípustých řešeí z pohledu optimalizačího kritéria (apř. miimalizace ákladů apod.). 10
Lieárí programováí Omezuící podmíky úlohy dělíme a: Strukturálí podmíky (zaišťuí splěí podmíek plyoucích ze zadáí kokrétího problému). Obligatorí podmíky (specifikuí defiičí obory proměých vystupuících v modelu). 11
Lieárí programováí Do matematického modelu vstupuí dvě skupiy veliči: Veličiy kostatí, eichž hodoty se v průběhu výpočtu eměí. Veličiy, eichž hodoty se v průběhu výpočtu měí proměé. Pomocí proměých modelueme edotlivá rozhodutí, z hodot proměých musí být po ukočeí výpočtu asé, aká rozhodutí máme udělat. 12
Lieárí programováí V lieárím programováí rozlišueme podle oboru hodot proměých dva typy úloh: Úlohy spoitého lieárího modelováí. Úlohy celočíselého lieárího modelováí. V lieárím programováí rozezáváme tři základí typy oborů hodot proměých: Obor ezáporých reálých čísel. Obor ezáporých celých čísel. Obor hodot 0 a 1. 13
Lieárí programováí Budeme-li apř. rozhodovat o tom, kolik vyrobit šroubků M12, přičemž výrobí edotkou bude tua, budou defiičím oborem příslušé proměé ezáporá reálá čísla. Budeme-li rozhodovat o tom, kolik vyrobit automobilů, potom budou defiičím oborem proměé celá ezáporá čísla. Budeme-li rozhodovat o tom, které úseky zařadit do miimálí Hamiltoovy kružice, potom bude defiičí obor proměých {0,1}. 14
Lieárí programováí V lieárím programováí e dovoleo sčítat a odečítat proměé a ásobit proměé reálou kostatou. V lieárím programováí e dovoleo používat relačí zaméka =, a. 15
Dopraví úloha Defiice dopraví úlohy: Máme m zdroů o kapacitách a i, kde i 1,2,..., m a spotřebitelů s požadavky b, kde 1,2,...,, mezi kterými se přepravue homogeí typ zásilek. Dále e dáa matice sazeb C i edotkové áklady a přepravu z i tého zdroe k tému spotřebiteli. Úkolem dopraví úlohy e potom určit edotlivé obemy přeprav z i tého zdroe k tému spotřebiteli tak, aby se miimalizovaly celkové áklady a přepravu. 16
Dopraví úloha Rozezáváme 3 typy dopraví úlohy: Dopraví úloha vybilacovaá -. Dopraví úloha evybilacovaá s přebytkem kapacit zdroů -. i1 a i b 1 Dopraví úloha evybilacovaá s edostatkem kapacit zdroů -. m m i1 a i b 1 m i1 a i b 1 17
Vlastosti vybilacovaé dopraví úlohy 1. Možia přípustých řešeí vybilacovaé dopraví úlohy e koveí. Obecě platí, že možia přípustých oblastí může být tvořea: Prázdou možiou. Koveím polyedrem (bod e považová za koveí polyedr). Neohraičeou koveí oblastí. 18
Vlastosti vybilacovaé dopraví úlohy Oblast přípustých řešeí Oblast přípustých řešeí Koveí polyedr Neohraičeá koveí oblast 19
Vlastosti vybilacovaé dopraví úlohy 2. Vybilacovaá dopraví úloha má vždy přípusté řešeí. 20
Vlastosti vybilacovaé dopraví úlohy Důkaz Pro vybilacovaou úlohu platí. Zvolme i a i b A pro všecha i,. Musíme ověřit, zda e toto řešeí přípustým. Jelikož, potom platí, čili obligatorí podmíky sou splěy. m i i1 1 ai, b, A 0 0 i a i b A i A 21
Vlastosti vybilacovaé dopraví úlohy Dále platí pro všecha i, sou tedy splěy podmíky pro zdroe. Platí pro všecha, sou tedy splěy podmíky pro zákazíky. 22 i m i i i a A b a A b a 1 1 1 m i m i i m i i b A a b A b a 1 1 1
Vlastosti vybilacovaé dopraví úlohy Jelikož sou splěy všechy omezuící podmíky úlohu, zvoleé řešeí všecha i, e řešeím přípustým. i a i b A pro 23
Vlastosti vybilacovaé dopraví úlohy 3. Vybilacovaá dopraví úloha má vždy optimálí řešeí. 4. Jsou-li všechy kapacity zdroů a požadavky spotřebitelů celá ezáporá čísla, každé základí řešeí se skládá pouze z celých čísel. 24
Vlastosti vybilacovaé dopraví úlohy Oblast přípustých řešeí Základí řešeí 25
Vlastosti vybilacovaé dopraví úlohy 5. Účelová fukce abývá miima v kraím bodě koveího polyedru, který e možiou přípustých řešeí daé úlohy. Jestliže účelová fukce abývá miima ve více ež edom kraím bodu, dosahue steých hodot ve všech bodech, které sou koveími kombiacemi bodů, v ichž účelová fukce abývá miima (leží tedy a spoici těchto bodů). 26
Matematický model vybilacovaé dopraví úlohy a 1 Z 1 c 11, 11 c 12, 12 c 21, 21 S 1 b 1 a 2 Z 2 c 22, 22 c2, 2 c, m2 m2 S 2 b 2 m i1 a i b 1 c m 1, m1 c1, 1 a m Z m c, m m S b Proměá i obem přepravy mezi i-tým zdroem a -tým spotřebitelem. 27
Matematický model vybilacovaé dopraví úlohy Účelová fukce: mi f c m1 m1 c c 11 m2 11 m2 c 1 12... c... c m m 1 1 c 21 21 c 22 22... c 2 2... Obligatorí podmíky: 11, 12,..., 1, 21, 22,..., 2,... m 1, m2,... m 0 28
Matematický model vybilacovaé dopraví úlohy Strukturálí podmíky: Kapacita každého zdroe Požadavek každého bude zcela vyčerpáa. spotřebitele bude zcela 11 21 m1 12 22 m2......... 1 2 m a a... 1 2 a m splě. 11 12 1 21 22 2......... m1 m2 m b b... 1 b 2 29
Matematický model vybilacovaé dopraví úlohy Matematický model ve zkráceé podobě: mi m f i1 1 za podmíek: 1 i a i c i i proi 1,2,..., m m i1 i b pro 1,2,..., Vyčerpáí kapacit zdroů. Uspokoeí požadavků. i 0 proi 1,2,..., m a i 1,2,..., 30
Matematický model evybilacovaé DÚ s přebytkem kapacit zdroů a 1 Z 1 c 11, 11 c 12, 12 c 21, 21 S 1 b 1 a 2 Z 2 c 22, 22 c2, 2 c, m2 m2 S 2 b 2 m i1 a i b 1 c m 1, m1 c1, 1 a m Z m c, m m S b Proměá i obem přepravy mezi i-tým zdroem a -tým spotřebitelem. 31
Matematický model evybilacovaé DÚ s přebytkem kapacit zdroů Účelová fukce: mi f c m1 m1 c c 11 m2 11 m2 c... c... c m m 1 Obligatorí podmíky: 1 12 1 c 21 21 c 22 22... c 2 2... 11, 12,..., 1, 21, 22,..., 2,... m 1, m2,... m 0 Účelová fukce a obligatorí podmíky maí steý tvar ako u vybilacovaé dopraví úlohy! 32
Matematický model evybilacovaé DÚ s přebytkem kapacit zdroů Strukturálí podmíky: Kapacita každého zdroe Požadavek každého bude vyčerpáa eom spotřebitele bude zcela částečě ebo zcela. splě. 11 21 m1 12 22 m2......... 1 2 m a a... 1 2 a m 11 12 1 21 22 2......... m1 m2 m b b... 1 b 2 33
Matematický model evybilacovaé DÚ s přebytkem kapacit zdroů Matematický model ve zkráceé podobě: mi m f i1 1 za podmíek: c i i 1 i a i proi 1,2,..., m m i1 i b pro 1,2,..., Částečé ebo úplé Uspokoeí požadavků. vyčerpáí kapacit zdroů. i 0 proi 1,2,..., m a i 1,2,..., 34
Matematický model evybilacovaé DÚ s edostatkem kapacit zdroů a 1 Z 1 c 11, 11 c 12, 12 c 21, 21 S 1 b 1 a 2 Z 2 c 22, 22 c2, 2 c, m2 m2 S 2 b 2 m i1 a i b 1 c m 1, m1 c1, 1 a m Z m c, m m S b Proměá i obem přepravy mezi i-tým zdroem a -tým spotřebitelem. 35
Matematický model evybilacovaé DÚ s edostatkem kapacit zdroů Účelová fukce: mi f c m1 m1 c c 11 m2 11 m2 c... c... c m m 1 Obligatorí podmíky: 1 12 1 c 21 21 c 22 22... c 2 2... 11, 12,..., 1, 21, 22,..., 2,... m 1, m2,... m 0 Účelová fukce a obligatorí podmíky maí opět steý tvar ako u vybilacovaé dopraví úlohy! 36
Matematický model evybilacovaé DÚ s edostatkem kapacit zdroů Strukturálí podmíky: Kapacita každého zdroe Požadavek každého bude zcela vyčerpáa. bude uspokoe pouze 11 21 m1 12 22 m2......... 1 2 m a a... 1 2 a m částečě ebo úplě. 11 12 1 21 22 2......... m1 m2 m b b... 1 b 2 37
Matematický model evybilacovaé DÚ s edostatkem kapacit zdroů Matematický model ve zkráceé podobě: mi m f i1 1 c i i za podmíek: 1 i a i proi 1,2,..., m Vyčerpáí kapacit zdroů. m i1 i 0 proi 1,2,..., m a i 1,2,..., i b pro 1,2,..., Částečé ebo úplé uspokoeí požadavků. 38
Aalytické řešeí dopraví úlohy K řešeí úloh lieárího programováí se používá Simpleová metoda. Z výpočetího hlediska eí tato metoda pro řešeí dopraví úlohy vhodá, proto byl vyviut G.B. Datzigem speciálí algoritmus pro řešeí dopraví úlohy. 39
Aalytické řešeí dopraví úlohy Pro potřeby výpočtu musíme zát: Počet zdroů a eich kapacity. Počet spotřebitelů s požadavky. Matici sazeb (edotkových ákladů) C, edotlivé prvky c i této matice odpovídaí ákladům a přepravu edé edotky mezi i-tým zdroem a -tým spotřebitelem. Proměá i bude ezáporá. a i, kde i 1,2,..., m b, kde 1,2,..., 40
Aalytické řešeí dopraví úlohy Vlastí algoritmus se skládá z ásleduících kroků: 1) Kotrola vybilacovaosti úlohy, postup a krok 2). 2) Nalezeí výchozího řešeí, postup a krok 3). 3) Kotrola edegeerace úlohy, postup a krok 4). 4) Test optimality, eí-li řešeí optimálí, postup a krok 5), v opačém případě algoritmus kočí. Vyhledaé řešeí e řešeím optimálím. 5) Trasformace řešeí a ávrat ke kroku 3). 41
Aalytické řešeí dopraví úlohy krok 1) Algoritmus e vytvoře pro řešeí vybilacovaé dopraví úlohy. Máme-li evybilacovaou dopraví úlohu s přebytkem kapacit zdroů, potom přidáme fiktivího spotřebitele S f s požadavkem b f m i1 a i 1 b. V případě evybilacovaé dopraví úlohy s edostatkem kapacit zdroů přidáme fiktiví m zdro Z f s kapacitou a b a. f 1 i1 i 42
Aalytické řešeí dopraví úlohy krok 2) Výchozí řešeí lze určit ěkterou ze tří metod: Metodou severozápadího rohu. Ideovou metodou. Vogelovou aproimačí metodou. 43
Aalytické řešeí dopraví úlohy krok 2) Metoda severozápadího rohu: Jako prví obsazueme maimálím obemem přepravy pole odpovídaící prvímu zdroi a prvímu zákazíkovi. V případě vyčerpáí kapacity příslušého zdroe se přesouváme a další řádek, v opačém případě o edo pole doprava. Pole obsazueme tedy postupě od levého horího rohu (tedy severozápadu). 44
Aalytické řešeí dopraví úlohy Ideová metoda: krok 2) Postupě obsazueme pole s eižší sazbou, přičemž postupueme od sazeb ižších k sazbám vyšším. Vyskytue-li se v tabulce více steých sazeb, potom vybíráme libovolou z ich. Nulové sazby (tedy ty, které odpovídaí fiktivím přepravám) obsazueme ako posledí v pořadí. 45
Aalytické řešeí dopraví úlohy krok 2) Vogelova aproimačí metoda: 1) V každé řadě vypočítáme difereci, elze-li diferece spočítat, postup a krok 4), v opačém případě deme a krok 2). 2) Vyhledáme řadu s maimálí diferecí, v této řadě vyhledáme pole s eižší sazbou a to obsadíme maimálím možým obemem přepravy. Je-li více řad s maimálí diferecí, potom vybíráme tu řadu, ve které e eižší sazba ze všech těchto řad a a toto pole umístíme maimálí možý obem přepravy. Postup a krok 3). 46
Aalytické řešeí dopraví úlohy krok 2) Vogelova aproimačí metoda: 3) Řadu, eíž kapacitu ebo požadavek sme vyčerpali, pomyslě vyškrteme a při dalším postupu vedoucím k vyhledáí výchozího řešeí s í dočasě epracueme, ávrat a krok 1). 4) Obsadíme pole odpovídaící zbylým hodotám, vyhledaé řešeí e výchozím řešeím. 47
Aalytické řešeí dopraví úlohy krok 2) Použitím ěkteré z uvedeých 3 metod získáme výchozí řešeí, které e základí. Řešeí e základí tehdy, pokud graf, který vzike spoeím obsazeých polí vodorovými a svislými čarami, eobsahue kružici. 48
Aalytické řešeí dopraví úlohy krok 3) Získaé řešeí e edegeerovaé, pokud e přepravami obsazeo (m + 1) polí. Případou degeeraci odstraíme tak, že chyběící počet polí obsadíme ulovými obemy přepravy, přičemž e třeba opět respektovat, aby řešeí bylo základí, tedy uly lze umisťovat pouze a pole tak, aby v grafu evzikla kružice. 49
Aalytické řešeí dopraví úlohy krok 4) Test optimality řešeí se skládá ze 3 kroků: 1) Výpočet poteciálů u i a v podle vztahu u i + v = c i. Poteciály počítáme pouze s využitím sazeb a obsazeých polích počítáme (m + ) poteciálů a máme pouze (m + 1) rovic. Jede poteciál položíme rove ule (doporučue se za ulový poteciál volit te, který odpovídá řadě s evětším počtem obsazeých polí). Ostatí poteciály dopočítáme podle výše uvedeého vztahu. 50
Aalytické řešeí dopraví úlohy krok 4) 2) Výpočet epřímých sazeb c i podle vztahu c i ui v. Tyto epřímé sazby vypočítáme pro všecha pole, postupueme-li správě, potom musí a obsazeých polích platit. c i c i 3) Platí-li a všech polích erovost, potom e aktuálí řešeí optimálím. Pokud toto eplatí pro všecha pole, potom e uto přistoupit k trasformaci řešeí krok 5). c i c i 51
Aalytické řešeí dopraví úlohy krok 5) Před trasformací vypočteme hodotu účelové fukce aktuálího řešeí, tato hodota se po provedeí trasformace řešeí esmí zvýšit. Samotou trasformaci provedeme ásleduícím postupem: c V tabulce vyhledáme evyšší kladý rozdíl (kadidát s evyšší možou úsporou) a a toto pole umístíme dosud ezámý obem přepravy t. V řešící tabulce vyhledáme uzavřeý obvod, přičemž se můžeme pohybovat pouze vodorově ebo svisle a měit směr lze pouze a polích obsazeých přepravami. V místech lomeí obvodu střídavě odečítáme a přičítáme obem přepravy t. Hodota t e rova emešímu obemu přepravy a polích, a kterých se hodota t odečítá. i c i 52
Datzigova ε perturbačí metoda V případě velké degeerovaosti úlohy lze k odstraěí degeerace úlohy použít tuto metodu. Metoda spočívá v úpravě vstupů úlohy: a i ai proi 1,2,..., m (všechy kapacity zdroů zvýšíme o ε. (všechy požadavky zůstaou steé kromě požadavku posledího spotřebitele, který avýšíme o mε. b b pro 1,2,..., 1; b b m 53
Datzigova ε perturbačí metoda Číslo ε se azývá perturbačí kostata a určí se podle vztahu: k 10 2m, kde k představue řád eižší kapacity zdroe, resp. eižšího požadavku spotřebitele. Před hledáím výchozího řešeí upravíme vstupy úlohy, vyhledáme výchozí řešeí a poté hodoty podle běžých zásad zaokrouhlíme a celá čísla. Takto získáme edegeerovaé řešeí. 54