Kvantitativní metody v rozhodování Každý manažer je ve své denodenní praxi vystaven řadě rozhodovacích situací a problémů, které může analyzovat ze dvou hledisek: • buď na základě znalostí a zkušeností (kvalitativní analýza) • nebo pomocí údajů v numerické podobě a jejich exaktního matematického zpracování (kvantitativní analýza), viz schéma. KVALITATIVNÍ ANALÝZA založená na úsudku a zkušenostech manažera Manažerský problém Souhrn a vyhodnocení ■> Rozhodnutí KVANTITATIVNÍ ANALÝZA založená na matematických technikách Kvantitativní metody v rozhodování Ve specifických situacích je samozřejmě možné provádět jen jednu ze zmíněných analýz. Spolehneme-li se však pouze na kvalitativní analýzu bez číselných propočtů, závisí výsledek do značné míry na dobrém úsudku manažera. Naopak přílišná důvěra v numerické výsledky může být zavádějící: každé číselné řešení je přesné jen do té míry, jak přesně byl zkonstruován model. Navíc kvantitativní analýza problému může být zdlouhavá a neefektivní v situaci, kdy je třeba přijmout rozhodnutí rychle. Kdy by tedy měl manažer přizvat na pomoc kvantitativní metody? Kvantitativní metody v rozhodování Ve specifických situacích je samozřejmě možné provádět jen jednu ze zmíněných analýz. Spolehneme-li se však pouze na kvalitativní analýzu bez číselných propočtů, závisí výsledek do značné míry na dobrém úsudku manažera. Naopak přílišná důvěra v numerické výsledky může být zavádějící: každé číselné řešení je přesné jen do té míry, jak přesně byl zkonstruován model. Navíc kvantitativní analýza problému může být zdlouhavá a neefektivní v situaci, kdy je třeba přijmout rozhodnutí rychle. Kdy by tedy měl manažer přizvat na pomoc kvantitativní metody? Zejména, je-li problém: • složitý, kdy specialisté mohou manažerovi pomoci prostřednictvím simulace reality vhodným modelem • velmi důležitý, například jde-li o velké peníze a manažer chce mít pro rozhodování solidní podklady • nový, chybí zkušenosti s řešením obdobných problémů • opakovaný, takže použití ověřených kvantitativních procedur šetří čas i prostředky Ekonomicko - matematický model Modelem rozumíme určité zobrazení reálného systému. Nikdy nejde o dokonalý obraz skutečnosti, to ani není žádoucí! Správně zkonstruovaný model musí vystihovat pouze ty vlastnosti, které jsou z hlediska řešení problému důležité. Zahrneme-li do modelu všechny detaily, bude složitý, špatně řešitelný a nepřehledný. Na druhou stranu při přílišné snaze o zjednodušení můžou být opomenuty některé významné skutečnosti a vazby. Při modelování je klíčové právě dobré nastavení vztahu mezi reálným světem a modelem. Ekonomicko - matematický model Modelem rozumíme určité zobrazení reálného systému. Nikdy nejde o dokonalý obraz skutečnosti, to ani není žádoucí! Správně zkonstruovaný model musí vystihovat pouze ty vlastnosti, které jsou z hlediska řešení problému důležité. Zahrneme-li do modelu všechny detaily, bude složitý, špatně řešitelný a nepřehledný. Na druhou stranu při přílišné snaze o zjednodušení můžou být opomenuty některé významné skutečnosti a vazby. Při modelování je klíčové právě dobré nastavení vztahu mezi reálným světem a modelem. Manažer by měl umět problém dobře • formulovat tak, aby bylo možné k jeho řešení využít kvantitativních metod, a následně výsledky • interpretovat a implementovat do praxe. S vlastním řešením matematického modelu mohou pomoci experti či specializovaný software. I při možnosti využití výpočetní techniky je však dobré mít přehled o dostupných metodách, abychom v konkrétní situaci uměli vybrat vhodný algoritmus a nastavit jeho parametry. Co to je "optimalizace"? Při optimalizaci řešíme problém výběru "nejlepšího řešení" mezi všemi "možnými řešeními". V každé konkrétní úloze je třeba pojmy uvedené v uvozovkách specifikovat. Všechna možná řešení budeme dále popisovat pomocí množiny M , kterou nazveme množina přípustných řešení, a míru kvality řešení budeme vyjadřovat prostřednictvím funkce f: M R , která se označuje jako cílová nebo kriteriální nebo též účelová funkce. Zadání optimalizační úlohy pak zní: Najděte prvek x* e M takový, že platí: /(x*) > /(x), Vx g M, Co to je "optimalizace"? Při optimalizaci řešíme problém výběru "nejlepšího řešení" mezi všemi "možnými řešeními". V každé konkrétní úloze je třeba pojmy uvedené v uvozovkách specifikovat. Všechna možná řešení budeme dále popisovat pomocí množiny M , kterou nazveme množina přípustných řešení, a míru kvality řešení budeme vyjadřovat prostřednictvím funkce f: M R , která se označuje jako cílová nebo kriteriální nebo též účelová funkce. Zadání optimalizační úlohy pak zní: Najděte prvek x* e M takový, že platí: /(x*) > /(x), Vx g M, Pozn.: Maximalizační úlohu "f max"\ze snadno převést na minimalizační úlohu min". Co to je "optimalizace"? Při optimalizaci řešíme problém výběru "nejlepšího řešení" mezi všemi "možnými řešeními". V každé konkrétní úloze je třeba pojmy uvedené v uvozovkách specifikovat. Všechna možná řešení budeme dále popisovat pomocí množiny M , kterou nazveme množina přípustných řešení, a míru kvality řešení budeme vyjadřovat prostřednictvím funkce f: M R , která se označuje jako cílová nebo kriteriální nebo též účelová funkce. Zadání optimalizační úlohy pak zní: Najděte prvek x* e M takový, že platí: /(x*) > /(x), Vx e M, Pozn.: Maximalizační úlohu "f max"\ze snadno převést na minimalizační úlohu min". Příklady optimalizačních úloh v ekonomii: Co to je "optimalizace"? Při optimalizaci řešíme problém výběru "nejlepšího řešení" mezi všemi "možnými řešeními". V každé konkrétní úloze je třeba pojmy uvedené v uvozovkách specifikovat. Všechna možná řešení budeme dále popisovat pomocí množiny M , kterou nazveme množina přípustných řešení, a míru kvality řešení budeme vyjadřovat prostřednictvím funkce f: M R , která se označuje jako cílová nebo kriteriální nebo též účelová funkce. Zadání optimalizační úlohy pak zní: Najděte prvek x* e M takový, že platí: /(x*) > /(x), Vx e M, Pozn.: Maximalizační úlohu "f max"\ze snadno převést na minimalizační úlohu min". Příklady optimalizačních úloh v ekonomii: • Optimalizace výrobního programu • Optimalizace portfolia • Optimální rozdělení práce a řazení pracovních operací a Minimalizace distribučních nákladů, plánování rozvozních tras a umístění distribučních center • Minimalizace doby realizace při řízení projektů • Optimální řízení zásob Co je to "optimalizace"? Z hlediska přípustné množiny rozlišujeme dva typy optimalizačních úloh: • Je-li přípustným řešením každý bod x n-rozměrného Euklidova prostoru Rn, tj. M = Rn, hovoříme o nepodmíněné optimalizaci, resp. o volných extrémech. Postup analytického řešení takových úloh je znám ze základního kurzu matematiky o V opačném případě, tedy je-li M cRn hovoříme o vázaných extrémech. Jejich existenci pro spojitou funkce na omezené uzavřené množině zaručuje Weierstrassova věta. Možnosti analytického řešení složitějších úloh (např. když je v úloze mnoho proměnných, komplikovaná hranice přípustné množiny nebo dostaneme nelineární rovnice pro určení stacionárního bodu) jsou však omezené. Proto byly vyvinuty speciální metody pro řešení určitých typů optimalizačních úloh. Matematické programování Pojem matematické programování označuje souhrn metod sloužících k optimalizaci předem definovaného kritéria vyjádřeného jako funkce n proměnných při současném splnění omezujících podmínek zadaných zpravidla ve formě rovností a nerovností. Úlohy matematického programování můžeme rozdělit na úlohy • lineárního programování (dále jen LP), kdy účelová funkce i omezující podmínky jsou lineárními funkcemi proměnných • nelineárního programování (NLP), když výše uvedená podmínka není splněna. Speciálním případem NLP je kvadratické programování, kdy účelová funkce je polynom druhého stupně, ale omezující podmínky jsou lineární. Matematické programování Pojem matematické programování označuje souhrn metod sloužících k optimalizaci předem definovaného kritéria vyjádřeného jako funkce n proměnných při současném splnění omezujících podmínek zadaných zpravidla ve formě rovností a nerovností. Úlohy matematického programování můžeme rozdělit na úlohy • lineárního programování (dále jen LP), kdy účelová funkce i omezující podmínky jsou lineárními funkcemi proměnných • nelineárního programování (NLP), když výše uvedená podmínka není splněna. Speciálním případem NLP je kvadratické programování, kdy účelová funkce je polynom druhého stupně, ale omezující podmínky jsou lineární. Dále se zaměříme hlavně na modely LP, ty jsou jednoznačně nejrozšířenější. Proč? Hodně reálných problémů lze dobře formulovat jako úlohu LP, pro jejich rychlé řešení jsou dostupné programové prostředky, atp. V praxi se sice běžně vyskytují nelineární vztahy (např. neproporcionalita: když cena není konstantní, tak příjem není přímo úměrný prodanému množství, neaditivita: objem roztoku není roven součtu objemů výchozích látek, apod.), avšak kvůli nepoměrně větší složitosti postupů NLP bývá často výhodnější použít aproximaci lineárním modelem. Lineární programování Při formulaci úlohy matematického programování je třeba vycházet z dobře popsaného ekonomického modelu. Lineární programování Při formulaci úlohy matematického programování je třeba vycházet z dobře popsaného ekonomického modelu. Je tedy třeba znát: • cíl, jehož chceme dosáhnout (tedy zvolit kritérium: zisk nebo náklady nebo objem výroby, atd. a určit, zda se jej budeme snažit minimalizovat nebo maximalizovat) • řiditelné vstupy, tj. jaké proměnné můžeme ovlivňovat za účelem dosažení cíle (počet vyrobených kusů různých typů produktu, velikost převáženého nákladu, atd.) • neřiditelné vstupy neboli omezení, která nás limitují (ceny nakupovaných surovin, dispoziční množství zdrojů, kapacita zařízení, atd.) Neřiditelné vstupy (externí limity) Řiditelné vstupy (rozhodovací proměnné) Řešení (hodnoty proměnných) Úloha LP - Optimalizace výrobního programu Veškerý další výklad problematiky lineárního programování bude ilustrován na následující optimalizační úloze převzaté z knihy Josefa Jablonského "Operační výzkum, Kvantitativní modely pro ekonomické rozhodování": Balírny a pražírny kávy DE, a.s. plánují výrobu dvou směsí Mocca a Standard. Od dodavatelů mají k dispozici tři druhy kávových bobů Ki, K2a K3v kapacitě 40, 60 a 25 tun. Technologický postup určující skladbu směsí shrňme v tabulce. Komponenta Mocca Standard Kapacita [t] Ki 0,5 0,25 40 K2 0,5 0,5 60 K3 0,25 25 Vzhledem k výrobním nákladům a prodejní ceně směsí byl vykalkulován zisk, který činí 20000 Kč resp. 14000 Kč na jednu tunu směsi Mocca resp. Standard. Management firmy chce naplánovat produkci tak, aby její zisk byl maximální. Formulace úlohy optimalizace výrobního programu Označíme - li x\ množství tun směsi Mocca a x2 množství tun směsi Standard, můžeme problém formulovat matematicky jako úlohu maximalizovat účelovou funkci: z = 20000*! + 14000x2 za podmínek 0,5x-\ + 0,25x2 < 40 0,5x! + 0,5x2 < 60 0,25x2 < 25 Xi, x2 > o Formulace úlohy optimalizace výrobního programu Označíme - li x\ množství tun směsi Mocca a x2 množství tun směsi Standard, můžeme problém formulovat matematicky jako úlohu maximalizovat účelovou funkci: z = 20000*! + 14000x2 za podmínek 0,5*1 + 0,25x2 <40 0,5*1 + 0,5x2 < 60 0,25x2 <25 X\, x2 > 0 Je možný též maticový zápis úlohy: z = cT x max za podmínek A x < b, x > 0, kde x = (x\, x2)T je vektor strukturních proměnných, c = (20, 14)T je vektor cenových koeficientů v účelové funkci, b = (40,60,25)T je vektor kapacitních Matematická formulace obecné úlohy LP Obecnou úlohu LP pro n proměnných a m omezení můžeme zapsat takto minimalizuj (maximalizuj) funkci * = E7=1 CjXj za podmínek ^Tyn=1 agy? bi, / = 1,...A77 Xj > 0, j = 1,... n, kde na místě symbolů ? můžou být libovolná relační znaménka <, =, >. Omezení se uvádějí v takové podobě, aby pravé strany b, byly nezáporné Matematická formulace obecné úlohy LP Obecnou úlohu LP pro n proměnných a m omezení můžeme zapsat takto: minimalizuj (maximalizuj) funkci * = E7=1 CjXj za podmínek ^Tyn=1 agy? bi, / = 1,...A77 Xj > 0, j = 1,... n, kde na místě symbolů ? můžou být libovolná relační znaménka <, =, >. Omezení se uvádějí v takové podobě, aby pravé strany b, byly nezáporné. Je dobré si uvědomit, že jednu úlohu lze formulovat různými způsoby. Snadno lze převést úlohu minimalizační na úlohu maximalizace funkce -z = Y^=a {-ci)xi- Omezení ve formě rovnosti lze přepsat jako dvě nerovnice typu < a > s týmiž koeficienty i pravou stranou jako původní rovnice. Převod omezení ve formě nerovnosti na rovnici se zase řešení zavedením dodatečných proměnných, jak si dále ukážeme. Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. 0)5x1+0,25x2<40 Kvůli nezápornosti proměnných se omezíme pouze na první kvadrant. Znázorníme zde polorovinu tvořenou body splňujícími první omezující podmínku. Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. 0,5x1+0,5x2<60 Znázorníme také polorovinu tvořenou body splňujícími druhou omezující podmínku. Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. 0,25x2<25 Znázorníme ještě polorovinu tvořenou body splňujícími třetí omezující podmínku. Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. A1 Množina přípustných řešení M je tvořena body, které vyhovují všem omezením. Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. Izokvanta účelové funkce z = 20000^ + 14000x2 = 0 Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. A Izokvanta účelové funkce z = 20000xi + 14000x2 = 350000 Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. Izokvanta účelové funkce z = 20000xi + 14000x2 = 700000 Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. z= 1050000 Izokvanta účelové funkce z = 20000xi + 14000x2 = 1050000 Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. z= 1920000 Izokvanta účelové funkce z = 20000xi + 14000x2 = 1920000 Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. Nejvyšší izokvanta se dotýká množiny M v bodě x * Grafické řešení úlohy LP Úlohy obsahující pouze dvě proměnné lze řešit graficky. Ukažme si postup pro naši úlohu o kávě. 40 80 Xl Bod x* = [40,80] je optimálním řešením. Základní věta lineárního programování Přípustná množina M je vymezena obligátními podmínkami (nezápornost) omezujícími podmínkami A • x < b. Ty lze vyjádřit pomocí rovností: 0,5*1 + 0,25x2 + x3 = 40 0,5^ + 0,5x2 + x4 =60 0,25x2 + x5 = 25 Základní věta lineárního programování Přípustná množina M je vymezena obligátními podmínkami (nezápornost) omezujícími podmínkami A • x < b. Ty lze vyjádřit pomocí rovností: 0,5*1 + 0,25x2 + x3 = 40 0,5^ + 0,5x2 + x4 =60 0,25x2 + x5 =25 Proměnné x3, x4, x5 označujeme jako přídatné a lze je ekonomicky interpretovat jako nevyužitou kapacitu jednotlivých surovin. Základní věta lineárního programování Přípustná množina M je vymezena obligátními podmínkami (nezápornost) a omezujícími podmínkami A • x < b. Ty lze vyjádřit pomocí rovností: 0,5*1 + 0,25x2 + x3 = 40 0,5^ + 0,5x2 + x4 =60 0,25x2 + x5 =25 Proměnné x3, x4, x5 označujeme jako přídatné a lze je ekonomicky interpretovat jako nevyužitou kapacitu jednotlivých surovin. Soustava obsahuje m rovnic pro m + n proměnných, může mít obecně nekonečně mnoho řešení. Takové řešení soustavy, pro které je n proměnných rovno nule, nazýváme základní (Ve 2D odpovídají základní řešení průsečíkům hraničních přímek jednotlivých nerovností.) Nenulové proměnné pak označujeme jako základní, nulové jako nezákladní. Základní věta lineárního programování Přípustná množina M je vymezena obligátními podmínkami (nezápornost) a omezujícími podmínkami A • x < b. Ty lze vyjádřit pomocí rovností: 0,5*1 + 0,25x2 + x3 = 40 0,5^ + 0,5x2 + x4 =60 0,25x2 + x5 =25 Proměnné x3, x4, x5 označujeme jako přídatné a lze je ekonomicky interpretovat jako nevyužitou kapacitu jednotlivých surovin. Soustava obsahuje m rovnic pro m + n proměnných, může mít obecně nekonečně mnoho řešení. Takové řešení soustavy, pro které je n proměnných rovno nule, nazýváme základní (Ve 2D odpovídají základní řešení průsečíkům hraničních přímek jednotlivých nerovností.) Nenulové proměnné pak označujeme jako základní, nulové jako nezákladní. Pozor! Ne každé základní řešení je přípustné. Přípustná základní řešení odpovídají "krajním bodům"/W. V našm příkladě je m = 3, n = 2; celkem dostaneme ? základních řešení, z toho ? přípustných. Základní věta lineárního programování Přípustná množina M je vymezena obligátními podmínkami (nezápornost) a omezujícími podmínkami A • x < b. Ty lze vyjádřit pomocí rovností: 0,5*1 + 0,25x2 + x3 = 40 0,5^ + 0,5x2 + x4 =60 0,25x2 + x5 =25 Proměnné x3, x4, x5 označujeme jako přídatné a lze je ekonomicky interpretovat jako nevyužitou kapacitu jednotlivých surovin. Soustava obsahuje m rovnic pro m + n proměnných, může mít obecně nekonečně mnoho řešení. Takové řešení soustavy, pro které je n proměnných rovno nule, nazýváme základní (Ve 2D odpovídají základní řešení průsečíkům hraničních přímek jednotlivých nerovností.) Nenulové proměnné pak označujeme jako základní, nulové jako nezákladní. Pozor! Ne každé základní řešení je přípustné. Přípustná základní řešení odpovídají "krajním bodům"/W. V našm příkladě je m = 3, n = 2; celkem dostaneme ? základních řešení, z toho ? přípustných. Hlavní věta lineárního programování: Jestliže má úloha optimální řešení, pak má také optimální základní řešení. Simplexová tabulka Uvedenou soustavu rovnic můžeme zapsat maticově jako (A, I) • (xi, x2, x3, x4, x5)T = b, kde I je jednotková matice řádu m = 3. Každou takovou soustavu m rovnic pro m + n neznámých, kde matice levé strany obsahuje všechny sloupce jednotkové matice řádu m, nazveme soustavou v kanonickém tvaru. Simplexová tabulka Uvedenou soustavu rovnic můžeme zapsat maticově jako (A, I) • (xi, x2, x3, x4, x5)T = b, kde I je jednotková matice řádu m = 3. Každou takovou soustavu m rovnic pro m + n neznámých, kde matice levé strany obsahuje všechny sloupce jednotkové matice řádu m, nazveme soustavou v kanonickém tvaru. Snadno vidíme jedno z řešení takové soustavy: = 0, x2 = 0, x3 = b\ = 40, x4 = b2 = 60, x5 = b3 = 25, jde dokonce o řešení základní. Znázorněme vše do přehledné tabulky: zákl. prom. X\ x2 x3 x4 x5 bi x3 x4 1 1 2 4 1 1 2 2 o 1 1 0 0 0 1 0 0 0 1 40 60 25 zj -20 -14 0 0 0 0 Simplexová tabulka Uvedenou soustavu rovnic můžeme zapsat maticově jako (A, I) • (xi, x2, x3, x4, x5)T = b, kde I je jednotková matice řádu m = 3. Každou takovou soustavu m rovnic pro m + n neznámých, kde matice levé strany obsahuje všechny sloupce jednotkové matice řádu m, nazveme soustavou v kanonickém tvaru. Snadno vidíme jedno z řešení takové soustavy: = 0, x2 = 0, x3 = b\ = 40, x4 = b2 = 60, x5 = b3 = 25, jde dokonce o řešení základní. Znázorněme vše do přehledné tabulky: zákl. prom. X\ x2 x3 x4 x5 bi x3 x4 1 1 2 4 1 1 2 2 o 1 1 0 0 0 1 0 0 0 1 40 60 25 zj -20 -14 0 0 0 0 Poslední řádek odpovídá účelové funkci v tzv. anulovaném tvaru, původní vyjádření z = 20^ + 14x2 [v tis. Kč] jsme převedli na tvar z - 20^ - 14x2 - 0x3 - 0x4 - 0x5, pro výchozí základní řešení dostaneme hodnotu účelové funkce z = 0, viz pravý dolní roh tabulky. Uvedené schéma nazveme výchozí simplexovou tabulkou úlohy. Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Na obrázku ukažme schematické znázornění postupu ve 3D. Množina přípustných řešení Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Na obrázku ukažme schematické znázornění postupu ve 3D. výchozí bod Výchozí základní řešení Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Na obrázku ukažme schematické znázornění postupu ve 3D. výchozí bod Přesuneme se do sousedního vrcholu s lepší hodnotou účelové funkce Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Na obrázku ukažme schematické znázornění postupu ve 3D. výchozí bod Přesuneme se do sousedního vrcholu s ještě lepší hodnotou účelové funkce Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Na obrázku ukažme schematické znázornění postupu ve 3D. výchozí bod Zase se přesuneme do sousedního vrcholu s lepší hodnotou účelové funkce Simplexová metoda Simplexová metoda je iterační postup k nalezení optimálního řešení úlohy LR Úvodním krokem je nalezení výchozího základního řešení. U úloh obsahujících pouze nerovnice typu "<"je tento krok díky přídatným proměnným jednoduchý, u jiných typů úloh jej získáme řešením počáteční úlohy minimalizace pomocných proměnných vyjadřujících porušení omezujících podmínek, hovoříme pak o dvoufázové simplexové metodě. Dále metoda v jednotlivých krocích vypočte nové základní řešení s lepší hodnotou účelové funkce. Po konečném počtu kroků se nalezne řešení s nejlepší hodnotou účelové funkce (podle základní věty LP jde pak o optimální řešení celé úlohy) nebo se zjistí, že takové řešení neexistuje. Na obrázku ukažme schematické znázornění postupu ve 3D. optimum výchozí bod Nelze se přesunout do žádného lepšího bodu, byl nalezen bod optima Iterační krok simplexová metody Čísla Zj v spodním řádku simplexová tabulky nazýváme redukované ceny. Ukazují, jak se změní účelová funkce při přechodu k novému základnímu řešení. Stane-li se nezákladní proměnná xk proměnnou základní, tj. změní-li hodnotu z 0 na t > 0, bude přírůstek účelové funkce Az = -ř • zk. Čísla Zj v spodním řádku simplexové tabulky nazýváme redukované ceny. Ukazují, jak se změní účelová funkce při přechodu k novému základnímu řešení. Stane-li se nezákladní proměnná xk proměnnou základní, tj. změní-li hodnotu z 0 na t > 0, bude přírůstek účelové funkce Az = - t • zk. Při maximalizaci chceme, aby toto Az bylo kladné, tj. aby zk < 0. Pokud jsou všechny redukované ceny nezáporné , již nejde zvýšit hodnotu účelové funkce, řešení je optimální. Iterační krok simplexové metody Čísla Zj v spodním řádku simplexové tabulky nazýváme redukované ceny. Ukazují, jak se změní účelová funkce při přechodu k novému základnímu řešení. Stane-li se nezákladní proměnná xk proměnnou základní, tj. změní-li hodnotu z 0 na t > 0, bude přírůstek účelové funkce Az = - t • zk. Při maximalizaci chceme, aby toto Az bylo kladné, tj. aby zk < 0. Pokud jsou všechny redukované ceny nezáporné , již nejde zvýšit hodnotu účelové funkce, řešení je optimální. Jinak vybereme xk, pro které je zk nejmenší (říkáme mu vstupující proměnná), a nahradíme s ním některou základní (vystupující) proměnnou. Iterační krok simplexové metody Čísla Zj v spodním řádku simplexové tabulky nazýváme redukované ceny. Ukazují, jak se změní účelová funkce při přechodu k novému základnímu řešení. Stane-li se nezákladní proměnná xk proměnnou základní, tj. změní-li hodnotu z 0 na t > 0, bude přírůstek účelové funkce Az = - t • zk. Při maximalizaci chceme, aby toto Az bylo kladné, tj. aby zk < 0. Pokud jsou všechny redukované ceny nezáporné , již nejde zvýšit hodnotu účelové funkce, řešení je optimální. Jinak vybereme xk, pro které je zk nejmenší (říkáme mu vstupující proměnná), a nahradíme s ním některou základní (vystupující) proměnnou. Tedy pro naši simplexovou tabulku zákl. prom. *1 x2 x3 x4 x5 x3 x4 x5 1 1 2 4 1 1 2 2 o 1 1 0 0 0 1 0 0 0 1 40 60 25 ZJ -20 -14 0 0 0 0 bude vstupující proměnnou x^, protože -20 je nejmenší hodnota na posledním řádku. Iterační krok simplexové metody Volba vystupující proměnné vychází z nutnosti zachovat přípustnost řešení, tedy nezápornost všech základních proměnných. Zapišme tuto podmínku pro nové hodnoty původních základních proměnných x3, x4, x5, jestliže nově = t. Z platnosti rovnic: x3 = 40-^ř>0 x4 = 60 - \t > 0 x5 = 25 - 0 > 0 Zřejmě největší možné takové t je t = 80, pro ně dostaneme x3 = 0. To se nyní stane vystupující proměnnou. Tabulku přepočteme elementárními úpravami tak, abychom vlevo nahoře dostali jedničku a pod ní samé nuly. Iterační krok simplexové metody Volba vystupující proměnné vychází z nutnosti zachovat přípustnost řešení, tedy nezápornost všech základních proměnných. Zapišme tuto podmínku pro nové hodnoty původních základních proměnných x3, x4, x5, jestliže nově = t. Z platnosti rovnic: x3 = 40-^ř>0 x4 = 60 - \t > 0 x5 = 25 - 0 > 0 Zřejmě největší možné takové t je t = 80, pro ně dostaneme x3 = 0. To se nyní stane vystupující proměnnou. Tabulku přepočteme elementárními úpravami tak, abychom vlevo nahoře dostali jedničku a pod ní samé nuly. zákl. prom. X\ x2 x3 x4 x5 x3 x4 1 1 2 4 1 1 2 2 o 1 1 0 0 0 1 0 0 0 1 40 60 25 ZJ -20 -14 0 0 0 0 První řádek vynásobíme dvojkou Iterační krok simplexové metody Volba vystupující proměnné vychází z nutnosti zachovat přípustnost řešení, tedy nezápornost všech základních proměnných. Zapišme tuto podmínku pro nové hodnoty původních základních proměnných x3, x4, x5, jestliže nově = t. Z platnosti rovnic: x3 = 40-^ř>0 x4 = 60 - \t > 0 x5 = 25 - 0 > 0 Zřejmě největší možné takové t je t = 80, pro ně dostaneme x3 = 0. To se nyní stane vystupující proměnnou. Tabulku přepočteme elementárními úpravami tak, abychom vlevo nahoře dostali jedničku a pod ní samé nuly. zákl. prom. x2 X3 x4 *5 1 1 2 2 0 0 80 x4 1 2 1 2 0 1 0 60 0 1 4 0 0 1 25 zi -20 -14 0 0 0 0 Odečteme jeho polovinu od druhého Iterační krok simplexové metody Volba vystupující proměnné vychází z nutnosti zachovat přípustnost řešení, tedy nezápornost všech základních proměnných. Zapišme tuto podmínku pro nové hodnoty původních základních proměnných x3, x4, x5, jestliže nově = t. Z platnosti rovnic: x3 = 40-^ř>0 x4 = 60 - \t > 0 x5 = 25 - 0 > 0 Zřejmě největší možné takové t je t = 80, pro ně dostaneme x3 = 0. To se nyní stane vystupující proměnnou. Tabulku přepočteme elementárními úpravami tak, abychom vlevo nahoře dostali jedničku a pod ní samé nuly. zákl. prom. x2 X3 x4 *5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 0 1 4 0 0 1 25 zi -20 -14 0 0 0 0 Nakonec přičteme jeho dvacetinásobek k poslednímu. Iterační krok simplexové metody Volba vystupující proměnné vychází z nutnosti zachovat přípustnost řešení, tedy nezápornost všech základních proměnných. Zapišme tuto podmínku pro nové hodnoty původních základních proměnných x3, x4, x5, jestliže nově = t. Z platnosti rovnic: x3 = 40-^ř>0 x4 = 60 - \t > 0 x5 = 25 - 0 > 0 Zřejmě největší možné takové t je t = 80, pro ně dostaneme x3 = 0. To se nyní stane vystupující proměnnou. Tabulku přepočteme elementárními úpravami tak, abychom vlevo nahoře dostali jedničku a pod ní samé nuly. zákl. prom. x^ x2 X3 x4 *5 ßi 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 0 1 4 0 0 1 25 zi 0 -4 40 0 0 1600 Dostali jsme novou tabu ku. Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. X\ x2 *3 x4 *5 *i 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 0 1 4 0 0 1 25 0 -4 40 0 0 1600 Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. x2 *3 x4 *5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Nejvyšší hodnotou ř, pro kterou můžeme položit x2 = ř, je A77/>?{2.80, 4.20, 4.25} = 80. Vyjdou nám pak nové hodnoty základních proměnných = 80 - \ t = 40, x4 = 20 - \ t = 0, x5 = 25 - \ t = 5. Tedy x4 se stane nezákladní, je vystupující proměnnou. Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. x2 *3 x4 *5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 x5 0 1 4 0 0 1 25 zj 0 -4 40 0 0 1600 Nejvyšší hodnotou ř, pro kterou můžeme položit x2 = ř, je A77/>?{2.80, 4.20, 4.25} = 80. Vyjdou nám pak nové hodnoty základních proměnných = 80 - \ t = 40, x4 = 20 - \ t = 0, x5 = 25 - \ t = 5. Tedy x4 se stane nezákladní, je vystupující proměnnou. zákl. prom. *1 x2 x3 x4 x5 x^ x4 o \ 2 0 0 -1 1 0 0 0 1 80 20 25 ZJ 0 -4 40 0 0 1600 Vynásobíme druhý řáde k 4. Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. x2 *3 x4 *5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Nejvyšší hodnotou ř, pro kterou můžeme položit x2 = ř, je A77/>?{2.80, 4.20, 4.25} = 80. Vyjdou nám pak nové hodnoty základních proměnných = 80 - \ t = 40, x4 = 20 - \ t = 0, x5 = 25 - \ t = 5. Tedy x4 se stane nezákladní, je vystupující proměnnou. zákl. prom. x^ x2 *3 x4 *5 Ä 1 1 2 2 0 0 80 0 1 -4 4 0 80 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Odečteme jeho polovinu od prvního. Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. x2 *3 x4 *5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Nejvyšší hodnotou ř, pro kterou můžeme položit x2 = ř, je A77/>?{2.80, 4.20, 4.25} = 80. Vyjdou nám pak nové hodnoty základních proměnných = 80 - \ t = 40, x4 = 20 - \ t = 0, x5 = 25 - \ t = 5. Tedy x4 se stane nezákladní, je vystupující proměnnou. zákl. prom. x^ x2 *3 x4 *5 Ä x^ 1 0 4 0 0 40 x2 0 1 -4 4 0 80 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Odečteme jeho čtvrtinu od třetího. Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. x2 *3 x4 X5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Nejvyšší hodnotou ř, pro kterou můžeme položit x2 = ř, je A77/>?{2.80, 4.20, 4.25} = 80. Vyjdou nám pak nové hodnoty základních proměnných = 80 - \ t = 40, x4 = 20 - \ t = 0, x5 = 25 - \ t = 5. Tedy x4 se stane nezákladní, je vystupující proměnnou. zákl. prom. x^ x2 xz x4 X5 Ä *i 1 0 4 0 0 40 x2 0 1 -4 4 0 80 X5 0 0 1 -1 1 5 ZJ 0 -4 40 0 0 1600 Nakonec přičteme jeho čtyřnásobek k poslednímu. Další iterační krok Redukovaná cena z2 = -4 naznačuje, že lze ještě zvýšit účelovou funkci, jestliže zvolíme x2 jako vstupující. zákl. prom. x2 *3 x4 *5 1 1 2 2 0 0 80 x4 0 1 4 -1 1 0 20 x5 0 1 4 0 0 1 25 ZJ 0 -4 40 0 0 1600 Nejvyšší hodnotou ř, pro kterou můžeme položit x2 = ř, je A77/>?{2.80, 4.20, 4.25} = 80. Vyjdou nám pak nové hodnoty základních proměnných = 80 - \ t = 40, x4 = 20 - \ t = 0, x5 = 25 - \ t = 5. Tedy x4 se stane nezákladní, je vystupující proměnnou. zákl. prom. x^ x2 *3 x4 X5 Ä 1 0 4 0 0 40 *2 0 1 -4 4 0 80 X5 0 0 1 -1 1 5 ZJ 0 0 24 16 0 1920 Dostali jsme novou tabulku. Ukončení výpočtu Ve výsledné tabulce jsou již všechny redukované ceny nezáporné: zákl. prom. *i x2 *3 x4 *5 1 0 4 0 0 40 x2 0 1 -4 4 0 80 x5 0 0 1 -1 1 5 ZJ 0 0 24 16 0 1920 Nelze tedy již zvýšit hodnotu účelové funkce, maximální zisk je 1920 tisíc. Nezákladní proměnné jsou x3, x4, ty budou tedy nulové. Hodnoty základních proměnných vyčteme z tabulky: xi = 40, x2 = 80, x5 = 5. To nám říká, že optimálně máme vyrobit 40 tun směsi Mocca a 80 tun směsi Standard, přičemž zcela spotřebujeme první dvě suroviny a zbyde nám pět tun třetí suroviny. Ukončení výpočtu Ve výsledné tabulce jsou již všechny redukované ceny nezáporné: zákl. prom. *i x2 *3 x4 *5 1 0 4 0 0 40 x2 0 1 -4 4 0 80 x5 0 0 1 -1 1 5 ZJ 0 0 24 16 0 1920 Nelze tedy již zvýšit hodnotu účelové funkce, maximální zisk je 1920 tisíc. Nezákladní proměnné jsou x3, x4, ty budou tedy nulové. Hodnoty základních proměnných vyčteme z tabulky: xi = 40, x2 = 80, x5 = 5. To nám říká, že optimálně máme vyrobit 40 tun směsi Mocca a 80 tun směsi Standard, přičemž zcela spotřebujeme první dvě suroviny a zbyde nám pět tun třetí suroviny. Pozn.: Pro minimalizační úlohu by se obrátila role znamének v dolním řádku - vybírali bychom vstupující proměnnou podle nejvyšší redukované ceny a výpočet bychom ukončili až by všechny redukované ceny byly < 0. Dvoufázová simplexová metoda Vyskytují-li se v úloze i jiná omezení než nerovnosti typu "<", je nutné nejprve najít výchozí přípustné základní řešení. K tomu slouží první fáze simplexové metody. Ukažme si ji na ilustračním příkladě. z = X! - x2 —>► min za podmínek > 2 x2 > 2 5xi + 10x2 < 50 Dvoufázová simplexová metoda Vyskytují-li se v úloze i jiná omezení než nerovnosti typu "<", je nutné nejprve najít výchozí přípustné základní řešení. K tomu slouží první fáze simplexové metody. Ukažme si ji na ilustračním příkladě. z = X! - x2 —>► min za podmínek > 2 x2 > 2 5xi + 10x2 < 50 Omezující podmínky lze opět zavedením nezáporných přídatných proměnných převést na rovnosti: X! -x3 = 2 x2 -x4 = 2 5X| + 10x2 +x5 = 50 Dvoufázová simplexová metoda Vyskytují-li se v úloze i jiná omezení než nerovnosti typu "<", je nutné nejprve najít výchozí přípustné základní řešení. K tomu slouží první fáze simplexové metody. Ukažme si ji na ilustračním příkladě. z = X! - x2 —>► min za podmínek > 2 x2 > 2 5xi + 10x2 < 50 Omezující podmínky lze opět zavedením nezáporných přídatných proměnných převést na rovnosti: X! -x3 = 2 x2 -x4 = 2 5X| + 10x2 +x5 = 50 Bohužel nejde o soustavu v kanonickém tvaru, protože koeficienty u x3 a x4 nejsou = 1. Proto přičteme k levým stranám příslušných omezení ještě nezáporné pomocné proměnné yi, y2 a tyto proměnné již budou spolu s x5 základními. Pro výchozí bod platí yi = y2 = 2, x5 = 50, což však není přípustné pro původní úlohu. Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi y2 Ä /i 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 10 0 0 1 0 0 50 4 1 1 -1 -1 0 0 0 4 Jako vstupující proměnnou můžeme zvolit x\ nebo x2, zvolme např. tu druhou. Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi y2 Ä /i 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 10 0 0 1 0 0 50 4 1 1 -1 -1 0 0 0 4 Od třetího řádku odečteme desetinásobek druhého. Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 X3 x4 *5 yi Y2 Ä /i 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 0 0 10 1 0 -10 30 4 1 1 -1 -1 0 0 0 4 Od čtvrtého řádku odečteme druhý. Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi Y2 Ä /i 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 0 0 10 1 0 -10 30 4 1 0 -1 0 0 0 -1 2 Získali jsme novou tabulku, vstupující proměnnou bude xi. Od třetího řádku odečteme pětkrát první. Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 X3 x4 *5 yi Y2 Ä /i 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 0 0 5 10 1 -5 -10 20 4 1 0 -1 0 0 0 -1 2 Od posledního řádku odečteme první. Dvoufázová simplexová metoda K získání přípustného řešení původní úlohy je třeba zajistit, aby yi = y2 = 0. To lze pomocí minimalizace pomocné účelové funkce z' = + y2. (jestliže má tato funkce minimum >0, pak výchozí úloha nemá žádné přípustné řešení). Vyjádřeme z' pomocí nezákladních proměnných a výsledné redukované ceny zapišme do simplexové tabulky: z1 = (2 - X\ + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. *1 x2 *3 x4 *5 yi Y2 Ä 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 0 0 5 10 1 -5 -10 20 4 0 0 0 0 0 -1 -1 0 Nalezli jsme minimum pomocné fce z' = 0, můžeme tedy zahájit 2. fázi: vynecháme yl5y2az bodu [2,2,0,0,20] minimalizujeme funkci z = x^ - x2 = (2 - x3) - (2 - x4) = -x3 + x4, jejíž redukované ceny přidáme do tabulky. Pozn.: kdyby vyšlo z't ^ 0, nemá výchozí úloha žádné přípustné řešení. Dvoufázová simplexová metoda Druhou fázi již dořešíme běžným způsobem: zákl. prom. x2 X3 x4 *5 Ä 1 0 -1 0 0 2 x2 0 1 0 -1 0 2 X5 0 0 5 10 1 20 ZJ 0 0 -1 1 0 0 Jako vstupující volíme x4. Dvoufázová simplexová metoda Druhou fázi již dořešíme běžným způsobem: zákl. prom. x2 X3 x4 *5 Ä 1 0 -1 0 0 2 x2 0 1 0 -1 0 2 X5 0 0 5 10 1 20 ZJ 0 0 -1 1 0 0 Třetí řádek vydělíme 10. Dvoufázová simplexová metoda Druhou fázi již dořešíme běžným způsobem: zákl. prom. x2 X3 X4 *5 A- 1 0 -1 0 0 2 x2 0 1 0 -1 0 2 x5 0 0 1 2 1 1 10 2 ZJ 0 0 -1 1 0 0 Přičteme třetí k druhému. Dvoufázová simplexová metoda Druhou fázi již dořešíme běžným způsobem: zákl. prom. x2 X3 X4 *5 A- 1 0 -1 0 0 2 x2 0 1 1 2 0 1 10 4 0 0 1 2 1 1 10 2 ZJ 0 0 -1 1 0 0 Odečteme třetí od posledního. Dvoufázová simplexová metoda Druhou fázi již dořešíme běžným způsobem: zákl. prom. x2 x3 x4 x5 /3/ x2 Xa 1 0 0 1 0 0 -10 0 ± 0 -L 2 u 10 1 1 -L 2 1 10 2 4 2 zi 0 0 .3 0 -J-2 u 10 -2 Dostali jsme optimální tabulku, je tedy = 2, x2 = 4, zopř = -2. □ [fpi ► < ► < -ě: 3 >o^o Dvoufázová simplexová metoda Celý postup v grafickém znázornění: *—'—i—i—i—i—i—•—i—'—i—•—i—'—i— 1 \2 3 4 5 6 7 8 Množina přípustných řešení M. Při zahájení první fáze jsou obě proměnné , x2 nezákladní, vycházíme tedy z počátku. Dvoufázová simplexová metoda Celý postup v grafickém znázornění: 1 12 3 4 5 6 7 8 i Po prvním kroku se proměnná x2 stala základní s hodnotou x2 Dvoufázová simplexová metoda Celý postup v grafickém znázornění: 1 12 3 4 5 6 7 8 V dalším kroku se i proměnná x\ stala základní s hodnotou x\ = 2, dosáhli jsme přípustné množiny a startujeme druhou fázi. Dvoufázová simplexová metoda Celý postup v grafickém znázornění z=x1-x2=c M v, 3 4 5 6 7 8 Po jednom kroku dosáhneme optima v bodě [xi, x2] = [2,4] Úskalí simplexové metody - degenerace Je-li bázická souřadnice řešení rovna 0 (tj. nulová příslušná pravá strana), řekneme že došlo k degeneraci. Hrozí pak nebezpečí zacyklení (po několika krocích se vrátíme do stejného vrcholu přípustné množiny). Degenerace je způsobena tím, že některé omezení je nadbytečné. Úskalí simplexové metody - degenerace Je-li bázická souřadnice řešení rovna 0 (tj. nulová příslušná pravá strana), řekneme že došlo k degeneraci. Hrozí pak nebezpečí zacyklení (po několika krocích se vrátíme do stejného vrcholu přípustné množiny). Degenerace je způsobena tím, že některé omezení je nadbytečné. Degeneraci lze odstranit několika způsoby • Modifikace testu optima • Charnesova metoda - upraví nulové pravé strany na kladné • Blandovo pravidlo - modifikuje určení klíčového sloupce i klíčového řádku Úskalí simplexové metody - degenerace Je-li bázická souřadnice řešení rovna 0 (tj. nulová příslušná pravá strana), řekneme že došlo k degeneraci. Hrozí pak nebezpečí zacyklení (po několika krocích se vrátíme do stejného vrcholu přípustné množiny). Degenerace je způsobena tím, že některé omezení je nadbytečné. Degeneraci lze odstranit několika způsoby • Modifikace testu optima • Charnesova metoda - upraví nulové pravé strany na kladné • Blandovo pravidlo - modifikuje určení klíčového sloupce i klíčového řádku Úskalí - prípad více optimálních řešení Je-li ve výstupní tabulce odpovídající optimálnímu řešení x některý nebazický (nezákladní) koeficient v řádku z roven 0, pak pokud s proměnnou příslušnou tomuto koeficientu vstoupíme do báze, dostaneme řešení x/, které bude rovněž optimální. Optimum pak nenastává pouze v obou vrcholech x a x/, ale také v každém bodě hrany mezi nimi. (v případě tří optimálních sousedů je optimální dokonce celá stěna jimi určená, atd.) Úskalí - prípad více optimálních řešení Je-li ve výstupní tabulce odpovídající optimálnímu řešení x některý nebazický (nezákladní) koeficient v řádku z roven 0, pak pokud s proměnnou příslušnou tomuto koeficientu vstoupíme do báze, dostaneme řešení x/, které bude rovněž optimální. Optimum pak nenastává pouze v obou vrcholech x a x/, ale také v každém bodě hrany mezi nimi. (v případě tří optimálních sousedů je optimální dokonce celá stěna jimi určená, atd.) Úskalí - neomezená prípustná množina Jsou-li všechny hodnoty ve vstupním sloupci v některém optimalizačním kroku < 0, tj. neexistuje žádná kladná změna pro daný sloupec, znamená to, že množina přípustných řešení je neomezená (ve směru optimalizace). V praxi je to většinou způsobeno chybnou formulací úlohy (chybí určité omezení, popřípadě některý parametr není dobře odhadnut). Úskalí - neomezená prípustná množina Jsou-li všechny hodnoty ve vstupním sloupci v některém optimalizačním kroku < 0, tj. neexistuje žádná kladná změna pro daný sloupec, znamená to, že množina přípustných řešení je neomezená (ve směru optimalizace). V praxi je to většinou způsobeno chybnou formulací úlohy (chybí určité omezení, popřípadě některý parametr není dobře odhadnut). Úskalí - prázdná prípustná množina Neexistence přípustného řešení se pozná podle toho, že v 1 .fázi dvoufázové metody vyjde kladná optimální hodnota. Je to způsobeno tím, že omezení si odporují. V podobných situacích lze využít cílové programování nebo přehodnotit některá omezení. Úskalí - prázdná prípustná množina Neexistence přípustného řešení se pozná podle toho, že v 1 .fázi dvoufázové metody vyjde kladná optimální hodnota. Je to způsobeno tím, že omezení si odporují. V podobných situacích lze využít cílové programování nebo přehodnotit některá omezení. Dualita úloh LP Na původní úlohu lze nahlížet i jiným způsobem. Předpokládejme, že bychom suroviny nezpracovávali, ale rovnou prodali. Otázka zní, kdy se nám tento přímý prodej zdrojů vyplatí. To bude samozřejmě záviset na zisku z prodeje jednotlivých zdrojů - vyjádříme jej pomocí tzv. duálních proměnných, které označíme Wj (v naší úloze máme tři druhy kávových bobů, tedy / = 1,2,3). Můžeme pak formulovat tzv. duální úlohu k výchozímu problému: Jaký je minimální zisk z prodeje zdrojů, při kterém se nám nevyplatí vyrábět ani jeden výrobek? Dualita úloh LP Na původní úlohu lze nahlížet i jiným způsobem. Předpokládejme, že bychom suroviny nezpracovávali, ale rovnou prodali. Otázka zní, kdy se nám tento přímý prodej zdrojů vyplatí. To bude samozřejmě záviset na zisku z prodeje jednotlivých zdrojů - vyjádříme jej pomocí tzv. duálních proměnných, které označíme Wj (v naší úloze máme tři druhy kávových bobů, tedy / = 1,2,3). Můžeme pak formulovat tzv. duální úlohu k výchozímu problému: Jaký je minimální zisk z prodeje zdrojů, při kterém se nám nevyplatí vyrábět ani jeden výrobek? Tedy minimalizujeme zisk z prodeje zdrojů gf(w) = 40i/Vi + 6O1/1/2 + 251/1/3 za omezení, že se nevyplatí vyrábět ani směs Mocca ani Standard, tedy, že platí nerovnosti 0,51/1/1 + 0,5w2 > 20, 0,5i/i/i +0,25w2 + 0,5w3 > 14. Dualita úloh LP Na původní úlohu lze nahlížet i jiným způsobem. Předpokládejme, že bychom suroviny nezpracovávali, ale rovnou prodali. Otázka zní, kdy se nám tento přímý prodej zdrojů vyplatí. To bude samozřejmě záviset na zisku z prodeje jednotlivých zdrojů - vyjádříme jej pomocí tzv. duálních proměnných, které označíme Wj (v naší úloze máme tři druhy kávových bobů, tedy / = 1,2,3). Můžeme pak formulovat tzv. duální úlohu k výchozímu problému: Jaký je minimální zisk z prodeje zdrojů, při kterém se nám nevyplatí vyrábět ani jeden výrobek? Tedy minimalizujeme zisk z prodeje zdrojů gf(w) = 40i/Vi + 6O1/1/2 + 251/1/3 za omezení, že se nevyplatí vyrábět ani směs Mocca ani Standard, tedy, že platí nerovnosti 0,51/1/1 + 0,5w2 > 20, 0,51/1/1 + 0,251/1/2 + 0,51/1/3 > 14. Při použití označení zavedeného výše, kde c = (20, 14) je vektor zisků z prodeje směsí, b = (40,60,25)T je vektor kapacit surovin a A strukturní matice, můžeme porovnat maticový zápis původní, tzv. primární úlohy a úlohy duální: primární úloha duální úloha maximalizovat z = cT x minimalizovat gr(w) = bT w za podm. A x < b, x > 0, za podm. AT • w > c, w > 0 Dualita úloh LP Obecně lze pro formulaci duální úlohy k úloze LP použít následující pravidla: Maximalizační úloha ^ primární duální o omezení typu < ^ omezení typu > ^ omezení typu rovnice nezáporná proměnná ^ nekladná proměnná ^ proměnná neomezená ^ Minimalizační úloha duální primární nezáporná proměnná nekladná proměnná proměnná neomezená omezení typu > omezení typu < omezení typu rovnice Dualita úloh LP Vztah mezi vzájemně duálními úlohami lze vyjádřit větou o dualitě: Existuje-li optimální řešení jedné z duálně sdružených úloh, potom existuje i optimální řešení druhé úlohy a navíc optimální hodnoty účelových funkcí se sobě rovnají! Dualita úloh LP Vztah mezi vzájemně duálními úlohami lze vyjádřit větou o dualitě: Existuje-li optimální řešení jedné z duálně sdružených úloh, potom existuje i optimální řešení druhé úlohy a navíc optimální hodnoty účelových funkcí se sobě rovnají! Z této věty logicky plyne, že pokud jedna ze sdružených úloh optimální řešení nemá, tak jej nemůže mít ani úloha druhá, lze ukázat, že pokud jedna úloha nemá žádné přípustné řešení, tak druhá úloha je neomezená a naopak. Dalším důsledkem je tzv. slabá věta o dualitě: Hodnota účelové funkce maximalizační úlohy je vždy menší nebo rovna hodnotě účelové funkce minimalizační úlohy. Dualita úloh LP Vztah mezi vzájemně duálními úlohami lze vyjádřit větou o dualitě: Existuje-li optimální řešení jedné z duálně sdružených úloh, potom existuje i optimální řešení druhé úlohy a navíc optimální hodnoty účelových funkcí se sobě rovnají! Z této věty logicky plyne, že pokud jedna ze sdružených úloh optimální řešení nemá, tak jej nemůže mít ani úloha druhá, lze ukázat, že pokud jedna úloha nemá žádné přípustné řešení, tak druhá úloha je neomezená a naopak. Dalším důsledkem je tzv. slabá věta o dualitě: Hodnota účelové funkce maximalizační úlohy je vždy menší nebo rovna hodnotě účelové funkce minimalizační úlohy. Dále platí tzv. věta o rovnováze: Je-li /c-tá proměnná v řešení primární úlohy nenulová (tedy kladná), pak je /c-tá podmínka v řešení duální úlohy splněna jako rovnost. Říkáme, že je /c-tá podmínka aktivní. Postoptimalizační analýza Analýza citlivosti primární úlohy zkoumá, do jaké míry ovlivní případné změny vstupních údajů původní optimální řešení. Zejména nás zajímají efekt při změně zisku z jednotlivého výrobku, případně při změně v jednotlivém kapacitním omezení. To lze zjistit bez nutnosti přepočítávat celou úlohu znovu. Určujeme tzv. intervaly stability, a to pro: • koeficienty účelové funkce Ck, kdy zjišťujeme, v jakém rozmezí hodnot můžeme měnit jednotlivé Ck (při zachování hodnot ostatních koeficientů) tak, aby nedošlo ke změně optimálního řešení, • kapacitní omezení £>,, kdy zjišťujeme v jakém rozmezí se může jednotlivé bj pohybovat, aby nedošlo ke změně množiny základních proměnných, tedy byla zachována množina aktivních omezení. Pro manažerské rozhodování je důležité zjistit, jaký je vliv změny kapacitního omezení na hodnotu účelové funkce. To nám prozradí optimální hodnoty duálních proměnných Wj. Tyto hodnoty se nazývají stínové ceny a vyjadřují hodnotu, o kterou se změní hodnota účelové funkce, jestliže zvýšíme kapacitu / - tého zdroje b, o jednotku (za předpokladu že se touto změnou nedostaneme mimo interval stability). Postoptimalizační analýza - intervaly stability pro ceny Vlastní určení intervalů stability není složité a bývá nedílnou součástí softwarových výstupů. Dále si ukážeme grafickou interpretaci a odvození intervalů stability pro koeficienty účelové funkce v našem jednoduchém příkladě optimalizace výroby kávy. Na obrázku je vidět, jak lze optimální izokvantu účelové funkce naklánět, aby stále bylo optimálním řešením x*. t*2 A 100 80 {> 20 40 80 Postoptimalizační analýza - intervaly stability pro ceny Mezní hodnoty naklonění určíme tak, že přímka bude procházet body x* = [40,80],^ = [20,100] resp. x* = [40,80], B = [80,0]. Pro její směrnici q tedy musí platit nerovnosti Směrnici původní izokvanty z = c^x^ + c2x2 vyjádříme jako q = přičemž původní hodnoty koeficientů jsou Ci = 20, c2 = 14. Interval stability pro Ci tedy zjistíme po dosazení q = do nerovností: -2 < < -1, tj. Ci e (14,28). Analogicky pro c2 získáme interval stability dosazením q = =^ do nerovností: -2 < ^ < -1 a dostaneme c2 e (10,20). 2 80-0 40-80 < q < 80-100 40-20 Postoptimalizační analýza - intervaly stability pro kapacity Ještě si ukažme ve stejné úloze grafické odvození intervalů stability pro pravé strany omezení. Na obrázku je vidět, jak můžeme posunout hranici prvního omezení, aby stále optimální řešení leželo v průsečíku hraničních přímek prvního a druhého omezení. Postoptimalizační analýza - intervaly stability pro kapacity Původní rovnice hraniční přímky prvního omezení byla 0,5xi + 0,25x2 = 40. Její pravou stranu £>i můžeme změnit maximálně tak, že by přímka procházela bodem A, resp. bodem C. Dosazením souřadnic bodu A = [20,100] do levé strany omezení dostaneme 0,5 • 20 + 0,25 • 100 = 35, což je dolní hranice pro £>i. Dosazením souřadnic bodu C = [120,0] do levé strany omezení dostaneme 0,5 • 120 + 0,25 • 0 = 60, což je horní hranice pro £>i. Postoptimalizační analýza - intervaly stability pro kapacity Původní rovnice hraniční přímky prvního omezení byla 0,5^ + 0,25x2 = 40. Její pravou stranu £>i můžeme změnit maximálně tak, že by přímka procházela bodem A, resp. bodem C. Dosazením souřadnic bodu A = [20,100] do levé strany omezení dostaneme 0,5 • 20 + 0,25 • 100 = 35, což je dolní hranice pro £>i. Dosazením souřadnic bodu C = [120,0] do levé strany omezení dostaneme 0,5 • 120 + 0,25 • 0 = 60, což je horní hranice pro £>i. Dostáváme tedy interval stability b\: e (35,60). Podobně obdržíme intervaly stability pro ostatní omezení. Tyto intervaly jsou důležité při rozhodování o nákupu dalších zdrojů: pokud je stínová cena daného omezení větší než nákupní cena příslušné suroviny, vyplatí se v rozmezí intervalu stability navyšovat kapacitu. A jak určíme stínovou cenu pro £>i ? Změnou na £>i + A dostaneme nový bod optima jako průsečík přímek o rovnicích 0,5xi + 0,25x2 = 40 + A, 0,5^ + 0,5x2 = 60, tedy bod o souřadnicích [40 + 4A, 80 - 4A]. V tomto bodě je pak hodnota účelové funkce z = 20(40 + 4A) + 14(80 - 4A) = 1920 + 24A. Stínová cena je = 24. Stínové ceny najdeme v optimální tabulce pod sloupci přídatných proměnných! Speciální úlohy lineárního programování Mezi typickými úlohami LP lze najít úlohy s nějakými speciálními vlastnostmi. Tyto vlastnosti se mohou týkat struktury modelu, zejména strukturní matice, typu proměnných, dále způsobů řešení, apod. Významnou skupinu takových speciálních úloh tvoří distribuční úlohy. Z těchto úloh představíme dopravní problém, přiřazovací problém a okružní dopravní problém. Další problémy (kontejnerový či vícestupňový dopravní problém, úloha o pokrytí, stanovení řezných plánů apod.) viz literatura. Úlohy, ve kterých některé proměnné mohou nabývat pouze hodnot z množiny celých čísel souhrne nazýváme úlohami celočíselného programování. Proměnné v těchto úlohách zpravidla vyjadřují počty nedělitelných kusů, případně nabývají pouze hodnot 0 a 1, kterými se kóduje absence či přítomnost určitého spojení mezi zadanými objekty. Specifikům celočíselných úloh a základním přístupům k jejich řešení se budeme později také věnovat. Dopravní problém - formulace V dopravní úloze se typicky řeší rozvržení rozvozu z dodavatelských míst k odběratelům tak, aby byly minimalizovány náklady související s rozvozem. Je definováno m dodavatelských míst - zdrojů Vu V2, ..., Vm s omezenými kapacitami a\, a2, ...,ama dále máme n cílových míst - odběratelů S^, S2, ..., Sn se stanovenými požadavky b\, £>2, ..., bn. Každá dvojice zdroj-cíl je nějak ohodnocena, typicky například náklady na přepravu jednotky zboží. Tyto náklady označíme Qy, / = 1,..., m, j = 1,..., n. Cílem je naplánovat objemy přepravy mezi jednotlivými zdroji a cíli ( označíme je Xjj, i = 1,..., /t?, j = 1,..., a?) tak, aby byly uspokojeny požadavky odběratelů a nebyly překročeny kapacity zdrojů. Dopravní problém - formulace V dopravní úloze se typicky řeší rozvržení rozvozu z dodavatelských míst k odběratelům tak, aby byly minimalizovány náklady související s rozvozem. Je definováno m dodavatelských míst - zdrojů Vu V2, ..., Vm s omezenými kapacitami a\, a2, ...,ama dále máme n cílových míst - odběratelů S^, S2, ..., Sn se stanovenými požadavky b\, £>2, ..., bn. Každá dvojice zdroj-cíl je nějak ohodnocena, typicky například náklady na přepravu jednotky zboží. Tyto náklady označíme c,y, / = 1,..., m, j = 1,..., n. Cílem je naplánovat objemy přepravy mezi jednotlivými zdroji a cíli ( označíme je Xjj, i = 1,..., /t?, j = 1,..., a?) tak, aby byly uspokojeny požadavky odběratelů a nebyly překročeny kapacity zdrojů.Úloha tedy obsahuje m • n proměnných Xjj, pro něž minimalizujeme účelovou funkci Z — S/=1 zCy=1 CÍjXÍj za podmínek Sy=1 Xij — ' = 1 5 . . . , a77, £^ = 7 = 1, . . . , a7, Xjj > 0, / = 1,..., m, ,7 = 1, . . . , a? Účelová funkce i omezení jsou lineární, jde tedy o úlohu LP. Dopravní problém - metody řešení I když jde o úlohu LP, kterou lze řešit simplexovou metodou, vzhledem k velkému počtu proměnných a speciální struktuře matice omezení jsou většinou praktičtější jiné metody (jde o tzv. řídkou matici - obsahuje hodně nul, navíc zbylé jedničky mají blokovou strukturu). Dopravní problém - metody řešení I když jde o úlohu LP, kterou lze řešit simplexovou metodou, vzhledem k velkému počtu proměnných a speciální struktuře matice omezení jsou většinou praktičtější jiné metody (jde o tzv. řídkou matici - obsahuje hodně nul, navíc zbylé jedničky mají blokovou strukturu). Příklad: Pro reálnou úlohu s 20 zdroji a 300 zákazníky máme ? proměnných a ? omezení, to znamená 1920000 polí v simplexové tabulce, což zabere cca II MB operační paměti Dopravní problém - metody řešení I když jde o úlohu LP, kterou lze řešit simplexovou metodou, vzhledem k velkému počtu proměnných a speciální struktuře matice omezení jsou většinou praktičtější jiné metody (jde o tzv. řídkou matici - obsahuje hodně nul, navíc zbylé jedničky mají blokovou strukturu). Příklad: Pro reálnou úlohu s 20 zdroji a 300 zákazníky máme ? proměnných a ? omezení, to znamená 1920000 polí v simplexové tabulce, což zabere cca II MB operační paměti Ze simplexové metody vychází modifikovaná distribuční metoda (MODI). Pro rychlé získání přibližného řešení bez záruky optimality lze využít heuristické metody, z nichž si ukážeme tři: metodu severozápadního rohu, metodu maticového minima (zvanou též indexní) a Vogelovu aproximační metodu (VAM). Dopravní problém - vyrovnání úlohy Zřejmě není možné uspokojit všechny spotřebitele, jestliže celková poptávka Ylj=\ ty převyšuje celkovou kapacitu a/> úloha pak nemá přípustné řešení. Úlohu, ve které platí rovnost Yfj=\ ty = Z)/Li a\ označujeme jako vyrovnaný dopravní problém. Problém pak má přípustné řešení i pokud u omezení pro kapacity zdrojů nahradíme nerovnosti rovnostmi, spotřebují se tedy všechny jednotky. Nadále budeme pracovat jen s takovými vyrovnanými úlohami. Dopravní problém - vyrovnání úlohy Zřejmě není možné uspokojit všechny spotřebitele, jestliže celková poptávka Ylj=\ ty převyšuje celkovou kapacitu a/> úloha pak nemá přípustné řešení. Úlohu, ve které platí rovnost Yfj=\ ty = Z)/Li a\ označujeme jako vyrovnaný dopravní problém. Problém pak má přípustné řešení i pokud u omezení pro kapacity zdrojů nahradíme nerovnosti rovnostmi, spotřebují se tedy všechny jednotky. Nadále budeme pracovat jen s takovými vyrovnanými úlohami. Nevyrovnaná úloha s převisem poptávky se převede na vyrovnanou pomocí zavedení fiktivního zdroje s kapacitou ty - a/- v případě převisu nabídky se naopak zavede fiktivní zákazník s požadavkem a\ - Z)yLi ty-Pozor! Přepravní náklady do fiktivních míst jsou vždy nulové. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů Si, S2, S3 a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 3 6 4 5 5 o 7 N 6 S^ dostane z prvního zdroje 3 jednotky, ve zdroji pak zůstanou 2. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů Si, S2, S3 a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 0 6 4 5 2 3 o 7 N 6 Dvě zbylé jednotky z V\ dostane S2, přesuneme se na další zdroj. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů Si, S2, S3 a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 0 4 4 5 0 3 2 o 7 N 6 Čtyři zbylé jednotky pro S2 dodá V2, zbydou mu tři jednotky. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů S^, S2, S3a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 0 0 4 5 0 3 2 _Q 3 4 N 6 Tři zbylé jednotky V2 se dodají spotřebiteli S3. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů S^, S2, S3a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 0 0 1 5 0 3 2 _Q 0 4 3 N 6 Jednu chybějící jednotku dodá spotřebiteli S3 zdroj V3. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů S^, S2, S3a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 0 0 0 5 0 3 2 _Q 0 4 3 N 5 1 Posledních pět jednotek ve V3 zbyde pro spotřebitele S4. Dopravní problém - metoda SZ rohu Metoda severozápadního rohu je zrejme nejjednodušší metódou získání přípustného řešení dopravní úlohy, začíná se v levém horním rohu tabulky a požadavky zákazníků se uspokojují zleva doprava. Pokud je již zdroj vyčerpán, přejde se na další zdroj, tj. o řádek níž. Končí se v pravém dolním rohu. Metoda nebere v úvahu přepravní náklady. Ukažme si metodu pro úlohu z "M. Plevný, M. Žižka: Modelování a optimalizace v manažerském rozhodování": Najděte přípustné řešení DÚ s požadavky odběratelů Si, S2, S3 a S4 postupně 3, 6, 4 a 5 jednotek zboží a zdroji Vu V2 a V3 s kapacitou po řadě 5, 7 a 6 jednotek. požadavky Xij 0 0 0 0 0 3 2 _Q 0 4 3 N 0 1 5 Dostali jsme přípustné řešení. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 3 6 4 5 5 o 7 N 6 přepravní náklady Cij Si s2 s3 s4 Ví 2 3 4 6 2 6 1 v3 7 3 3 3 Nejnižší náklady jsou c\2 = o2a = 1 ■ Vyberme například první z nich, může dodat S2 nejvýše 5 jednotek. Tím se zcela vyčerpá a tudíž již dále neuvažujeme první řádek ani v matici nákladů. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 3 1 4 5 0 5 o 7 N 6 přepravní náklady Cij Si s2 s3 s4 Ví 6 2 6 1 v3 7 3 3 3 Nejnižší náklady jsou c24 = 1. S4 může odebrat od V2 nejvýše 5 jednotek, je plně spokojen a čtvrtý sloupec tudíž už dál nebereme v úvahu. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 3 1 4 0 0 5 _Q 2 5 N 6 přepravní náklady Cij Si s2 s3 s4 1/1 6 2 6 v3 7 3 3 Nejnižší náklady jsou c22 = 2. S2 může odebrat od V2 nejvýše 1 jednotku druhý sloupec je tím vyčerpán. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 3 0 4 0 0 5 _Q 1 1 5 N 6 přepravní náklady Cij Si s2 s3 s4 Ví 6 6 v3 7 3 Nejnižší náklady jsou c33 = 3. S3 může odebrat od V3 nejvýše 4 jednotky, třetí sloupec je tím vyčerpán. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 3 0 0 0 0 5 _Q 1 1 5 N 2 4 přepravní náklady Cij Si s2 s3 s4 1/1 6 v3 7 Nejnižší náklady jsou c33 = 3. S3 může odebrat od V3 nejvýše 4 jednotky, třetí sloupec je tím vyčerpán. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 3 0 0 0 0 5 _Q 1 1 5 N 2 4 přepravní náklady Cij Si s2 s3 s4 1/1 6 v3 7 Nejnižší náklady jsou c2i = 6. V2 může dodat Si nejvýše 1 jednotku, třetí řádek je tím vyčerpán. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 2 0 0 0 0 5 _Q 0 1 1 5 N 2 4 přepravní náklady Cij Si s2 s3 s4 1/1 v3 7 V posledním kroku dodá V3 spotřebiteli S^ zbylé dvě jednotky. Dopravní problém - indexová metoda Indexová metoda dává většinou řešení s nižšími přepravními náklady než předchozí metoda. Jde o tzv. hladový algoritmus, vybíráme postupně vždy trasy s nejnižším cenovým ohodnocením, (vynecháme případné fiktivní trasy) Ukažme si postup metody pro již dříve řešený dopravní problém, přidáme tabulku s přepravními náklady c,y, / = 1,... 3, y = 1,... 4. požadavky Xij 0 0 0 0 0 5 _Q 0 1 1 5 N 0 2 4 přepravní náklady Cij Si s2 s3 s4 Ví 2 1 3 4 6 2 6 1 v3 7 3 3 3 Výsledné přepravní náklady jsou X\2'C\2 +*21 • c21 +x22 • c22 +*24 • c24 +*31 " P31 +*33 • C33 = 5+6+2+5+1 4+1 2 Pro předchozí metodu bychom dostali náklady ve výši 6 + 2 + 6 + 2 + 5 +14 +12 = 47. 44. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 3 6 4 5 5 o 7 N 6 Cij Si S2 s3 s4 di. 2 1 3 4 1 v2 6 2 6 1 1 v3 7 3 3 3 0 4 1 0 2 Njevětší diference je v prvním sloupečku, vybereme tedy jeho nejmenší náklad, což je c^^ =2. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 0 6 4 5 2 3 o 7 N 6 Cij Si S2 s3 s4 di. 1 3 4 2 v2 2 6 1 1 v3 3 3 3 0 1 0 2 Největší diference je v prvním řádku, vybereme tedy jeho nejmenší náklad, což je C12 = 1 ■ Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 0 4 4 5 0 3 2 o 7 ■> N 6 Cij Si S2 s3 s4 di. v2 2 6 1 1 v3 3 3 3 0 1 3 2 Největší diference je v třetím sloupci, vybereme tedy jeho nejmenší náklad, což je C33 = 3. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 0 4 0 5 0 3 2 o 7 N 2 4 Cij Si S2 03 04 di. Ví v2 2 1 1 v3 3 3 0 1 2 Největší diference je ve čtvrtém sloupci, vybereme tedy jeho nejmenší náklad, což je C24 = 1. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 0 4 0 0 0 3 2 _Q 2 5 N 2 4 Cij Si S2 03 04 di. v2 2 v3 3 1 Největší diference je ve druhém sloupci, vybereme tedy jeho nejmenší náklad, což je c22 = 2. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 0 2 0 0 0 3 2 _Q 0 2 5 N 2 4 Cij Si S2 S3 S4 di. v2 v3 Zbývá přepravit dvě jednotky z V3 zákazníkovi S2. Dopravní problém - VAM Vogelova aproximační metoda je třetí heuristickou metodou a její výhoda oproti metodě indexační spočívá v tom, že bere v každém kroku v úvahu "alternativní náklady"při volbě nejlevnější trasy. Pracuje s diferencemi, tedy rozdíly druhé nejlepší oproti nejlepší variantě v každém řádku a sloupci. Volí se pak vždy nejlevnější jízda v řádku či sloupci s největší diferencí. Použijme metodu pro náš známý příklad. K matici nákladů doplníme řádkové a sloupcové diference ďL, / = 1,... 3 a c/y, y = 1,... 4. požadavky Xij 0 0 0 0 0 3 2 _Q 0 2 5 N 0 2 4 Cij Si S2 s3 s4 di. Ví 2 1 3 4 1 v2 6 2 6 1 1 v3 7 3 3 3 0 4 1 0 2 Výsledné přepravní náklady jsou *n ■ C11 + *12 ■ ^2 + x22 • c22 + x24 • c24 + x32 • c32 + x33 • c33 = 35, což je výrazně méně než u předchozích metod. Dopravní problém - MODI Modifikovaná distribuční metoda řešení vyrovnaných úloh spočívá ve využití duality. Duální úlohu k problému z = YllĹ\ E/Li cijxij ~^ min za podmínek y^j— 1 *ij = &h I — 1, . . . , /77, x/y = bj, j = 1, . . . , A7, x/y > 0, / = 1,..., m, j = 1,..., n formulujeme pomocí duálních proměnných uh vj, / = 1,..., m, j = 1,..., n : E,=i a/"/ + Ey=i í>y^ -> ™ax za omezení Uj + v; 0, / = 1, . . . , 171, j = 1,..., n formulujeme pomocí duálních proměnných uh v, / = 1,..., m, j = 1,..., n : E™ i a/"/ + E"=i vj -> max za omezení U/ + l/y < Cj-, / = 1 ,..., m, j = 1,..., n Z teorie duality plyne, že pro všechny základní proměnné primární úlohy (Xjj > 0) je příslušné omezení splněno jako rovnost, (i// + Vj = c,y). Pokud se nejedná o řešení degenerované, je v bázi právě m + n - 1 proměnných, a tedy dostaneme soustavu m + n - 1 rovnic pro m + n duálních proměnných. Zvolíme-li libovolně hodnotu jedné duální proměnné, lze ostatní dopočítat. Ověřením duální přípustnosti zjistíme, zdaje nalezené řešení optimální, tj. zda Uj + v; — Cn <0, i = 1,..., A??, j = 1,..., n Dopravní problém - MODI Určení hodnot duálních proměnných a ověření optimality lze provést přímo v tabulce, vraťme se k příkladu vyřešenému metodou VAM: požadavky Si S2 s3 s4 Xij 3 6 4 5 Ví 2 1 3 4 h—' 5 3 2 v2 6 2 6 1 "o o* 7 2 5 v3 7 3 3 3 03 6 2 4 VJ Volíme uh Vj tak, aby jejich součty byly rovny číslům v červených polích. Jednu proměnnou volíme libovolně, tedy pro jednoduchost např. v2 = 0. Ostatní postupně dopočítáme. Dopravní problém - MODI Určení hodnot duálních proměnných a ověření optimality lze provést přímo v tabulce, vraťme se k příkladu vyřešenému metodou VAM: požadavky Xij 3 6 4 5 )acita 5 7 3 2 2 5 6 2 4 Cij Si S2 s3 s4 2 1 3 4 1 v2 6 2 6 1 2 ^3 7 3 3 3 3 vj 1 0 0 -1 Volíme uh Vj tak, aby jejich součty byly rovny číslům v červených polích. Jednu proměnnou volíme libovolně, tedy pro jednoduchost např. v2 = 0. Ostatní postupně dopočítáme. Tabulka je optimální, součty duálních proměnných nepřesahují čísla uvnitř tabulky. Dopravní problém - MODI Kritérium optimality však není indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 1 5 1 5 6 2 4 něno pro prípustné řešení nalezené Cij Si S2 s3 s4 U; Vi 2 1 3 4 v2 6 2 6 1 v3 7 3 3 3 Dopravní problém - MODI Kritérium optimality však není splněno pro přípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 1 5 1 5 6 2 4 Cij Si S2 s3 s4 2 1 3 4 -1 v2 6 2 6 1 0 v3 7 3 3 3 1 6 2 2 1 Volíme uh Vj tak, aby jejich součty byly rovny číslům v červených polích Požadovných hodnot dosáhneme např. volbou u2 = 0. Ostatní opět dopočítáme. Dopravní problém - MODI Kritérium optimality však není splněno pro přípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 1 5 1 5 6 2 4 Cij Si s2 s3 s4 U/ 2 1 3 4 -1 v2 6 2 6 1 0 v3 7 3 3 3 1 6 2 2 1 Je vidět, že v levém horním rohu je porušena podmínka optimality: i/i + ví = 5 > Cn = 2. Dopravní problém - MODI Kritérium optimality však není splněno pro přípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 opacita 5 7 6 + 1 -2 5-1 + 4 5 Cij Si s2 s3 s4 Ví 2 1 3 4 -1 v2 6 2 6 1 0 7 3 3 3 1 vi 6 2 2 1 Je vidět, že v levém horním rohu je porušena podmínka optimality: i/i + = 5 > en = 2. K základnímu řešení s lepší hodnotou primární účelové funkce přejdeme volbou X11 jako vstupující proměnné, pomocí které nahradíme některou z proměnných x12,x22,X2i ležících natzv. Dantzigově uzavřeném obvodu vycházejícím z xu ■ Vybíráme tak, aby se neporušily podmínky primární přípustnosti. Je vidět, že lze o 1 zmenšit a tudíž vyhodit z báze x2i. Současně musíme zvětšit x22 a zmenšit x12 (viz znaménka + a - v levé tabulce). Dostaneme nové základní řešení. Dopravní problém - MODI Kritérium optimality však není splněno pro přípustné řešení nalezené indexovou metodou: požadavky Cij Si 02 S3 s4 Ui Xij 3 6 4 5 Ví 2 1 3 4 -1 h—' 5 1 4 v2 6 2 6 1 0 "o 03 q_ 03 7 0 2 5 7 3 3 3 4 6 2 4 vi 3 2 -1 1 Znovu doplníme uh Vj a zkontrolujeme podmínku optimality. Taje porušena pro c32 a c34- Dopravní problém - MODI Kritérium optimality však není splněno pro přípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 h—' 5 1 + 4- "o 03 7 0 2 5 03 6 2- + 4 Si s2 s3 s4 Ui Ví 2 1 3 4 -1 v2 6 2 6 1 0 7 3 3 3 4 vi 3 2 -1 1 Znovu doplníme i//, Vj a zkontrolujeme podmínku optimality. Taje porušena pro c32 a c34- Protože větší rozdíl je mezi (i/3 + \z2) - c32 = 6 - 3 = 3 než mezi (1/3 + v4) - c34 = 5 - 3 = 2 , získáme volbou x32 jako vstupující větší zlepšení účelové funkce. Musíme k ní doplnit Dantzigův obvod, budou jej tvořit x31, xi 1 a x12. Z báze vystoupí x31, jehož 2 jednotky se přesunou do x32. (na obvodu tudíž též o 2 zvětšíme xu a zmenšíme x12. Dostaneme novou tabulku. Dopravní problém - MODI Kritérium optimality však není splněno pro přípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 3 2 2 5 6 0 2 4 Cij Si S2 s3 s4 2 1 3 4 1 v2 6 2 6 1 2 ^3 7 3 3 3 3 ľ/ 1 0 0 -1 Nalezené řešení je již optimální jak jsme ověřili dříve, při výpočtu metodou VAM. Hodnota účelové funkce z = 35 již dále nejde zlepšit. Při postupu metodou MODI se někdy setkáme s degenerací, kdy v bázi je méně než m + n - 1 proměnných. Pak se některé nulové xy uměle nahradí malou hodnotou e > 0. Dopravní problém - použití Příklady možných aplikací dopravního problému ilustruje následující přehled. druh činnosti zdroje cílová místa rozvoz pohonných hmot rafinérie, sklady čerpací stanice svoz poštovních zásilek přepravní uzly třídící centra sběr fotozakázek fotosběrny spádová centra distribuce léčiv sklady distribučních firem lékárny, nemocnice zpracování cukrové řepy produkční střediska cukrovary Výjimečně se u dopravních úloh setkáme i s maximalizací účelové funkce. Kdy? Přiřazovací problém Přiřazovací úlohu můžeme charakterizovat jako problém vytvoření párů z objektů ze dvou různých skupin, tak aby toto spárování přineslo co největší efekt. Typicky jde o přidělení jednotlivých projektů pracovníkům či pracovních činností strojům tak abychom minimalizovali náklady nebo maximalizovali zisk. Jde o úlohu příbuznou s dopravním problémem. Ukažme příklad takové úlohy z knihy "M. Kavan: Výrobní a provozní management": Optimalizujte přidělení prací 1, 2, 3 strojům A, B, C, D, přičemž výrobní náklady jsou dány tabulkou: stroje Cij A B C D ráce 1 15 19 17 12 2 12 10 15 9 Q_ 3 18 14 11 14 Musíme tedy vybrat jedno číslo v každém řádku, tak aby jejich součet byl minimální a přitom žádná dvě čísla neležela ve stejném sloupci. Přiřazovací problém - matematická formulace Přidělení Mého úkolu y-tému pracovnímu místu můžeme reprezentovat zápisem xi}■ = 1, ostatním proměnným přiřadíme hodnotu 0. Pokud by bylo úkolů více než pracovních míst (m > n), je úloha neřešitelná. V případě opačné nerovnosti dorovnáme úlohu zavedením fiktivních prací s nulovými náklady, tak aby m = n. Nadále předpokládejme, že je úloha vyrovnaná. Matematický model přiřazovacího problému zahrnuje podmínky, že řádkové a sloupcové součty v tabulce jsou rovny jedné, s tím že proměnné nabývají pouze hodnot 0 nebo 1. Úlohu můžeme zapsat tatkto: Minimalizujme účelovou funkci Z = Z)/=1 Z)y=1 CÍjXíj za podmínek y^j—i = i j /=i,..., a?, Xije{0, 1}, / = 1, y = 1,...,a? Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 15 19 17 12 2 12 10 15 9 Q_ 3 18 14 11 14 Přidáme tedy jednu fiktivní činnost s nulovými náklady. Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 15 19 17 12 2 12 10 15 9 Q_ 3 18 14 11 14 4 0 0 0 0 Zredukujeme řádky odečtením řádkového minima, v každém pak bude aspoň jedna nula. Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 3 7 5 0 2 3 1 6 0 Q_ 3 7 3 0 3 4 0 0 0 0 Nyní bychom totéž provedli i pro sloupce, aby v každém byla jedna nula. To už ale nemusíme dělat díky přidané činnosti. Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 3 7 5 0 2 3 1 6 0 Q_ 3 7 3 0 3 4 0 0 0 0 K pokrytí všech nul stačí tři čáry, takže tabulka není optimální. Krok metody spočívá v přičtení nejmenšího nepokrytého prvku k hodnotám v průsečících čar a současně jeho odečtení od všech nepokrytých prvků, « = ► < = ► = , Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 2 6 5 0 2 2 0 6 0 Q_ 3 6 2 0 3 4 0 0 1 1 Po provedení kroku metody jsme dostali novou nepokrytou nulu a zbavili se dvojitě pokrytých nul. Musíme setrojit nové pokrytí. Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 2 6 5 0 2 2 0 6 0 Q_ 3 6 2 0 3 4 0 0 1 1 Ověřme, zda je nová tabulka optimální. K pokrytí všech nul jsou potřeba minimálně čtyři čáry. Výpočet končí, jinak bychom zopakovali krok. Přiřazovací problém - řešení Přiřazovací problém je možné řešit tzv. maďarskou metodou. Jejím principem je převedení původní úlohy na úlohu redukovanou tak, aby v každé řadě (řadou označujeme souhrne řádky a sloupce) byla aspoň jedna nula a přitom ostatní sazby zůstaly kladné. Optimální tabulka je taková, která obsahuje n "nezávislých nul"(nezávislé jsou tehdy, když žádné dvě neleží ve stejné řadě -jako v sudoku). To poznáme podle toho, že nelze "přeškrtnouťVšechny nuly pomocí méně než n vodorovných a svislých čar. Metodu ukážeme na řešení úvodní úlohy. Původní zadání je třeba vyrovnat, protože počet strojů je větší než počet prací. stroje Cij A B C D ráce 1 2 6 5 0 2 2 0 6 0 Q_ 3 6 2 0 3 4 0 0 1 1 Mezi těmi, které nejsou pokryty dvojitě vybereme nezávislé nuly. Ty nám říkají, které práce kterým strojům přiřadit. Tedy 1-D, 2-B, 3-C. Stroji A se přiřadí fiktivní práce, tedy se nevyužije. «!► £>, kde a, b jsou celá čísla obklopující x,. Tím rozdělíme množinu M0 na podmnožiny M\ a M2. Celočíselné programování- metoda B & B Množina přípustných řešení se postupně dělí na menší části (branching), kde sledujeme horní, (při minimalizaci dolní) hranici hodnot účelové funkce (bounding). To nám umožní vytipovat podmnožinu, kde nejpravděpodobněji nastane optimum a také podmnožiny, kde optimum určitě nebude. Větvení je možné provést pomocí řešení klasické úlohy LP získané relaxací celočíselné úlohy - přípustnou množinu označme M0. Je-li její bod optima x° celočíselný, našli jsme již optimální řešení původní úlohy. Jinak vybereme nějaké /, pro něž je Má složka řešení x° necelá, a přidáme dodatečné omezení x, < a, resp. x, > £>, kde a, b jsou celá čísla obklopující x,. Tím rozdělíme množinu M0 na podmnožiny M\ a M2. Na každé z nich zase najdeme optimum účelové funkce x1 a x2 a určíme jejich hodnoty účelové funkce z1 a z2. Celé části těchto hodnot nám dávají horní mez pro účelovou funkci na množinách M\ a M2. Celý proces pokračuje tak dlouho, dokud se všechny větve neuzavřou tak, že: • Ve větvi je nalezeno celočíselné řešení nebo • ve větvi neexistuje přípustné řešení nebo • ve větvi je nalezeno necelé řešení, jehož hodnota je menší než hodnota celočíselného řešení z jiné větve Celočíselné programování- použití metody B & B Ukažme metodu B & B pro úlohu rozvržení výroby textilu Celočíselné programování- použití metody B & B Ukažme metodu B & B pro úlohu rozvržení výroby textilu Již máme řešení relaxace úvodní úlohy x° = xceí = [1,6; 2,2] Jeho první složka je necelá, přidáme tedy omezení xi > 2, resp. xi < 1, čímž vytvoříme množiny M\ a M2. Celočíselné programování- použití metody B & B Ukažme metodu B & B pro úlohu rozvržení výroby textilu Na množině M\ dostaneme optimum x1 = [2; |] a na M2 řešení x2 = [1; Jejich hodnoty jsou z1 = 90 a z2 = 95, což dává horní meze pro a M Celočíselné programování- použití metody B & B Ukažme metodu B & B pro úlohu rozvržení výroby textilu Množina M2 má vyšší horní mez, takže s dělením pokračujeme na ní. Druhá složka x2 je rovna §, přidáme tedy omezení x2 < 2, resp. x2 > 3, čímž vytvoříme množiny M3 a M4 (ta je jen jednobodová). Celočíselné programování- použití metody B & B Ukažme metodu B & B pro úlohu rozvržení výroby textilu Řešení x3 a x4 jsou již obě celočíselná, hodnoty účelové funkce v nich jsou z3 = 80 a z4 = 90. Výpočet končí, na žádné větvi (ani M\) už nemůžeme dostat více než 90 Euro v bodě optima x4 = [0,3]. Celočíselné programování- použití metody B & B Ukažme metodu B & B pro úlohu rozvržení výroby textilu M xD=(8/5,11/5) zD = 98 x'=(2,5/3) z'= 90 M: x2=(1,5/2) z2 = 95 V. x3=(1,2) z3 = 80 Postup řešení můžeme znázornit schematicky. Optimalizace v grafech - základní pojmy Řadu reálných systémů (např. distibuční síť) lze modelovat rovinnými grafy. Graf je tvořen uzly, které budeme značit u\,..., un a hranami, přičemž hranu mezi uzly u\ a Uj označíme /?,y. V rovině můžeme znázornit graf pomocí bodů (koleček) a spojnic mezi nimi. Hrany, které umožňují pohyb v obou směrech nazýváme neorientované. Je-li povolen pouze jeden směr pohybu, znázorníme to na grafu šipkou a takové "jednosměrné"hrany nazýváme orientované. Neorientovaným grafem nazveme graf obsahující pouze neorientované hrany, jinak jej nazveme orientovaným. Na obrázku je znázorněn neorientovaný a orientovaný graf. Optimalizace v grafech - základní pojmy Cestou z uzlu Uj do uzlu Uj nazveme posloupnost na sebe navazujících hran, z nichž první začíná v u\ a poslední končí v Uj. Pokud cesta respektuje orientaci hran, nazývá se orientovaná (v opačném případě neorientovaná). Na obrázku je znázorněna jedna z orientovaných cest z uzlu 1 do uzlu 6. Naopak z uzlu 6 do uzlu 1 vedou pouze neorientované cesty. Optimalizace v grafech - základní pojmy Cestou z uzlu Uj do uzlu Uj nazveme posloupnost na sebe navazujících hran z nichž první začíná v u\ a poslední končí v Uj. Pokud cesta respektuje orientaci hran, nazývá se orientovaná (v opačném případě neorientovaná). Na obrázku je znázorněna jedna z orientovaných cest z uzlu 1 do uzlu 6. Naopak z uzlu 6 do uzlu 1 vedou pouze neorientované cesty. Cestu, pro kterou u{ = Uj, nazveme cyklus, v případě neorientovaného grafu kružnice. Zobrazený graf obsahuje například kružnici 1 - 3 - 4 - 1. Graf, ve kterém mezi libovolnými dvěma uzly existuje aspoň jedna neorientovaná cesta, se nazývá souvislý. Každý souvislý neorientovaný graf, který neobsahuje kružnici, se nazývá strom. Optimalizace v grafech - základní pojmy Při řešení optimalizačních úloh zpravidla pracujeme s hranově ohodnocenými grafy. Hranám jsou přiřazeny hodnoty y# podle ekonomického významu (např. vzdálenosti mezi distribučními centry či náklady na přepravu mezi centry, apod.) Souvislý orientovaný a nezáporně ohodnocený graf se dvěma speciálními uzly (vstupem a výstupem) nazveme síť. Přidáme-li ohodnocení hran do našeho grafu, získáme síť se vstupním uzlem 1 a výstupním uzlem 6. Optimalizace v grafech - základní pojmy Při řešení optimalizačních úloh zpravidla pracujeme s hranově ohodnocenými grafy. Hranám jsou přiřazeny hodnoty y# podle ekonomického významu (např. vzdálenosti mezi distribučními centry či náklady na přepravu mezi centry, apod.) Souvislý orientovaný a nezáporně ohodnocený graf se dvěma speciálními uzly (vstupem a výstupem) nazveme síť. Přidáme-li ohodnocení hran do našeho grafu, získáme síť se vstupním uzlem 1 a výstupním uzlem 6. Délkou cesty nazveme součet ohodnocení jejích hran. Například mezi délka orientované cesty 1-2-5-6 je 3+7+6=16. Pozor! Graf je definován pomocí množiny uzlů a množiny hran, nikoliv zakreslením. Délky spojnic nemusí a často ani nemohou odpovídat ohodnocení hran. Optimalizace v grafech - úlohy Na grafech se řeší řada úloh: • Štandartní optimalizační úlohou je hledání nejkratší cesty mezi dvěma uzly. Úloha se řeší v orientovaných i neorientovaných grafech, existuje více algoritmů, některé k určení celé matice vzdáleností. Jeden z nejznámějších algoritmů je Dijkstrův algoritmus. • Hledání minimální kostry grafu - úkolem je vybrat takovou podmnožinu hran, aby mezi každými dvěma uzly existovala cesta a aby celkové ohodnocení bylo minimální (kostra nesmí obsahovat cyklus). • Určení maximálního toku v síti (propustnosti sítě): Představuje - li ohodnocení v síti přepravní kapacitu hran, pak úkolem je určení maximálního počtu jednotek, které je možné přepravit ze vstupního do výstupního uzlu. o Další úlohy, jako problém barvení grafu, problém čínského pošťáka, problém obchodního cestujícího, medián grafu, centr grafu, atd. Optimalizace v grafech - minimální kostra Pro nalezení kostry grafu s minimálním celkovým ohodnocením hran lze použít hladový (Kruskalův) algoritmus: do kostry postupně zařazujeme hrany s nejnižší hodnotou tak dlouho, dokud nejsou propojeny všechny uzly. Přitom nesmíme dopustit vznik cyklu: takové hrany, které by uzavřely okruh, do kostry nezahrneme. Nalezněme minimální kostru v grafu z knihy T. Šubrt: Ekonomicko-matematické metody: Optimalizace v grafech - minimální kostra Pro nalezení kostry grafu s minimálním celkovým ohodnocením hran lze použít hladový (Kruskalův) algoritmus: do kostry postupně zařazujeme hrany s nejnižší hodnotou tak dlouho, dokud nejsou propojeny všechny uzly. Přitom nesmíme dopustit vznik cyklu: takové hrany, které by uzavřely okruh, do kostry nezahrneme. Nalezněme minimální kostru v grafu z knihy T. Subrt: Ekonomicko-matematické metody: Nejprve přidáme hranu s hodnotou 1. □ rS1 Optimalizace v grafech - minimální kostra Pro nalezení kostry grafu s minimálním celkovým ohodnocením hran lze použít hladový (Kruskalův) algoritmus: do kostry postupně zařazujeme hrany s nejnižší hodnotou tak dlouho, dokud nejsou propojeny všechny uzly. Přitom nesmíme dopustit vznik cyklu: takové hrany, které by uzavřely okruh, do kostry nezahrneme. Nalezněme minimální kostru v grafu z knihy T. Šubrt: Ekonomicko-matematické metody: Dále vybereme všechny hrany s hodnotou 2. □ s Optimalizace v grafech - minimální kostra Pro nalezení kostry grafu s minimálním celkovým ohodnocením hran lze použít hladový (Kruskalův) algoritmus: do kostry postupně zařazujeme hrany s nejnižší hodnotou tak dlouho, dokud nejsou propojeny všechny uzly. Přitom nesmíme dopustit vznik cyklu: takové hrany, které by uzavřely okruh, do kostry nezahrneme. Nalezněme minimální kostru v grafu z knihy T. Šubrt: Ekonomicko-matematické metody: Přidáme hrany s hodnotou 3 kromě v3-v4, která by uzavřela okruh. Optimalizace v grafech - minimální kostra Pro nalezení kostry grafu s minimálním celkovým ohodnocením hran lze použít hladový (Kruskalův) algoritmus: do kostry postupně zařazujeme hrany s nejnižší hodnotou tak dlouho, dokud nejsou propojeny všechny uzly. Přitom nesmíme dopustit vznik cyklu: takové hrany, které by uzavřely okruh, do kostry nezahrneme. Nalezněme minimální kostru v grafu z knihy T. Šubrt: Ekonomicko-matematické metody: Hrana s hodnotou 6 nemůže být do kostry zahrnuta, přidáme tedy hranu s hodnotou 7. Optimalizace v grafech - minimální kostra Pro nalezení kostry grafu s minimálním celkovým ohodnocením hran lze použít hladový (Kruskalův) algoritmus: do kostry postupně zařazujeme hrany s nejnižší hodnotou tak dlouho, dokud nejsou propojeny všechny uzly. Přitom nesmíme dopustit vznik cyklu: takové hrany, které by uzavřely okruh, do kostry nezahrneme. Nalezněme minimální kostru v grafu z knihy T. Šubrt: Ekonomicko-matematické metody: Dostali jsem již souvislý podgraf, tedy kostru, celková hodnota jejích hran je 20. Optimalizace v grafech - nejkratší cesta Pro hledání nejkratší cesty z uzlu v1 do ostatních uzlů lze použít Dijkstrův algoritmus: předveďme na grafu z předchozího příkladu: Optimalizace v grafech - nejkratší cesta Pro hledání nejkratší cesty z uzlu v1 do ostatních uzlů lze použít Dijkstrův algoritmus: předveďme na grafu z předchozího příkladu: Algoritmus rozděluje uzly podle toho, zda už do nich nejkratší cestu známe nebo ne. Začínáme s cestou délky 0 z v1 do v1. Nejkratší cestu prodloužíme vždy o jednu hranu. Projdeme všechny uzly se známou délkou cesty z v1, sečteme tyto délky postupně s hodnotami hran z uzlů vycházejících a vybereme ze všech součtů nejmenší, tak získáme délku cesty do nějakého nového uzlu a postup dále opakujeme. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v2 (7) v1 (7) v1 (9) v1 (8) v2 (8) v2 (2) v5 (10) v5 (7) v3 (9) v3 (10) v2 (10) v2 (3) v3 (6) v3 (10) v6 (3) v6 (2) v4 (8) v4 (3) v4 (3) v3 (3) v4(3) v4 (2) v8(1) v7 (1) v5 (8) v5 (6) v5 (3) v6(10) v5 (10) v6 (2) v6 (10) v6 (2) v7 (9) v7 (3) v8 (7) v8 (2) vzd.z v1 0 V prvním kroku známe jen vzdálenost do v1, projdeme jeho sousedy a vybereme hranu s nejmenší hodnotou, což je v1-v2 s délkou 7. Vrchol v2 tedy zařadíme do skupiny se známou vzdáleností z v1. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v+^9} v2-(8> v2-(2> v5 (10) v5 (7) v3 (9) v3 (10) v2 (10) v2-(3> v3 (6) v3 (10) v6 (3) v6 (2) v4 (8) v4 (3) v4 (3) v3 (3) v4(3) v4 (2) v8(1) v7 (1) v5 (8) v5 (6) v5 (3) v6(10) v5 (10) v6 (2) v6 (10) v6 (2) v7 (9) v7 (3) v8 (7) v8 (2) vzd.z v1 0 7 V druhém kroku procházíme kromě sousedů v1 také sousedy v2, délky cest přes v2 jsou 7+10, 7+3, 7+8, 7+2, takže nejkratší novou cestou bude v1-v4 délky 8. Přidáme v4 mezi uzly, do nichž nejkratší cestu známe. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v+^9} v2-(8> v2-(2> v5 (10) v5 (7) v3 (9) v3 (10) v2 (10) v2-(3> v3 (6) v3 (10) v6 (3) v6 (2) v4-(8) v4-(3) v4-(3) v3 (3) v4-(3> v4-(2> v8(1) v7 (1) v5 (8) v5 (6) v5 (3) v6(10) v5 (10) v6 (2) v6 (10) v6 (2) v7 (9) v7 (3) v8 (7) v8 (2) vzd.z v1 0 7 8 V dalším kroku procházíme dosud nezařazené sousedy uzlů v1, v2 a v4. Nejmenší celková délka cest přes tyto uzly do jejich sousedů je v1-v3 s hodnotou 9. To bude tedy vzdálenost do uzlu v3. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v+^9) v+^8) v2-(8) v2-(2) v5 (10) v5 (7) v3-(9> v3 (10) v2 (10) v2-(3) v3-(6) v3 (10) v6 (3) v6 (2) v4-(8> v4-(3) v4-(3) v3-(3) v4-(3) v4^(2) v8(1) v7 (1) v5 (8) v5 (6) v5 (3) v6(10) v5 (10) v6 (2) v6 (10) v6 (2) v7 (9) v7 (3) v8 (7) v8 (2) vzd.z v1 0 7 9 8 Stejnou vzdálenost (také 9) má cesta přes v2 do v6. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v2-(8> v2-(2> v5 (10) v5 (7) v3-(9> v3 (10) v2 (10) v2-(3> v3-(6> v3 (10) v6-(3> v6-(2i v4-(3) v4-(3> v3-(3> v4-(3> v4^(2> v8(1) v7 (1) v5 (8) v5 (6) v5 (3) v6(10) v5 (10) v6-(2> v6 (10) v6-(2> v7 (9) v7 (3) v8 (7) v8 (2) vzd.z v1 0 7 9 8 9 Z dosud nezařazených uzlů má nejmenší celkovou vzdálenost přes jednu hranu z již vytvořených cest uzel v5, který napojíme z v4, jeho vzdálenost z v1 je 11. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v+^9} v2-(8> v2-(2> v5 (10) vS-(7> v3-(9> v3 (10) v2 (10) v2-(3> v3-(6> v3 (10) v6-(3> v6-(2i v4-(3) v3-(3> v4-(3> v4^(2> v8(1) v7 (1) v€-(8> v5 (6) v€-(3> v6(10) v5 (10) v6-(2> v6 (10) v6-(2> v7 (9) v7 (3) v8 (7) v8 (2) vzd.z v1 0 7 9 8 11 9 Stejné vzdálenosti 11 dosáhneme napojením uzlu v8 přes v6. Optimalizace v grafech - nejkratší cesta Postup algoritmu se lépe sleduje v tabulce sousedů (v závorkách jsou uvedeny hodnoty hran): sousedi i/1 1/2 1/3 1/4 v5 1/6 1/7 1/8 v+^9} v2-(8> v2-(2> v5 (10) vS-(7> v3-(9> v3 (10) v2 (10) v2-(3> v3-(6> v3 (10) v6-(3> v6-(2i v4-(3> v3-(3> v4-(3> v4-(2> v8-(4} v7 (1) v€-(8> v5 (6) v€-(3> v6(10) v5 (10) v6-(2> v6 (10) v6-(2> v7 (9) v7 (3) *W v8-(2> vzd.z v1 0 7 9 8 11 9 11 Nakonec připojíme uzel v7, nejkratší možnost je přes v6, celková vzdálenost do něj je 12. Optimalizace v grafech - medián grafu Medián grafu minimalizuje součet vzdáleností od ostatních uzlů. Spočítejme ho pro úlohu o umístění skladu pro města uvažovaná ve výše řešené okružní úloze. Kralupy Veltrusy Slaný Velvary Zlonice Vraný Bříza SUMA Kralupy 0 4 16 8 18 25 17 88 Veltrusy 4 0 20 12 22 28 13 99 Slaný 16 20 0 12 7 14 17 86 Vel vary 8 12 12 0 10 17 10 69 Zlonice 18 22 7 10 0 7 10 74 Vraný 25 28 14 17 7 0 15 106 Bříza 17 13 17 10 10 15 0 82 Optimalizace v grafech - medián grafu Medián grafu minimalizuje součet vzdáleností od ostatních uzlů. Spočítejme ho pro úlohu o umístění skladu pro města uvažovaná ve výše řešené okružní úloze. Kralupy Veltrusy Slaný Velvary Zlonice Vraný Bříza SUMA Kralupy 0 4 16 8 18 25 17 88 Veltrusy 4 0 20 12 22 28 13 99 Slaný 16 20 0 12 7 14 17 86 Vel vary 8 12 12 0 10 17 10 69 Zlonice 18 22 7 10 0 7 10 74 Vraný 25 28 14 17 7 0 15 106 Bříza 17 13 17 10 10 15 0 82 Aby se do skladu nejezdilo celkem co nejméně kilometrů, je nejlepší jej umístit ve Vel varech. Pozn.: Při umístění dvou skladů hovoříme o dvoumediánu, atd. Optimalizace v grafech - centr grafu Centr grafu minimalizuje maximum vzdáleností od ostatních uzlů. Spočítejme ho pro úlohu o umístění hasičské stanice pro města uvažovaná ve výše řešené okružní úloze. Kralupy Veltrusy Slaný Velvary Zlonice Vraný Bříza MAX Kralupy 0 4 16 8 18 25 17 25 Veltrusy 4 0 20 12 22 28 13 28 Slaný 16 20 0 12 7 14 17 20 Vel vary 8 12 12 0 10 17 10 17 Zlonice 18 22 7 10 0 7 10 22 Vraný 25 28 14 17 7 0 15 28 Bříza 17 13 17 10 10 15 0 17 Optimalizace v grafech - centr grafu Centr grafu minimalizuje maximum vzdáleností od ostatních uzlů. Spočítejme ho pro úlohu o umístění hasičské stanice pro města uvažovaná ve výše řešené okružní úloze. Kralupy Veltrusy Slaný Velvary Zlonice Vraný Bříza MAX Kralupy 0 4 16 8 18 25 17 25 Veltrusy 4 0 20 12 22 28 13 28 Slaný 16 20 0 12 7 14 17 20 Vel vary 8 12 12 0 10 17 10 17 Zlonice 18 22 7 10 0 7 10 22 Vraný 25 28 14 17 7 0 15 28 Bříza 17 13 17 10 10 15 0 17 Aby města byla pro hasiče co nejrychleji dostupná, nejlepší je umístit stanici ve Velvarech nebo Bříze. Pozn.: Při umístění dvou stanic hovoříme o dvoucentru, atd. Optimalizace v síťových grafech Nejznámější úlohou je hledání maximálního toku v síti (např. vodovodní potrubí, silniční či datová síť,...). Pro řešení potřebujeme znát: popis potrubí (graf, zpravidla orientovaný) • odkud voda vytéká (speciální uzel: zdroj) • kam voda teče (speciální uzel: cíl, spotřebič) o kolik vody může danou hranou protéct (kapacita = nazáporné ohodnocení hran) Graf s vyjmenovanými vlastnostmi označujeme jako síť. Optimalizace v síťových grafech Nejznámější úlohou je hledání maximálního toku v síti (např. vodovodní potrubí, silniční či datová síť,...). Pro řešení potřebujeme znát: popis potrubí (graf, zpravidla orientovaný) • odkud voda vytéká (speciální uzel: zdroj) • kam voda teče (speciální uzel: cíl, spotřebič) o kolik vody může danou hranou protéct (kapacita = nazáporné ohodnocení hran) Graf s vyjmenovanými vlastnostmi označujeme jako síť. Tokem nazveme funkci přiřazující každé hraně nezáporné číslo nepřesahující kapacitu splňující tzv. Kirchhoffovy zákony: součet toků na hranách vstupujících je stejný jako na vystupujících. Tyto podmínky musí platit ve všech uzlech kromě zdroje a cíle. Velikost toku je součet toků vycházejících ze zdroje. Pokud ze zdroje nic nevytéká, jde o nulový tok. Optimalizace v síťových grafech Pro hledání maximálního toku v síti se používají zlepšovací algoritmy: začne se zpravidla s nulovým tokem a hledá se cesta, na níž mají všechny hrany nenulovou rezervu (rozdíl kapacity a skutečného toku). Tok lze navýšit na dané cestě o minimální hodnotu rezervy. Postupujeme dále prohledáváním grafu a hledáním další zlepšující cesty. Prostou aplikací tohoto postupu bychom ale nemuseli nalézt nejlepší řešení, někdy je potřeba na některých hranách naopak tok zmenšit, aby se mohl vést lepší cestou a celková velikost toku se zvýšila. Optimalizace v síťových grafech Pro hledání maximálního toku v síti se používají zlepšovací algoritmy: začne se zpravidla s nulovým tokem a hledá se cesta, na níž mají všechny hrany nenulovou rezervu (rozdíl kapacity a skutečného toku). Tok lze navýšit na dané cestě o minimální hodnotu rezervy. Postupujeme dále prohledáváním grafu a hledáním další zlepšující cesty. Prostou aplikací tohoto postupu bychom ale nemuseli nalézt nejlepší řešení, někdy je potřeba na některých hranách naopak tok zmenšit, aby se mohl vést lepší cestou a celková velikost toku se zvýšila. Vylepšený algoritmus (Ford-Fulkerson) je následující: • U každé hrany evidujeme její rezervu i "rezervu v protisměru"(o kolik lze tok snížit). Na začátku u výchozího nulového toku jsou rezervy rovny kapacitám (rezervy v protisměru u orientovaných hran nulové) • Vybereme zlepšující cestu a navýšíme tok o její rezervu. Současně o stejnou hodnotu snížíme rezervy všech hran na cestě a navýšíme jejich rezervy v protisměru. • Postupujeme takto dál, dokud lze nalézt cestu s nenulovou rezervou. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Začneme s nulovým tokem, na hranách modře vyznačíme rezervy, zeleně "rezervy v protisměru". Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Najdeme libovolnou zlepšující cestu. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Na zvolené cestě je nejmenší rezerva 6, o tuto hodntu navýšíme tok na cestě. Rezervy na všech vybraných hranách tedy klesnou o šest a o stejnou hodnotu se zvýší protisměrné rezervy. □ S1 Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Najdeme další zlepšující cestu. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Na této cestě je hrana s rezervou 5, nemůžeme tedy tok zvýšit o víc. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Po navýšení najdeme další cestu s nenulovou rezervou. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Na této cestě jsme navýšili tok o 7. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Existuje ještě zlepšující cesta s rezervou 1. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Provedli jsme navýšení. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Můžeme tok ještě zlepšit po cestě, která mezi v5 a v7 vede "v protisměru". Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Provedeme navýšení o nejmenší rezervu (1, na poslední hraně). Mezi v5 a v7 se tok fakticky snížil o 1. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Nalezený tok má velikost 7+8 +5=20 (viz zelené hodnoty u cíle). Evidentně je to optimální řešení, do cíle už není volná další kapacita. Maximální tok v síti: Ford-Fulkerson Aplikujme Ford-Fulkersonův algoritmus na nalezení maximálního toku v zadané síti: Řízení projektů je jednou z typických aplikací teorie grafů. Projekt můžeme obecně chápat jako soubor činností. Tyto činnosti lze charakterizovat předpokládanou dobou trvání, náklady na realizaci, požaddavky na zajištění, výčtem činností, které realizaci musí předcházet, atd. Nejčastěji hledáme odpověď na tyto otázky: • Jaká je nejkratší možná doba realizace projektu? • Které činnosti jsou z hlediska dodržení termínu klíčové, tzv. kritické činnosti? • Jaké jsou rezervy u nekritických činností • Jaký je časový rozvrh pro realizaci jednotlivých činností? Kromě časové analýzy projektů nás zajímají též náklady na projekt v závislosti na čase, hovoříme pak o nákladové analýze. Dále můžeme sledovat úroveň a rozložení zdrojů potřebných pro jednotlivé činnosti, tedy provádět zdrojovou analýzu projektu. Řízení projektů - konstrukce síťového grafu Projekt znázorňujeme pomocí ohodnoceného síťového grafu, kde hrany reprezentují činnosti, ohodnocení většinou dobu jejich trvání a uzly představují momenty zahájení či ukončení jednotlivých činností. Při analýze nejprve musíme vymezit jednotlivé činnosti, odhadnout délky jejich realizace a definovat návaznosti pomocí výčtu bezprostředně předcházejících činností. Řízení projektů - konstrukce síťového grafu Projekt znázorňujeme pomocí ohodnoceného síťového grafu, kde hrany reprezentují činnosti, ohodnocení většinou dobu jejich trvání a uzly představují momenty zahájení či ukončení jednotlivých činností. Při analýze nejprve musíme vymezit jednotlivé činnosti, odhadnout délky jejich realizace a definovat návaznosti pomocí výčtu bezprostředně předcházejících činností. Ukažme si síťový graf pro projekt vytvoření nového obchodního střediska firmy Q-mark, a.s. (J.Jablonský: Operační výzkum). Před vlastním sestavením grafu definujeme elementární činnosti a jejich vlastnosti, viz. tabulka: činnost popis činnosti trvání [týdny] předchází A výběr a nákup projektu 6 - B zpracování projektu 4 A C obsazení pozice manažera 3 A D výběr personálu 3 B,C E rekonstrukce a vybavení objektu 8 B F školení personálu 2 D G výběr sortimentu zboží 2 B,C H uzavření smluv s dodavateli 5 G 1 nákup zboží 3 E, F, H J reklama 2 --H---S-- H ---=--sJ Řízení projektů - konstrukce síťového grafu Při sestavování grafu můžeme narazit na problém u definice uzlů. Například činnosti D musí předcházet B,C, ale činnosti E předchází pouze B. Jak tedy správně znázornit návaznost? Příklady nesprávného znázornění, viz obr.: b e Podobný problém je u činností l,J, které mají společného předchůdce H, ale činnosti I navíc předchází i E,F. Řízení projektů - konstrukce síťového grafu Problém s návazností lze řešit zavedením fiktivních činností, jimž odpovídající fiktivní hrany doplní chybějící spoje. Znázorňují se přerušovanou čarou. Doba fiktivních činností je vždy nulová. Do našeho příkladu tedy doplníme dvě fiktivní činnosti: X zprostředkující návaznost mezi B a D a činnost Y pro návaznost mezi Hal. Řízení projektů - konstrukce síťového grafu Problém s návazností lze řešit zavedením fiktivních činností, jimž odpovídající fiktivní hrany doplní chybějící spoje. Znázorňují se přerušovanou čarou. Doba fiktivních činností je vždy nulová. Do našeho příkladu tedy doplníme dvě fiktivní činnosti: X zprostředkující návaznost mezi B a D a činnost Y pro návaznost mezi Hal. Jedno z možných znázornění sítě projektu je na obrázku: Při sestavování grafu je dobré držet se pravidla, aby index počátečního uzlu každé hrany byl nižší než index jejího koncového uzlu. Potom graf nebude obsahovat žádné orientované cykly. Critical Path Method (CPM) Metoda se používá od 50. let minulého století. Jejím principem je určit pro každou činnost tyto 4 charakteristiky: • Nejdříve možný začátek provádění činnosti začínající v uzlu u,-, značíme jej: i? • Nejdříve možný konec provádění činnosti reprezentované hranou /?,y získáme přičtením doby trvání činnosti: tf + y\j • Nejpozději přípustný konec provádění činnosti končící v uzlu Uj, značíme jej: tj • Nejpozději přípustný začátek provádění činnosti reprezentované hranou hjj získáme odečtením doby trvání činnosti: t- - y,j V síťovém grafu vyznačíme do jednotlivých uzlů i nejdříve možné začátky a nejpozději přípustné konce činností, které v něm začínají, resp. končí: Critical Path Method (CPM) Vlastní algoritmus metody probíhá ve čtyřech fázích: O Výpočet nejprve možných začátků: Pro činnosti začínající v uzlu Uj se spočte jako maximum nejdříve možných konců činností, které do něj vstupují. řy° = maxj(tf + y,) Pro výstupní uzel tak dostaneme nejkratší možnou dobu realizace projektu. O Výpočet nejpozději přípustných konců: Pro činnosti končící v uzlu u\ se spočte jako minimum z nejpozději přípustných začátků činností z uzlu vystupujících, ř,1 = minj(tj - y,) O Výpočet celkových časových rezerv: Činnost reprezentovaná hranou /?,y má stanoveno, kdy může nejdříve začít (tf) a kdy musí nejpozději skončit (řy1). Doba, během které se musí realizovat, je tedy t- - /fa protože její realizace trvá yy, dostaneme její pro časovou rezervu vztah: FtiJ = tj-ti-YiJ O Sestavení harmonogramu činností Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme nejdříve možné začátky činností. Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme Nejprve si zobrazíme graf projektu s dobami trvání činností. □ s Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme Nejdříve možný začátek činností B,C je q = 0 + 6 = 6. □ s Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme Nejdříve možný začátek činnosti E je q = 6 + 4 = 10. □ rS1 Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme nejdříve možné začátky činností. Nejdříve možný začátek činností D,G je Ů = max^ 0 + 0,6 + 3) = 10. Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme nejdříve možné začátky činností. Nejdříve možný začátek činností F, resp. H je q = 10 + 3 = 13, resp. ř6° = 10 + 2 = 12. Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme nejdříve možné začátky činností. Nejdříve možný začátek činnosti J je fi? = 12 + 5 = 17. Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme nejdříve možné začátky činností. Nejdříve možný začátek činnosti I je fi? = max(10 + 8,13 + 2,17 + 2) = 18. Critical Path Method (CPM) -1. fáze V první fázi metody CPM postupně zleva doprava počítáme nejdříve možné začátky činností. Nejdříve možná doba ukončení projektu je v čase ř9° = max(18 + 3,17 + 2) = 21 týdnů. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Stanovili jsme minimální dobu trvání projektu na 21 týdnů. To bude i nejpozději přípustný konec činností l,J: řg = 21. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Nejpozději přípustný konec činností F,E je Ú = 21 -3 = 18. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Nejpozději přípustný konec činnosti H je tj = /77/r?(21 - 2,18 - 0) = 18. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Nejpozději přípustný konec činností D, resp. G je ^ = 18 - 2 = 16, resp. t£ = 18-5 = 13. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Nejpozději přípustný konec činnosti C je t\ = a?7/>?(13 - 2,16 - 3) = 11. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Nejpozději přípustný konec činnosti B je řg = a?7/>?(18 - 8,11 - 0) = 10. Critical Path Method (CPM) - 2. fáze Ve druhé fázi postupujeme zprava doleva a doplňujeme nejpozději přípustné konce. Předpokládejme, že chceme stihnout projekt v nejkratším možném čase. Nejpozději přípustný konec činnosti A je fcj = #n//7(10 - 4,11 - 3) = 6. Protože jsme vycházeli z nejrychlejší možné realizace projektu, samozřejmě vyšlo = 6 - 6 = 0. Critical Path Method (CPM) - 3. fáze Dopočítáme rezervy jednotlivých činností podle vztahu fí,y = t- - 1? - yij. Například činnost J musí proběhnout mezi 17. a 21. týdnem a trvá 2 týdny, její rezerva je tedy f?79 = 21 -17-2 = 2 týdny, apod. Rezervy jednotlivých činností jsou uvedeny v závorkách. Červeně je znázorněna kritická cesta sestávající z činností A,B,E,I, které nemají žádnou časovou rezervu. Critical Path Method (CPM) - 4. fáze Poslední, ale velmi důležitou fází je rozvržení realizace činností v čase. Je nutné určit, které činnosti mohou probíhat paralelně a které na sebe musí navazovat. To nám umožní dále rozvrhovat zdroje potřebné pro jednotlivé činnosti. Ukažme si rozvrh činností v diagramu, kde rámečky tvoří nejdříve možný začátek a nejpozději přípustný konec činností, stínování naznačuje dobu jejich trvání. V horní části tabulky jsou kritické činnosti s nulovými rezervami - tyto musí na sebe bezprostředně navazovat, aby nedošlo ke zpoždění projektu. Činnost Ä B E I C D F G H J Cas 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Metoda pert Metoda PERT (Program Evaluation and Review Technique) je pravděpodobnostním rozšířením metody CPM. V praxi často není reálné stanovit realizační doby činností, proto jsou hodnoty y\j nahrazeny náhodnými veličinami, které se realizují na nějakém intervalu (a,y, bij). Kromě tohoto mezního optimistického, resp. pesimistického odhadu se pracuje s nepravděpodobnější dobou trvání činnosti ta se označuje jako modálni odhad. Metoda pert Metoda PERT (Program Evaluation and Review Technique) je pravděpodobnostním rozšířením metody CPM. V praxi často není reálné stanovit realizační doby činností, proto jsou hodnoty y\j nahrazeny náhodnými veličinami, které se realizují na nějakém intervalu (a,y, bij). Kromě tohoto mezního optimistického, resp. pesimistického odhadu se pracuje s nepravděpodobnější dobou trvání činnosti #ri#y, ta se označuje jako modálni odhad. Skutečné rozložení pravděpodobnosti náhodné veličiny není obecně známo, ale často se aproximuje /3-rozdělením. Lze ukázat, že pro její střední hodnotu a rozptyl platí: Vij — 6 Metoda pert Metoda PERT (Program Evaluation and Review Technique) je pravděpodobnostním rozšířením metody CPM. V praxi často není reálné stanovit realizační doby činností, proto jsou hodnoty y\j nahrazeny náhodnými veličinami, které se realizují na nějakém intervalu (a,y, bij). Kromě tohoto mezního optimistického, resp. pesimistického odhadu se pracuje s nepravděpodobnější dobou trvání činnosti #ri#y, ta se označuje jako modálni odhad. Skutečné rozložení pravděpodobnosti náhodné veličiny není obecně známo, ale často se aproximuje /3-rozdělením. Lze ukázat, že pro její střední hodnotu a rozptyl platí: Vij — 6 Vlastní výpočet metodou PERT se neliší od metody CPM, jen se místo hodnot y,j pracuje se středními hodnotami ^,y. Za určitých předpokladů se dá dle centrální limitní věty aproximovat rozložení celkové délky projektu normální náhodnou veličinou a získat tak odpověď na otázky : Jaká je pravděpodobnost, že projekt bude ukončen v čase 7, resp. v jakém čase bude projekt ukončen se stanovenou pravděpodobností p, apod. Metoda pert - příklad Příklad : V závodě se má provést rekonstrukce výrobní linky spojená s výměnou výrobního zařízení, stavebními úpravami, generální opravou elektroinstalace a zlepšením pracovního prostředí. Projekt byl rozložen na dílčí činnosti, které jsou spolu s předpokládanou dobou jejich trvání (v týdnech) uvedeny v tabulce. Pomocí metody PERT stanovte kritickou cestu. Popis činnosti předchůdci A B C A Demontáž starého zařízení - 5 8 10 B Oprava střechy výrobní haly - 4 6 7 C Oprava podlahy A 1 2 5 D Vnitřní stavební úpravy B,C 2 4 6 E Generální oprava elektroinstalace D 7 10 14 F Montáž nového výrobního zařízení E 10 12 13 G Montáž klimatizačního zařízení E 4 5 8 H Zkušební provoz F 3 4 6 1 Dokončení vnitřních stavebních úprav G 1 3 5 Metoda pert - příklad Řešení: Stanovíme střední hodnoty a rozptyly dob trvání činností (iJ) rriij fy A(1,2) 5 8 10 7,83 0,69 B(1,3) 4 6 7 5,83 0,25 0(2,3) 1 2 5 2,33 0,44 D(3,4) 2 4 6 4,00 0,44 E(4,5) 7 10 14 10,17 1,36 F(5,6) 10 12 13 11,83 0,25 G(5,7) 4 5 8 5,33 0,44 H(6,8) 3 4 6 4,17 0,25 1(7,8) 1 3 5 3,00 0,44 Metoda pert - příklad Řešení: Stanovíme střední hodnoty a rozptyly dob trvání činností: (iJ) au rriij fy Mi A(1,2) 5 8 10 7,83 0,69 B(1,3) 4 6 7 5,83 0,25 C(2,3) 1 2 5 2,33 0,44 D(3,4) 2 4 6 4,00 0,44 E(4,5) 7 10 14 10,17 1,36 F(5,6) 10 12 13 11,83 0,25 G(5,7) 4 5 8 5,33 0,44 H(6,8) 3 4 6 4,17 0,25 1(7,8) 1 3 5 3,00 0,44 Kritickou cestu lze u jednodušších projektů určit i procházením síťového diagramu všemi způsoby (v našem případě existují čtyři). Přesné časové údaje jednotlivých nahrazujeme středními hodnotami. Pro každou možnou cestu určíme dobu trvání celého projektu, a to součtem středních hodnot jednotlivých činností ležících na dané cestě. Kromě středních hodnot sčítáme i příslušné rozptyly. Ze všech cest vybereme tu s maximální střední hodnotou celkové doby trvání, pro náš projekt je to A, C, D, E, F, H. Metoda pert - příklad kritická cesta au triij fy A(1,2) 5 8 10 7,83 0,69 C(2,3) 1 2 5 2,33 0,44 D(3,4) 2 4 6 4,00 0,44 E(4,5) 7 10 14 10,17 1,36 F(5,6) 10 12 13 11,83 0,25 H(6,8) 3 4 6 4,17 0,25 E 40,33 3,43 Metoda pert - příklad kritická cesta m,] fy A(1,2) 5 8 10 7,83 0,69 0(2,3) 1 2 5 2,33 0,44 D(3,4) 2 4 6 4,00 0,44 E(4,5) 7 10 14 10,17 1,36 F(5,6) 10 12 13 11,83 0,25 H(6,8) 3 4 6 4,17 0,25 E 40,33 3,43 Celková střední doba trvání projektu je ijl(T) = 40,33 týdnů a celkový rozptyl činí a2(7) = 3,43 týdne. Pravděpodobnostní výpočty provádíme u projektů s velkým počtem činností, a to za předpokladu, že zkoumané termíny jsou nezávislé náhodné veličiny. Zdůvodnitelný je zejména u doby trvání celého projektu. Podle centrální limitní věty platí, že rozdělení náhodné veličiny T , která je součtem velkého počtu nezávislých shodně rozdělených náhodných veličin tjj, se blíží normálnímu rozdělení A/(^(7),a2(7)) . Výpočet pravděpodobnosti dodržení termínu Tpj Tato pravděpodobnost se určí pomocí hodnot distribuční funkce (j>{u) normovaného normálního rozdělení A/(0; 1). Nejprve se musí náhodná A/(0;1). Potom veličina T standardizovat dle vztahu U = 7 ľSD °v)) P(7<7-p/) = ^(^p) Výpočet pravděpodobnosti dodržení termínu Tp! Tato pravděpodobnost se určí pomocí hodnot distribuční funkce (f>(u) normovaného normálního rozdělení A/(0; 1). Nejprve se musí náhodná veličina T standardizovat dle vztahu U = T~(j)) ~ A/(0; 1). Potom P(7<7-p/) = ^(^p) « Pokud je plánovaný konec dřívější než střední hodnota doby trvání projektu ( 7p/ < /i(T)), argument funkce (u) je záporný. Hodnotu distribuční funkce normovaného normálního rozdělení počítáme podle vztahu (u) = 1 - (/){-u). Pravděpodobnost dodržení tohoto termínu pak bude menší než 50%. • Pokud je plánovaný konec shodný se střední hodnotou doby trvání projektu (7p/ = /i(T)), pravděpodobnost dodržení termínu bude 50%. • Pokud je plánovaný konec pozdější než střední hodnota doby trvání projektu (7p/ > /i(T)), pravděpodobnost dodržení termínu je větší než 50%. Určení doby trvání projektu Tr při zvolené míře rizika r Tuto dobu lze stanovit rovněž s využitím tabulek funkce (u). Je-li velikost rizika r v procentech, v tabulce kvantilů standardizovaného normálního rozdělení najdeme hodnotu t/i_r/ioo- Odpovídající dobu trvání projektu Tr zjistíme ze vztahu L#i_r/ioo = Trä{rPj ze kterého vyjádříme dobu trvání projektu Tr = //(T) + a(T) • L#i_r/ioo Určení doby trvání projektu Tr při zvolené míře rizika r Tuto dobu lze stanovit rovněž s využitím tabulek funkce (u). Je-li velikost rizika r v procentech, v tabulce kvantilů standardizovaného normálního rozdělení najdeme hodnotu t/i_r/ioo- Odpovídající dobu trvání projektu Tr projektu 7) = v(T) + a(T) • u^_r/^o Příklad : Pro výše řešený příklad projektu s celkovou střední dobou trvání 40,33 týdnů a rozptylem 3,43 určete O s jakou pravděpodobností bude ukončen nejpozději v čase 42 týdnů! Řešení: P{T < 42) = ( 42^3 = 0(0,90). V tabulce distribuční funkce standardizovaného normálního rozdělení najdeme pravděpodobnost. Projekt bude ukončen nejpozději ve 42 týdnu s pravděpodobností 81,59%. O dobu realizace projektu, která bude dodržena s rizikem 20%. Řešení: 20-tiprocentnímu riziku odpovídá 80-tiprocentní pravděpodobnost splnění termínu. Pro tuto pravděpodobnost zjistíme kvantil i/0>8 = 0,84. Po dosazení zjistíme požadovanou dobu Tr = 40,33 + V3,43 • 0,84. S 80ti procentní pravděpodobností můžeme očekávat, že proiekt skončí dříve než v čase 41,88 týdne. zjistíme ze vztahu L#i_r/ioo Tr-V(T) a(T) ze kterého vyjádříme dobu trvání Časově - nákladová analýza projektu Metoda CPM a PERT přihlíží pouze k časovým vztahům v projektech, přičemž optimální časový rozvrh činností nemusí být vždy hospodárný. Základním kritériem efektivnosti projektu jsou zpravidla náklady spojené s jeho realizací a ty úzce souvisejí s dobou trvání: 9 Náklady nepřímé - souvisí s realizací projekt jako celku (režijní náklady, ztráty vzniklé pozdním dokončením projektu....). Jsou rostoucí (lineární) funkcí doby trvání projektu • Náklady přímé - souvisejí s jednotlivými činnostmi (materiál, mzdy). • Součtem přímých nákladů na jednotlivé činnosti získáme přímé náklady na celý projekt. Přímé náklady na realizaci činnosti (/,/) v čase fy označíme c,y. Budeme předpokládat opět lineární závislost na době trvání (v tomto případě funkce nerostoucí - se zkrácením doby trvání rostou náklady). Tvar nákladové funkce odvodíme podle těchto pojmů: Djj... normální doba trvání činnosti (/,/), které odpovídají minimální náklady Cij(D) djj... krajní doba trvání činnosti (/,/) při maximálně intenzivním režimu s vysokými náklady c,y(c/). Časově - nákladová analýza projektu: přímé náklady C;; Přímka KN aproximuje graf závislosti přímých nákladů na době trvání příslušné činnosti. Rovnice této přímky je: c,y = b,j - a^j, kde bij = aijdij + Cij(d), aij = C/y(^._QL ^ Minimalizace přímých nákladů při dané době trvání projektu Pro projekt lze úhrnné přímé náklady vyjádřit takto: Op = J2(ij)ep(bij - aijtjj) . Koeficient a,y představuje nákladový spád mezi dvojicí bodů odpovídajících normálnímu a maximálně intenzivnímu režimu (v opačném směru jde o nákladový růst). Minimalizace přímých nákladů při dané době trvání projektu Pro projekt lze úhrnné přímé náklady vyjádřit takto: Op = J2(ij)ep(bij - aijtjj) . Koeficient a,y představuje nákladový spád mezi dvojicí bodů odpovídajících normálnímu a maximálně intenzivnímu režimu (v opačném směru jde o nákladový růst). Pro přímé náklady cP spojené s realizací celého projektu v čase T platí: E(/j)epCff(0) (yyi,..., yy/c), ale vektory se nerovnají. • Varianta Xy dominuje variantu X, a Varianty X,, Xy jsou vzájemně nedominované. Řekneme, že varianta X, je nedominovaná, jestliže neexistuje žádná jiná varianta, která ji dominuje. Zřejmě kompromisní varianta musí být vždy nedominovaná. Dále definujeme pojmy bazálni a ideální varianta, což je označení pro zpravidla reálně neexistující variantu nabývající nejhorších (resp. nejlepších) hodnot podle všech kritérií. VHV - vztahy mezi variantami, příklad V úloze o výběru tabletu stanovte nedominované varianty a vyberte bazálni a ideální varinatu. cena RAM výdrž baterie hmotnost OS, procesor, display Tablet 1 12000 1000 9,5 680 1 Tablet 2 12000 1000 10 600 3 Tablet 3 5000 512 7 380 4 Tablet 4 20000 4000 3 1160 2 Tablet 5 5000 256 4 400 5 V tabulce jsou vyznačeny nejlepší hodnoty dosažené u jednotlivých kritérií. VHV - vztahy mezi variantami, příklad V úloze o výběru tabletu stanovte nedominované varianty a vyberte bazálni a ideální varinatu. cena RAM výdrž baterie hmotnost OS, procesor, display Tablet 1 12000 1000 9,5 680 1 Tablet 2 12000 1000 10 600 3 Tablet 3 5000 512 7 380 4 Tablet 4 20000 4000 3 1160 2 Tablet 5 5000 256 4 400 5 V tabulce jsou vyznačeny nejlepší hodnoty dosažené u jednotlivých kritérií. Ideální varianta by tedy hypoteticky byla (5000 Kč, 4000 MB, 10 hod., 380g a 1. pořadí dle experta). Obdobně bazálni varianta (20000 Kč, 256 MB, 3 hod., 1160g a 5. pořadí dle experta). Nedominované jsou téměř všechny varianty, dominovaný je pouze Tablet 5 (ve všem horší než Tablet 3) VHV - vyjádření preference kritérií U většiny metod VHV je nutné, aby rozhodovatel vyjádřil své preference ve vztahu k jednotlivým kritériím. Tyto preference mohou být stanoveny pomocí • aspiračních úrovní kritérií, tedy stanovením minimálních hodnot, kterých má být dosaženo u jednotlivých maximalizačních kritérií (resp. maximálních hodnot pro minimalizační kritéria). Preference kritérií je tak vyjádřena nepřímo, důležitějším kritériím nastavíme přísnější limity. • pořadí kritérií (ordinální informace o kritériích) • vah kritérií: v = ,..., vk), ]T v, = 1, v, > 0, / = 1,..., k. (kardinální informace o kritériích) 9 míry substituce mezi kriteriálními hodnotami, na níž jsou založeny kompenzační metody VHV VHV - metody odhadu vah kritérií Získání vah od rozhodovatele přímo v numerické podobě bývá problematické, proto je vhodné usnadnit mu situaci pomocí nějakého jednoduchého nástroje. • Metoda pořadí vyžaduje pouze seřazení kritérií od nejméně důležitého po nejdůležitější. Přiřazené pořadí p, tedy bude nabývat hodnot 1,..., k a odhad vah lze získat jejich normalizací: v, = =^—. • Bodovací metoda spočívá v tom, že rozhodovatel přiřadí každému kritériu body pi z nějaké předem zvolené škály. Přepočet bodů na váhy je stejný jako výše. • Fullerův trojúhelník je založen na párovém porovnávání kritérií. Jednotlivým kritériím se přiřadí tolik bodů p,, kolikrát je zvolen jako důležitější nebo stejně důležitý mezi všemi dvojicemi různých kritérií, (takových dvojic je k(k - 1 )/2 a lze je uspořádat do trojúhelníkového schématu, odtud název metody) • Poněkud propracovanější přístup představuje Saatyho metoda, při níž se projdou všechny dvojice kritérií a každé se přiřadí číslo s,y « ^ které odhaduje poměr mezi důležitostí jednotlivých kritérií. Matice S = (S/y)/,y=i,...,A- se nazývá Saatyho matice. VHV - Saatyho metoda odhadu vah kritérií Saatyho metoda umožňuje formulovat preference verbálně a pak vyjádřit numericky pomocí stupnice: • kritéria Y, a Yy jsou stejně důležitá, pak s,y = Sp = 1, • kritérium Y, je slabě důležitější než Yj, pak s,y = 3, Sp = 1 /3, a kritérium Yj je silně důležitější než Yj, pak s,y = 5, Sp = 1 /5, o kritérium V) je velmi silně důležitější než Yj, pak s,y = 7, sy/ = 1 /7, • kritérium Yj je absolutně důležitější než Yj, pak s,y = 9, Sp = 1 /9. Jestliže uvedená stupnice nepostačuje, lze použít i mezistupně 2,4,6,8. Pokud je Saatyho matice tzv. konzistentní, stačí váhy spočítat jako řešení soustavy rovnic ^ = s;y, /,/ = 1,..., /c, J2 v>: = 1 • Pro nekonzistentní matici soustava nemá řešení a váhy se pak odhadují například normalizací geometrických průměrů řádků matice S: p, VHV - metody odhadu vah kritérií, příklad Pro úlohu o tabletu ukažme různé způsoby stanovení vah kritérií. Nejjednodušší metodou pořadí by uživatel při preferenci „1 .cena, 2.RAM; 3.názor experta, 4.výdrž baterie, 5.hmotnost" dospěl k váhám íi 1 1 1 " V15' 15' 15' 15' 15J- V VHV - metody odhadu vah kritérií, příklad Pro úlohu o tabletu ukažme různé způsoby stanovení vah kritérií. Nejjednodušší metodou pořadí by uživatel při preferenci „1 .cena, 2.RAM, 3.názor experta, 4.výdrž baterie, 5.hmotnost" dospěl k váhám v V 15' 15' 15' 15' 15'" Jiným způsobem je označení preference kritéria z daného řádku oproti kritériím v jednotlivých sloupcích vyznačením hodnoty 1 ve Fullerově trojúhelníku: cena RAM baterie hmotnost expert skóre váhy cena 1 1 1 1 RAM 1 1 1 baterie 1 0 hmotnost 0 expert Pro výpočet skóre doplníme spodek tabulky symetricky opačnými hodnotami VHV - metody odhadu vah kritérií, příklad Pro úlohu o tabletu ukažme různé způsoby stanovení vah kritérií. Nejjednodušší metodou pořadí by uživatel při preferenci „1 .cena, 2.RAM, 3.názor experta, 4.výdrž baterie, 5.hmotnost" dospěl k váhám v V 15' 15' 15' 15' 15'" Jiným způsobem je označení preference kritéria z daného řádku oproti kritériím v jednotlivých sloupcích vyznačením hodnoty 1 ve Fullerově trojúhelníku: cena RAM baterie hmotnost expert skóre váhy cena 1 1 1 1 RAM 0 1 1 1 baterie 0 0 1 0 hmotnost 0 0 0 0 expert 0 0 1 1 Nyní vypočteme skóre jako součet počtu preferencí v daných řádcích. VHV - metody odhadu vah kritérií, příklad Pro úlohu o tabletu ukažme různé způsoby stanovení vah kritérií. Nejjednodušší metodou pořadí by uživatel při preferenci „1 .cena, 2.RAM, 3.názor experta, 4.výdrž baterie, 5.hmotnost" dospěl k váhám v V 15' 15' 15' 15' 15'" Jiným způsobem je označení preference kritéria z daného řádku oproti kritériím v jednotlivých sloupcích vyznačením hodnoty 1 ve Fullerově trojúhelníku: cena RAM baterie hmotnost expert skóre váhy cena 1 1 1 1 4 RAM 0 1 1 1 3 baterie 0 0 1 0 1 hmotnost 0 0 0 0 0 expert 0 0 1 1 2 Nyní vypočteme váhy vydělením bodových zisků jejich celkovým součtem, tj. 10. VHV - metody odhadu vah kritérií, příklad Pro úlohu o tabletu ukažme různé způsoby stanovení vah kritérií. Nejjednodušší metodou pořadí by uživatel při preferenci „1 .cena, 2.RAM, 3.názor experta, 4.výdrž baterie, 5.hmotnost" dospěl k váhám v V 15' 15' 15' 15' 15'" Jiným způsobem je označení preference kritéria z daného řádku oproti kritériím v jednotlivých sloupcích vyznačením hodnoty 1 ve Fullerově trojúhelníku: cena RAM baterie hmotnost expert skóre váhy cena 1 1 1 1 4 0,4 RAM 0 1 1 1 3 0,3 baterie 0 0 1 0 1 0,1 hmotnost 0 0 0 0 0 0 expert 0 0 1 1 2 0,2 Bohužel váha nejméně důležitého kritéria vyjde při konzistenci v preferencích nulová. Postup je možné modifikovat přidáním jedniček na diagonále (jako by každé kritérium bylo ve srovnání se sebou samým důležitější). VHV - metody odhadu vah kritérií, příklad Pro úlohu o tabletu ukažme různé způsoby stanovení vah kritérií. Nejjednodušší metodou pořadí by uživatel při preferenci „1 .cena, 2.RAM, 3.názor experta, 4.výdrž baterie, 5.hmotnost" dospěl k váhám v V 15' 15' 15' 15' 15'" Jiným způsobem je označení preference kritéria z daného řádku oproti kritériím v jednotlivých sloupcích vyznačením hodnoty 1 ve Fullerově trojúhelníku: cena RAM baterie hmotnost expert skóre váhy cena 1 1 1 1 1 5 b 15 RAM 0 1 1 1 1 4 4 15 baterie 0 0 1 1 0 2 2 15 hmotnost 0 0 0 1 0 1 1 15 expert 0 0 1 1 1 3 3 15 Dostaneme stejné váhy jako u metody pořadí. VHV - metody odhadu vah kritérií, příklad Ukažme ještě pro stejné zadání jedno z možných uživatelova vyplnění Saatyho matice. cena RAM baterie hmotnost expert bi Vi cena 1 4 2 9 2 RAM 1/4 1 1/2 3 1/2 baterie 1/2 2 1 7 1 hmotnost 1/9 1/3 1/7 1 1/7 expert 1/2 2 1 7 1 Matice je dostatečně konzistentní, (lze vypočítat index konzistence 0,005) Doplníme geometrické průměry řádků b\ a z nich odvozené váhy v,. VHV - metody odhadu vah kritérií, příklad Ukažme ještě pro stejné zadání jedno z možných uživatelova vyplnění Saatyho matice. cena RAM baterie hmotnost expert bi v, cena 1 4 2 9 2 2,7 0,41 RAM 1/4 1 1/2 3 1/2 0,72 0,11 baterie 1/2 2 1 7 1 1,48 0,22 hmotnost 1/9 1/3 1/7 1 1/7 0,24 0,04 expert 1/2 2 1 7 1 1,48 0,22 U Saatyho metody vycházejí váhy většinou více diferencované než u ostatních metod. VHV - klasifikace metod Existuje celá řada přístupů k řešení úloh VHV, my zmíníme pouze ty jednodušší z nich. Metody lze klasifikovat podle typu informace o preferencích mezi jednotlivými kritérii a variantami, viz následující stručný přehled. Informace o preferencích mezi variantami aspirační úrovně ordinální informace kardinální informace funkce užitku vzdálenost variant od bazálni resp. ideální preferenční relace mezní míra substituce Metody PRIAM Lexikografická ORESTE Permutační WSA TOPSIS PROMÉTHEE ELECTRE AHP Kompenzační VHV - metody nevyžadující váhy kritérií Pokud nejsou známy preference mezi kritérii nebo jsou kritéria rovnocenně důležitá, můžeme pro výběr kompromisní varianty použít pouhá pořadí hodnot u jednotlivých kritérií (v případě shodných hodnot se přiřadí průměrné pořadí). Vybere se ta varianta, která bude mít nejnižší součet poředí přes všechna kritéria. V příkladu s tablety pracujeme s pořadími rovnou v posledním sloupci (expertní názor). V ostatních sloupcích nahradíme jednotlivé hodnoty pořadím v rámci sloupce a doplníme jejich řádkové součty: cena RAM výdrž baterie hmotnost OS, procesor display součet Tablet 1 3 2,5 2 4 1 12,5 Tablet 2 3 2,5 1 3 3 12,5 Tablet 3 1 4 3 1 4 13 Tablet 4 5 1 5 5 2 18 Tablet 5 1 5 4 2 5 17 Podle uvedeného postupu by se jako nejvýhodnější jevily tablety 1 a 2. VHV - metody nevyžadující váhy kritérií Další metodou nevyžadující apriori váhy kritérií je metoda PRIAM , která pracuje s aspiračními úrovněmi kritérií. Varianty jsou pro konkrétní nastavení aspiračních úrovní rozděleny na akceptovatelné a neakceptovatelné. Může nastat situace, kdy nevyhovuje žádná varianta, pak je nutné úrovně některých kritérií uvolnit. Naopak, vyhovuje-li mnoho variant, je možné jejich počet zredukovat zpřísněním některých úrovní. Metoda PRIAM je interaktivním přístupem postupného přizpůsobování aspiračních mezí k dosažení určitého počtu akceptovatelných variant (v krajním případě jediné varianty, kterou pak zvolíme jako kompromisní). VHV - metody nevyžadující váhy kritérií Další metodou nevyžadující apriori váhy kritérií je metoda PRIAM , která pracuje s aspiračními úrovněmi kritérií. Varianty jsou pro konkrétní nastavení aspiračních úrovní rozděleny na akceptovatelné a neakceptovatelné. Může nastat situace, kdy nevyhovuje žádná varianta, pak je nutné úrovně některých kritérií uvolnit. Naopak, vyhovuje-li mnoho variant, je možné jejich počet zredukovat zpřísněním některých úrovní. Metoda PRIAM je interaktivním přístupem postupného přizpůsobování aspiračních mezí k dosažení určitého počtu akceptovatelných variant (v krajním případě jediné varianty, kterou pak zvolíme jako kompromisní). cena RAM výdrž baterie hmotnost OS, procesor, display vyhovuje Tablet 1 12000 1000 9,5 680 1 ANO Tablet 2 12000 1000 10 600 3 ANO Tablet 3 5000 512 7 380 4 ANO Tablet 4 20000 4000 3 1160 2 ANO Tablet 5 5000 256 4 400 5 ANO Pro úlohu s tablety můžeme nastavit výchozí aspirační úrovně na hodnoty bazálni varianty z° = (20000,256,3,1160,5), pak vyhovují všechny tablety. VHV - metody nevyžadující váhy kritérií Další metodou nevyžadující apriori váhy kritérií je metoda PRIAM , která pracuje s aspiračními úrovněmi kritérií. Varianty jsou pro konkrétní nastavení aspiračních úrovní rozděleny na akceptovatelné a neakceptovatelné. Může nastat situace, kdy nevyhovuje žádná varianta, pak je nutné úrovně některých kritérií uvolnit. Naopak, vyhovuje-li mnoho variant, je možné jejich počet zredukovat zpřísněním některých úrovní. Metoda PRIAM je interaktivním přístupem postupného přizpůsobování aspiračních mezí k dosažení určitého počtu akceptovatelných variant (v krajním případě jediné varianty, kterou pak zvolíme jako kompromisní). cena RAM výdrž baterie hmotnost OS, procesor, display vyhovuje Tablet 1 12000 1000 9,5 680 1 ANO Tablet 2 12000 1000 10 600 3 ANO Tablet 3 5000 512 7 380 4 ANO Tablet 4 20000 4000 3 1160 2 NE Tablet 5 5000 256 4 400 5 ANO Zpřísněním požadavku na cenu max. 12000Kč dostaneme z1 = (12000,256,3,1160,5), takže tablet 4 již nevyhovuje. VHV - metody nevyžadující váhy kritérií Další metodou nevyžadující apriori váhy kritérií je metoda PRIAM , která pracuje s aspiračními úrovněmi kritérií. Varianty jsou pro konkrétní nastavení aspiračních úrovní rozděleny na akceptovatelné a neakceptovatelné. Může nastat situace, kdy nevyhovuje žádná varianta, pak je nutné úrovně některých kritérií uvolnit. Naopak, vyhovuje-li mnoho variant, je možné jejich počet zredukovat zpřísněním některých úrovní. Metoda PRIAM je interaktivním přístupem postupného přizpůsobování aspiračních mezí k dosažení určitého počtu akceptovatelných variant (v krajním případě jediné varianty, kterou pak zvolíme jako kompromisní). cena RAM výdrž baterie hmotnost OS, procesor, display vyhovuje Tablet 1 12000 1000 9,5 680 1 ANO Tablet 2 12000 1000 10 600 3 ANO Tablet 3 5000 512 7 380 4 NE Tablet 4 20000 4000 3 1160 2 NE Tablet 5 5000 256 4 400 5 NE Zpřísněním požadavku na baterii a expertní názor, z2 = (12000,256,7,1160,3), vyřadíme dále tablety 3 a 5. VHV - metody nevyžadující váhy kritérií Další metodou nevyžadující apriori váhy kritérií je metoda PRIAM , která pracuje s aspiračními úrovněmi kritérií. Varianty jsou pro konkrétní nastavení aspiračních úrovní rozděleny na akceptovatelné a neakceptovatelné. Může nastat situace, kdy nevyhovuje žádná varianta, pak je nutné úrovně některých kritérií uvolnit. Naopak, vyhovuje-li mnoho variant, je možné jejich počet zredukovat zpřísněním některých úrovní. Metoda PRIAM je interaktivním přístupem postupného přizpůsobování aspiračních mezí k dosažení určitého počtu akceptovatelných variant (v krajním případě jediné varianty, kterou pak zvolíme jako kompromisní). cena RAM výdrž baterie hmotnost OS, procesor, display vyhovuje Tablet 1 12000 1000 9,5 680 1 NE Tablet 2 12000 1000 10 600 3 ANO Tablet 3 5000 512 7 380 4 NE Tablet 4 20000 4000 3 1160 2 NE Tablet 5 5000 256 4 400 5 NE Budeme-li požadovat ještě nižší hmotnost, z3 = (12000,256,7,600,3), zůstane přijatelný pouze tablet 2. VHV - metody vyžadující pořadí kritérií Nejpoužívanější a současně zřejmě nejjednodušší metodou z třídy postupů vyžadujících pouze ordinální informaci o kritériích je metoda lexikografická . Řídíme se dle nejdůležitějšího kritéria a je-li nejlépe hodnocená varianta dle tohoto kritéria jediná, je zvolena jako kompromisní. V případě, že by nejlepší hodnoty dosáhlo více variant, vybere se ta z nich, která má lepší hodnocení dle druhého nejdůležitějšího kritéria, atd. VHV - metody vyžadující pořadí kritérií Nejpoužívanější a současně zřejmě nejjednodušší metodou z třídy postupů vyžadujících pouze ordinální informaci o kritériích je metoda lexikografická . Řídíme se dle nejdůležitějšího kritéria a je-li nejlépe hodnocená varianta dle tohoto kritéria jediná, je zvolena jako kompromisní. V případě, že by nejlepší hodnoty dosáhlo více variant, vybere se ta z nich, která má lepší hodnocení dle druhého nejdůležitějšího kritéria, atd. Použitím lexikografické metody na výběr tabletu, je-li prioritním kritériem cena a druhým kritériem výdrž baterie, se rozhodneme pro tablet 3, protože je spolu s tabletem 5 nejlevnější a jeho baterie vydží 7 hodin oproti 4 hodinám tabletu 5: cena RAM výdrž baterie hmotnost OS, procesor, display vyhovuje Tablet 1 12000 1000 9,5 680 1 NE Tablet 2 12000 1000 10 600 3 NE Tablet 3 5000 512 7 380 4 ANO Tablet 4 20000 4000 3 1160 2 NE Tablet 5 5000 256 4 400 5 NE VHV - metody vyžadující kardinální informaci o kritériích Existují tři základní kategorie přístupů k hodnocení variant využívající vah kritérií, a to: • maximalizace užitku 9 minimalizace vzdálenosti od ideální varianty • preferenční relace Z každé skupiny metod uvedeme aspoň jednoho zástupce. První z možností je vyčíslení užitku jednotlivých variant na škále od 0 do 1. Pro vyjádření celkového užitku varianty je třeba nejprve vyjádřit dílčí funkce užitku Uj dle jednotlivých kritérií j = 1,..., k. Kardinální hodnoty y\j jsou tedy nahrazeny pomocí hodnot u,j = u/(yyy), j = 1,..., k. Dílčí funkce užitku jsou nastaveny tak, aby ideální varianta měla dílčí užitek dle všech kritérií roven 1 a bazální varianta nulový. Rozlišujeme tři typy funkcí užitku: O lineární (růst užitku je proporcionální růstu hodnot kritéria) O progresivní (tempo růstu užitku se při zlepšování hodnot zvyšuje) O degresivní (tempo růstu užitku se při zlepšování hodnot snižuje) VHV - metody založené na funkci užitku Metoda váženého součtu (WSA) je založena na konstrukci lineární funkce užitku se stupnicí od 0 do 1. Jestliže pro Y/ označíme Dy nejnižší a Hj nejvyšší kriteriální hodnotu, pak lze při maximalizaci nahradit prvky y, standardizovanými hodnotami y\\ - Hj-Dj- Potom bude mít tedy nejhorší varianta Dy užitek 0 a nejlepší Hj užitek 1. Pro minimalizační kritéria použijeme vztah y\\ - Hj-Dj- Tentokrát bude nejhorší varianta Hj a nejlepší Dy a bude jim opět odpovídat užitek 0, resp. 1. Celkový užitek varianty X, pak spočteme jako vážený součet dílčích užitků u(Xj) = Ylkj=\ vjYij a varianty pak seřadíme podle klesajících hodnot užitku. VHV - metoda WSA, příklad Použijme metodu WSA na problém výběru tabletu, přičemž převezmeme váhy stanovené dle Saatyho metody: cena RAM výdrž baterie hmotnost OS, procesor, display užitek Tablet 1 12000 1000 9,5 680 1 Tablet 2 12000 1000 10 600 3 Tablet 3 5000 512 7 380 4 Tablet 4 20000 4000 3 1160 2 Tablet 5 5000 256 4 400 5 váhy 0,41 0,12 0,22 0,03 0,22 Dj 5000 256 3 380 1 Hj 20000 4000 10 1160 5 typ min max max min min Přepočteme na standardizované hodnoty y\r VHV - metoda WSA, příklad Použijme metodu WSA na problém výběru tabletu, přičemž převezmeme váhy stanovené dle Saatyho metody: cena RAM výdrž baterie hmotnost OS, procesor, display užitek Tablet 1 0,53 0,2 0,93 0,62 1 Tablet 2 0,53 0,2 1 0,72 0,5 Tablet 3 1 0,07 0,57 1 0,25 Tablet 4 0 1 0 0 0,75 Tablet 5 1 0 0,14 0,97 0 váhy 0,41 0,12 0,22 0,03 0,22 Dj 5000 256 3 380 1 Hj 20000 4000 10 1160 5 typ min max max min min Pro každou variantu spočteme hodnotu agregované funkce užitku. VHV - metoda WSA, příklad Použijme metodu WSA na problém výběru tabletu, přičemž převezmeme váhy stanovené dle Saatyho metody: cena RAM výdrž baterie hmotnost OS, procesor, display užitek Tablet 1 0,53 0,2 0,93 0,62 1 0,69 Tablet 2 0,53 0,2 1 0,72 0,5 0,59 Tablet 3 1 0,07 0,57 1 0,25 0,63 Tablet 4 0 1 0 0 0,75 0,29 Tablet 5 1 0 0,14 0,97 0 0,47 váhy 0,41 0,12 0,22 0,03 0,22 Dj 5000 256 3 380 1 Hj 20000 4000 10 1160 5 typ min max max min min Největší užitek nám přinese tablet 1 (v závěsu s tabletem 3). VHV - metody založené na optimalizaci vzdálenosti od bazální a ideální varianty Metoda TOPSIS spočívá ve výběru varianty, která je co nejblíže tzv. ideální variantě a současně je co nejdál od tzv. bazální varianty. Popišme její postup pro případ, kdy že jsou všechna kritéria maximalizační. Postupuje se v následujících krocích: O Normalizace: hodnoty y,j se transformují na podle vztahu O Vypočte se vážená kriteriální matice W = (wjf) jako wy = Vjľjj. O Z prvků W se vybere ideální varianta H = (Hi,..., Hk) a bazální varianta D = (Di,..., Dk), kde Hy = maxi(wjj), Dj = minj(wij). (Pozor! Hodnoty Hy a Dj se neshodují s těmi dříve zavedenými - jsou spočteny po normalizaci a zvážení sloupců!) O Vypočtou se vzdálenosti variant od ideální a bazální varianty 2Xi yf O Nakonec se vypočte relativní vzdálenost od bazální varianty c, varianty se podle ní sestupně uspořádají. d?+d; a VHV - metoda TOPSIS, příklad Použijme metodu TOPSIS pro výběr tabletu, jako váhy opět vezmeme Saatyho odhady. cena RAM výdrž baterie hmotnost expert display Ci T1 0,442 0,234 0,584 0,432 0,135 T2 0,442 0,234 0,615 0,382 0,405 T3 0,184 0,120 0,431 0,242 0,539 T4 0,736 0,934 0,185 0,738 0,270 T5 0,184 0,06 0,246 0,254 0,674 vi 0,41 0,12 0,22 0,03 0,22 typ min max max min min Dj Přepočteme na normalizované hodnoty r». VHV - metoda TOPSIS, příklad Použijme metodu TOPSIS pro výběr tabletu, jako váhy opět vezmeme Saatyho odhady. cena RAM výdrž baterie hmotnost expert Ci T1 0,181 0,028 0,129 0,013 0,03 T2 0,181 0,028 0,135 0,011 0,089 T3 0,075 0,014 0,095 0,007 0,119 T4 0,302 0,112 0,041 0,022 0,059 T5 0,075 0,007 0,054 0,008 0,148 vi 0,41 0,12 0,22 0,03 0,22 typ min max max min min Dj 0,302 0,007 0,041 0,022 0,148 0,075 0,112 0,135 0,007 0,030 Spočteme matici Wu a určíme ideální a bazálni variantu: /-/, D. VHV - metoda TOPSIS, příklad Použijme metodu TOPSIS pro výběr tabletu, jako váhy opět vezmeme Saatyho odhady. cena RAM výdrž baterie hmotnost expert dt Ci T1 0,181 0,028 0,129 0,013 0,03 0,135 0,192 0,587 T2 0,181 0,028 0,135 0,011 0,089 0,148 0,166 0,53 T3 0,075 0,014 0,095 0,007 0,119 0,138 0,235 0,63 T4 0,302 0,112 0,041 0,022 0,059 0,248 0,138 0,357 T5 0,075 0,007 0,054 0,008 0,148 0,178 0,227 0,56 vi 0,41 0,12 0,22 0,03 0,22 typ min max max min min Dj 0,302 0,007 0,041 0,022 0,148 0,075 0,112 0,135 0,007 0,030 Vypočteme vzdálenosti od ideální a bazálni varianty d+ a d, a relativní index vzdálenosti od bazálni varianty c,. Nejlépe se jeví tablet 3. VHV - metody třídy ELECTRE Významnou skupinu metod tvoří metody založené na vyhodnocování podle preferenční relace. Z dílčích preferencí podle jednotlivých kritérií se vhodnými agregačními procedurami odvodí celková preference. Ta však bohužel nemusí být tranzitivní, takže je nutný další postup, který stanoví celkové pořadí variant nebo je alespoň rozdělí do několika indiferenčních tříd. U metody ELECTRE I jde o rozdělení na tzv. efektivní a neefektivní varianty. VHV - metody třídy ELECTRE Významnou skupinu metod tvoří metody založené na vyhodnocování podle preferenční relace. Z dílčích preferencí podle jednotlivých kritérií se vhodnými agregačními procedurami odvodí celková preference. Ta však bohužel nemusí být tranzitivní, takže je nutný další postup, který stanoví celkové pořadí variant nebo je alespoň rozdělí do několika indiferenčních tříd. U metody ELECTRE I jde o rozdělení na tzv. efektivní a neefektivní varianty. Předpokládejme, že všechna kritéria jsou maximalizační. Pro každou dvojici variant X,, Xy určíme množiny Cg = {h e {"l,... ,k};yih> yJh} indexů kritérií, podle nichž je varianta X, alespoň tak dobrá jako Xy a Dij = {he{\,...,k}\yih c* a dn < d*. VHV - metody třídy ELECTRE Pro stanovené váhy kritérií ,..., vk pak vypočteme pro každou dvojici variant stupeň preference vztahem °ij — Y^heCij Vh Platí Cjj e (0,1). V dalším kroku se pro každou dvojici variant vypočte stupeň dispreference vztaherr^^^^^^^^ _ maxneD..\yin-yjh\ 'j ~ maxh=^..^k\yih-yjh\ ' v případě Djj = 0 se definuje ď,j = 0. Opět platí ď,j g (0,1). Pomocí vhodně stanovených konstant prahu preference c* a prahu dispreference ď se rozhodne o celkové preferenci mezi X, a Xy: Xj preferujeme před Xy, platí-li c,j > c* a ď,j < ď. Za efektivní považujeme ty varianty, které jsou preferovány před alespoň jednou variantou, ale současně není žádná varianta preferována před nimi. Výsledek závisí na volbě prahů, postupnými změnami jejich hodnot můžeme dostat pouze jedinou efektivní variantu a tu pak brát jako "nejlepší". VHV - metoda ELECTRE I - příklad Pro naši úlohu o tabletech určeme množiny C n T1 T2 T3 T4 T5 T1 {1,2,5} {2,3,5} {1,3,4,5} {2,3,5} T2 {1,2,3,4} {2,3,5} {1,3,4} {2,3,5} T3 {1,4} {1,4} {1,4} {1,2,3,4,5} T4 {2} {2,5} {2,3,5} {2,5} T5 {1,4} {1,4} {1} {1,3,4} VHV - metoda ELECTRE I - příklad Pro naši úlohu o tabletech určeme množiny C n T1 T2 T3 T4 T5 T1 {1,2,5} {2,3,5} {1,3,4,5} {2,3,5} T2 {1,2,3,4} {2,3,5} {1,3,4} {2,3,5} T3 {1,4} {1,4} {1,4} {1,2,3,4,5} T4 {2} {2,5} {2,3,5} {2,5} T5 {1,4} {1,4} {1} {1,3,4} Pro Saatyho váhy (0,41; 0,12; 0,22; 0,03; 0,22) dopočteme tabulku stupňů preference: Cij T1 T2 T3 T4 T5 T1 0,75 0,56 0,88 0,56 T2 0,78 0,56 0,66 0,56 T3 0,44 0,44 0,44 1 T4 0,12 0,34 0,56 0,34 T5 0,44 0,44 0,41 0,66 VHV - metoda ELECTRE I - příklad Určíme také množiny D,y Dii T1 T2 T3 T4 T5 T1 {3,4} {1,4} {2} {1,4} T2 {5} {1,4} {2,5} {1,4} T3 {2,3,5} {2,3,5} {2,3,5} {} T4 {1,3,4,5} {1,3,4} {1,4} {1,3,4} T5 {2,3,5} {2,3,5} {2,3,4,5} {2,5} VHV - metoda ELECTRE I - příklad Určíme také množiny D,y Dii T1 T2 T3 T4 T5 T1 {3,4} {1,4} {2} {1,4} T2 {5} {1,4} {2,5} {1,4} T3 {2,3,5} {2,3,5} {2,3,5} {} T4 {1,3,4,5} {1,3,4} {1,4} {1,3,4} T5 {2,3,5} {2,3,5} {2,3,4,5} {2,5} Dopočteme tabulku stupňů dispreference, vyjdeme z standardizovaných hodnot y'.: dij T1 T2 T3 T4 T5 T1 0,1/0,5 0,47/0,75 0,8/0,93 0,47/1 T2 0,5/0,5 0,47/0,47 0,8/1 0,47/0,86 T3 0,75/0,75 0,28/0,47 0,93/1 0/0,43 T4 0,93/0,93 1/1 1/1 1/1 T5 1/1 0,86/0,86 0,43/0,43 1/1 VHV - metoda ELECTRE I - příklad Stanovíme práh preference c* = 0,5 a vyznačíme c» Cij T1 T2 T3 T4 T5 T1 0,75 0,56 0,88 0,56 T2 0,78 0,56 0,66 0,56 T3 0,44 0,44 0,44 1 T4 0,12 0,34 0,56 0,34 T5 0,44 0,44 0,41 0,66 VHV - metoda ELECTRE I - příklad Stanovíme práh preference c* = 0,5 a vyznačíme c» > c*. Cij T1 T2 T3 T4 T5 T1 0,75 0,56 0,88 0,56 T2 0,78 0,56 0,66 0,56 T3 0,44 0,44 0,44 1 T4 0,12 0,34 0,56 0,34 T5 0,44 0,44 0,41 0,66 Stanovíme práh dispreference ď = 0,5 a vyznačíme d n < d dij T1 T2 T3 T4 T5 T1 0,2 0,62 0,86 0,47 T2 1 1 0,8 0,55 T3 1 0,6 0,93 0 T4 1 1 1 1 T5 1 1 1 1 □ S1 VHV - metoda ELECTRE I - příklad Relaci preference můžeme znázornit v matici nebo v grafu (zahrneme pouze ty hrany, kde jsou splněny obě podmínky pro preferenci: dosažení prahu preference c* a nepřekročení prahu dispreference ď): Získali jsme dvě efektivní varianty 1 a 3 (uzly, ze kterých vycházejí šipky, ale žádné nevstupují). VHV - metody třídy PROMÉTHEE Patří mezi nejčastěji používané postupy VHV. Základem je párové porovnávání variant postupně podle všech kritérií. Pro varianty Xh Xj definujeme intenzitu preference podle kritéria Yh\ Ph{XhXj) jako funkci nabývající hodnoty z intervalu (0,1), takovou, že Ph(XhXj) = 0 není-li Xj preferováno před Xj a Ph(XhXj) = 1 v případě absolutní preference. □ s VHV - metody třídy PROMÉTHEE Patří mezi nejčastěji používané postupy VHV. Základem je párové porovnávání variant postupně podle všech kritérií. Pro varianty X,, Xy definujeme intenzitu preference podle kritéria Yh\ jako funkci nabývající hodnoty z intervalu (0,1), takovou, že Ph(XhXj) = 0 není-li X, preferováno před Xy a Ph(XhXj) = 1 v případě absolutní preference. Intenzita preference závisí na diferenci dh = (yih - yy^), transformace Q převádějící diferenci dh na intenzitu preference Ph(XhXj) se nazývá zobecněné kritérium a může mít různý průběh, například viz obrázek: Ph{XhXj) VHV - metody třídy PROMÉTHEE Jsou-li stanoveny váhy kritérií, můžeme spočítat globální preferenční indexy podle vztahu _ P{XhXj) = Y:UvhPh{XhXj). Pro získání výsledné relace vypočteme pro každou variantu pozitivní (výstupní) a negativní (vstupní) tok jako F+(Xi) P(XhXj)/(n- 1), F-(Xi) P(Xj, X,)/(n - 1), VHV - metody třídy PROMÉTHEE Jsou-li stanoveny váhy kritérií, můžeme spočítat globální preferenční indexy podle vztahu_ P{Xi,Xj) = i:UvhPh{Xj,Xj). Pro získání výsledné relace vypočteme pro každou variantu pozitivní (výstupní) a negativní (vstupní) tok jako = 5£i P(XhXj)/(n- 1), F-(Xi) = 5£i P(Xj, X,)/(n - 1), Jednotlivé metody se v postupu dále liší, PROMÉTHEE II například uspořádává varianty podle tzv. čistého toku F(Xí) = F+(Xí)-F-(Xí). VHV - metoda PROMÉTHEE, příklad Pro úlohu s tablety vyjdeme při výpočtu diferencí dh ze standardizovaných hodnot y'.\ cena RAM výdrž hmotnost OS, procesor, baterie display Tablet 1 0,53 0,2 0,93 0,62 1 Tablet 2 0,53 0,2 1 0,72 0,5 Tablet 3 1 0,07 0,57 1 0,25 Tablet 4 0 1 0 0 0,75 Tablet 5 1 0 0,14 0,97 0 VHV - metoda PROMÉTHEE, příklad Pro úlohu s tablety vyjdeme při výpočtu diferencí dh ze standardizovaných hodnot y'.\ cena RAM výdrž hmotnost OS, procesor, baterie display Tablet 1 0,53 0,2 0,93 0,62 1 Tablet 2 0,53 0,2 1 0,72 0,5 Tablet 3 1 0,07 0,57 1 0,25 Tablet 4 0 1 0 0 0,75 Tablet 5 1 0 0,14 0,97 0 Nejprve spočteme všechny diference a pak s využitím zobecněného kritéria Q^ s prahem d* = 0,5 přepočítáme na intenzity preference Ph(XhXj). Výpočet ukážeme jen pro d^. VHV - metoda PROMÉTHEE, příklad di(xhXj) T1 T2 T3 T4 T5 T1 0 0 -0,47 0,53 -0,47 T2 0 0 -0,47 0,53 -0,47 T3 0,47 0,47 0 1 0 T4 -0,53 -0,53 -1 0 1 T5 0,47 0,47 0 -1 0 VHV - metoda PROMÉTHEE, příklad di(xhXj) T1 T2 T3 T4 T5 T1 0 0 -0,47 0,53 -0,47 T2 0 0 -0,47 0,53 -0,47 T3 0,47 0,47 0 1 0 T4 -0,53 -0,53 -1 0 1 T5 0,47 0,47 0 -1 0 Intenzity preference jsou: T1 T2 T3 T4 T5 T1 0 0 0 1 0 T2 0 0 0 1 0 T3 0 0 0 1 0 T4 0 0 0 0 1 T5 0 0 0 0 0 VHV - metoda PROMÉTHEE, příklad Proces opakujeme pro všechna další kritéria a nakonec pomocí vah (0,41; 0,12; 0,22; 0,03; 0,22) agregujeme preferenční intenzity a získáme globální preferenční indexy: P{X,,Xj) T1 T2 T3 T4 T5 F+(Xi) T1 0 0 0,22 0,66 0,22 T2 0 0 0 0,44 0,22 T3 0 0 0 0,66 0,22 T4 0,12 0,12 0,12 0 0,75 T5 0 0 0 0 0 F-(Xi) Zprůměrováním řádků a sloupců získáme pozitivní a negativní toky. VHV - metoda PROMÉTHEE, příklad Proces opakujeme pro všechna další kritéria a nakonec pomocí vah (0,41; 0,12; 0,22; 0,03; 0,22) agregujeme preferenční intenzity a získáme globální preferenční indexy: P{X,,Xj) T1 T2 T3 T4 T5 F+{Xi) T1 0 0 0,22 0,66 0,22 0,275 T2 0 0 0 0,44 0,22 0,165 T3 0 0 0 0,66 0,22 0,22 T4 0,12 0,12 0,12 0 0,75 0,2775 T5 0 0 0 0 0 0 F-(Xi) 0,03 0,03 0,085 0,44 0,3525 Rozdílem pozitivních a negativních toků získáme celkový tok: F( 71) = 0,245, F( 72) = 0,135, F( 73) = 0,135, F(74) = -0,1625, F(75) = -0,3525 Nejlépe vychází tablet 1. VHV- metoda AHP Metoda AHP (Analytic Hierarchy Process) modeluje rozhodovací problém pomocí hierarchické struktury, která má pro nejjednodušší úlohy tři úrovně (viz obr.) Cíl hodnocení 100% Kritérium Yi Ví Kritérium Y2 Varianta Xi Wu, j=l,..,k Varianta X* W2J, j=1,..,k Kritérium Yi Varianta Xn Wnj, j=1,„,k VHV- metoda AHP Intenzitu vztahu mezi jednotlivými prvky hierarchie můžeme vyjádřit pomocí dělení počáteční jednotky (100 %) podle preferencí rozhodovatele na další úrovně. Nejprve jsou na druhé úrovni přiřazeny kritériím váhy vj, j = 1,..., k. Tyto váhy se dále rozdělují jednotlivým variantám podle toho, jak dobře či špatně jsou tyto varianty dle daného kritéria ohodnoceny, čímž pro dané kritérium dostaneme preferenční indexy i = 1,..., n. Z konstrukce modelu vyplývá, že platí vztahy y!j=\ vj: = 1 > Z)/Li wu = v^-9 y = 1,... Ac Celkový užitek, podle nějž lze varianty uspořádat, se vypočte jako u(Xi) = ^rf=1 wy. VHV- metoda AHP Intenzitu vztahu mezi jednotlivými prvky hierarchie můžeme vyjádřit pomocí dělení počáteční jednotky (100 %) podle preferencí rozhodovatele na další úrovně. Nejprve jsou na druhé úrovni přiřazeny kritériím váhy vj, j = 1,..., k. Tyto váhy se dále rozdělují jednotlivým variantám podle toho, jak dobře či špatně jsou tyto varianty dle daného kritéria ohodnoceny, čímž pro dané kritérium dostaneme preferenční indexy i = 1,..., n. Z konstrukce modelu vyplývá, že platí vztahy v} = 1, wíj = ty J: = 1 > • • •k Celkový užitek, podle nějž lze varianty uspořádat, se vypočte jako u(Xi) = X)jLi wij- Vlastní numerická realizace je založena na párovém porovnávání prvků podobně jako u Saatyho metody: Pro nejvyšší uzel se sestaví porovnávací matice (k x k) a z ní se odvodí váhy kritérií. Následně se pro každé kritérium určí preference variant párovým porovnáváním v matici (n x n). Nevýhodou metody je tedy očividně velký objem porovnávání, což je na druhou stranu vyváženo její univerzální použitelností a možností použití verbální stupnice pro vyjádření preferencí. Vícekriteriální programování Ve vícekriteriálním programování jde o optimalizaci více účelových funkcí na přípustné množině definované sadou omezení. Narozdíl od úloh VHV je množina variant v úlohách nekonečná a kritéria jsou definována v podobě funkcí. Jsou-li všechny účelové funkce i omezující podmínky lineární, mluvíme o vícekriteriálním lineárním programování (VLP). Problém VLP tedy můžeme formulovat jako úlohu "optimalizovat" Zi = C1 X, Z2 = C2 • X, . . . Zk = Ck • X, za podmínek x g X = {x g mn|Ax < b, x > 0}, kde c' je cenový vektor /-té účelové funkce. Vícekriteriální programování Ve vícekriteriálním programování jde o optimalizaci více účelových funkcí na přípustné množině definované sadou omezení. Narozdíl od úloh VHV je množina variant v úlohách nekonečná a kritéria jsou definována v podobě funkcí. Jsou-li všechny účelové funkce i omezující podmínky lineární, mluvíme o vícekriteriálním lineárním programování (VLP). Problém VLP tedy můžeme formulovat jako úlohu "optimalizovat" Zi = C1 X, Z2 = C2 • X, . . . Zk = Ck • X, za podmínek x g X = {x g mn|Ax < b, x > 0}, kde c' je cenový vektor /-té účelové funkce. Pomocí ekvivalence minimalizační úlohy pro z, s maximalizační úlohou pro -z, můžeme převést úlohu do takové podoby, aby všechna kritéria měla maximalizační charakter. Úlohu je pak možné zapsat pomocí maticového zápisu, označíme-li z = {zA, z2,..., zk) vektor účelových funkcí a C matici vytvořenou z cenových vektorů c1, c2,... ck: z = C x MAX, x g X. Model VLP - základní pojmy Podobně jako u VHV je typicky cílem nalézt v množině všech přípustných řešení pomocí vhodného postupu nějaké prakticky přijatelné, tzv. kompromisní řešení. Je dobré si uvědomit, že při hledání kompromisního řešení se opět stačí omezit na nedominovaná řešení. Řešení x g X je nedominované, pokud neexistuje žádné přípustné řešení, jehož vektor kriteriálních hodnot by byl ve všech složkách větší nebo roven vektoru C x (s vyloučením případu rovnosti vektorů). Model VLP - základní pojmy Podobně jako u VHV je typicky cílem nalézt v množině všech přípustných řešení pomocí vhodného postupu nějaké prakticky přijatelné, tzv. kompromisní řešení. Je dobré si uvědomit, že při hledání kompromisního řešení se opět stačí omezit na nedominovaná řešení. Řešení x g X je nedominované, pokud neexistuje žádné přípustné řešení, jehož vektor kriteriálních hodnot by byl ve všech složkách větší nebo roven vektoru C x (s vyloučením případu rovnosti vektorů). Většina principů pro hledání kompromisního řešení je založena na řešení dílčích úloh lineárního programování z, = c' • x ^ max, x g X standardní simplexovou metodou. Vektor xH, ve kterém všechny účelové funkce nabývají svých optimálních hodnot nazýváme ideální řešení. Analogicky bychom mohli zavést bazálni řešení xD. Optimální a bazálni řešení zpravidla neleží v přípustné množině. Model VLP - grafické znázornění Vícekriteriální lineární model je možné zobrazovat v rozhodovacím nebo kriteriálním prostoru. Nejprve schematicky znázorněme úlohu se dvěma proměnnými v rozhodovacím prostoru, kde souřadné osy budou reprezentovat hodnoty proměnných. Vyznačíme přípustnou množinu X. Model VLP - grafické znázornění Vícekriteriální lineární model je možné zobrazovat v rozhodovacím nebo kriteriálním prostoru. Nejprve schematicky znázorněme úlohu se dvěma proměnnými v rozhodovacím prostoru, kde souřadné osy budou reprezentovat hodnoty proměnných. Dílčí úloha LP pro účelovou funkci z1 = c1 • x má optimum v bodě x1. Model VLP - grafické znázornění Vícekriteriální lineární model je možné zobrazovat v rozhodovacím nebo kriteriálním prostoru. Nejprve schematicky znázorněme úlohu se dvěma proměnnými v rozhodovacím prostoru, kde souřadné osy budou reprezentovat hodnoty proměnných. Dílčí úloha LP pro účelovou funkci Z2 = c2 • x má optimum v bodě x2. Model VLP - grafické znázornění Vícekriteriální lineární model je možné zobrazovat v rozhodovacím nebo kriteriálním prostoru. Nejprve schematicky znázorněme úlohu se dvěma proměnnými v rozhodovacím prostoru, kde souřadné osy budou reprezentovat hodnoty proměnných. Průsečík přímek znázorňujících účelové funkce vedené v dílčích optimech představuje ideální řešení xH. Model VLP - grafické znázornění Vícekriteriální lineární model je možné zobrazovat v rozhodovacím nebo kriteriálním prostoru. Nejprve schematicky znázorněme úlohu se dvěma proměnnými v rozhodovacím prostoru, kde souřadné osy budou reprezentovat hodnoty proměnných. Normálové vektory k těmto přímkám (tedy vektory cenových koeficientů d) vyjadřují směr růstu účelových funkcí. Jejich nezáporné lineární kombinace definují tzv. kriteriální kužel. Model VLP - grafické znázornění Vícekriteriální lineární model je možné zobrazovat v rozhodovacím nebo kriteriálním prostoru. Nejprve schematicky znázorněme úlohu se dvěma proměnnými v rozhodovacím prostoru, kde souřadné osy budou reprezentovat hodnoty proměnných. Na hranici množiny přípustných řešení vymezené kriteriálním kuželem leží všechna nedominovaná řešení. Model VLP - grafické znázornění Při zobrazování v kriteriálním prostoru vynášíme na jednotlivé osy přímo hodnoty účelových funkcí. A 2 2 C X 2 1 C X 1 2 C X Cx 1 1 c x Modře jsou vyznačeny nedominované hodnoty Vícekriteriální programování - klasifikace metod Při řešení úloh VLP můžeme požadovat výsledky v podobě úplného popisu množiny nedominovaných řešení nebo nalezení nějaké její reprezentativní podmnožiny nebo výběru několika kompromisních variant. Chce-li uživatel vybrat jedinou kompromisní variantu, bude jeho rozhodnutí značně záviset na preferencích jednotlivých kritérií. Ty mohou být zadávány v různých fázích výpočtu: • před započetím výpočtu, a interaktivně v průběhu výpočtu, • po skončení výpočtu, a to opět prostřednictvím aspiračních úrovní kritérií, pořadím kritérií, váhami kritérií nebo mírou kompenzace kriteriálních hodnot. Vícekriteriální programování - klasifikace metod Při řešení úloh VLP můžeme požadovat výsledky v podobě úplného popisu množiny nedominovaných řešení nebo nalezení nějaké její reprezentativní podmnožiny nebo výběru několika kompromisních variant. Chce-li uživatel vybrat jedinou kompromisní variantu, bude jeho rozhodnutí značně záviset na preferencích jednotlivých kritérií. Ty mohou být zadávány v různých fázích výpočtu: • před započetím výpočtu, a interaktivně v průběhu výpočtu, • po skončení výpočtu, a to opět prostřednictvím aspiračních úrovní kritérií, pořadím kritérií, váhami kritérií nebo mírou kompenzace kriteriálních hodnot. Podle toho, kdy je informace o kritériích do modelu zapracována, dělíme výpočetní metody na: • metody s preferenční informací a priori • metody s preferenční informací a posteriori • metody s postupným zpřesňováním preferenční informace o metody kombinované Vícekriteriální programování - klasifikace metod Metody s informací apriori dělíme do několika skupin: • metoda lexikografická • metoda minimální komponenty 9 řešení jednokriteriální úlohy s agregovanými kritérii 9 záměna kritérií za omezení • "minimalizace odchylek"od ideálních hodnot (při vhodně zvolené metrice) Vícekriteriální programování - klasifikace metod Metody s informací apriori dělíme do několika skupin: a metoda lexikografická • metoda minimální komponenty • řešení jednokriteriální úlohy s agregovanými kritérii • záměna kritérií za omezení • "minimalizace odchylek"od ideálních hodnot (při vhodně zvolené metrice) Metody s informací aposteriori spočívají v popisu množiny nedominovaných řešení, ve které následně uživatel vybírá kompromisní řešení. Patří sem: a metoda parametrická (agregujeme kritéria s parametricky zadaným vektorem vah) • metoda omezení (hledá nedominovaná řešení, kde hodnoty kritérií dosahují parametricky zadaných cílových hodnot) 9 vícekriteriální simplexový algoritmus (postupně určuje nedominovaná bazická řešení) Vícekriteriální programování - klasifikace metod Metody s informací apriori dělíme do několika skupin: a metoda lexikografická • metoda minimální komponenty • řešení jednokriteriální úlohy s agregovanými kritérii • záměna kritérií za omezení • "minimalizace odchylek"od ideálních hodnot (při vhodně zvolené metrice) Metody s informací aposteriori spočívají v popisu množiny nedominovaných řešení, ve které následně uživatel vybírá kompromisní řešení. Patří sem: a metoda parametrická (agregujeme kritéria s parametricky zadaným vektorem vah) • metoda omezení (hledá nedominovaná řešení, kde hodnoty kritérií dosahují parametricky zadaných cílových hodnot) 9 vícekriteriální simplexový algoritmus (postupně určuje nedominovaná bazická řešení) Metody interaktivní probíhají iterativně a jsou založeny na komunikaci mezi uživatelem a rozhodovatelem. Vícekriteriální programování - příklad Příklad z knihy Tomáš Šubrt, Ekonomicko-matematické metody: Vedení půjčovny lyžařského a snowboardového vybavení zvažuje optimalizaci sortimentu zboží. Do kalkulací zahrnuje obvyklou cenu za půjčení vybavení i riziko, že utrpí ztrátu, protože vybavení nebude půjčeno. Denní zisk [v Kč] při půjčení jednotlivých kompletů i riziko ztráty při nepůjčení [v bodech] jsou uvedeny v tabulce. lyžařský lyžařský lyžařský snowboardový komplet komplet komplet komplet sjezdový sjezdový běžecký dospělý dětský zisk 300 200 170 250 riziko 10 15 25 5 Společnost chce investovat nejvýše 1 mil. Kč do nákupu kompletů, přičemž snowboardové komplety chce nakoupit alespoň za 200 tis. Kč. Pořizovací cena každého z kompletů je 10 tis. Kč. Navrhněte, jak má společnost investovat, aby maximalizovala zisk a minimalizovala ztrátu. VLP - příklad, matematický model Označme ^,..., x4 proměnné vyjadřující počty nakoupených kompletů. Kriteriální funkce tedy jsou Z\ = 300x^ + 200x2 + 170x3 + 250x4 -> max z2 = 10xi + 15x2 + 25x3 + 5x4 min Při pořizovací ceně kompletů 10 000 Kč budou mít omezení následující podobu: celkem lze koupit maximálně 100 ks kompletů, z toho nejméně 20 ks musí být snowboardové komplety: *1 + x2 + x3 + x4 < 100 x4 > 20 Dále musíme přidat obligátní podmínky : xl5x2,x3,x4 > 0 Správně bychom měli přidat ještě podmínky celočíselnosti, ale nebudeme pro zjednodušení zatím uvažovat. Řešením zjednodušených úloh modelu, kdy uvažujeme vždy pouze jednu kriteriální funkci dostaneme dílčí optimální řešení. VLP - dílčí optimální řešení, příklad Snadno lze zjistit, že minimálního rizika půjčovna dosáhne, jestliže nakoupí pouze požadované snowboardové komplety, tj. 20 ks po 10 000 Kč a ostatní komplety nebude kupovat vůbec. VLP - dílčí optimální řešení, příklad Snadno lze zjistit, že minimálního rizika půjčovna dosáhne, jestliže nakoupí pouze požadované snowboardové komplety, tj. 20 ks po 10 000 Kč a ostatní komplety nebude kupovat vůbec. Podobně maximálního zisku půjčovna dosáhne, jestliže po zakoupení požadovaného množství snowboardových kompletů (tj. 20 ks) utratí všechny zbývající peníze za nejziskovější sjezdové komplety pro dospělé. Prostředky postačí pro zakoupení 80 ks těchto kompletů. VLP - dílčí optimální řešení, příklad Snadno lze zjistit, že minimálního rizika půjčovna dosáhne, jestliže nakoupí pouze požadované snowboardové komplety, tj. 20 ks po 10 000 Kč a ostatní komplety nebude kupovat vůbec. Podobně maximálního zisku půjčovna dosáhne, jestliže po zakoupení požadovaného množství snowboardových kompletů (tj. 20 ks) utratí všechny zbývající peníze za nejziskovější sjezdové komplety pro dospělé. Prostředky postačí pro zakoupení 80 ks těchto kompletů. Dílčí optimální řešení můžeme znázornit v kriteriální tabulce: Kriteriál výnos ní funkce riziko 80 dospělých sjezdových + 20 snowboardových 29000 880 20 snowboardových 5000 100 Z hlavní diagonály tabulky vidíme, že ideální řešení je ohodnoceno kriteriálními hodnotami zisku a rizika 29000 a 100, ale reálně neexistuje. VLP - lexikografická metoda Popišme si některé z metod s apriorní preferenční informací. Při použití lexikografické metody rozhodovatel určí pořadí významnosti kriteriálních funkcí (předpokládejme, že již jsou funkce označeny tak, že z\ je nejvýznamnější a zk nejméně významné, jejich optimální hodnoty označme ?p\..., z°kpt). Hledání kompromisního řešení spočívá v postupném řešení z 1 ' ' ' ' ' *-k sekvence optimalizačních úloh max. z\ = c1 x, x g X. Pokud má úloha více optimálních řešení, řešíme dalšujlohu^^^^^^^^^^^^^ max. z2 = c2 • x, x g X, c1 x > z°pt. Opět je-li řešení více, postupujeme dále, až nalezneme kompromisní řešení jako bod optima úlohy max. zk = ck x, x g X, c1x > zop\..., ck"1x > zop\. VLP - lexikografická metoda Popišme si některé z metod s apriorní preferenční informací. Při použití lexikografické metody rozhodovatel určí pořadí významnosti kriteriálních funkcí (předpokládejme, že již jsou funkce označeny tak, že z\ je nejvýznamnější a zk nejméně významné, jejich optimální hodnoty označme ?p\..., z°kpt). Hledání kompromisního řešení spočívá v postupném řešení z 1 ' ' ' ' ' *-k sekvence optimalizačních úloh max. z\ = c1 x, x g X. Pokud má úloha více optimálních řešení, řešíme dalšujlohu^^^^^^^^^^^^^ max. z2 = c2 • x, x g X, c1 x > z°p{. Opět je-li řešení více, postupujeme dále, až nalezneme kompromisní řešení jako bod optima úlohy max. zk = ck x, x g X, c1x > zop\..., ck"1x > zop\. Zmírnit předpoklad, že jednotlivé úlohy mají více než jedno řešení, je možné připuštěním odchylky Sj, o kterou se můžou v jednotlivých krocích lišit hodnoty preferovaných účelových funkcí od svých optim. Například v druhém kroku bychom řešili úlohu max. z2 = c2 • x, x g X, c1x > z°pt - ^, atd. Popsaná metoda v podstatě kopíruje reálné uvažování manažerů. VLP - lexikografická metoda, příklad Již víme, že při preferenci rizika je nejvýhodnější nakoupit pouze 20 snowboardových kompletů a při preferenci zisku 20 snowboardových a 80 dospělých sjezdových kompletů. Jaké by měla úloha řešení, jestliže budeme preferovat riziko, ale připustíme jeho odchylku z ideální hodnoty 100 na 120? Maximalizujeme tedy zisk Z\ = 300x^ + 200x2 + 170x3 + 250x4 za omezení z2 = 10*1+ 15x2 + 25x3 + 5x4 < 120 , (tj. že riziko nepřesáhne hodnotu 120) a dalších omezení modelu *1 + x2 + *3 + x4 < 1 00 x4 > 20 , x! ,..., x4 > 0. VLP - lexikografická metoda, příklad Již víme, že při preferenci rizika je nejvýhodnější nakoupit pouze 20 snowboardových kompletů a při preferenci zisku 20 snowboardových a 80 dospělých sjezdových kompletů. Jaké by měla úloha řešení, jestliže budeme preferovat riziko, ale připustíme jeho odchylku z ideální hodnoty 100 na 120? Maximalizujeme tedy zisk Z\ = 300x^ + 200x2 + 170x3 + 250x4 za omezení z2 = 10*1+ 15x2 + 25x3 + 5x4 < 120 , (tj. že riziko nepřesáhne hodnotu 120) a dalších omezení modelu *1 + x2 + *3 + x4 < 100 x4 > 20 , ,..., x4 > 0. Snadno vypočteme optimální řešení x^ = 2, x2 = 0, x3 = 0, x4 = 20, tedy k požadovaným dvaceti snowboardovým přikoupíme ještě 2 dospělé sjezdové komplety. Zíkáme tak 5600 Kč a riziko bude rovno limitním 120 bodům. VLP - metoda minimální komponenty Jiným přístupem je stanovení kompromisního řešení podle minimální komponenty, kdy maximalizujeme nejmenší, tedy nejhorší komponentu vektoru hodnot účelových funkcí. Dostaneme tedy úlohu LP maximalizovat z = S za podmínek c1 • x > 5, c2 • x > 5,... ck • x > 5, x g X . VLP - metoda minimální komponenty Jiným přístupem je stanovení kompromisního řešení podle minimální komponenty, kdy maximalizujeme nejmenší, tedy nejhorší komponentu vektoru hodnot účelových funkcí. Dostaneme tedy úlohu LP maximalizovat z = S za podmínek c1 • x > 5, c2 • x > 5,... ck • x > 5, x g X . Pokud mají kritéria rozdílnou povahu, je třeba je nejprve převést všechna na maximalizační a upravit na bezrozměrné, aby byla zajištěna jejich srovnatelnost. VLP - metoda agregace kriteriálních funkcí Pomocí vhodně zvoleného operátoru je možné sloučit všechny kriteriální funkce do jediné. Obecně se při agregaci používají různé operátory, zde se jeví nejvhodnější lineární kombinace jednotlivých funkcí za použití normovaného vektoru vah v = (vl5..., vk). Místo původní optimalizační úlohy z = C x MAX, x g X. řešíme jednorozměrnou úlohu zv = v C x max, x g X. VLP - metoda agregace kriteriálních funkcí Pomocí vhodně zvoleného operátoru je možné sloučit všechny kriteriální funkce do jediné. Obecně se při agregaci používají různé operátory, zde se jeví nejvhodnější lineární kombinace jednotlivých funkcí za použití normovaného vektoru vah v = (vl5..., vk). Místo původní optimalizační úlohy z = C x MAX, x g X. řešíme jednorozměrnou úlohu zv = v C x max, x g X. Pozor! Při nastavení vektoru vah je třeba vzít v úvahu, že hodnoty funkcí se pohybují na různých škálách. Vyznačme agregované kritérium graficky (zelená přímka). Nemá praktickou interpretaci, je pouze kritériem pomocným. VLP - metoda agragace, příklad Při agregaci funkce zisku z\ a funkce rizika z2 je třeba vzít v úvahu odlišnou povahu kritérií, například můžeme vynásobit z2 koeficientem (-1). Jestliže nastavíme vektor vah v V 100' 100/ ' pak agregovaná účelová funkce bude mít tvar zv = 5, bx\ - 4,25x2 - 15,25x3 + 7,75x4. VLP - metoda agragace, příklad Při agregaci funkce zisku z\ a funkce rizika z2 je třeba vzít v úvahu odlišnou povahu kritérií, například můžeme vynásobit z2 koeficientem (-1). Jestliže nastavíme vektor vah v V 100' 100/ ' pak agregovaná účelová funkce bude mít tvar zv = 5,5^ - 4,25x2 - 15,25x3 + 7,75x4. Snadno nahlédneme, že optimální řešení tedy bude xA = 0, x2 = 0, x3 = 0, x4 = 100, všechny peníze utratíme za snowboardové komplety. Optimální hodnota účelové funkce zv = 775, což nemá žádnou vypovídací schopnost, ale můžeme pro nalezené řešení dopočítat hodnotu zisku 25000 Kč a hodnotu rizika 500 bodů. VLP - převod kriteriálních funkcí na omezení Při postupném převodu kritérií na omezení postupujeme podobně jako u lexikografické metody. Předpokládáme opět, že jsou funkce označeny od nejvýznamnějšího po nejméně významné). Hledání kompromisního řešení spočívá v postupném řešení sekvence optimalizačních úloh max. z\ = c1 x, x g X. Optimální hodnotu označíme z* a řešíme další úlohu, kde připustíme určitou odchylku od z*: max. z2 = c2 • x, x g X, c1 x > z* - ô^. Opět zjistíme z| a postupujeme dále, až nalezneme kompromisní řešení jako bod optima úlohy max. zk = ck • x, x g X, c1x > z* - 5i,..., ck_1x > z^_1 - Sk. VLP - převod kriteriálních funkcí na omezení Při postupném převodu kritérií na omezení postupujeme podobně jako u lexikografické metody. Předpokládáme opět, že jsou funkce označeny od nejvýznamnějšího po nejméně významné). Hledání kompromisního řešení spočívá v postupném řešení sekvence optimalizačních úloh max. z\ = c1 x, x g X. Optimální hodnotu označíme z* a řešíme další úlohu, kde připustíme určitou odchylku od z*: max. z2 = c2 • x, x g X, c1 x > z* - ô^. Opět zjistíme z| a postupujeme dále, až nalezneme kompromisní řešení jako bod optima úlohy max. zk = ck • x, x g X, c1x > z* - 5i,..., ck_1x > z*k_A - Sk- Kritéria lze také převést na omezení najednou tak, že maximalizujeme pouze nejdůležitější kritérium z\ a přidáme do modelu současně všechna omezení z, > auh i = 2,... k ( aspirační úrovně všech kritérií auh i = 2,... k nastavíme někam mezi bazálni a ideálni hodnotu pro dané kritérium (z-77"7, z™ax).) Nevýhodou tohoto přístupu je, že může být obtížné nastavení aspiračních úrovní, aby nebyla přípustná množina prázdná nebo aby nebyl vliv kritérií eliminován úplně. Cílové programování Představuje jiný přístup k řešení úlohy LP Místo stanovení omezujících podmínek a kritéria optimality se zde stanoví pevné a volné cíle s přiřazenými cílovými hodnotami. U pevných cílů musí být tato hodnota splněna (analogie omezujících podmínek). U volných cílů můžeme dosáhnout vyšší i nižší hodnoty než je cíl (avšak ne moc odlišné). Protože cílových hodnot bývá několik a zpravidla není možné dosažení všech, volí se obvykle jeden ze dvou přístupů: • pomocí preferencí - nejprve je optimalizován cíl s nejvyšší preferencí, atd. nebo • pomocí vah - koeficientů vyjadřujících důležitost daného cíle, optimalizuje se pak vážený součet odchylek od všech cílů Modely cílového programování jsou obecnější než standardní modely LP, protože v praxi zpravidla nemáme jediné kritérium optimality, ale sledujeme více hodnot. Cílové programování - příklad Příklad z J. Jablonský, Operační výzkum: Vedení penzijního fondu se rozhoduje o nákupu dvou druhů cenných papírů (akcie a obligace). Má k dispozici prostředky, které není nutné úplně vyčerpat, nelze je však překročit. Do akcií lze investovat maximálně 50 % celkového objemu prostředků a do obligací maximálně 75 % prostředků. Očekávaný výnos z akcií je 15 % a z obligací 10 % p.a., míra rizika investice je ohodnocena koeficientem 5 u akcií a 2 u obligací. Navrhněte takovou skladbu portfolia [xi, x2], aby se dosáhlo průměrného výnosu 12 % p.a. a aby byla vážená míra rizika rovna 3 . Cílové programování - příklad Příklad z J. Jablonský, Operační výzkum: Vedení penzijního fondu se rozhoduje o nákupu dvou druhů cenných papírů (akcie a obligace). Má k dispozici prostředky, které není nutné úplně vyčerpat, nelze je však překročit. Do akcií lze investovat maximálně 50 % celkového objemu prostředků a do obligací maximálně 75 % prostředků. Očekávaný výnos z akcií je 15 % a z obligací 10 % p.a., míra rizika investice je ohodnocena koeficientem 5 u akcií a 2 u obligací. Navrhněte takovou skladbu portfolia [xi, x2], aby se dosáhlo průměrného výnosu 12 % p.a. a aby byla vážená míra rizika rovna 3 . Při standardním přístupu LP bychom museli zvolit jako účelovou funkci jen jedno z nich, např. výnos a k omezujícím podmínkám pro objem investic přidat další omezení, totiž že míra rizika nesmí překročit hodnotu 3. Lze spočítat, že optimálního řešení při tomto přístupu dosáhneme, dáme-li i prostředků do akcií a | do obligací. Při průměrném riziku 3 tak získáme 11,67 % p.a. Cílové programování - příklad Příklad z J. Jablonský, Operační výzkum: Vedení penzijního fondu se rozhoduje o nákupu dvou druhů cenných papírů (akcie a obligace). Má k dispozici prostředky, které není nutné úplně vyčerpat, nelze je však překročit. Do akcií lze investovat maximálně 50 % celkového objemu prostředků a do obligací maximálně 75 % prostředků. Očekávaný výnos z akcií je 15 % a z obligací 10 % p.a., míra rizika investice je ohodnocena koeficientem 5 u akcií a 2 u obligací. Navrhněte takovou skladbu portfolia [xi, x2], aby se dosáhlo průměrného výnosu 12 % p.a. a aby byla vážená míra rizika rovna 3 . Při standardním přístupu LP bychom museli zvolit jako účelovou funkci jen jedno z nich, např. výnos a k omezujícím podmínkám pro objem investic přidat další omezení, totiž že míra rizika nesmí překročit hodnotu 3. Lze spočítat, že optimálního řešení při tomto přístupu dosáhneme, dáme-li i prostředků do akcií a | do obligací. Při průměrném riziku 3 tak získáme 11,67 % p.a. Nebo naopak budeme minimalizovat účelovou funkci vyjádřenou váženým rizikem a jako dodatečnou podmínku stanovíme omezení, aby průměrný výnos byl nejméně 12 % p.a. Pak je optimální investovat 40 % prostředků do akcií a 60 % do obligací. Při výsledném výnosu 12 % p.a. pak bude míra rizika 3,2. Cílové programování - formulace modelu U volných cílů se používají odchylkové proměnné pro vyjádření kladných a záporných odchylek (značíme je c/+, resp. d~) od cílových hodnot. Je-li cíle splněn, platí d+ = d~ = 0, dojde-li k přesáhnutí cíle, pak je d+ > 0, d~ = 0 a není-li cíl dosažen, je d+ = 0, d~ > 0. Pevné cíle musí být respektovány, žádné odchylky se nepřipouští. Cílové programování - formulace modelu U volných cílů se používají odchylkové proměnné pro vyjádření kladných a záporných odchylek (značíme je df, resp. d~) od cílových hodnot. Je-li cíle splněn, platí d+ = d~ = 0, dojde-li k přesáhnutí cíle, pak je d+ > 0, d~ = 0 a není-li cíl dosažen, je d+ = 0, d~ > 0. Pevné cíle musí být respektovány, žádné odchylky se nepřipouští. V modelu cílového programování je vždy účelová funkce vyjádřena jako minimalizace odchylkových proměnných, přičemž do ní lze zahrnout buď pouze kladné, pouze záporné nebo oba typy odchylek ( pak se cílovým hodnotám blížíme shora, zdola nebo "oboustranně"). Zápis úlohy o optimalizaci portfolia by tedy byl: d^ d^~ min, za podmínek: < 0,5; x2 < 0,75 15*1 + 10x2+ d1+-d1~ = 12 5*1 + 2x2 + d£ - dž = 3 x1,X2,d1f,d1-,d2+,d2" > 0 Cílové programování - odlišení cílů vahami Při současné minimalizaci více odchylek můžeme odlišit jejich důležitost vahami. Abychom se vyhnuli problémům s různými jednotkami, je lepší pracovat s relativními odchylkami kde g, značí /- tou cílovou hodnotu. Pokud je pro nás výnos pětkrát důležitější než riziko, stanovíme váhy 5 a 1 a účelová funkce bude mít podobu z = 5^- + ^. Dále lze úlohu řešit běžnou simplexovou metodou. Cílové programování - odlišení cílů vahami Při současné minimalizaci více odchylek můžeme odlišit jejich důležitost vahami. Abychom se vyhnuli problémům s různými jednotkami, je lepší pracovat s relativními odchylkami kde g, značí /- tou cílovou hodnotu. Pokud je pro nás výnos pětkrát důležitější než riziko, stanovíme váhy 5 a 1 a účelová funkce bude mít podobu z = 5^- + ^. Dále lze úlohu řešit běžnou simplexovou metodou. Řešením je dát ^ prostředků do akcií a § do obligací, přitom je zcela splněna cílová hodnota rizika a výnos je 11,67%. Cílové programování - odlišení cílů preferencemi Při odlišení cílů preferencemi minimalizujeme nejprve odchylku od důležitějšího cíle a pokud má množina optimálních řešení více prvků, minimalizujeme na této množině druhou nejzávažnější odchylku, atd. Má-li v naší úloze vyšší prioritu výnos, minimalizujeme nejprve c/r. Cílové programování - odlišení cílů preferencemi Při odlišení cílů preferencemi minimalizujeme nejprve odchylku od důležitějšího cíle a pokud má množina optimálních řešení více prvků, minimalizujeme na této množině druhou nejzávažnější odchylku, atd. Má-li v naší úloze vyšší prioritu výnos, minimalizujeme nejprve d^~. Znázorněme situaci graficky v rovině , x2. A Nejprve si zobrazíme přípustnou množinu M, na níž jsou splněny všechny pevné cíle. Cílové programování - odlišení cílů preferencemi Při odlišení cílů preferencemi minimalizujeme nejprve odchylku od důležitějšího cíle a pokud má množina optimálních řešení více prvků, minimalizujeme na této množině druhou nejzávažnější odchylku, atd. Má-li v naší úloze vyšší prioritu výnos, minimalizujeme nejprve d^~. Znázorněme situaci graficky v rovině , x2. Přímka o rovnici 15^ + 10x2 = 12 vyjadřuje dosažení nejmenší možné hodnoty c/f" = 0. Její průnik s M představuje všechna optimální řešení v prvním kroku. Cílové programování - odlišení cílů preferencemi Při odlišení cílů preferencemi minimalizujeme nejprve odchylku od důležitějšího cíle a pokud má množina optimálních řešení více prvků, minimalizujeme na této množině druhou nejzávažnější odchylku, atd. Má-li v naší úloze vyšší prioritu výnos, minimalizujeme nejprve d^~. Znázorněme situaci graficky v rovině , x2. V druhém kroku minimalizujeme odchylku . Ideální by bylo, kdyby byla nulová, tj. kdyby platila rovnost 5^ + 2x2 = 3. Cílové programování - odlišení cílů preferencemi Při odlišení cílů preferencemi minimalizujeme nejprve odchylku od důležitějšího cíle a pokud má množina optimálních řešení více prvků, minimalizujeme na této množině druhou nejzávažnější odchylku, atd. Má-li v naší úloze vyšší prioritu výnos, minimalizujeme nejprve d^~. Znázorněme situaci graficky v rovině , x2. Protože se přímky protínají mimo přípustnou množinu, nelze dosáhnout rovnosti d£ = 0. Musíme riziko zvýšit, tj. posunout modrou přímku tak, aby se dotkla optimální úsečky pro d^~. Našli jsme bod optima x* = [0,4; 0,6]. 15x1+10x2=12 0,5 Lineární lomené programování Skupinou úloh, které lze převést na lineární problém, jsou úlohy lineárního lomeného programování optimalizovat funkci f(x) = c^+cl za omezer,í x > 0, A x < b. Tyto úlohy sice nespadají do kategorie konvexních úloh, avšak umožňují pro cT • x + c0 > 0 zavedení substituce r = ct,x+cq- Dostaneme účelovou funkci ve tvaru f = dT x r + c/0r, kterou můžeme vyjádřit jako funkci nových proměnných r, y• = x,■ ■ r, / = 1,..., n\ /(r, y\,... yn) = dT • y + d0r , podobně vyjádříme i omezení r>0,y>0, A ■ y < b ■ r . Je však třeba přidat i další omezující podmínku 1 = r(cT • x + c0), tedy 1 = cT • y + c0r . Dostali jsme obyčejnou úlohu LP, kterou můžeme dále řešit například simplexovou metodou. Lineární lomené programování - příklad V ekonomii se setkáme s řadou ukazatelů poměrového typu. Jsou-li výrazy v čitateli a jmenovateli ukazatele lineárními funkcemi proměnných, podle kterých se snažíme ukazatel optimalizovat, jedná se o problém lineárního lomeného programování, viz úloha z knihy I. Gros: "Kvantitativní metody v manažerském rozhodování": Lineární lomené programování - příklad V ekonomii se setkáme s řadou ukazatelů poměrového typu. Jsou-li výrazy v čitateli a jmenovateli ukazatele lineárními funkcemi proměnných, podle kterých se snažíme ukazatel optimalizovat, jedná se o problém lineárního lomeného programování, viz úloha z knihy I. Gros: "Kvantitativní metody v manažerském rozhodování": Příklad: Uvažujme firmu, která má ve výrobním programu tři výrobky A, B, C s následujícími charakteristikami: Výrobek Variabilní náklady [Kč/t] Cena [Kč/t] A 11 000 12 000 B 15 000 18 000 C 14 000 16 000 fixní náklady 150 000 Kč Lineární lomené programování - příklad V ekonomii se setkáme s řadou ukazatelů poměrového typu. Jsou-li výrazy v čitateli a jmenovateli ukazatele lineárními funkcemi proměnných, podle kterých se snažíme ukazatel optimalizovat, jedná se o problém lineárního lomeného programování, viz úloha z knihy I. Gros: "Kvantitativní metody v manažerském rozhodování": Příklad: Uvažujme firmu, která má ve výrobním programu tři výrobky A, B, C s následujícími charakteristikami: Výrobek Variabilní náklady [Kč/t] Cena [Kč/t] A 11 000 12 000 B 15 000 18 000 C 14 000 16 000 fixní náklady 150 000 Kč Označíme-li si xl5 x2, x3 množství prodaných výrobků, můžeme definovat například následující poměrové ukazatele: náklpHnwnQt trŤPh 7 — 11000*1 +15000x2+14000x3+150000 naKiaaovosi irzeo z - 12000^+13000x2+16000x3 ' rpntphilitii trŤPh 7 — 1000*1 +3000x2 +2000x3-150000 reniaDiiuu irzeo z - 12000^+18000x2+16000x3 ■ Lineární lomené programování - příklad Příklad: Minimalizujte nákladovost tržeb z uvedeného příkladu za podmínky, že celkové náklady nepřesáhnou 200 000 Kč. Lineární lomené programování - příklad Příklad: Minimalizujte nákladovost tržeb z uvedeného příkladu za podmínky, že celkové náklady nepřesáhnou 200 000 Kč. Matematický zápis úlohy: minimalizujte z = Ux^Í7sxT^5° 1 i 2 i 3 za podmínek 11*i + 15x2 + 14x3 + 150 < 200, , x2, x3 > 0. Lineární lomené programování - příklad Příklad: Minimalizujte nákladovost tržeb z uvedeného příkladu za podmínky, že celkové náklady nepřesáhnou 200 000 Kč. Matematický zápis úlohy: minimalizujte z = Ux^Í7sxT^5° 1 i 2 i 3 za podmínek 11*i + 15x2 + 14x3 + 150 < 200, xi, x2, x3 > 0. Úlohu linearizujeme zavedením substituce r = 12 181x 16 , dostaneme tak 1 i 2 i 3 problém minimalizovat funkci ^71,72, ys,0 = 11/1 + 15y2 + 14y3 + 150r za omezení 11^ + 15y2 + 14y3 - 50r < 0, yi, y2, y3, r > 0 a doplňující podmínky 12y! + 18y2 + 16y3 = 1 Lineární lomené programování - příklad Příklad: Minimalizujte nákladovost tržeb z uvedeného příkladu za podmínky, že celkové náklady nepřesáhnou 200 000 Kč. Matematický zápis úlohy: minimalizujte z = Ux^Í7sxT^5° 1 i 2 i 3 za podmínek 11*i + 15x2 + 14x3 + 150 < 200, xi, x2, x3 > 0. Úlohu linearizujeme zavedením substituce r = 12 181x 16 , dostaneme tak 1 i 2 i 3 problém minimalizovat funkci r(yi,/2, ys,0 = 11/1 + 15y2 + 14y3 + 150r za omezení 11^ + 15y2 + 14y3 - 50r < 0, yi, y2, y3, r > 0 a doplňující podmínky 12y! + 18y2 + 16y3 = 1 Modely datových obalů (DEA) slouží k hodnocení technické efektivnosti produkčních jednotek na základě velikosti vstupů a výstupů (bez nutnosti cenového vyjádření). Úvod Modely datových obalů (DEA) slouží k hodnocení technické efektivnosti produkčních jednotek na základě velikosti vstupů a výstupů (bez nutnosti cenového vyjádření). Historie: 1957: Farrell: model měření efektivnosti jednotek s jedním vstupem a výstupem 1978: Charnes, Cooper, Rhodes: CCR model: vícenásobné vstupy a výstupy, konstantní výnosy z rozsahu 1984: Banker, Charnes, Cooper: BCC model: proměnný výnos z rozsahu Úvod Modely datových obalů (DEA) slouží k hodnocení technické efektivnosti produkčních jednotek na základě velikosti vstupů a výstupů (bez nutnosti cenového vyjádření). Historie: 1957: Farrell: model měření efektivnosti jednotek s jedním vstupem a výstupem 1978: Charnes, Cooper, Rhodes: CCR model: vícenásobné vstupy a výstupy, konstantní výnosy z rozsahu 1984: Banker, Charnes, Cooper: BCC model: proměnný výnos z rozsahu Uvažujme homogenní produkční jednotky, spotřebovávající stejný typ zdrojů (materiál, podlahová plocha, pracovníci, atd.), budeme je označovat vstupy, k produkci ekvivalentních efektů (tržby, zisk, počet obsloužených klientů, atp.), dále jen výstupy. Pokud v činnosti jednotek dominuje pouze jeden vstup a jeden výstup, lze snadno vyjádřit efektivnost pomocí poměrového ukazatele efektivnost = výstup/vstup Úvod Modely datových obalů (DEA) slouží k hodnocení technické efektivnosti produkčních jednotek na základě velikosti vstupů a výstupů (bez nutnosti cenového vyjádření). Historie: 1957: Farrell: model měření efektivnosti jednotek s jedním vstupem a výstupem 1978: Charnes, Cooper, Rhodes: CCR model: vícenásobné vstupy a výstupy, konstantní výnosy z rozsahu 1984: Banker, Charnes, Cooper: BCC model: proměnný výnos z rozsahu Uvažujme homogenní produkční jednotky, spotřebovávající stejný typ zdrojů (materiál, podlahová plocha, pracovníci, atd.), budeme je označovat vstupy, k produkci ekvivalentních efektů (tržby, zisk, počet obsloužených klientů, atp.), dále jen výstupy. Pokud v činnosti jednotek dominuje pouze jeden vstup a jeden výstup, lze snadno vyjádřit efektivnost pomocí poměrového ukazatele efektivnost = výstup/vstup Pro vícenásobné vstupy a výstupy je možné jejich agregováním ukazatel modifikovat: efektivnost = vážené výstupy/vážené vstupy <,gi> <=►<=► = Model s jedním vstupem a výstupem Uvažujme 8 poboček obchodní firmy, které charakterizujeme jedním vstupem (počet zaměstnanců) a jedním výstupem (počet uzavřených smluv s klienty), efektivnost lze vyjádřit pomocí ukazatele "počet smluv na zaměstnance", údaje jsou zaznamenány v tabulce: Pobočka A B C D E F G H zaměstnanců 2 3 3 4 5 5 6 8 smluv 1 3 2 3 4 2 3 5 efektivnost 0,5 1 0,667 0,75 0,8 0,4 0,5 0,625 Model s jedním vstupem a výstupem Data reprezentujeme graficky, viz: Model s jedním vstupem a výstupem Data reprezentujeme graficky, viz: počet smluv o o B D H H-1-'-'-'-1- 5 10 počet zaměstnanců Model s jedním vstupem a výstupem Data reprezentujeme graficky, viz: Ukazatel efektivnosti dané pobočky udává sklon přímky spojující příslušný bod s počátkem, pro pobočku B nabývá nejvyšší hodnoty - tuto přímku budeme dále nazývat efektivní hranicí. Model s jedním vstupem a výstupem Data reprezentujeme graficky, viz: Ukazatel efektivnosti dané pobočky udává sklon přímky spojující příslušný bod s počátkem, pro pobočku B nabývá nejvyšší hodnoty - tuto přímku budeme dále nazývat efektivní hranicí. Nejlepší pobočkou je tedy pobočka B, efektivnost ostatních můžeme pak vyjádřit také v relativní míře. Například efektivnost A / efektivnost B =0,5 což znamená, že A dosahuje pouze 50% efektivnosti B. Tato relativní míra nabývá i pro ostatní pobočky hodnot z intervalu [0,1] a je nezávislá na jednotkách, ve kterých jsme vstup, resp._ Model s jedním vstupem a výstupem Jakým způsobem může jednotka A dosáhnout stoprocentní hodnoty, tj. efektivní hranice? Může snížit vstupy při zachování výstupů (model orientovaný na vstupy, v grafickém znázornění reprezentuje bod A\) nebo zvýšit výstup při zachování vstupů (model orientovaný na výstupy, v grafickém znázornění reprezentuje bod A2) nebo změnit obojí. Jednotky A\, A2 nazýváme virtuální, neodpovídají žádné reálné pobočce. Úsečka AAA2 reprezentuje všechny dostupné body na efektivní hranici, pro jejichž dosažení A nemusí zvyšovat počet zaměstnanců nebo snižovat počet uzavřených smluv. počet smluv 5 / ° E o H / B 0 D 0 G ř o A2 C 0 F > A 5 10 počet zaměstnanců Model s jedním vstupem a výstupem Označíme-li souřadnice bodů >4[x,y], [xi,yi], >42[x2,y2], vzhledem ktomu, že Aj, A2 leží na efektivní hranici, lze ve vyjádření relativní efektivnosti A použít ve jmenovateli místo jednotky B libovolnou z těchto virtuálních jednotek. Dostaneme pak = x/xA neboť y = yi nebc^^^^ í/f =/2/y neboť x = x2. Model s jedním vstupem a výstupem Označíme-li souřadnice bodů >4[x,y], [xi,yi], >42[x2,y2], vzhledem k tomu, že Aj, A2 leží na efektivní hranici, lze ve vyjádření relativní efektivnosti A použít ve jmenovateli místo jednotky B libovolnou z těchto virtuálních jednotek. Dostaneme pak = x/xA neboťy = yi nebc^^^^ 7/|=y2/y neboť x = x2. V modelu orientovaném na výstupy můžeme relativní efektivnost interpretovat jako potřebné navýšení výstupu, ^ = f = 2, tedy efektivní hranice by A dosáhla zdvojnásobením počtu uzavřených smluv. Pro model orientovaný na vstupy převrácená hodnota relativní efektivnosti reprezentuje potřebnou redukci vstupů, ^ = \ = 0,5, tedy efektivní hranice by A dosáhla s polovinou zaměstnanců. Model s jedním vstupem a výstupem V předchozích úvahách jsme pracovali s předpokladem konstantních výnosů z rozsahu, kdy efektivní hranice byla tvořena polopřímkou, tj. pro každou pobočku s kombinací vstupu a výstupu [x,y] se předpokládá za dosažitelnou i kombinace [ax, ay] pro lib. a > 0. Ukazatel relativní efektivnosti pak vychází shodně, ať použijeme model orientovaný na vstupy či na výstupy. □ s Model s jedním vstupem a výstupem V předchozích úvahách jsme pracovali s předpokladem konstantních výnosů z rozsahu, kdy efektivní hranice byla tvořena polopřímkou, tj. pro každou pobočku s kombinací vstupu a výstupu [x,y] se předpokládá za dosažitelnou i kombinace [ax,ay] pro lib. a > 0. Ukazatel relativní efektivnosti pak vychází shodně, ať použijeme model orientovaný na vstupy či na výstupy. Za předpokladu variabilních výnosů z rozsahu je třeba efektivní hranici modifikovat. počet smluv počet zaměstnanců Nyní tvoří hranice obal dat, tak že efektivní se jeví též jednotky E a H Model s jedním vstupem a výstupem Ukazatel relativní efektivnosti se může měnit podle použitého modelu. Například pro jednotku F při orientaci na vstupy dostaneme hodnotu efektivnost I efektivnost F = 215 = 0,4, kdežto při orientaci na výstupy hodnotu efektivnost F/efektivnost E = 1/2= 0,5 . počet smluv Dva vstupy a jeden výstup Uvažujme příklad 9 supermarketů , kde jako vstupy bereme počet zaměstnanců (v desítkách) a podlahovou plochu (v 1000 m2), výstupem rozumíme roční tržby. Za předpokladu konstantních výnosů z rozsahu můžeme dále pracovat s hodnotami vstupů přepočtenými na jednotku výstupu. Normované hodnoty jsou uvedeny v tabulce. Obchod ABCDEFGH I zaměstnanců plocha 4784256 5,5 6 3 3 1 2 4 2 4 2,5 2,5 tržby 11111111 1 Dva vstupy a jeden výstup V grafickém znázornění se efektivnější jeví ty obchody, které se nalézají blíž k počátku, efektivní hranice obaluje data následujícím způsobem: plocha/tržby zaměstnanců/tržby Dva vstupy a jeden výstup V grafickém znázornění se efektivnější jeví ty obchody, které se nalézají blíž k počátku, efektivní hranice obaluje data následujícím způsobem: plocha/t žby K zaměstnanců/tržby Obchod A je neefektivní, míru jeho efektivnosti můžeme měřit radiálně jako |^| = 0,8571 . Protože virtuální jednotka P je kombinací jednotek D,E, nazýváme je referenčními jednotkami pro A. Dva vstupy a jeden výstup V grafickém znázornění se efektivnější jeví ty obchody, které se nalézají blíž k počátku, efektivní hranice obaluje data následujícím způsobem: plocha/t žby A o o B o H I 5 zaměstnanců/tržb1y( Obchod A je neefektivní, míru jeho efektivnosti můžeme měřit radiálně jako |^| = 0,8571 . Protože virtuální jednotka P je kombinací jednotek D,E, nazýváme je referenčními jednotkami pro A. Efektivní hranice lze dosáhnout též jinak než proporčním snížením obou vstupů o 15%, snížení pouze jednoho vstupu při zachování úrovně druhého demonstrují body A\, D. Jeden vstup a dva výstupy Nyní naopak uvažujme případ, kdy u 7 obchodních kanceláří sledujeme 1 vstup (počet obchodníků) a dva výstupy (počet obsloužených zákazníků a tržby. Hodnoty výstupů u jednotlivých poboček přepočtené na 1 obchodníka jsou uvedeny v tabulce. Kancelář A B C D E F G obchodníků 1111111 zákazníků tržby 1 2 3 4 4 5 6 5 7 4 3 6 5 2 Jeden vstup a dva výstupy Můžeme znázornit jednotkové výstupy jednotlivých kanceláří, efektivní hranice bude obalovat data z opačné strany, protože body ležící blíž k počátku reprezentují méně efektivní jednotky, (jde o jednotky A,C,D) klientů na obchodníka A G tržby na obchodníka Jeden vstup a dva výstupy Můžeme znázornit jednotkové výstupy jednotlivých kanceláří, efektivní hranice bude obalovat data z opačné strany, protože body ležící blíž k počátku reprezentují méně efektivní jednotky, (jde o jednotky A,C,D) klientů na obchodníka tržby na obchodníka Míru neefektivnosti lze opět měřit radiálně, například pro jednotku D jako 0,75 . Pro bod A by analogická míra vyjadřovala pouze hodnota 1 OD\ opi neznamená efektivnost, z bodu Q lze ještě zvýšit tržby bez ztráty klientů až na úroveň bodu B. CCR model Pro n jednotek ,..., l/n u nichž sledujeme m vstupů a r výstupů zavedeme označení xiq pro /-tý vstup g-té jednotky a yjq pro y-tý výstup g-té jednotky. Pro Uq značíme xq = ... ,xmq)', yq = (y1q,... ,yrqyHodnoty lze uspořádat do matic CCR model Pro n jednotek U\,..., Un u nichž sledujeme m vstupů a r výstupů zavedeme označení xiq pro i-ty vstup g-té jednotky a yjq pro y-tý výstup g-té jednotky. Pro Uq značíme xq = ... ,xmq)\ yq = (y1q,... ,yrqy. Hodnoty lze uspořádat do matic Pomocí vektorů nezáporných vah v = (i/1,...,^),u = (íi1,...,íir) můžeme pro libovolnou jednotku Uq definovat virtuální vstup = v^q + ... + vww? = vxq a virtuální výstup = U\y\q + ... + uryrq = uyq. Míru efektivnosti dané jednotky pak vyjádříme jako podíl jejího virtuálního výstupu a vstupu. □ [51 CCR model Pro n jednotek ,..., l/n u nichž sledujeme m vstupů a r výstupů zavedeme označení xiq pro /-tý vstup g-té jednotky a yjq pro y-tý výstup g-té jednotky. Pro Uq značíme xq = ... ,xmq)', yq = (y1q,... ,yrqyHodnoty lze uspořádat do matic x = Y = Mii.-'.'.'.n- Pomocí vektorů nezáporných vah v = ,..., vm), u = ,..., ur) můžeme pro libovolnou jednotku Uq definovat virtuální vstup = v<\x<\q + ... + vmxmq = vxq a virtuální výstup = u\y\q + ... + uryrq = uyq. Míru efektivnosti dané jednotky pak vyjádříme jako podíl jejího virtuálního výstupu a vstupu. CCR model optimalizuje váhy vstupů a výstupů tak, aby míra efektivnosti dané jednotky l/0, z = ^qt'''t!!rírq = byla maximální za podmínky, že efektivnosti ostatních jednotek jsou nejvýše jednotkové. Existuje-li kladné řešení s optimální hodnotou účelové funkce z* = 1, pak se jednotka Uq označuje jako CCR efektivní. CCR model orientovaný na vstupy Celý model pro jednotku Uq lze formulovat jako úlohu lineárního lomeného programování z _ u^y^q+...+uryrq ~ v1x1q+...+vmxmq za omezení uAyAk+...+uryrk < -i ViXu< + ... + VmXmk -> maxu,v 1 Uj > 0, v, j >0, / = 1, m, y = 1 □ i5" CCR model orientovaný na vstupy Celý model pro jednotku Uq lze formulovat jako úlohu lineárního lomeného programování z _ u^y^q+...+uryrq ~ v1x1q+...+vmxmq za omezení uAyAk+...+uryrk < -i v^k+...+vmxmk -> maxu,v 1 Uj > 0, vy > 0, / = 1,... m, y = 1,... r. Úlohu lze snadno linearizovat pomocí Charnes-Cooperovy transformace: z = uAyAq + ... + uryrq maxUiV za omezení V)Xiq + ... + VmXmq = J\ ^yAk + ...JcUryrk< viXik + ... + vmxmk, /c = 1,...n, Uj > 0, v/ > 0, / = 1,... /?7, y = 1,... r. □ s CCR model orientovaný na vstupy Celý model pro jednotku Uq lze formulovat jako úlohu lineárního lomeného programování y _ "iyiqT---Tur/rq m PI Y Z ~ v,x,Q+...+vmxm. maxu,v _ uiyiq+...+uryrq \q~\~- • -~\~VmXmq za omezení Uiyu< + — + Uryrk < -i u = 1 n V,X,k + ... + VmXmk 1 !,.../#, Ui >0, Vj > 0, / = 1,... m, y = 1,... r. Úlohu lze snadno linearizovat pomocí Charnes-Cooperovy transformace: z = i/iyiQ + ... + uryrq max^ za omezení V)Xiq + ... + VmXmq = J\ U\y\k + • • . + UrYrk 0, Vj > 0, / = 1,... n?, y = 1,... r. Tento model nazýváme CCR modelem orientovaným na vstupy. Množina takových indexů /c g {1,... n} efektivních jednotek, pro které jsou omezující podmínky v úloze pro Uq aktivní, definuje tzv. referenční množinu pro Uq. CCR model - příklad Uvažujme úlohu s dvěma vstupy a jedním výstupem, hodnoty pro 6 jednotek jsou uvedeny v tabulce: Jednotka A B C D E F x^ x2 4 7 8 4 2 10 3 3 1 2 4 1 y 11111 1 CCR model - příklad Uvažujme úlohu s dvěma vstupy a jedním výstupem, hodnoty pro 6 jednotek jsou uvedeny v tabulce: Jednotka A B C D E F x^ x2 4 7 8 4 2 10 3 3 1 2 4 1 y 11111 1 Linearizovaná úloha pro jednotku A bude mít podobu z = u -+ max za omezeni 4ví +3v2 = 1, u < 4ví +3v2 (A) u < 8vi + v2 (C) u < 2^ + 4v2 (E) u, vu v2>0 u < lvA +3v2 (B) u < 4^ +2v2 (D) u < 10vi + v2 (F) CCR model - príklad Uvažujme úlohu s dvěma vstupy a jedním výstupem, hodnoty pro 6 jednotek jsou uvedeny v tabulce: Jednotka ABODE F x^ x2 4 7 8 4 2 10 3 3 1 2 4 1 y 11111 1 Linearizovaná úloha pro jednotku A bude mít podobu z = u max za omezeni 4ví + 3v2 = 1, u < 4^ +3v2 (A) u<8vi+ v2 (C) u < 2vA +4v2 (E) u, vu v2>0 u < lvA + 3v2 (B) u < 4^ + 2v2 (D) u 0, v* > 0. Požadavek existence kladných vah lze zapracovat přímo do modelu, kdy v podmínkách nezápornosti proměnných změníme pravou stranu na nějaké e > 0. CCR model - duální úloha Zapišme CCR model pro jednotku Uq maticově: z = uyq -> maxuy za omezení VXq = 1 UY < VX, u, v > 0. CCR model - duální úloha Zapišme CCR model pro jednotku Uq maticově: z = uyq maxUjV za omezení VXq = 1 UY < VX, u, v > 0. K úloze formulujme její duální problém, duální proměnné označíme 9 a A = (Ai,... An);: z = 9 mine,\ za omezení 6»xq > XA, YA > yq, A > 0 Použití duálního modelu je výhodné z výpočetního i interpretačního hlediska. Duální CCR model - interpretace Model vlastně hledá virtuální jednotku se vstupy a výstupy XA, YA, která je lepší nebo alespoň srovnatelná s radiální projekcí hodnocené jednotky Uq na efektivní hranici: (9xq > XA, YA > yq □ s1 Duální CCR model - interpretace Model vlastně hledá virtuální jednotku se vstupy a výstupy XA, YA, která je lepší nebo alespoň srovnatelná s radiální projekcí hodnocené jednotky Uq na efektivní hranici: (9xq > XA, YA > yq Hodnocená jednotka Uq leží přímo na efektivní hranici, je-li totožná s nalezenou virtuální jednotkou. Nutně tedy musí být optimální hodnota účelové funkce modelu (9* (tzv. Farrellova efektivnost) vyjadřující potřebnou radiální redukci vstupů k dosažení efektivní hranice jednotková, (9* = 1. Při splnění této podmínky je jednotka Uq též nazvána technicky efektivní. Duální CCR model - interpretace Model vlastně hledá virtuální jednotku se vstupy a výstupy XA, YA, která je lepší nebo alespoň srovnatelná s radiální projekcí hodnocené jednotky Uq na efektivní hranici: (9xq > XA, YA > yq Hodnocená jednotka Uq leží přímo na efektivní hranici, je-li totožná s nalezenou virtuální jednotkou. Nutně tedy musí být optimální hodnota účelové funkce modelu (9* (tzv. Farrellova efektivnost) vyjadřující potřebnou radiální redukci vstupů k dosažení efektivní hranice jednotková, (9* = 1. Při splnění této podmínky je jednotka Uq též nazvána technicky efektivní. K dosažení CCR-efektivnosti však současně musí být nulové všechny přídavné proměnné převádějící omezující nerovnosti na rovnosti: S" = 9xq - XA = 0, s+ = YA - yq = 0 . Duální CCR model - interpretace Model vlastně hledá virtuální jednotku se vstupy a výstupy XA, YA, která je lepší nebo alespoň srovnatelná s radiální projekcí hodnocené jednotky Uq na efektivní hranici: (9xq > XA, YA > yq Hodnocená jednotka Uq leží přímo na efektivní hranici, je-li totožná s nalezenou virtuální jednotkou. Nutně tedy musí být optimální hodnota účelové funkce modelu (9* (tzv. Farrellova efektivnost) vyjadřující potřebnou radiální redukci vstupů k dosažení efektivní hranice jednotková, (9* = 1. Při splnění této podmínky je jednotka Uq též nazvána technicky efektivní. K dosažení CCR-efektivnosti však současně musí být nulové všechny přídavné proměnné převádějící omezující nerovnosti na rovnosti: S" = 9xq - XA = 0, s+ = YA - yq = 0 . Při splnění všech těchto podmínek vyhovuje hodnocená jednotka tzv. Pareto-Koopmansově definici efektivnosti, tj. není možné zlepšit žádný z jejích vstupů a výstupů, aniž by současně nedošlo ke zhoršení jiného. Duální CCR model - alternativní formulace Uvažujme primární CCR model s požadavkem nenulovosti vah u, v > e > 0 a označme e = (1,..., 1 )T. Duální úlohu lze též formulovat ve tvaru z = 9- e-(e-s+ + e- s~) min0X,s+, s-za omezení S = OXq — XA, s+ = YA-yq, A, S+, S~ > 0 □ S1 Duální CCR model - alternativní formulace Uvažujme primární CCR model s požadavkem nenulovosti vah u, v>oOa označme e = (1,..., 1)T. Duální úlohu lze též formulovat ve tvaru z = /9-£-(e-s+ + e- s~) minox,s+, s-za omezení S = OXq — XA, s+ = YA-yq, A, s+, S" > 0 Optimální hodnoty modelu dávají jednotce Uq návod pro zlepšení vstupů a výstupů na Xq, yq pomocí tzv. CCR - projekce: Xq = 6>*xq - s*, yq7 = yq + s+*, nebo též x^ = XA*,yq/ = YA*. Přitom ty indexy j e {1,..., n}, pro něž jsou hodnoty A* kladné, určují referenční jednotky pro Uq. □ s CCR model orientovaný na výstupy Pro jednotku Uq můžeme také formulovat CCR model orientovaný na výstupy, zapišme jej rovnou v upravené duální podobě: z = 0 + s • (e • s+ + e • s-) -> maxexs+^ s-za omezení S = Xq — XA, s+ = YA - 9yq, A, S+, S~ > 0 □ S1 CCR model orientovaný na výstupy Pro jednotku Uq můžeme také formulovat CCR model orientovaný na výstupy, zapišme jej rovnou v upravené duální podobě: z = 0 + e • (e • s+ + e • s-) -> max0jAjs+, s- za omezení S = Xq — XA, s+ = YA-0yq, A, s+, s" > 0 Pokud je 0* > 1, jednotka Uq není efektivní a hodnota 0* vyjadřuje potřebnou míru proporcionálního navýšení vstupů. Opět lze analogicky definovat CCR projekci na efektivní hranici jako x^ = XA*,yq/ = YA*. □ i5" CCR model orientovaný na výstupy Pro jednotku Uq můžeme také formulovat CCR model orientovaný na výstupy, zapišme jej rovnou v upravené duální podobě: z = 0 + £-(e-s++e - s-) maxQX,s+, s-za omezení S = Xq — XA, s+ = YA-0yq, A, s+, S" > 0 Pokud je 0* > 1, jednotka Uq není efektivní a hodnota 0* vyjadřuje potřebnou míru proporcionálního navýšení vstupů. Opět lze analogicky definovat CCR projekci na efektivní hranici jako x^ = XA*,yq' = YA*. V CCR modelech platí, že míry efektivnosti jednotky Uq při orientaci na vstupy či výstupy (tj. optimální hodnoty účelových funkcí modelů) jsou vzájemně převrácenými hodnotami 0* ■ 0* = 1 BCC model orientovaný na vstupy Jako modifikaci modelu CCR, který předpokládá konstantní výnosy z rozsahu a definuje tak kónický obal dat, navrhli Banker, Charnes a Cooper model využívající variabilní výnosy z rozsahu, tzv. BCC model. Při tomto přístupu jsou data obalována konvexním obalem, jako virtuální jednotky se neuvažují libovolné nezáporné kombinace XA, YA, ale pouze kombinace splňující podmínku eA = 1 . Díky této dodatečné podmínce vychází zpravidla jako efektivní větší počet hodnocených jednotek. BCC model orientovaný na vstupy Jako modifikaci modelu CCR, který předpokládá konstantní výnosy z rozsahu a definuje tak kónický obal dat, navrhli Banker, Charnes a Cooper model využívající variabilní výnosy z rozsahu, tzv. BCC model. Při tomto přístupu jsou data obalována konvexním obalem, jako virtuální jednotky se neuvažují libovolné nezáporné kombinace XA, YA, ale pouze kombinace splňující podmínku eA = 1 . Díky této dodatečné podmínce vychází zpravidla jako efektivní větší počet hodnocených jednotek. Uveďme formulaci duálního BCC modelu orientovaného na vstupy: z = /9-£-(e-s+ + e- s~) minox,s+, s-za omezení S = OXq — XA, s+ = YA - yq, eA = 1 A, s+, s- > 0 BCC model orientovaný na vstupy Jako modifikaci modelu CCR, který předpokládá konstantní výnosy z rozsahu a definuje tak kónický obal dat, navrhli Banker, Charnes a Cooper model využívající variabilní výnosy z rozsahu, tzv. BCC model. Při tomto přístupu jsou data obalována konvexním obalem, jako virtuální jednotky se neuvažují libovolné nezáporné kombinace XA, YA, ale pouze kombinace splňující podmínku eA = 1 . Díky této dodatečné podmínce vychází zpravidla jako efektivní větší počet hodnocených jednotek. Uveďme formulaci duálního BCC modelu orientovaného na vstupy: z = /9-£-(e-s+ + e- s~) minox,s+, s-za omezení S = OXq — XA, s+ = YA - yq, eA = 1 A, s+, s- > 0 Jako BCC efektivní jsou identifikovány ty jednotky, pro něž je 0* = 1 s+* = 0,s* = 0. Další DEA modely Kromě základních DEA modelů byla navržena řada jejich modifikací, mimo jiné: • aditivní, též SBM (Slack-Based Measure) model: nenutí uživatele rozlišovat mezi orientací na vstupy nebo výstupy, měří efektivnost přímo pomocí přídavných proměnných s~, s+ • DEA modely s nekontrolovatelnými výstupy a vstupy • DEA modely s nežádoucími výstupy a vstupy a Modely superefektivnosti • diskrétní modely, např. FDH (Free Disposable Hull) model • pro hodnocení změn efektivnosti v čase navržený Malmquistův index Metody jsou podrobněji popsány v použité literatuře: • J. Jablonský, M. Dlouhý: Modely hodnocení produkčních jednotek, Professional Publishing, Praha 2004 o W. W. Cooper, L. M. Seiford, K. Tone: Data Envelopement Analysis, Springer, New York 2007 Použití DEA k hodnocení efektivnosti dopravních podniků Údaje z výroční zprávy Sdružení dopravních podniků za rok 2012 (http://www.sdp-cr.cz/o-nas/vyrocni-zpravy/) byly použity k hodnocení efektivnosti podniků z 19 měst. V první tabulce jsou uvedeny údaje v následujícím pořadí: • počet přepravených osob (tis. osob) • tržby (tis. Kč) • vozové kilometry (tis.) počet zaměstnanců • z toho řidičů Druhá tabulka popisuje vozový park. město přeprav. tržby vozokm zamést. Vi I ■ v o ndicu 1. Brno 352 052 994 040 38 118 2 727 1 375 2. České Budějovice 38 091 129 059 5 673 384 187 3. Děčín 8 938 42 731 3 678 207 132 4. Hradec Králové 35 162 120 854 6 242 401 226 5. Chomutov-Jirkov 5 223 50 367 1 838 253 163 6. Jihlava 13 530 50 232 2 821 170 94 7. Karlovy Vary 13 436 65 174 2 624 260 148 8. Liberec 32 656 192 236 8 648 377 169 9. Mariánské Lázně 3 844 11 439 495 30 19 10. Most-Litvínov 27 418 110 059 4 908 471 216 11. Olomouc 52 737 143 318 5 902 432 255 12. Opava 10 750 50 476 3 046 180 115 13. Ostrava 96 389 519 873 33 773 2 008 1 026 14. Pardubice 27 178 119 280 5 721 406 189 15. Plzeň 99 154 300 097 15 102 1 030 570 16. Praha 1 383 124 4 508 422 167 760 10 595 4 207 17. Teplice 15 039 94 159 5 726 265 176 18. Ustí nad Labem 47 091 203 278 7 347 501 253 19. Zlín-Otrokovice 32 335 119 506 4812 340 184 město autobusy tramvaje trolejbusy metro celkem 1. Brno 298 309 151 0 758 2. České Budějovice 83 0 58 0 141 3. Děčín 55 0 0 0 55 4. Hradec Králové 95 0 36 0 131 5. Chomutov-Jirkov 29 0 19 0 48 6. Jihlava 32 0 32 0 64 7. Karlovy Vary 67 0 0 0 67 8. Liberec 139 68 0 0 207 9. Mariánské Lázně 4 0 9 0 30 10. Most-Litvínov 80 57 0 0 137 11. Olomouc 77 60 0 0 137 12. Opava 34 0 34 0 68 13. Ostrava 297 273 62 0 632 14. Pardubice 73 0 55 0 128 15. Plzeň 113 122 88 0 323 16. Praha 1214 920 0 738 2872 17. Teplice 65 0 38 0 103 18. Ustí n. Labem 73 0 68 0 141 19. Zlín-Otrokovice 37 0 57 0 94 Použití DEA k hodnocení efektivnosti dopravních podniků Jako vstupy pro analýzu byly použity celkové počty zaměstnanců a celkový vozový park, jako výstupy počty přepravených osob, tržby a ujeté vozové kilometry. Byl zvolen model CCR orientovaný na vstupy, výpočty byly realizovány prostřednictvím doplňku Solver pro MS Excel a aplikace pro DEA (http://nb.vse.cz/ jabloň/) Použití DEA k hodnocení efektivnosti dopravních podniků Jako vstupy pro analýzu byly použity celkové počty zaměstnanců a celkový vozový park, jako výstupy počty přepravených osob, tržby a ujeté vozové kilometry. Byl zvolen model CCR orientovaný na vstupy, výpočty byly realizovány prostřednictvím doplňku Solver pro MS Excel a aplikace pro DEA (http://nb.vse.cz/ jabloň/) Výsledky jsou uvedeny v následující tabulce, červeně jsou vyznačeny podniky, které vyšly jako efektivní. město efektivnost čísla refer. jednot. 1. Brno 0,9889 16 2. České Budějovice 0,833 8 9 16 3. Děčín 1 3 4. Hradec Králové 0,8546 8 16 17 5. Chomutov-Jirkov 0,6684 16 6. Jihlava 0,8493 8 16 17 7. Karlovy Vary 0,6592 3 16 8. Liberec 1 8 9. Mariánské Lázně 1 9 10. Most-Litvínov 0,6092 3 16 17 11. Olomouc 0,9351 16 12. Opava 0,8209 8 16 17 13. Ostrava 0,8838 3 16 17 14. Pardubice 0,7743 3 16 17 15. Plzeň 0,8426 8 16 17 16. Praha 1 16 17. Teplice 1 17 18. Ustí n. Labem 0,9465 8 16 19. Zlín-Otrokovice 0,8695 3 16 17 □ S1 Tato kapitola je zpracována podle učebnic Fajmon B., Koláček J.: Pravděpodobnost, statistika a operační výzkum a Gros I. ,Dytnar J.: Matematické modely pro manažerské rozhodování. Nejčastějším typem modelů řízení zásob jsou nákladově orientované modely, jejichž cílem je minimalizace nákladů spojených s pořízením zásob a s jejich skladováním, popř. minimalizace ztrát vzniklých z nedostatku zásob. Modely řízení zásob Tato kapitola je zpracována podle učebnic Fajmon B., Koláček J.: Pravděpodobnost, statistika a operační výzkum a Gros I. ,Dytnar J.: Matematické modely pro manažerské rozhodování. Nejčastějším typem modelů řízení zásob jsou nákladově orientované modely, jejichž cílem je minimalizace nákladů spojených s pořízením zásob a s jejich skladováním, popř. minimalizace ztrát vzniklých z nedostatku zásob. Důležitým pojmem v teorii zásob je poptávka, která může být buď jednoznačně určena, nebo může představovat náhodnou veličinu se známým rozdělením pravděpodobnosti. Náhodný charakter může mít i čas, který uplyne od vystavení a odeslání objednávky do okamžiku, kdy zásoba skutečně přijde na sklad. Tento časový interval se nazývá pořizovací lhůta dodávky (též předstih objednávky). Klasifikace modelů zásob Podle typu poptávky po zboží rozdělujeme matematické modely na: O deterministické - je známa velikost poptávky zboží O statické - velikost poptávky je konstantní O dynamické - velikost poptávky je v různých obdobích rovna různým konstantám O pravděpodobnostní - poptávka (případně další veličiny) přesné není známa, pouze hustota (nebo pravděpodobnostní funkce), která vyjadřuje jistou pravděpodobnou hodnotu poptávky O stacionární - hustota (nebo pstní funkce) poptávky se nemění v čase Q nestacionární - hustota (nebo pstní funkce) v čase mění svůj tvar Model pro jednu položku s okamžitou dodávkou Předpoklady modelu: • zásoby se doplňují v jednom časovém okamžiku, vždy v okamžiku vyčerpání je předem znám požadavek na nakupovanou položku za celé zásobovací období (Q) • jsou známy fixní objednací náklady(c2) a jednotkové skladovací náklady (C1 ) • v důsledku konstantní poptávky je čerpání zásob rovnoměrné • nákupní cena je nezávislá na velikosti objednávky Budeme používat ještě další značení: m T ... doba, po kterou sledujeme zásobovací proces (zpravidla jeden rok) • t... délka dodacího cyklu (doba mezi dvěma dodávkami) • q ... velikost jedné objednávky 9 d ... předstih objednávky • r ... bod znovuobjednávky nebo též objednací úroveň (velikost zásob, při které je nutné vystavit objednávku) Budeme používat ještě další značení: • T ... doba, po kterou sledujeme zásobovací proces (zpravidla jeden rok) % t... délka dodacího cyklu (doba mezi dvěma dodávkami) • q ... velikost jedné objednávky m d ... předstih objednávky • r ... bod znovuobjednávky nebo též objednací úroveň (velikost zásob, při které je nutné vystavit objednávku) t Model pro jednu položku s okamžitou dodávkou Za uvedených předpokladů je možné určit, v jak velkých dodávkách (q) a jak často (ŕ) by měl majitel zásob položku objednávat, aby náklady spojené s pořizováním a udržováním zásob byly co nejnižší. Obě proměnné jsou spolu svázány vztahem t/T = g/Q, takže úloha jde převést na jednorozměrný problém. Model pro jednu položku s okamžitou dodávkou Za uvedených předpokladů je možné určit, v jak velkých dodávkách (q) a jak často (ŕ) by měl majitel zásob položku objednávat, aby náklady spojené s pořizováním a udržováním zásob byly co nejnižší. Obě proměnné jsou spolu svázány vztahem t/T = g/Q, takže úloha jde převést na jednorozměrný problém. Během jednoho dodacího cyklu nabývají objednací náklady a skladovací náklady dohromady hodnoty c2 + Ci fr. Protože počet dodacích cyklů za skladovací období T je roven podílu Q/g, pro nákladovou funkci za celé toto období platí_ C(g, ŕ) = (<% + cifŕ)-? Model pro jednu položku s okamžitou dodávkou Za uvedených předpokladů je možné určit, v jak velkých dodávkách (g) a jak často (ŕ) by měl majitel zásob položku objednávat, aby náklady spojené s pořizováním a udržováním zásob byly co nejnižší. Obě proměnné jsou spolu svázány vztahem t/T = g/Q, takže úloha jde převést na jednorozměrný problém. Během jednoho dodacího cyklu nabývají objednací náklady a skladovací náklady dohromady hodnoty c2 + Ci fr. Protože počet dodacích cyklů za skladovací období T je roven podílu Q/g, pro nákladovou funkci za celé toto období platí_ C(g, ŕ) = (<% + cifŕ)-? Tuto funkci chceme minimalizovat za omezení t/T = q/Q, vyjádříme-li z tohoto vztahu t a dosadíme do nákladové funkce, dostaneme C(Q)=(cfe + c|§).f =Cfef+ C Si 2 ' Model pro jednu položku s okamžitou dodávkou Znázorněme graf funkce C (q) = c2^ + Ci Náklady na pořízení jsou nepřímo úměrné q, kdežto skladovací náklady rostou lineárně s rostoucím q. velikost objednávky Model pro jednu položku s okamžitou dodávkou Znázorněme graf funkce C (q) = c2^ + Ci Náklady na pořízení jsou nepřímo úměrné q, kdežto skladovací náklady rostou lineárně s rostoucím q. velikost objednávky Lze ukázat, že funkce celkových nákladů je konvexní, pro nalezení minima tedy stačí nalézt stacionární bod. Model pro jednu položku s okamžitou dodávkou Podmínka pro Optimální velikosti objednávky g* (v angloamerické literatuře značena EOQ = Economic Order Quantity): C\q) = -c2^ + c^ = 0, odtud vyjádříme q* = \J^y, (tzv. Wilsonův nebo Harrisův vzorec). Celkové náklady dosahují v g* svého minima C(g*) = VŽč^QT. Optimální délka dodacího cyklu, počítaná ze vztahu ř* = je pak dána výrazem ř* = y^Q-- V případě, že d < ŕ*, lze odvodit vzorec pro výši zásob, při které je nutné vystavit objednávku, aby byla vyřízena do okamžiku vyčerpání zásob: r* = Qd/T Model pro jednu položku s okamžitou dodávkou, příklad Příklad : Podnik potřebuje pro výrobu ročně 18 tisíc kusů úzkoprofilových součástek. Fixní náklady na jednu objednávku činí 1 tis. Kč, náklady na skladování jednoho kusu za rok činí 1 Kč. Průměrná pořizovací lhůta dodávky je 2 měsíce. Určete g*, ŕ*, C(g*), ŕ Model pro jednu položku s okamžitou dodávkou, příklad Příklad : Podnik potřebuje pro výrobu ročně 18 tisíc kusů úzkoprofilových součástek. Fixní náklady na jednu objednávku činí 1 tis. Kč, náklady na skladování jednoho kusu za rok činí 1 Kč. Průměrná pořizovací lhůta dodávky je 2 měsíce. Určete g*, ŕ*, C(g*), ŕ Řešení: Dosadíme do q* = y^gf = ^ooo-isooo = 6000 ks. Potom C{q*) = V2c2CiQr = V2000- 18000 = 6000/C. Dále ř* = \j^cfu = yji§m = 1 /3 roku' tec|y 4 měsíce. Protože d < ŕ*, můžeme použít vzorec pro výpočet r*. Nejprve vyjádříme d v kompatibilních jednotkách, tj. d = 1 /6 roku. Dostaneme r* = Qd/T = 18000/6 = 3000 ks. Model zásob s prechodne neuspokojenou poptávkou Uvažujme modifikaci předchozího modelu, kdy připustíme přechodný nedostatek zásoby na skladě. Potom: • Dodávkový cyklus se rozpadá na dva intervaly, v prvním intervalu délky U dochází k čerpání zásoby, ve druhém intervalu délky ř2 nebudou požadavky na čerpání uspokojeny. Celková délka cyklu je pak t = U + fe- • Celkovou výši neuspokojené poptávky v intervalu ř2 označíme jako s. Model předpokládá, že tato poptávka bude uspokojena ihned po příchodu nejbližší dodávky. Z celkového objemu dodávky tedy půjde do skladu jen q - s. Model zásob s prechodne neuspokojenou poptávkou Uvažujme modifikaci předchozího modelu, kdy připustíme přechodný nedostatek zásoby na skladě. Potom: • Dodávkový cyklus se rozpadá na dva intervaly, v prvním intervalu délky U dochází k čerpání zásoby, ve druhém intervalu délky ř2 nebudou požadavky na čerpání uspokojeny. Celková délka cyklu je pak t = U + fe- • Celkovou výši neuspokojené poptávky v intervalu ř2 označíme jako s. Model předpokládá, že tato poptávka bude uspokojena ihned po příchodu nejbližší dodávky. Z celkového objemu dodávky tedy půjde do skladu jen q - s. Průběh dodávkových cyklů je znázorněn na obrázku. -q - s výše zásob íi \ h \ čas s i i \ / Model zásob s prechodne neuspokojenou poptávkou Nákladová funkce modelu je součtem tří položek: • Skladovací náklady - v rámci jednoho dodávkového cyklu je lze spočítat jako součin průměrné zásoby jednotkových skladovacích nákladů Ci a doby U, po kterou je zásoba čerpána. Ci ^ U ■ • V každém cyklu vznikají fixní pořizovací náklady ve výši c2 . • Náklady z nedostatku zásoby - lze vyjádřit jako součin průměrného nedostatku zásoby f, jednotkových nákladů c3 a doby r2, po kterou není zásoba k dispozici c3|ř2 . Model zásob s prechodne neuspokojenou poptávkou Nákladová funkce modelu je součtem tří položek: • Skladovací náklady - v rámci jednoho dodávkového cyklu je lze spočítat jako součin průměrné zásoby jednotkových skladovacích nákladů Ci a doby U, po kterou je zásoba čerpána. Ci ^ U ■ • V každém cyklu vznikají fixní pořizovací náklady ve výši c2 . • Náklady z nedostatku zásoby - lze vyjádřit jako součin průměrného nedostatku zásoby f, jednotkových nákladů c3 a doby r2, po kterou není zásoba k dispozici c3|ř2 . Výsledná nákladová funkce má potom tvar C(s, q) = c^^U + c2 + c3|ř2^- Model zásob s prechodne neuspokojenou poptávkou Nákladová funkce modelu je součtem tří položek: • Skladovací náklady - v rámci jednoho dodávkového cyklu je lze spočítat jako součin průměrné zásoby jednotkových skladovacích nákladů Ci a doby U, po kterou je zásoba čerpána. Ci ^ U ■ • V každém cyklu vznikají fixní pořizovací náklady ve výši c2 . • Náklady z nedostatku zásoby - lze vyjádřit jako součin průměrného nedostatku zásoby f, jednotkových nákladů c3 a doby t2, po kterou není zásoba k dispozici c3|ř2 . Výsledná nákladová funkce má potom tvar C(s, q) = c^^U + c2 + P3§ fe^- V uvedeném vztahu kromě proměnných s, q figurují ještě časové charakteristiky U a t2. Tyto můžeme ale pomocí vztahu t = ^ a díky vlastnostem podobných trojúhelníků vyjádřit jako ŕ q ~^ 41 g Q Q'ŕ g ^ 42 qQ O * Po dosazení výsledných vztahů do nákladové funkce dostaneme výslednou podobu_ C(s,q) = Ci^ + c2Z + c3fq. Optimální výše dodávky v modelu přechodně neuspokojenou poptávkou Optimální hodnoty g* a s* najdeme tak, že položíme parciální derivace funkce C(s, q) rovny nule, dostaneme tak Optimální výše dodávky v modelu přechodně neuspokojenou poptávkou Optimální hodnoty g* a s* najdeme tak, že položíme parciální derivace funkce C(s, q) rovny nule, dostaneme tak Všimněme si, že vzorec je pouhou modifikací výsledku modelu s okamžitou dodávkou o konstantu závisející pouze na nákladových parametrech Ci a c3. Optimální výše dodávky v modelu přechodně neuspokojenou poptávkou Optimální hodnoty g* a s* najdeme tak, že položíme parciální derivace funkce C(s, q) rovny nule, dostaneme tak Všimněme si, že vzorec je pouhou modifikací výsledku modelu s okamžitou dodávkou o konstantu závisející pouze na nákladových parametrech Ci a c3. Označíme-li a = {j- pravděpodobnost vyřízení požadavku a /3 = *-f pravděpodobnost, že požadavek bude muset čekat, máme 8 = ^ = -*— a = 1 - 6 = °3 Optimální výše dodávky v modelu přechodně neuspokojenou poptávkou Optimální hodnoty g* a s* najdeme tak, že položíme parciální derivace funkce C(s, q) rovny nule, dostaneme tak Všimněme si, že vzorec je pouhou modifikací výsledku modelu s okamžitou dodávkou o konstantu závisející pouze na nákladových parametrech Ci a c3. Označíme-li a = {j- pravděpodobnost vyřízení požadavku a /3 = *-f pravděpodobnost, že požadavek bude muset čekat, máme 8 = ^ = -*— a = 1 - 6 = °3 Pomocí těchto pravděpodobností lze vyjádřit též optimální výši nákladů a délku dodávkového cyklu: ŕ* — a!. — /žčT ,/gi+Q3 _ /ičT /i 1 ~ q ~ V Qci V c3 ~~ V Qci v«■ Produkčně-spotřební model (POQ) V tomto modelu narozdíl od modelu s okamžitou dodávkou nepřichází dodávka do skladu v jednom okamžiku, ale postupně. Celý dodávkový cyklus se nám pak rozpadá na výrobní a spotřební část. V první části o délce U se rovnoměrně doplňuje sklad a současně dochází k jeho čerpání (předpokládá se větší intenzita produkce než spotřeby). Ve druhé části o délce ř2 se pouze čerpá zásoba ze skladu - po jejím vyčerpání startuje nový cyklus, (nepředpokládá se možnost vzniku nedostatku jako ve druhém modelu). Produkčně-spotřební model (POQ) V tomto modelu narozdíl od modelu s okamžitou dodávkou nepřichází dodávka do skladu v jednom okamžiku, ale postupně. Celý dodávkový cyklus se nám pak rozpadá na výrobní a spotřební část. V první části o délce U se rovnoměrně doplňuje sklad a současně dochází k jeho čerpání (předpokládá se větší intenzita produkce než spotřeby). Ve druhé části o délce ř2 se pouze čerpá zásoba ze skladu - po jejím vyčerpání startuje nový cyklus, (nepředpokládá se možnost vzniku nedostatku jako ve druhém modelu). Průběh závislosti stavu zásob na čase je zřejmý z obrázku. výše zásob Produkčně-spotřební model (POQ) Použijme stejné označení jako v původním modelu, nákladová funkce C(q) bude mít opět podobnou strukturu (jde o kombinaci skladovacích a výrobních nákladů, kde jednotkové skladovací náklady označujeme Ci a fixní náklady jedné výrobní dávky Produkčně-spotřební model (POQ) Použijme stejné označení jako v původním modelu, nákladová funkce C(q) bude mít opět podobnou strukturu (jde o kombinaci skladovacích a výrobních nákladů, kde jednotkové skladovací náklady označujeme Ci a fixní náklady jedné výrobní dávky Označme ještě symbolem p intenzitu produkce a h intenzitu spotřeby. Pak se za U dnů, po které trvá produkční cyklus, dosáhne maximální zásoby (p - h)U ■ Produkčně-spotřební model (POQ) Použijme stejné označení jako v původním modelu, nákladová funkce C(q) bude mít opět podobnou strukturu (jde o kombinaci skladovacích a výrobních nákladů, kde jednotkové skladovací náklady označujeme Ci a fixní náklady jedné výrobní dávky Označme ještě symbolem p intenzitu produkce a h intenzitu spotřeby. Pak se za U dnů, po které trvá produkční cyklus, dosáhne maximální zásoby (p - h)U ■ Celkový objem produkce v rámci jedné výrobní dávky je q. Tento objem však můžeme též vyjádřit jako součin intenzity produkce p a délky výrobního cyklu ři. Odtud tedy h = ^. Takže dostaneme vztah pro průměrnou výši zásoby Nyní již můžeme konkretizovat obecný tvar nákladové funkce: C(g) = o,fi=4f+ <*§. Produkčně-spotřební model (POQ) Použijme stejné označení jako v původním modelu, nákladová funkce C(q) bude mít opět podobnou strukturu (jde o kombinaci skladovacích a výrobních nákladů, kde jednotkové skladovací náklady označujeme Ci a fixní náklady jedné výrobní dávky Označme ještě symbolem p intenzitu produkce a h intenzitu spotřeby. Pak se za U dnů, po které trvá produkční cyklus, dosáhne maximální zásoby (p - h)U ■ Celkový objem produkce v rámci jedné výrobní dávky je q. Tento objem však můžeme též vyjádřit jako součin intenzity produkce p a délky výrobního cyklu U ■ Odtud tedy h = ^. Takže dostaneme vztah pro průměrnou výši zásoby Nyní již můžeme konkretizovat obecný tvar nákladové funkce: Optimální objem výrobní dávky g* se odvodí opět jako nulový bod derivace. c(Q) = cfi=sf + cfef. C* = V2Qci c2 v/ p-h p Model pro jednu položku s diskontními cenami Předpoklady použití modelu jsou stejné jako u předchozího modelu až na to, že do celkové ceny se navíc započítává i fakt, že při větším objednaném množství klesá cena jednotky zboží. Označme standardní a diskontní cenu Pí, resp. p2 < Pí když nárok na nižší cenu vzniká při objednávce alespoň q0 jednotek zboží. Nákladovou funkci musíme vyjádřit ve složitějším tvaru, který zohlední různé pořizovací ceny: c( , = í Hq) = fhQ+C2% + ci$, qq0 Obě funkce U, f2 nabývají svého minima ve stejném bodě g* = ^^2, důležitou roli hraje též množství pro které platí U(q*) = /bÍQ*')- Model pro jednu položku s diskontními cenami Body q*, q*/ splňující U (<7*) = feÍQ*') rozdelí vodorovnou osu na tři části Řešení modelu závisí na tom, ve které z částí se nachází kritické množství od kterého dochází k diskontnímu snížení ceny jednotky zboží z na p2. náklady q* q*' množství Model pro jednu položku s diskontními cenami O I Pro Qo < Q* minimum nastává v q* a jeho hodnota bude /b(9*). O II Pro q* > Qo < Q*' minimum nastává při objednání kritického množství Qo, viz obrázek. O IN Pro q*/ > Qo minimum nastává v q* a jeho hodnota bude ri(Q*). náklady množství Model pro jednu položku s diskontními cenami Příklad : Rozhodněte o optimální velikosti objednávky při následujících údajích: c2 = 10 Kč, Ci =1 Kč, po dobu sledovaného období je konstantní poptávka ve výši 5 jednotek zboží na den (tj. Q/T = 5), Pí = 2 Kč, p2 = 1 Kč, <7o = 15 jednotek. □ s Model pro jednu položku s diskontními cenami Příklad : Rozhodněte o optimální velikosti objednávky při následujících údajích: c2 = 10 Kč, Ci =1 Kč, po dobu sledovaného období je konstantní poptávka ve výši 5 jednotek zboží na den (tj. Q/T = 5), Pí = 2 Kč, p2 = 1 Kč, <7o = 15 jednotek. Řešení: Spočteme q* = y^gf = ^20 • 5/1 = 10. Vzhledem k tomu, že <7o > g*, nejedná se o případ I a musíme dále určit q*/ z podmínky U (Q*) = Pí Q + c2^ + ci £1 = f2(q*') = p2Q + c2^T + ^^. Dostaneme rovnici 2Q+ 10^ + ^ = Q + 10^7 + Po vydělení 7 máme: Model pro jednu položku s diskontními cenami Příklad : Rozhodněte o optimální velikosti objednávky při následujících údajích: c2 = 10 Kč, Ci =1 Kč, po dobu sledovaného období je konstantní poptávka ve výši 5 jednotek zboží na den (tj. Q/T = 5), Pí = 2 Kč, p2 = 1 Kč, <7o = 15 jednotek. Řešení: Spočteme q* = y^gf = ^20 • 5/1 = 10. Vzhledem k tomu, že <7o > g*, nejedná se o případ I a musíme dále určit q*/ z podmínky U (Q*) = Pí Q + c2^ + ci £1 = f2(q*') = p2Q + c2^T + ^^. Dostaneme rovnici 2q + 10^ + ^ = Q + 10^7 + Po vydělení 7 máme: 10 + 5 + 5 = 5+ |^ + ^, což lze převést na kvadratickou rovnici: - 1 5q*/ + 50 = 0. Její kořeny jsou q*\ 2 = 15 ± v125. zajímá nás pouze druhý kořen, q*f2 = 15 + 5\/3 a tento je větší než g0, jedná se tedy o případ II a optimum nastává pro q0 = 15 ks. Stochastický model Uvedeme si jeden z nejjednodušších stochastických modelů - model jednorázově vytvářené zásoby při náhodné poptávce. Tento model je vhodný pro zboží, které po jisté době zastarává - např. pro módní nebo sezónní výrobky, pečivo, ovoce, zeleninu, řezané květiny, noviny, náhradní součásti unikátních strojů apod. Předpokládejme, že pro dané časové období bylo zakoupeno zboží v množství q a že poptávka po tomto zboží představuje diskrétní náhodnou veličinu D, která nabývá hodnot d = 0, ..., oo. Po skončení uvažovaného období mohou nastat dvě krajní situace: • D < q, neboli zůstane neprodáno q - D jednotek zboží 9 D> g, neboli bude chybět D - q jednotek zboží Stochastický model Ztráty vzniklé z přebytku nebo z nedostatku zboží v uvažovaném období jsou závislé jednak na rozdílu mezi zakoupeným množstvím zboží a poptávkou, jednak na velikosti ztrát z jednotky přebývajícího množství (označme ji cs) a nedostávajícího se množství zboží (označme ji cz). Známe-li pravděpodobnost, s jakou poptávka po zboží v daném období nabude hodnoty d (označme ji P(D = d)), pro očekávanou celkovou ztrátu z přebytku nebo z nedostatku zboží při počáteční zásobě q platí_ EC(q) = cs IXo (q - d)P{D = d) + cz £~ , (d - q)P{D = d) Stochastický model Ztráty vzniklé z přebytku nebo z nedostatku zboží v uvažovaném období jsou závislé jednak na rozdílu mezi zakoupeným množstvím zboží a poptávkou, jednak na velikosti ztrát z jednotky přebývajícího množství (označme ji cs) a nedostávajícího se množství zboží (označme ji cz). Známe-li pravděpodobnost, s jakou poptávka po zboží v daném období nabude hodnoty d (označme ji P(D = d)), pro očekávanou celkovou ztrátu z přebytku nebo z nedostatku zboží při počáteční zásobě q platí Jestliže neuvažujeme náklady na pořízení zásob (provádí se pouze jedna objednávka) a na skladování (předpokládáme, že skladovací doba není dlouhá), cílem řešení uvažovaného modelu je stanovení takové výše počáteční zásoby (a tudíž i velikosti jednorázové dodávky zboží), aby očekávaná ztráta byla minimální. Pro optimální hodnotu objednávky g* lze odvodit vztah EC{q) = cs £3=o (q - d)P{D = d) + cz £ oo d=g+1 (d-q)P(D = d) P{D< q- 1) < Cs+Cz < P(D < q) Stochastický model Při známých ztrátách cz a cs hodnotu g* určíme z uvedeného vztahu tak, že při daném rozdělení pravděpodobnosti poptávky spočítáme kumulativní pravděpodobnosti (hodnoty distribuční funkce) a najdeme takové dvě jejich sousední hodnoty, aby mezi nimi ležela hodnota zlomku Tento zlomek představuje tzv. úroveň obsluhy, tzn. pravděpodobnost, že nedojde k nedostatku zásob. Stochastický model Příklad : Prodejce vánočních stromků se rozhoduje, kolik stromků má objednat u lesního závodu. Na základě zkušeností z minulých let odhaduje zájem o stromky tak, jak je uvedeno v tabulce. Poptávka (ks) 120 140 160 180 200 Pravděpodobnost 0,05 0,10 0,25 0,35 0,25 Stochastický model Příklad : Prodejce vánočních stromků se rozhoduje, kolik stromků má objednat u lesního závodu. Na základě zkušeností z minulých let odhaduje zájem o stromky tak, jak je uvedeno v tabulce. Poptávka (ks) 120 140 160 180 200 Pravděpodobnost 0,05 0,10 0,25 0,35 0,25 Jestliže nebudou všechny stromky prodány, po Vánocích mohou být nabídnuty do zoologické zahrady nebo do zahradnictví, přičemž prodejce by tratil na každém stromku 80 Kč. Na stejnou částku prodejce odhadl i ušlý zisk z jednoho nedostávajícího se stromku v případě, že by zájem o stromky převýšil jejich objednaný počet. Při jakém počtu dodaných stromků budou očekávané ztráty z jejich přebytku nebo nedostatku co nejmenší? Stochastický model Příklad : Prodejce vánočních stromků se rozhoduje, kolik stromků má objednat u lesního závodu. Na základě zkušeností z minulých let odhaduje zájem o stromky tak, jak je uvedeno v tabulce. Poptávka (ks) 120 140 160 180 200 Pravděpodobnost 0,05 0,10 0,25 0,35 0,25 Jestliže nebudou všechny stromky prodány, po Vánocích mohou být nabídnuty do zoologické zahrady nebo do zahradnictví, přičemž prodejce by tratil na každém stromku 80 Kč. Na stejnou částku prodejce odhadl i ušlý zisk z jednoho nedostávajícího se stromku v případě, že by zájem o stromky převýšil jejich objednaný počet. Při jakém počtu dodaných stromků budou očekávané ztráty z jejich přebytku nebo nedostatku co nejmenší? Řešení: Vyplníme tabulku kumulativních pravděpodobností: q 120 140 160 180 200 P(D < q) 0,05 0,15 0,40 0,75 1 Spočteme podíl = \. Vidíme, že tento podíl leží mezi hodnotami 0,4 a 0,75, což odpovídá množstvím 160 a 180, volíme tedy g* = 180 ks. Numerická optimalizace Řadu problémů není možné řešit analyticky (neznalost analytického vyjádření, mnoho proměnných, složité funkce - nelineární rovnice při určování stacionárních bodů) nebo by bylo analytické řešení příliš výpočetně náročné a tudíž neefektivní. Často nám stačí nalézt pouze přibližné řešení (v reálném světě stejně zaokrouhlujeme). Proto se v praxi používají metody iterační. Jejich charakteristikou je konstrukce posloupnosti bodů definičního oboru x°, x1, x2,..., které se blíží k optimálnímu řešení x*. Nasazení těchto metod pro vyhledání extrému je velice výhodné v kombinaci s výpočetní technikou. Numerická optimalizace Řadu problémů není možné řešit analyticky (neznalost analytického vyjádření, mnoho proměnných, složité funkce - nelineární rovnice při určování stacionárních bodů) nebo by bylo analytické řešení příliš výpočetně náročné a tudíž neefektivní. Často nám stačí nalézt pouze přibližné řešení (v reálném světě stejně zaokrouhlujeme). Proto se v praxi používají metody iterační. Jejich charakteristikou je konstrukce posloupnosti bodů definičního oboru x°, x1, x2,..., které se blíží k optimálnímu řešení x*. Nasazení těchto metod pro vyhledání extrému je velice výhodné v kombinaci s výpočetní technikou. Existuje řada metod, a to jak pro funkce jedné proměnné, tak pro více proměnných. Zřejmě nejznámější jsou pro funkce jedné proměnné: • metoda bisekce intervalu • metoda zlatého řezu a metoda kvadratické interpolace o Newtonova metoda • metoda Regula falši Jednorozměrná optimalizace - komparativní metody Nejprve se zaměřme na metody jednorozměrné numerické optimalizace , ty jsou totiž součástí některých vícerozměrných metod. Metody nevyžadující výpočet derivace funkce f nazýváme komparativní. Uvedeme tři z nich, a to trisekci, metodu zlatého řezu a metodu kvadratické interpolace. Většinou je třeba předem přibližně určit polohu bodu optima a stanovit počáteční interval / = (a, b) tak, aby na změněném intervalu účelová funkce f měla jen jedno minimum, tj. byla unimodální. V jednotlivých iteracích nahrazujeme krajní body intervalu obsahujícího minimum novými body, tak abychom jej postupně zužovali. Jako odhad bodu optima se vezme střed posledního intervalu ln = (a", bn) . Jednorozměrná optimalizace - komparativní metody Nejprve se zaměřme na metody jednorozměrné numerické optimalizace , ty jsou totiž součástí některých vícerozměrných metod. Metody nevyžadující výpočet derivace funkce f nazýváme komparativní. Uvedeme tři z nich, a to trisekci, metodu zlatého řezu a metodu kvadratické interpolace. Většinou je třeba předem přibližně určit polohu bodu optima a stanovit počáteční interval / = (a, b) tak, aby na změněném intervalu účelová funkce f měla jen jedno minimum, tj. byla unimodální. V jednotlivých iteracích nahrazujeme krajní body intervalu obsahujícího minimum novými body, tak abychom jej postupně zužovali. Jako odhad bodu optima se vezme střed posledního intervalu ln = (a" bm U všech iteračních metod musíme předem nastavit nějaké pravidlo ukončení výpočtu. Metody většinou vyžadují splnění jistých podmínek, za kterých platí, že čím více iteračních kroků provedeme, tím přesnější odhad hledaného extrému získáme. Možné přístupy, kdy výpočet ukončit jsou například: • po provedení zadaného počtu kroků • dosažením stanovené přesnosti e (tedy když šířka intervalu ln splňuje: \bn-an\ <2e) Jednorozměrná optimalizace - metoda trisekce Jako úvodní motivaci ukážeme intervalovou trisekci . f(b) --1-1— a b Označme d = (b- a). Jednorozměrná optimalizace - metoda trisekce Jako úvodní motivaci ukážeme intervalovou trisekci . f(b) -1-1-1— a u v b Body u = a + d/3 a v = b - d/3 dělí interval (a, b) na tři stejné části. Jednorozměrná optimalizace - metoda trisekce Nejprve vyhodnotíme f(u) a f(v). Předpokládejme, že f(u) < f(v). Jednorozměrná optimalizace - metoda trisekce Jako úvodní motivaci ukážeme intervalovou trisekci . /f(b) / 1 \ = =L = = V - ■ i ^jf(v) i i a = a' u v = b' b Minimum jistě leží vlevo od v, takže b nahradíme pomocí £>1 = v, levá hranice zůstává a1 = a. Tím se délka intervalu (obsahujícího minimum) zkrátí na dvě třetiny své původní délky. Dále pokračujeme s intervalem /1 = (a1, b1), atd. Bod u však už nelze v následujícím kroku využít. Funkci musíme vyhodnotit v každém kroku dvakrát, což je neefektivní. Jednorozměrná optimalizace - metoda zlatého řezu Metoda zlatého řezu je založena na šikovnějším výběru dělicích bodů u a v. Označme p číslo o něco větší než 1 /3, jehož přesnou hodnotu teprve určíme. Označme body u = a + pd a v = b - pd. Jednorozměrná optimalizace - metoda zlatého řezu Metoda zlatého řezu je založena na šikovnějším výběru dělicích bodů u a v. Označme p číslo o něco větší než 1 /3, jehož přesnou hodnotu teprve určíme. Označme body u = a + pd a v = b- pd. Předpokládejme opět, že f(u) < f (v), minimum je tedy mezi a a v. Nahradíme b pomocí v a proces opakujeme. Zvolíme-li správnou hodnotu p, bod u bude v pozici použitelné i v příštím kroku. Po prvním kroku se tak funkce f bude vyhodnocovat pokaždé už jen jednou. Jednorozměrná optimalizace - metoda zlatého řezu Metoda zlatého řezu je založena na šikovnějším výběru dělicích bodů u a v. Označme p číslo o něco větší než 1 /3, jehož přesnou hodnotu teprve určíme. Označme body u = a + pd a v = b- pd. Předpokládejme opět, že f(u) < f (v), minimum je tedy mezi a a v. Nahradíme b pomocí v a proces opakujeme. Zvolíme-li správnou hodnotu p, bod u bude v pozici použitelné i v příštím kroku. Po prvním kroku se tak funkce f bude vyhodnocovat pokaždé už jen jednou. Jak tedy zvolit p? Tak, aby bod u hrál v redukovaném intervalu (a, v) stejnou roli jako bod v v původním intervalu, tj. aby poměr délky intervalu (a, u) k délce intervalu (a, v) byl stejný jako poměr délky intervalu (a, v) k délce intervalu (a, b), tj. p : (1 - p) = (1 - p) : 1. Jednorozměrná optimalizace - metoda zlatého řezu Metoda zlatého řezu je založena na šikovnějším výběru dělicích bodů u a v. Označme p číslo o něco větší než 1 /3, jehož přesnou hodnotu teprve určíme. Označme body u = a + pd a v = b - pd. Předpokládejme opět, že f(u) < f (v), minimum je tedy mezi a a v. Nahradíme b pomocí v a proces opakujeme. Zvolíme-li správnou hodnotu p, bod u bude v pozici použitelné i v příštím kroku. Po prvním kroku se tak funkce f bude vyhodnocovat pokaždé už jen jednou. Jak tedy zvolit p? Tak, aby bod u hrál v redukovaném intervalu (a, v) stejnou roli jako bod v v původním intervalu, tj. aby poměr délky intervalu (a, u) k délce intervalu (a, v) byl stejný jako poměr délky intervalu (a, v) k délce intervalu (a, b), tj. p : (1 - p) = (1 - p) : 1. Po úpravě tohoto vztahu obdržíme kvadratickou rovnici p2 - 3p + 1 =0, jejímž řešením je p = « 0,382 , kde číslo 1 - p « 0,618 je tzv. poměr zlatého řezu. a u V -f pd _ba. -c=-(1-P)d d b Jednorozměrná optimalizace - metoda zlatého řezu, příklad Lze ukázat, že požadujeme-li při metodě zlatého řezu ukončení při dosažení stanovené přesnosti s, stačí provést N iterací, kde -logO-p) Výsledný odhad bodu optima zapíšeme ve tvaru x* = bN+aN ± e. Jednorozměrná optimalizace - metoda zlatého řezu, příklad Lze ukázat, že požadujeme-li při metodě zlatého řezu ukončení při dosažení stanovené přesnosti s, stačí provést N iterací, kde N> -Iog0-p)- _ bN+aN Výsledný odhad bodu optima zapíšeme ve tvaru x* = D \a ± e. Příklad: Nalezněte minimum funkce f{x) = x + ^ s přesností e = 0,05: víte-li, že se nalézá v intervalu (0,5; 3). Jednorozměrná optimalizace - metoda zlatého řezu, příklad Lze ukázat, že požadujeme-li při metodě zlatého řezu ukončení při dosažení stanovené přesnosti s, stačí provést N iterací, kde N> -Iog0-p)- _ bN+aN Výsledný odhad bodu optima zapíšeme ve tvaru x* = D \a ± e. Příklad: Nalezněte minimum funkce f{x) = x + ^ s přesností e = 0,05: víte-li, že se nalézá v intervalu (0,5; 3). Spočteme nejprve, kolik bude třeba provést iterací: N > ^gg, = ^Sgtís) * 6,69, stačí tedy 7 iterací Jednorozměrná optimalizace - metoda zlatého řezu, příklad 14 12 10 8 6 4 21_i_i_i_i_i 0.5 1 1.5 2 2.5 3 Graf funkce fix) = x + 4 na počátečním intervalu a = 0,5; b = 3, svislou čárou je znázorněno skutečné minimum x* = ^6 « 1,817120 Jednorozměrná optimalizace - metoda zlatého řezu, příklad 1. krok: u = 1.454915, v = 2.045085, f(u) = 2.872163, f (v) = 2.762381. Nový interval je /1 = (1.454915,3.000000). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 2. krok: u = 2.045085, v = 2.409830, f(u) = 2.762381, f (v) = 2.926423. Nový interval je I2 = (1.454915,2.409830). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 3. krok: u = 1.819660, v = 2.045085, f(u) = 2.725686, f (v) = 2.762381. Nový interval je /3 = (1.454915,2.045085). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 4. krok: u = 1.680340, v = 1.819660, f(u) = 2.742835, f (v) = 2.725686. Nový interval je I4 = (1.680340,2.045085). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 5. krok: u = 1.819660, v = 1.905765, f(u) = 2.725686, f (v) = 2.731770. Nový interval je /5 = (1.680340,1.905765). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 6. krok: u = 1.766445, v = 1.819660, f(u) = 2.727882, f (v) = 2.725686. Nový interval je /6 = (1.766445,1.905765). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 2- Ql-1-1-1-1-1 0.5 1 1.5 2 2.5 3 7. krok: u = 1.819660, v = 1.852549, f{u) = 2.725686, f (v) = 2.726691. Nový interval je I7 = (1.766445,1.852549). Šířka intervalu je menší než 0,1, tedy odhadneme bod optima jeho středem: x* = 1,81 ± 0,05 Jednorozměrná optimalizace - metoda kvadratické interpolace Předpokládejme, že minimum leží v intervalu (a, b), a že je znám nějaký jeho vnitřní bod c, ve kterém hodnota funkce f nepřesáhne hodnoty /(a), f{b). Íf(b) Jednorozměrná optimalizace - metoda kvadratické interpolace Předpokládejme, že minimum leží v intervalu (a, b), a že je znám nějaký jeho vnitřní bod c, ve kterém hodnota funkce f nepřesáhne hodnoty /(a), f(b). Body [a, /(a)], [c, /(c)] a [£>, /(£>)] proložíme parabolu P(x) Jednorozměrná optimalizace - metoda kvadratické interpolace Předpokládejme, že minimum leží v intervalu (a, b), a že je znám nějaký jeho vnitřní bod c, ve kterém hodnota funkce f nepřesáhne hodnoty /(a), f{b). \ ím ^JM / 1 1 \ / 1 1 V-^» J 1 1 II 1 1 a x c b Bod jejího minima x považujeme za aproximaci bodu optima x*. Jednorozměrná optimalizace - metoda kvadratické interpolace Předpokládejme, že minimum leží v intervalu (a, b), a že je znám nějaký jeho vnitřní bod c, ve kterém hodnota funkce f nepřesáhne hodnoty /(a), f(b). \ /f(b) / \\^/f(c) \ fix)/ 1 li li a x c b Dá se ukázat, že x = ^^ž^glgSggg^. Další postup se volí podle hodnoty f(x). □ rS1 Jednorozměrná optimalizace - metoda kvadratické interpolace Víme, že x e (a, b), vyšlo nám x < c. Je-li f(x) < f(c), do další iterace použijeme vypočtené x místo bodu c, který se stane novým krajním bodem (pokud x < c, tak jím nahradíme horní hranici b, viz obr., v opačném případě dolní hranici a). Je-li naopak f(x) > f(č), pak c ponecháme a novým krajovým bodem se stane x. Případ x = c znamená, že buď jsme se strefili do optima nebo je nutná jiná volba c. Tento a další nedostatky překonává kombinovaný přístup, tzv. Brentova metoda. + f(b) | t f(c) f(x) I I a=a" x = c' c=b' b Výpočet se zastaví, až rozdíl dvou po sobě jdoucích odhadů \xn -klesne pod hodnotu e. Jednorozměrná optimalizace - metoda kvadratické interpolace, příklad Příklad: Minimalizujte funkci f(x) = x + ^ na intervalu (0,5; 3) s přesností e = 0,05, jako první aproximaci volte x° = 1,5. Jednorozměrná optimalizace - metoda kvadratické interpolace, příklad Příklad: Minimalizujte funkci f(x) = x + ^ na intervalu (0,5; 3) s přesností e = 0,05, jako první aproximaci volte x° = 1,5. První interpolaci provedeme pro body a = 0,5, c = 1,5 a b = 3. Znázorněme červeně graf f(x) na (a, £>) a modře parabolu, protínající jej v bodech a, £>, c: 1. krok: f {a) = 12.500000, f(c) = 2.833333, f(b) = 3.333333 x = 2.208333, f(x) = 2.823499 => Nově: a = 1.500000, c = 2.208333, b = 3.000000, chyba |x1 =-.0.708333. Jednorozměrná optimalizace - metoda kvadratické interpolace, příklad Příklad: Minimalizujte funkci f(x) = x + ^ na intervalu (0,5; 3) s přesností e = 0,05, jako první aproximaci volte x° = 1,5. 2. krok: f (a) = 2.833333, f(c) = 2.823499, f(b) = 3.333333 => x = 1.869995, f(x) = 2.727902 =► Nově: a = 1.500000, c = 1.869995, b = 2.208333, chyba \x2 - x11 = 0.338339. Jednorozměrná optimalizace - metoda kvadratické interpolace, příklad Příklad: Minimalizujte funkci f(x) = x + na intervalu (0,5; 3) s přesností e = 0,05, jako první aproximaci volte x° = 1,5. 2.86 3. krok: f{a) = 2.833333, f{č) = 2.727902, f(b) = 2.823499 x = 1.862831, f(x) = 2.727350 =► Nově: a = 1.500000, c= 1.862831, b = 1.869995, chyba xJ — X' 0.007163 < 0,05, výpočet se zastaví: x* « 1,862831 ± 0,05 Jednorozměrná optimalizace - metody využívající derivace Kromě standartního předpokladu unimodálnosti funkce f na intervalu (a, b) předpokládejme dále, že ŕ je zde diferencovatelná. Nejjednodušší iterační optimalizační metodou využívající derivaci funkce f \e metoda bisekce, čili půlení intervalů. Jestliže označíme bod, v němž funkce f nabývá svého minima na intervalu (a, b) jako p, pak je f klesající na (a,p) (tudíž zde platí ť(x) < 0) a rostoucí na intervalu (p, b) (tudíž zde platí ť(x) > 0). Jednorozměrná optimalizace - metody využívající derivace Kromě standartního předpokladu unimodálnosti funkce f na intervalu (a, b) předpokládejme dále, že ŕ je zde diferencovatelná. Nejjednodušší iterační optimalizační metodou využívající derivaci funkce f \e metoda bisekce, čili půlení intervalů. Jestliže označíme bod, v němž funkce f nabývá svého minima na intervalu (a, b) jako p, pak je f klesající na (a,p) (tudíž zde platí ť(x) < 0) a rostoucí na intervalu (p, b) (tudíž zde platí ť(x) > 0). Vezmeme-li jako odhad bodu minima střed intervalu s = ^ , pak pro f'(š) < 0 leží minimum vpravo, klademe tedy a1 = s a pro f'(š) > 0 leží minimum vlevo a klademe £>1 = s, druhý krajní bod zůstává (pokud f'(š) = 0, našli jsme přímo bod optima x*). Jednorozměrná optimalizace - metody využívající derivace Kromě standartního předpokladu unimodálnosti funkce f na intervalu (a, b) předpokládejme dále, že ŕ je zde diferencovatelná. Nejjednodušší iterační optimalizační metodou využívající derivaci funkce f \e metoda bisekce, čili půlení intervalů. Jestliže označíme bod, v němž funkce f nabývá svého minima na intervalu (a, b) jako p, pak je f klesající na (a,p) (tudíž zde platí ť(x) < 0) a rostoucí na intervalu (p, b) (tudíž zde platí ť(x) > 0). Vezmeme-li jako odhad bodu minima střed intervalu s = ^ , pak pro f'(š) < 0 leží minimum vpravo, klademe tedy a1 = s a pro f'(š) > 0 leží minimum vlevo a klademe £>1 = s, druhý krajní bod zůstává (pokud f'(š) = 0, našli jsme přímo bod optima x*). Výpočet se zastaví po stanoveném počtu kroků nebo klesne-li šířka intervalu pod 2g, kde e je požadovaná přesnost. Lze ukázat, že pak stačí provést íog^ iterací Jednorozměrná optimalizace - metoda bisekce, příklad Ukažme si metodu opět pro minimalizaci funkce f(x) = x + 4, na počátečním intervalu (0,5; 3) s přesností s = 0,05. Funkce má derivaci ť(x) = 1 - ^. Graf funkce f(x) = x + ^ na počátečním intervalu a = 0,5; b = 3, svislou čárou je znázorněno skutečné minimum x* = \/6 « 1,817120 Jednorozměrná optimalizace - metoda bisekce, příklad Ukažme si metodu opět pro minimalizaci funkce f(x) = x + 4, na počátečním intervalu (0,5; 3) s přesností s = 0,05. Funkce má derivaci ť(x) = 1 - ^. 14i-1-1-1-1-1 2I-1-1-1-1-1 0.5 1 1.5 2 2.5 3 1. krok: s = 1.750000, f'(s) = -0.119534 nový interval bude: /1 = (1.750000,3.000000) Jednorozměrná optimalizace - metoda bisekce, příklad Ukažme si metodu opět pro minimalizaci funkce f(x) = x + 4, na počátečním intervalu (0,5; 3) s přesností s = 0,05. Funkce má derivaci ť(x) = 1 - ^. 14i-1-1-1-1-1 2I-1-1--1 -1-1 0.5 1 1.5 2 2.5 3 2. krok: s = 2.375000, f'(s) = 0.552121 nový interval bude: /1 = (1.750000,2.375000) Jednorozměrná optimalizace - metoda bisekce, příklad Ukažme si metodu opět pro minimalizaci funkce f(x) = x + 4, na počátečním intervalu (0,5; 3) s přesností s = 0,05. Funkce má derivaci ť(x) = 1-4. 2 ■ 3. krok: s = 2.062500, f'(s) = 0.316137 ^> nový interval bude: /1 = (1.750000,2.062500) Jednorozměrná optimalizace - metoda bisekce, příklad Ukažme si metodu opět pro minimalizaci funkce f(x) = x + 4, na počátečním intervalu (0,5; 3) s přesností s = 0,05. Funkce má derivaci ť(x) = 1-4. 2 ■ 4. krok: s = 1.906250, f'(s) = 0.133813 ^> nový interval bude: /1 = (1.750000,1.906250) Jednorozměrná optimalizace - metoda bisekce, příklad Ukažme si metodu opět pro minimalizaci funkce f(x) = x + 4, na počátečním intervalu (0,5; 3) s přesností £ = 0,05. Funkce má derivaci ť(x) = 1-4. 2 ■ 5. krok: s = 1.828125, ľ (š) = 0.017950 nový interval bude: /1 = (1.750000,1.828125). protože šířka intervalu < s, výpočet končí: x* « 1.789063 ±0,05 Jednorozměrná optimalizace - metody využívající derivace Další metoda hledá minimum jako kořen derivace. Nazývá se Newtonova metoda (též metoda tečen). Metoda využívá navíc i druhé derivace, předpokládejme tedy její existenci v každém bodě zadaného intervalu. Jednorozměrná optimalizace - metody využívající derivace Další metoda hledá minimum jako kořen derivace. Nazývá se Newtonova metoda (též metoda tečen). Metoda využívá navíc i druhé derivace, předpokládejme tedy její existenci v každém bodě zadaného intervalu. Jak název napovídá, vedeme v bodě x0 tečnu ke grafu funkce ť(x) a jako následující odhad vezmeme průsečík této tečny s osou x. Rovnici tečny lze zapsat jako: y = ff(x0) + f/f(x0) • (x - x0) . Položíme-li pravou stranu rovnu nule, spočteme odtud x = x0 - Jednorozměrná optimalizace - metody využívající derivace Další metoda hledá minimum jako kořen derivace. Nazývá se Newtonova metoda (též metoda tečen). Metoda využívá navíc i druhé derivace, předpokládejme tedy její existenci v každém bodě zadaného intervalu. Jak název napovídá, vedeme v bodě x0 tečnu ke grafu funkce ť(x) a jako následující odhad vezmeme průsečík této tečny s osou x. Rovnici tečny lze zapsat jako: y = ff(x0) + f/f(x0) • (x - x0) . Položíme-li pravou stranu rovnu nule, spočteme odtud x = x0 - Tuto hodnotu označíme x^ a pokračujeme ve výpočtu až dokud není splněno \xn - xn_^ | < e. Předností metody je její rychlost, značnou nevýhodou je ale fakt, že nekonverguje vždy. Ke konvergenci postačuje, aby na výchozím intervalu (a, b) neměnila f"(x) ani ť"(x) znaménko a aby platilo ľ (a) • f'(b) < 0. Důležité je též dobrá volba bodu x0, doporučuje se volit tak, aby f'(xo) • ff//(x0) > 0 , jinak by x^ neležel v intervalu (a, b). Jednorozměrná optimalizace - Newtonova metoda Geometrická interpretace je naznačena na obrázku, kde vidíme funkci ť(x) a počáteční iteraci x0, poté jsou provedeny tři další iterace. Jednorozměrná optimalizace - Newtonova metoda Geometrická interpretace je naznačena na obrázku, kde vidíme funkci ť(x) počáteční iteraci x0, poté jsou provedeny tři další iterace. Jednorozměrná optimalizace - Newtonova metoda Geometrická interpretace je naznačena na obrázku, kde vidíme funkci ť(x) počáteční iteraci x0, poté jsou provedeny tři další iterace. Jednorozměrná optimalizace - Newtonova metoda Geometrická interpretace je naznačena na obrázku, kde vidíme funkci ť(x) počáteční iteraci x0, poté jsou provedeny tři další iterace. Jednorozměrná optimalizace, Newtonova metoda, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3). Jednorozměrná optimalizace, Newtonova metoda, příklad Příklad: Nalezněte minimum funkce fix) = x + 4 s přesností e = 0,05: víte-li, že se nalézá v intervalu (0,5; 3). Řešení: ť(x) = 1 - /"(x) = ±£. Zvolme x0 = 1.750000 (1. aproximace z metody bisekce) □ s1 Jednorozměrná optimalizace, Newtonova metoda, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3' Řešení: V(x) = 1 - f"(x) = lf. Zvolme x0 = 1.750000 (1. aproximace z metody bisekce) 1 .krok: x0 = 1,750000, f'(x0) = -0,119534, f"(x0) = -1,919200 x1= 1,812283, X!-x0| = 0,062283 Jednorozměrná optimalizace, Newtonova metoda, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3' Řešení: V(x) = 1 - f"(x) = lf. Zvolme x0 = 1.750000 (1. aproximace z metody bisekce) 1 .krok: x0 = 1,750000, f'(x0) = -0,119534, f"(x0) = -1,919200 x1= 1,812283, X!-x0| = 0,062283 2.krok: xi = 1,812283, ť{xA) = -0,008029, ) = 1,668662 x2 = 1,817095, |x2 -^1=0,004812, výpočet končí: x* « 1,817095 ± 0,05 Jednorozměrná optimalizace - metody využívající derivace V předchozí metodě potřebujeme v každém kroku spočítat jak první, tak druhou derivaci funkce v daném bodě. Jelikož výpočet derivace funkce nemusí být vždy snadný, nahrazuje se tzv. poměrnou diferencí: My tuto aproximaci provedeme pro druhou derivaci: Jednorozměrná optimalizace - metody využívající derivace V předchozí metodě potřebujeme v každém kroku spočítat jak první, tak druhou derivaci funkce v daném bodě. Jelikož výpočet derivace funkce nemusí být vždy snadný, nahrazuje se tzv. poměrnou diferencí: My tuto aproximaci provedeme pro druhou derivaci: _ ť(xk)-ť(xk_i) Nahradíme-li v iteračním vzorci Newtonovy metody druhou derivaci uvedenou aproximací, dostávame: Právě uvedený vzorec reprezentuje tzv. metodu sečen. K výpočtu jsou třeba dva počáteční body x0, x^. Jednorozměrná optimalizace - metody využívající derivace V předchozí metodě potřebujeme v každém kroku spočítat jak první, tak druhou derivaci funkce v daném bodě. Jelikož výpočet derivace funkce nemusí být vždy snadný, nahrazuje se tzv. poměrnou diferencí: My tuto aproximaci provedeme pro druhou derivaci: _ ť(xk)-ť(xk_i) Nahradíme-li v iteračním vzorci Newtonovy metody druhou derivaci uvedenou aproximací, dostávame: Právě uvedený vzorec reprezentuje tzv. metodu sečen. K výpočtu jsou třeba dva počáteční body x0, x^. Tato metoda také není vždy konvergentní, lze ji však modifikovat tak, že do vzorce použijeme místo dvou po sobě jdoucích iterací body xm, xk s co největšími indexy, tak, aby platilo ť(xm) • ť{xk) < 0. Tuto modifikaci nazýváme metoda regula falši. Jednorozměrná optimalizace - metoda regula falsi Zázorněme si metodu graficky, bod optima je x* a počáteční iterace jsou x0, , provedeme ještě další tři: Jednorozměrná optimalizace - metoda regula falsi Zázorněme si metodu graficky, bod optima je x* a počáteční iterace jsou x0, , provedeme ještě další tři: Jednorozměrná optimalizace - metoda regula falsi Zázorněme si metodu graficky, bod optima je x* a počáteční iterace jsou x0, , provedeme ještě další tři: Jednorozměrná optimalizace - metoda regula falsi Zázorněme si metodu graficky, bod optima je x* a počáteční iterace jsou x0, , provedeme ještě další tři: Jednorozměrná optimalizace - metoda regula falsi, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3). □ s Jednorozměrná optimalizace - metoda regula falsi, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3). Řešení: Pro nalezení prvních dvou iterací můžeme použít např. metodu bisekce. Tedy: x0 = 1,750000, *i = 2,375000. Ověříme, že ť(x0)ť(x^ = -0,119534 • 0,552121 < 0. Jednorozměrná optimalizace - metoda regula falsi, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3). Řešení: Pro nalezení prvních dvou iterací můžeme použít např. metodu bisekce. Tedy: x0 = 1,750000, *i = 2,375000. Ověříme, že ľ(x0)ľ(x^ = -0,119534 • 0,552121 < 0. 1 .krok: x2 = *i - n£)Z*{xb)f'{xi) = 1,861230, \x2 - *i | = 0,062283 Protože ť{x2) = 0,069426 > 0, použijeme dále x0 a x2. Jednorozměrná optimalizace - metoda regula falsi, příklad Příklad: Nalezněte minimum funkce f(x) = x + ^ s přesností e = 0,05. víte-li, že se nalézá v intervalu (0,5; 3). Řešení: Pro nalezení prvních dvou iterací můžeme použít např. metodu bisekce. Tedy: x0 = 1,750000, Xi = 2,375000. Ověříme, že f'(x0)f'{x-l) = -0,119534 • 0,552121 < 0. 1 .krok: x2 = Xi - H£)Z$(1 0, použijeme dále x0 a x2 = 0,062283 2.krok: x3 = x2 - n^\Xo)f {x2) = 1,820363, |x3 - x2| = 0,040867, výpočet končí: x* « 1,820363 ± 0,05. Vícerozměrná numerická optimalizace -přehled Numerické metody bez omezení • Komparativní metody • Gradientní metody • Newtonova metoda a její modifikace • Gaussova-Newtonova metoda • Metody konjugovaných směrů a Metoda konjugovaných gradientů o Kvazi-newtonovské metody • Simulované žíhání, genetické algoritmy, tabu search, atd. Vícerozměrná numerická optimalizace -přehled Numerické metody bez omezení • Komparativní metody • Gradientní metody • Newtonova metoda a její modifikace • Gaussova-Newtonova metoda • Metody konjugovaných směrů a Metoda konjugovaných gradientů o Kvazi-newtonovské metody • Simulované žíhání, genetické algoritmy, tabu search, atd. Numerické metody s omezením • Metody přípustných směrů • Metody aktivních množin 9 Metoda projekce gradientu • Metoda redukovaného gradientu • Metody pokutových a bariérových funkcí • Metody vnitřního bodu • Sekvenční kvadratické programování Vícerozměrná optimalizace - Komparativní metody Metoda cyklické záměny proměnných převádí vícerozměrnou optimalizaci na posloupnost jednorozměrných optimalizačních úloh ve směru jednotlivých souřadnic: z výchozího bodu provádíme minimalizaci ve směru první souřadnice. Po nalezení lokálního extrému funkce f(x) ve směru s^ = (1,0,..., 0) , pokračujeme ve směru druhé souřadnice s2 = (0,1,..., 0) atd., až dostaneme první iteraci. Nevýhodou metody je pomalý výpočet, navíc není ani zaručena konvergence metody. Vícerozměrná optimalizace - Komparativní metody Metoda cyklické záměny proměnných převádí vícerozměrnou optimalizaci na posloupnost jednorozměrných optimalizačních úloh ve směru jednotlivých souřadnic: z výchozího bodu provádíme minimalizaci ve směru první souřadnice. Po nalezení lokálního extrému funkce f(x) ve směru s^ = (1,0,..., 0) , pokračujeme ve směru druhé souřadnice s2 = (0,1,..., 0) atd., až dostaneme první iteraci. Nevýhodou metody je pomalý výpočet, navíc není ani zaručena konvergence metody. -1 -0.5 0 0.5 1 1.5 2 Vícerozměrná optimalizace - Komparativní metody Metoda cyklické záměny proměnných převádí vícerozměrnou optimalizaci na posloupnost jednorozměrných optimalizačních úloh ve směru jednotlivých souřadnic: z výchozího bodu provádíme minimalizaci ve směru první souřadnice. Po nalezení lokálního extrému funkce f(x) ve směru s^ = (1,0,..., 0) , pokračujeme ve směru druhé souřadnice s2 = (0,1,..., 0) atd., až dostaneme první iteraci. Nevýhodou metody je pomalý výpočet, navíc není ani zaručena konvergence metody. -1 -0.5 0 0.5 1 1.5 2 Vícerozměrná optimalizace - Komparativní metody Metoda cyklické záměny proměnných převádí vícerozměrnou optimalizaci na posloupnost jednorozměrných optimalizačních úloh ve směru jednotlivých souřadnic: z výchozího bodu provádíme minimalizaci ve směru první souřadnice. Po nalezení lokálního extrému funkce f(x) ve směru s^ = (1,0,..., 0) , pokračujeme ve směru druhé souřadnice s2 = (0,1,..., 0) atd., až dostaneme první iteraci. Nevýhodou metody je pomalý výpočet, navíc není ani zaručena konvergence metody. -1 -0.5 0 0.5 1 1.5 2 Vícerozměrná optimalizace - Komparativní metody Metoda cyklické záměny proměnných převádí vícerozměrnou optimalizaci na posloupnost jednorozměrných optimalizačních úloh ve směru jednotlivých souřadnic: z výchozího bodu provádíme minimalizaci ve směru první souřadnice. Po nalezení lokálního extrému funkce f(x) ve směru s^ = (1,0,..., 0) , pokračujeme ve směru druhé souřadnice s2 = (0,1,..., 0) atd., až dostaneme první iteraci. Nevýhodou metody je pomalý výpočet, navíc není ani zaručena konvergence metody. -1 -0.5 0 0.5 1 1.5 2 Metoda cyklické záměny proměnných - příklad Řešme následující úlohu z knihy V. Pánková, Nelineární optimalizace pro ekonomy: Hledejte minimum funkce f(x^x2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí metody cyklické záměny proměnných. Proveďte první dvě iterace z bodu x° =(1,1)T . Metoda cyklické záměny proměnných - příklad Řešme následující úlohu z knihy V. Pánková, Nelineární optimalizace pro ekonomy: Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí metody cyklické záměny proměnných. Proveďte první dvě iterace z bodu x° = (1,1)T . Řešení: Při postupu ve směru první proměnné optimalizujeme funkci = -12 + 4x^ + 4 + 4*1, dostaneme xi = -\. Následně ve směru druhé proměnné minimalizujeme r(-|,x2) = -12x2 + 1 +4x| - 2x2, dostaneme x2 = J. □ s Metoda cyklické záměny proměnných - příklad Řešme následující úlohu z knihy V. Pánková, Nelineární optimalizace pro ekonomy: Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4x|X2 pomocí metody cyklické záměny proměnných. Proveďte první dvě iterace z bodu x° =(1,1)T . Řešení: Při postupu ve směru první proměnné optimalizujeme funkci = -12 + 4x^ + 4 + 4*1, dostaneme *i = - \. Následně ve směru druhé proměnné minimalizujeme f{-\,x2) = -12x2 + 1 + 4xf - 2*21 dostaneme x2 = |- Dále postupujeme z bodu x1 = (-1, \)T ve směru první proměnné: minimalizujeme r(xi, \) = -21 + 4xf + ^ + 7xi, dostaneme x^ = - |. Poté ve směru druhé proměnné: funkce /(-|,x2) = -12x2 + ^ + 4x| - |x2 nabývá minima pro x2 = ^. Metoda cyklické záměny proměnných - příklad Řešme následující úlohu z knihy V. Pánková, Nelineární optimalizace pro ekonomy: Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4x|X2 pomocí metody cyklické záměny proměnných. Proveďte první dvě iterace z bodu x° =(1,1)T . Řešení: Při postupu ve směru první proměnné optimalizujeme funkci = -12 + 4x^ + 4 + 4*1, dostaneme xi = - \. Následně ve směru druhé proměnné minimalizujeme /r(-|,x2) = -12x2 + 1 + 4x| - 2x2, dostaneme x2 = \. Dále postupujeme z bodu x1 = (-1, \)T ve směru první proměnné: minimalizujeme f(x^, \) = -21 +4xf + ^ + 7xi, dostaneme x^ = - |. Poté ve směru druhé proměnné: funkce /r(-|,x2) = -12x2 + ^ + 4x| - |x2 nabývá minima pro x2 = 21. Dostali jsme odhad x2 = (-^, yl)T , skutečné minimum nastává v bodě x* = (-1,2)T. Vícerozměrná optimalizace - Komparativní metody Metoda pravidelného a flexibilního simplexu: Startuje vytvořením výchozího simplexu v zadaném prostoru (Simplexem v n - rozměrném prostoru rozumíme konvexní obal n + 1 vrcholů v obecné poloze, tj. v rovině je to trojúhelník, v třírozměrném prostoru je to čtyřstěn atd.). Z vrcholů nahradíme ten s nejhorší hodnotou účelové funkce pomocí reflexe vzhledem k těžišti ostatních vrcholů novým vrcholem, čímž vznikne nový simplex, tj. další iterace. Metoda je heuristická, ale názorná a snadno implementovatelná. Vícerozměrná optimalizace - Komparativní metody Metoda pravidelného a flexibilního simplexu: Startuje vytvořením výchozího simplexu v zadaném prostoru (Simplexem v n - rozměrném prostoru rozumíme konvexní obal n + 1 vrcholů v obecné poloze, tj. v rovině je to trojúhelník, v třírozměrném prostoru je to čtyřstěn atd.). Z vrcholů nahradíme ten s nejhorší hodnotou účelové funkce pomocí reflexe vzhledem k těžišti ostatních vrcholů novým vrcholem, čímž vznikne nový simplex, tj. další iterace. Metoda je heuristická, ale názorná a snadno implementovatelná. Rychlost a přesnost nalezení optimálního bodu záleží na velikosti simplexu. Čím větší je simplex, tím se rychleji blížíme k optimu. Přesnost výpočtu naopak vyžaduje malou velikost simplexu. Proto je při výpočtu třeba měnit délku hrany simplexu. V Nelder-Meadově metodě se toto zajistí pomocí operací expanze, kontrakce a redukce základního simplexu. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 10 20 30 40 50 60 70 80 90 100 Vícerozměrná optimalizace - gradientní metody K nejstarším a zároveň nejpoužívanějším přístupům vícerozměrné numerické optimalizace patří gradientově metody. Ukažme si obecný princip gradientově metody pro minimalizaci diferencovatelné funkce f(x) pro xeM": O urči výchozí bod x° O urči gradient funkce f v tomto bodě: Vf(x°) Q přejdi z bodu x° do bodu x1 ve směru "antigradientu" -Vf(x°) tak, aby r(x°) > /(x1). O celý postup opakuj z bodu x1, atd. dokud není splněno pravidlo ukončení výpočtu Vícerozměrná optimalizace - gradientní metody K nejstarším a zároveň nejpoužívanějším přístupům vícerozměrné numerické optimalizace patří gradientově metody. Ukažme si obecný princip gradientově metody pro minimalizaci diferencovatelné funkce f(x) pro xeM": O urči výchozí bod x° O urči gradient funkce f v tomto bodě: Vf(x°) Q přejdi z bodu x° do bodu x1 ve směru "antigradientu" -Vf(x°) tak, aby r(x°) > /(x1). O celý postup opakuj z bodu x1, atd. dokud není splněno pravidlo ukončení výpočtu Výpočet je možné ukončit: • po provedení předem stanoveného počtu iterací • pokud hodnota účelové funkce klesne o méně než předem stanovené e, tedy ŕ(x')-ŕ(x/+1) 0^O Vícerozměrná optimalizace - gradientova metoda s pevným krokem Znázorněme si postup metody graficky. V každé iteraci vycházíme ve směru kolmém k vrstevnicím. -1 -0.5 0 0.5 1 1.5 2 □ [fpi ► •< ^1 ► < 1: I; >0^O Vícerozměrná optimalizace - gradientova metoda s pevným krokem Znázorněme si postup metody graficky. V každé iteraci vycházíme ve směru kolmém k vrstevnicím. -1 -0.5 0 0.5 1 1.5 2 □ [fpi ► •< ^1 ► < 1: I; >0^O Vícerozměrná optimalizace - gradientova metoda s pevným krokem Znázorněme si postup metody graficky. V každé iteraci vycházíme ve směru kolmém k vrstevnicím. -1 -0.5 0 0.5 1 1.5 2 Gradientova metoda s pevným krokem-příklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4x^2 pomocí metody s pevným krokem a = 0,1. Proveďte první tři iterace z bodu x° = (0,1)T . Gradientova metoda s pevným krokem-příklad Hledejte minimum funkce f{xux2) = -12x2 + 4x2 + 4x2 + 4x^x2 pomocí metody s pevným krokem a = 0,1. Proveďte první tři iterace z bodu x° = (0,1)T . Řešení: Spočteme gradient W(xi, x2) = (8*i + 4x2, -12 + 4xi + 8x2)T a vyčíslíme x1 = x° - « • IWTÍ = (0,1 )T - 0,1 • (4, -4)T • ^j- = (-0.0707; 1.0707)1 Gradientova metoda s pevným krokem-příklad Hledejte minimum funkce f(xi,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí metody s pevným krokem a = 0,1. Proveďte první tři iterace z bodu x° = (0,1)T . Řešení: Spočteme gradient Vf(x^, x2) = (8^ + 4x2, -12 + 4^ + 8x2)T a vyčíslíme x1 = x° - « • = (0,1)T -0,1 • (4, -4)T • ^ = (-0.0707; 1.0707)T. Y2 _ y1 _ V^(x1) _ " |Vf(x1)| ~~ (-0.0707; 1.0707)T - 0,1 • (3.7172; -3.7172)T • = (-0.1414; 1.1414) Gradientova metoda s pevným krokem-příklad Hledejte minimum funkce f(xux2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí metody s pevným krokem a = 0,1. Proveďte první tři iterace z bodu x° = (0,1)T . Řešení: Spočteme gradient Vf(x^, x2) = (8x^ + 4x2, -12 + 4X! + 8x2)T a vyčíslíme x1 = x° - « • |fS = (0,1 )T " 0,1 • (4, -4)T • = (-0.0707; 1.0707)T. Y2 _ Y1 _ V^(x1) _ a |Vf(x1)| ~~ (-0.0707; 1.0707)T - 0,1 • (3.7172; -3.7172)T • 5^ = (-0.1414; 1.1414)T X3 = x2-a- |V/(X2)| - (-0.1414;1.1414)T-0,1 • (3.4343,-3.4343)T • 4^ = (-0.2121; 1.2121 )T Vícerozměrná optimalizace - metoda největšího spádu Narozdíl od předchozí metody je velikost iteračního kroku proměnlivá. Novou iteraci x/+1 hledáme tak, že postupujeme z x' ve směru antigradientu tak dlouho, dokud účelová funkce klesá. Jinými slovy, zvolíme délku a,- tak, aby hodnota f(x' - a^f(x')) byla minimální. Tuto jednorozměrnou minimalizační úlohu můžeme řešit analyticky nebo numericky. Vícerozměrná optimalizace - metoda největšího spádu Narozdíl od předchozí metody je velikost iteračního kroku proměnlivá. Novou iteraci x/+1 hledáme tak, že postupujeme z x' ve směru antigradientu tak dlouho, dokud účelová funkce klesá. Jinými slovy, zvolíme délku a,- tak, aby hodnota f(x' - a^f(x')) byla minimální. Tuto jednorozměrnou minimalizační úlohu můžeme řešit analyticky nebo numericky. Metoda největšího spádu rychleji konverguje než metoda s pevným krokem, která navíc může být silně ovlivněna počáteční volbou a. To se samozřejmě odráží i v časové výpočetní náročnosti výpočtu. Na druhou stranu metoda s pevným krokem může být snadnější na implementaci. Vícerozměrná optimalizace - metoda největšího spádu Narozdíl od předchozí metody je velikost iteračního kroku proměnlivá. Novou iteraci x/+1 hledáme tak, že postupujeme z x' ve směru antigradientu tak dlouho, dokud účelová funkce klesá. Jinými slovy, zvolíme délku a,- tak, aby hodnota f(x' - a^f(x')) byla minimální. Tuto jednorozměrnou minimalizační úlohu můžeme řešit analyticky nebo numericky. Metoda největšího spádu rychleji konverguje než metoda s pevným krokem, která navíc může být silně ovlivněna počáteční volbou a. To se samozřejmě odráží i v časové výpočetní náročnosti výpočtu. Na druhou stranu metoda s pevným krokem může být snadnější na implementaci. Vícerozměrná optimalizace - metoda největšího spádu Narozdíl od předchozí metody je velikost iteračního kroku proměnlivá. Novou iteraci x/+1 hledáme tak, že postupujeme z x' ve směru antigradientu tak dlouho, dokud účelová funkce klesá. Jinými slovy, zvolíme délku a,- tak, aby hodnota f(x' - a^f(x')) byla minimální. Tuto jednorozměrnou minimalizační úlohu můžeme řešit analyticky nebo numericky. Metoda největšího spádu rychleji konverguje než metoda s pevným krokem, která navíc může být silně ovlivněna počáteční volbou a. To se samozřejmě odráží i v časové výpočetní náročnosti výpočtu. Na druhou stranu metoda s pevným krokem může být snadnější na implementaci. Vícerozměrná optimalizace - metoda největšího spádu Narozdíl od předchozí metody je velikost iteračního kroku proměnlivá. Novou iteraci x/+1 hledáme tak, že postupujeme z x' ve směru antigradientu tak dlouho, dokud účelová funkce klesá. Jinými slovy, zvolíme délku a,- tak, aby hodnota f(x' - a^f(x')) byla minimální. Tuto jednorozměrnou minimalizační úlohu můžeme řešit analyticky nebo numericky. Metoda největšího spádu rychleji konverguje než metoda s pevným krokem, která navíc může být silně ovlivněna počáteční volbou a. To se samozřejmě odráží i v časové výpočetní náročnosti výpočtu. Na druhou stranu metoda s pevným krokem může být snadnější na implementaci. Metoda největšího spádu- príklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí metody největšího spádu. Proveďte první dvě iterace z bodu x° = (0,0)T □ s Metoda největšího spádu- príklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí metody největšího spádu. Proveďte první dvě iterace z bodu x° = (0,0)T . Řešení: Víme, že Vf(xux2) = (8x1 + 4x2, -12 + 4^ +8x2)T. Minimalizujeme tedy funkci (a) = f(x° - a • Vf(x0)) = /(0,12a) = -144a + 576ce2, dostaneme optimum pro a = 0,125. Metoda největšího spádu- príklad Hledejte minimum funkce ř(x1,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomoci metody největšího spádu. Proveďte první dvě iterace z bodu x° = (0,0)T . Řešení: Víme, že V/r(x1,x2) = (8xi + 4x2, -12 + 4X! + 8x2)T. Minimalizujeme tedy funkci ^(a) = f(x° - a • Vr(x0)) = /(0,12a) = -144a + 576a2, dostaneme optimum pro a = 0,125. Tedy Xi = x° - 0,125 • V/^x0) = (0; 1,5)T. Dále minimalizujeme funkci g2{a) = ŕ(x1 - a • Vr(x1)) = /(-6a; 1,5) = -9 - 36a + 144a2, minimum opět nastává pro a = 0,125. □ s Metoda největšího spádu- príklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomoci metody největšího spádu. Proveďte první dvě iterace z bodu x° = (0,0)T . Řešení: Víme, že V/r(x1,x2) = (8x1 +4x2, -12 + 4X! +8x2)T. Minimalizujeme tedy funkci ^(a) = /(x° - a ■ V/(x0)) = /(0,12a) = -144a + 576a2, dostaneme optimum pro a = 0,125. Tedy x1 = x° - 0,125 • Vf(x°) = (0; 1,5)T. Dále minimalizujeme funkci g2{a) = r(x1 - a • Vr(x1)) = /(-6a; 1,5) = -9 - 36a + 144a2, minimum opět nastává pro a = 0,125. Tedy x2 = x1 - 0,125 • Vř(x1) = (-0,75; 1,5)T . Dále bychom minimalizovali funkci g3(a) = f(x2 - a • Vr(x2)) = /(-0,75; 1,5 + 0,375a), atd. □ s Vícerozměrná optimalizace - newtonovské metody Podobně jako v jednorozměrném případě v newtonovských metodách funkci f(x) aproximujeme při přechodu z bodu xk kvadratickou funkcí, tedy Taylorovým polynomem 72(x) = r(xk) + W(xk)T • (x - xk) + l(x - xk)T • H(xk) • (x - xk) a zapíšeme podmínku pro stacionární bod V7"2(x) = 0, neboli W(xk)T + H(xk) • (x - xk) = 0. Vícerozměrná optimalizace - newtonovské metody Podobně jako v jednorozměrném případě v newtonovských metodách funkci f(x) aproximujeme při přechodu z bodu xk kvadratickou funkcí, tedy Taylorovým polynomem 72(x) = r(xk) + W(xk)T • (x - xk) + l(x - xk)T • H(xk) • (x - xk) a zapíšeme podmínku pro stacionární bod V7"2(x) = 0, neboli W(xk)T + H(xk) • (x - xk) = 0. Další iteraci xk+1 dostaneme jako řešení této soustavy. xk+i = xk - H(xk)"1 • W(xk) Vícerozměrná optimalizace - newtonovské metody Podobně jako v jednorozměrném případě v newtonovských metodách funkci f(x) aproximujeme při přechodu z bodu xk kvadratickou funkcí, tedy Taylorovým polynomem 72(x) = r(xk) + W(xk)T • (x - xk) + l(x - xk)T • H(xk) • (x - xk) a zapíšeme podmínku pro stacionární bod V7"2(x) = 0, neboli W(xk)T + H(xk) • (x - xk) = 0. Další iteraci xk+1 dostaneme jako řešení této soustavy. xk+i = xk - H(xk)"1 • W(xk) Pokud startujeme daleko od minima, je kvadratická aproximace nepřesná a Hessova matice může být singulární nebo negativně definitní. Newtonova metoda pak nefunguje nebo vede k maximu. Proto se používají modifikace Newtonovy metody, například Levenberg - Marquardtova metoda nebo trust region algoritmus. Newtonovské metody - příklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4xf + 4x2 + 4^x2 pomocí Newtonovy metody . Proveďte první iteraci z bodu x° = (0,0)T . Newtonovské metody - příklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4x2 + 4x2 + 4^x2 pomocí Newtonovy metody . Proveďte první iteraci z bodu x° = (0,0)T . Řešení: Již známe gradient W(xi, x2) = / 8 4 Spočteme Hessovu matici: H = I 4 g (8x1 + 4x2, -12 + 4xi + 8x2)T její inverze je H -1 _2_ 12 -1 12 -1 12 _2_ 12 Newtonovské metody - příklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4x2 + 4x2 + 4xix2 pomocí Newtonovy metody . Proveďte první iteraci z bodu x° = (0,0)T . Řešení: Již známe gradient Vf(x^, x2) = (8xi + 4x2, -12 + 4xi + 8x2) Spočteme Hessovu matici: H = ( ^ g ], její inverze je T 2 -1 H"1 = ^ £ V 12 12 Tedy můžeme spočítat první iteraci x'=x°-H-..W(xO)=(°)-(! f )-(_°2 Nalezli jsme přesně bod optima. Vícerozměrná optimalizace - metoda sdružených směrů Metody sdružených (konjugovaných) směrů byly vyvinuty proto, aby urychlily konvergenci gradientních metod a vyhnuly se potížím spojeným s modifikací Newtonovy metody. Nejprve uveďme definici: Definice: Vektory Si,..., sp jsou konjugované vzhledem k symetrické matici Q tehdy, když platí sj • Q • sy= 0, V1 < i J < p, j Vícerozměrná optimalizace - metoda sdružených směrů Metody sdružených (konjugovaných) směrů byly vyvinuty proto, aby urychlily konvergenci gradientních metod a vyhnuly se potížím spojeným s modifikací Newtonovy metody. Nejprve uveďme definici: Definice: Vektory Si,..., sp jsou konjugované vzhledem k symetrické matici Q tehdy, když platí sj • Q • sy= 0, V1 < i J < p, j Pokud funkci f(x) optimalizujeme postupně ve směrech Si,..., sp konjugovaných vzhledem k Hessově matici H, pro kvadratické funkce máme zajištěnu konvergenci pro p = n . Pro nekvadratické funkce je nutné metodu nejpozději po a?+ 1 krocích nastartovat znovu. Metoda bohužel není konstruktivní, neříká, jak sdružené směry určit. V případě, že se směry generují z gradientů a dosavadního směru pohybu, dostaneme modifikaci známou jako metoda sdružených gradientů. Další modifikací je metoda paralelních tečen, PARTAN. Metoda sdružených směrů - příklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4x2 + 4x2 + 4x^2 pomocí metody konjugovaných směrů. Proveďte první dvě iterace z bodu x° = (1,1 )T a jako výchozí směr vezměte Si = (1,0). Metoda sdružených směrů - příklad Hledejte minimum funkce /r(x1,x2) =-12x2+ 4xf+ 4x2+ 4^x2 pomocí metody konjugovaných směrů. Proveďte první dvě iterace z bodu x° = (1,1 )T a jako výchozí směr vezměte Si = (1,0). Řešení: Hessova matice je H = ^ ® 8^) ' ^m^r S2 = (a' ^)T Je sc|ružený s Si vzhledem k matici H pokud Si • H • s2 = 8a + 4£> = 0. To je splněno například pro a = 1, b = -2. □ rS1 Metoda sdružených směrů - příklad Hledejte minimum funkce /r(x1,x2) =-12x2+ 4xf+ 4x2+ 4^x2 pomocí metody konjugovaných směrů. Proveďte první dvě iterace z bodu x° = (1,1 )T a jako výchozí směr vezměte Si = (1,0). Řešení: Hessova matice je H = ^ ® 8^) ' ^m^r S2 = (a' ^)T Je sc|ružený s Si vzhledem k matici H pokud Si • H • s2 = 8a + 4£> = 0. To je splněno například pro a = 1, b = -2. Začneme minimalizaci z x° ve směru Si: (a) = f(1 + a, 1) = 12a + 4a2, což je minimální pro a = -|, takže x1 = (-1,1)T. □ i5" Metoda sdružených směrů - příklad Hledejte minimum funkce /r(x1,x2) = -12x2 + 4x2 + 4x2 + 4x^2 pomocí metody konjugovaných směrů. Proveďte první dvě iterace z bodu x° = (1,1 )T a jako výchozí směr vezměte Si = (1,0). Řešení: Hessova matice je H = ^ ® g ^ . Směr s2 = (a, £>)T je sdružený s Si vzhledem k matici H pokud Si • H • s2 = 8a + 4b = 0. To je splněno například pro a = 1, b = -2. Začneme minimalizaci z x° ve směru Si: g\ (a) = /(1 + a, 1) = 12a + 4a2, což je minimální pro a = -|, takže x1 = (-^, 1)T. Pokračujeme minimalizací z x1 ve směru s2: g2(a) = f{-\ + a, 1 - 2a) = 9 + 12a + 12a2, což je minimální pro a = takže x2 = (-1,2)T . Nalezli jsme přesně optimum funkce. □ s Vícerozměrná optimalizace - kvazi-newtonovské metody a Gauss-Newtonova metoda Kvazi-newtonovské metody jsou gradientní metody, které leží někde mezi metodou nejrychlejšího spádu a Newtonovou metodou a snaží se využít předností obou metod. Gradientní metody mají zaručenou konvergenci a Newtonova metoda v okolí optima konverguje rychle. Newtonova metoda ale vyžaduje výpočet Hessovy matice, respektive její inverze. Aproximujeme-li tyto matice na základě dat z jednotlivých kroků iteračního algoritmu, dostaneme metodu Broydena, Fletchera, Goldfarba a Shannoa (BFGS) nebo metodu Davidona, Fletchera a Powella (DFP). Vícerozměrná optimalizace - kvazi-newtonovské metody a Gauss-Newtonova metoda Kvazi-newtonovské metody jsou gradientní metody, které leží někde mezi metodou nejrychlejšího spádu a Newtonovou metodou a snaží se využít předností obou metod. Gradientní metody mají zaručenou konvergenci a Newtonova metoda v okolí optima konverguje rychle. Newtonova metoda ale vyžaduje výpočet Hessovy matice, respektive její inverze. Aproximujeme-li tyto matice na základě dat z jednotlivých kroků iteračního algoritmu, dostaneme metodu Broydena, Fletchera, Goldfarba a Shannoa (BFGS) nebo metodu Davidona, Fletchera a Powella (DFP). Gaussova-Newtonova metoda řeší problém minimalizace kritéria ve tvaru nejmenších čtverců nelineární funkce. Vícerozměrná optimalizace - kvazi-newtonovské metody a Gauss-Newtonova metoda Kvazi-newtonovské metody jsou gradientní metody, které leží někde mezi metodou nejrychlejšího spádu a Newtonovou metodou a snaží se využít předností obou metod. Gradientní metody mají zaručenou konvergenci a Newtonova metoda v okolí optima konverguje rychle. Newtonova metoda ale vyžaduje výpočet Hessovy matice, respektive její inverze. Aproximujeme-li tyto matice na základě dat z jednotlivých kroků iteračního algoritmu, dostaneme metodu Broydena, Fletchera, Goldfarba a Shannoa (BFGS) nebo metodu Davidona, Fletchera a Powella (DFP). Gaussova-Newtonova metoda řeší problém minimalizace kritéria ve tvaru nejmenších čtverců nelineární funkce. Na závěr ještě podotkněme, že metody obecně nejsou globálně konvergentní, doporučuje se tedy optimalizaci spustit vícekrát z různých počátečních bodů. Stálejšou vyvíjeny nové algoritmy, z modernějších metod můžeme zmínit simulované žíhání, genetické algoritmy, tabu search, atd. Literatura • Fletcher, Roger: Practical methods of optimization, 1st ed., Chichester: John Wiley and Sons, 1987. • Šubrt, Tomáš a kol.: Ekonomicko-matematické metody, Plzeň : Vydavatelství a nakladatelství Aleš Čeněk, 2011 9 Pánková, Václava: Nelineární optimalizace pro ekonomy,1. vyd., Praha : Professional Publishing, 2003 • Intriligator, Michael D.: Mathematical optimization and economic theory,Philadelphia : Siam, 2002 • Jablonský, Josef, Petr Fiala, Miroslav Maňas: Vícekriteriální rozhodování, 1. vyd.,Praha : Vysoká škola ekonomická v Praze, 1994. • Klapka, Jindřich, Jiří Dvořák, Pavel Popela Metody operačního výzkumu, Vyd. 2., Brno : VUTIUM, 2001 • Klein, Michael W.: Mathematical methods for economics, 2nd ed., Boston : Addison-Wesley, c2002 a JABLONSKÝ, Josef: Operační výzkum kvantitativní modely pro ekonomické rozhodování, 1. vyd. Praha: Professional Publishing, 2002 9 PLEVNÝ, Miroslav a Miroslav ŽIŽKA: Modelování a optimalizace v manažerském rozhodování, Vyd. 2. Plzeň: Západočeská univerzita, 2010 a GROS, Ivan: Kvantitativní metody v manažerském rozhodování, 1. vyd. Praha: Grada, 2003 < n►< ^►<=►<=► =