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 ř: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í: f(x*) > f(x), Vx e 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 ř: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í: f(x*) > f(x), Vx e M, Pozn.: Maximalizační úlohu '7 —> max"\ze snadno převést na minimalizační úlohu "—f —> 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 ř: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í: f(x*) > f(x), Vx e M, Pozn.: Maximalizační úlohu '7 —> max"\ze snadno převést na minimalizační úlohu "—f —> 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 ř: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í: f(x*) > f(x), Vx e M, Pozn.: Maximalizační úlohu '7 —> max"\ze snadno převést na minimalizační úlohu "—f —> 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í • 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 • 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ů 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 = 20000X! + 14000x2 za podmínek 0,5xi + 0,25x2 <40 0,5*1 + 0,5x2 <60 0,25x2 <25 X! , x2 > 0 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 = 20000X! + 14000x2 za podmínek 0,5x! + 0,25x2 < 40 0,5x! + 0,5x2 < 60 0,25x2 < 25 X15 x2 > o Je možný též maticový zápis úlohy: z = cT x —> max za podmínek A x < b, x > 0, kde x = (xi, x2)T je vektor strukturních proměnných, c = (20, 14) je vektor cenových koeficientů v účelové funkci, b = (40,60,25)T je vektor kapacitních / 0,5 0,25 \ omezení a A = 0,5 0,5 je matice strukturních koeficientů. \ 0 0,25 J Matematická formulace obecné úlohy LP Obecnou úlohu LP pro n proměnných a m omezení můžeme zapsat takto minimalizuj (maximalizuj) funkci za podmínek Z)yLi aijXj? bh / = 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 za podmínek Z)yLi aijXj? bh / = 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 = 5^=1 (-Cy)xy. 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ě. 100 80 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) a omezujícími podmínkami A • x < b. Ty lze vyjádřit pomocí rovností: 0,5xi + 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,5xi + 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,5xi + 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,5xi + 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 M. 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,5xi + 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 M. 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) • (x^, 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) • (x^, 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 = fy = 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 xa x5 1 1 2 4 1 1 2 2 o 1 1 0 0 0 1 0 0 0 1 40 60 25 zi -20 -14 0 0 0 0 Simplexová tabulka Uvedenou soustavu rovnic můžeme zapsat maticově jako (A, I) • (x^, 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 = fy = 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 xa x5 1 1 2 4 1 1 2 2 o 1 1 0 0 0 1 0 0 0 1 40 60 25 zi -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 bodu 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 bodu 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 bodu 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 zy 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 zy 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í. Čísla zy 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. X! 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ě xA=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ě xA=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 Xa x5 x3 xa 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 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ě xA=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 *3 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ě xA=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 *3 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ě xA=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 *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 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. Xi x2 x3 x4 x5 Ä x4 x5 1 i o { 2 0 0 -1 1 0 0 0 1 80 20 25 ZJ 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//7{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//7{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 Pí *i x4 o \ 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//7{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 Pi 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//7{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 Pi 1 0 4 0 0 40 *2 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 *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//7{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 Pi 1 0 4 0 0 40 *2 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//7{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 Pi x\ 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 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 x3 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 x3 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.: Pokud by dole zbyla záporná redukovaná cena, ale ve sloupci nad ní by už žádné číslo nebylo > 0, tak je úloha neomezená. 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 xA > 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 xA > 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: Xi -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 xA > 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: Xi -x3 = 2 x2 -x4 = 2 5^ + 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' = y\ + 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: z' = (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' = y\ + 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: z' = (2 - X! + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. X2 *3 Xa *5 yi Y2 Pi y\ 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 10 0 0 1 0 0 50 1 1 -1 -1 0 0 0 4 Jako vstupující proměnnou můžeme zvolit 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' = y\ + 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: z' = (2 - X! + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. X2 *3 Xa *5 yi Y2 Pi y\ 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 10 0 0 1 0 0 50 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' = y\ + 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: z' = (2 - X! + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi Y2 Pi y\ 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 0 0 10 1 0 -10 30 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' = y\ + 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: z' = (2 - X! + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi Y2 Pi y\ 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 5 0 0 10 1 0 -10 30 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' = y\ + 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: z' = (2 - X! + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi /2 Pi y\ 1 0 -1 0 0 1 0 2 0 1 0 -1 0 0 1 2 0 0 5 10 1 -5 -10 20 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' = y\ + 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: z' = (2 - X! + x3) + (2 - x2 + x4) = 4 - X! - x2 + x3 + x4 zákl. prom. x2 *3 x4 *5 yi /2 Pi 1 0 -1 0 0 1 0 2 x2 0 1 0 -1 0 0 1 2 x5 0 0 5 10 1 -5 -10 20 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 yi, y2 a z bodu [2,2,0,0,20] minimalizujeme funkci z = - 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 *3 x4 *5 Pi 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 *3 x4 *5 Pi 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 *3 x4 *5 Pi 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 Pí 1 0 -1 0 0 2 x2 0 1 1 2 0 1 10 4 X5 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. *1 x2 x3 x4 x5 Pi x4 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, zopt = -2. Dvoufázová simplexová metoda Celý postup v grafickém znázornění 1 z=x1-x2=c 1 6 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-1-1-1-1-1-1-1-•-1-1-1-^4 1 2 3 4 5 6 7 8 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-.-1-1-■-1-.-1-^4— 1 B 3 4 5 6 7 8 V dalším kroku se i proměnná xi stala základní s hodnotou xi = 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í: •--i-1-i-1-1-i-1-i-1-^4— 1 B 3 4 5 6 7 8 Po jednom kroku dosáhneme optima v bodě [xi, x2] = [2,4]. Dvoufázová simplexová metoda Celý postup v grafickém znázornění: 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 tvj (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 tvj (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ů gr(w) = 4O1/1/1 + 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,5i/i/i + 0,5w2 > 20, 0,5i/i/i +0,25i^2 + 0,5i^3 > 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 tvj (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ů gr(w) = 4O1/1/1 + 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,5i/i/i + 0,5w2 > 20, 0,5wi + 0,25w2 + 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í 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 tvy. 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 bj 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],4 = [20,100] resp. x* = [40,80], B = [80,0]. Pro její směrnici q tedy musí platit nerovnosti Směrnici původní izokvanty z = + 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 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 fy 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 fy. 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 fy. 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 fy ? Změnou na fy + A dostaneme nový bod optima jako průsečík přímek o rovnicích 0,5x! + 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, ..., Vms omezenými kapacitami a\, a2, ..., am a dále máme n cílových míst - odběratelů S^, S2, ..., Sn se stanovenými požadavky fy, fc>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 x,y, / = 1,..., m, j = 1,..., rí) 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, ..., Vms omezenými kapacitami a\, a2, ..., am a dále máme n cílových míst - odběratelů S^, S2, ..., Sn se stanovenými požadavky fy, fc>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 x,y, / = 1,..., m, j = 1,..., rí) tak, aby byly uspokojeny požadavky odběratelů a nebyly překročeny kapacity zdrojů.Úloha tedy obsahuje m • n proměnných x,y, pro něž minimalizujeme účelovou funkci z = E,=i Ey=i CjjXjj za podmínek Ey=i xij — &h / = 1, • • •, A77, E/=1 = 7 = 1 5 • • • 5 ^5 Xjj >0, i = 1,..., m, y = 1,..., n Úč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 X)yLi bj převyšuje celkovou kapacitu a" úloha pak nemá přípustné řešení. Úlohu, ve které platí rovnost Yfj=\ ty = 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 X)yLi ty převyšuje celkovou kapacitu a" úloha pak nemá přípustné řešení. Úlohu, ve které platí rovnost Yfj=\ ty = 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 - Yy,=\ a/- v případě převisu nabídky se naopak zavede fiktivní zákazník s požadavkem ]T"=1 a, - Yfj=\ 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 zřejmě nejjednodušší metodou 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 zřejmě nejjednodušší metodou 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 , 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 zřejmě nejjednodušší metodou 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 , 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 zřejmě nejjednodušší metodou 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 , 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 zřejmě nejjednodušší metodou 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 , 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 zřejmě nejjednodušší metodou 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 , 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 zřejmě nejjednodušší metodou 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 , 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 zřejmě nejjednodušší metodou 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 , 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 Si s2 s3 s4 2 1 3 4 6 2 6 1 v3 7 3 3 3 Nejnižší náklady jsou C12 = C24 = 1. Vyberme například první z nich, V\ 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 Si s2 s3 s4 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 Si s2 s3 s4 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 Si s2 s3 s4 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 Si s2 s3 s4 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 Si s2 s3 s4 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 Si s2 s3 s4 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 Si s2 s3 s4 2 1 3 4 6 2 6 1 v3 7 3 3 3 Výsledné přepravní náklady jsou X^2'C^2+X2^'C2^+X22'C22+X24'C24+X3^'C3^+X33'C33 = 5 + 6+2 + 5+14+12 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 3 6 4 5 5 o 7 N 6 Si s2 s3 s4 di. 2 1 3 4 1 v2 6 2 6 1 1 v3 7 3 3 3 0 dj 4 1 0 2 Njevětší diference je v prvním sloupečku, vybereme tedy jeho nejmenší náklad, což je Cn = 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 0 6 4 5 2 3 o 7 N 6 Si s2 s3 s4 di. 1 3 4 2 v2 2 6 1 1 v3 3 3 3 0 dj 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 0 4 4 5 0 3 2 o 7 N 6 Si s2 s3 s4 di. v2 2 6 1 1 v3 3 3 3 0 dj 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 0 4 0 5 0 3 2 o 7 N 2 4 Si s2 03 04 di. v2 2 1 1 v3 3 3 0 dj 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 0 4 0 0 0 3 2 _Q 2 5 N 2 4 Si 02 03 S4 di. v2 2 v3 3 dj 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 0 2 0 0 0 3 2 _Q 0 2 5 N 2 4 Si S2 S3 S4 di. v2 v3 dj 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 dL, / = 1,... 3 a dy, y = 1,... 4. požadavky Xij 0 0 0 0 0 3 2 _Q 0 2 5 N 0 2 4 Si s2 s3 s4 di. 2 1 3 4 1 v2 6 2 6 1 1 v3 7 3 3 3 0 dj 4 1 0 2 Výsledné přepravní náklady jsou *n ■ C11 + x12 ■ C12 + *22 • 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 = Y!ľ=\ SýLi cijxij ~^ min za podmínek y^y—1 Xjj = Bh / = 1, . . . , /77, E/=1 *ij = tyi J = *!)•••) ^5 X/y > 0, / = 1, . . . , 777, / = 1, . . . , /7 formulujeme pomocí duálních proměnných t/,-, vj, / = 1,..., m, y = 1,..., n : E,=i + Ey=i fyľy -> ™ax za omezení u-, + vi < c», / = 1,..., rn, y = 1,..., n 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 = Y^!Ĺ\ Z)yLi cuxu ~^ mm za podmínek y^y—1 Xjj = cž/, / = 1 , . . . , A77, X]/=1 Xij = tyi 1 — 1, . . . , H, Xjj >0, i = 1,..., m, y = 1,..., n formulujeme pomocí duálních proměnných uh vy, / = 1,..., m, j = 1,..., n : E,=i a-iUi + EjLi Vy ^ ™ax za omezení L/y■ + v} < c,y, / = 1,..., m, y = 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. (Uj + 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 + a? - 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, zda je nalezené řešení optimální, tj. zda u j + v i — c n < 0, / = 1,..., m, 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 Si s2 s3 s4 U; 2 1 3 4 1 v2 6 2 6 1 2 v3 7 3 3 3 3 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é Čij Si s2 s3 s4 U; V, 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 prípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 1 5 1 5 6 2 4 Čij 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 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 prípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 1 5 1 5 6 2 4 Čij 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 Je vidět, že v levém horním rohu je porušena podmínka optimality: u\ + v\ = 5 > en = 2. Dopravní problém - MODI Kritérium optimality však není splněno pro prí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 u, Vi 2 1 3 4 -1 v2 6 2 6 1 0 Vz 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: u\ + v\ = 5 > en = 2. K základnímu řešení s lepší hodnotou primárni účelové funkce přejdeme volbou x\\ 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 xn. 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 x21. 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 prípustné řešení nalezené indexovou metodou: požadavky Čij Si 02 S3 s4 u, Xij 3 6 4 5 2 1 3 4 -1 H—' 5 1 4 v2 6 2 6 1 0 "o 03 Q_ 03 7 0 2 5 v3 7 3 3 3 4 6 2 4 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 prí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 C// Si s2 s3 u, Vi 2 1 3 4 -1 v2 6 2 6 1 0 v3 7 3 3 3 4 3 2 -1 1 Znovu doplníme uh 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 xn a zmenšíme x12. Dostaneme novou tabulku. Dopravní problém - MODI Kritérium optimality však není splněno pro prípustné řešení nalezené indexovou metodou: požadavky Xij 3 6 4 5 )acita 5 7 3 2 2 5 6 0 2 4 Čij Si s2 s3 s4 U; Vi 2 1 3 4 1 v2 6 2 6 1 2 v3 7 3 3 3 3 vj 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é x,y 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í /-tého úkolu y-tému pracovnímu místu můžeme reprezentovat zápisem x,j■ = 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 °ÍjXÍj za podmínek 5£i Xíj = 1, / = 1 , . . . , A7, Xfj = 1, j = 1 , . . . , A7, x9€{0, 1}, / = 1, y = 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 pry^u. « = ► < = ► = , 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. «!► b, 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, > b, 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 Mi 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, = i/y, 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. • 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. Šubrt: Ekonomicko-matematické metody: Nejprve přidáme hranu s hodnotou 1. 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. 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 i/5 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 i/5 1/6 1/7 1/8 vH9> vH8} ¥2-(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 i/5 1/6 1/7 1/8 ¥2-(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 i/5 1/6 1/7 1/8 vH9> vH8} ¥2-(8} v2-(2> v5 (10) v5 (7) v3-(9> v3 (10) v2 (10) v2-(3> ¥3-(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 i/5 1/6 1/7 1/8 vH9> vH8} ¥2-(8} v2-(2> v5 (10) v5 (7) v3-(9> v3 (10) v2 (10) v2-(3> ¥3-(6> v3 (10) v€-(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) v€-(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 i/5 1/6 1/7 1/8 v+^9> ¥2-(8} v2-(2> v5 (10) v€-(7> v3-(9> v3 (10) v2 (10) v2-(3> ¥3-(6> v3 (10) v€-(2> v3-(3> v4^(2> v8(1) v7 (1) v€-(8> v5 (6) v€-(3> v6(10) v5 (10) v€-(2> v6 (10) v€-(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 i/5 1/6 1/7 1/8 vH9> ¥2-(8> v2-(2> v5 (10) vW v3-(9> v3 (10) v2 (10) v2-(3> ¥3-(6> v3 (10) ¥6-(3> v€-(2> v4-(8> v4-(3) v4-(3> v3-(3> v4-(3> v4-(2> v7 (1) v€-(8> v5 (6) v€-(3> v6(10) v5 (10) v6-(2) v6 (10) v€-(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 Velvarech. 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č) • 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č) • 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. 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 -< □ ►-4 ►-< H 1 S »-4 = >-S-l Ří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 Uj, 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# • 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 ty 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 + yif) 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, t- = mirij(tj - y,j) 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á y^ dostaneme její pro časovou rezervu vztah: *ij = 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 i£ = 6 + 4 = 10. < □ ► < 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čátky činností. Nejdříve možný začátek činností D,G je ř? = max(10 + 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 íS = 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 tí =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 = min^ - 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. <á = 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\ = min^ 3 - 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 = min^8 - 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 = min^ 0 - 4,11 - 3) = 6. Protože jsme vycházeli z nejrychlejší možné realizace projektu, samozřejmě vyšlo t1 = 6 - 6 = 0. Critical Path Method (CPM) - 3. fáze Dopočítáme rezervy jednotlivých činností podle vztahu R,j = 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 R79 = 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# nahrazeny náhodnými veličinami, které se realizují na nějakém intervalu (a,y,b,y). 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# nahrazeny náhodnými veličinami, které se realizují na nějakém intervalu (a,y,b,y). 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. 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 y~r .. — bÍj-aÍj aiJ — 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# nahrazeny náhodnými veličinami, které se realizují na nějakém intervalu (a,y,b,y). 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. 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 /i,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. Vícekriteriální rozhodování V reálných rozhodovacích situacích je často důležité vzít do úvahy více optimalizačních kritérií. Tato však zřídka bývají ve vzájemném souladu, takže není možné najít řešení, které bude nejlepší podle všech kritérií. Úlohy vícekriteriálního rozhodování se dělí podle způsobu stanovení rozhodovacích variant. • Jsou-li stanoveny výčtem, mluvíme o vícekriteriálním hodnocení variant (VHV). • Jiný přístup je vymezení variant soustavou omezujících podmínek, mluvíme pak o úlohách vícekriteriálního programování. Vícekriteriální hodnocení variant V úlohách VHV je dána množina variant X = {X|,..., Xn}, které jsou hodnoceny podle kritérií ,..., Yk. Každá varianta je pak popsána vektorem kriteriálních hodnot, tyto lze pak jako řádky pro jednotlivé varianty shrnout do kriteriální matice. Y Y2 Y k x, Xn yi2 x2 /21 /22 y2k Xn 7n1 yn2 ynk Součástí modelu úlohy musí být u kvantitativních kritérií i určení jejich typu (maximalizační či minimalizační). Protože některé metody vyžadují, aby všechna kritéria byla stejného typu, někdy je nutné provést transformaci (např. u hodnocení hospodářské vyspělosti je HDP na hlavu kritériem maximalizačním a míra nezaměstnanosti minimalizačním). Další oblasti aplikace VHV jsou velmi široké: různá výběrová řízení, hodnocení podniků, výrobků či služeb, výběr lokality pro investiční akci, atd. Vícekriteriální hodnocení variant - příklad Dále uvedené postupy budeme ilustrovat na příkladu výběru tabletu (z knihy Tomáš Šubrt a kol.: Ekonomicko - matematické metody): Uživatel definoval pět relevantních hledisek, podle kterých bude jednotlivé nabídky hodnotit: cena [Kč], velikost operační paměti RAM [MB], výdrž baterie [hod.], hmotnost [g] a souhrnně kombinace OS, procesoru a velikosti displeje. V úvahu připadá pět konkrétních tabletu T1 - T5, uveďme přehled jejich charakteristik: cena RAM výdrž baterie hmotnost OS, procesor, display T1 12000 1000 9,5 680 Android 3.0,Tegra 1 GHz, 10,1" T2 12000 1000 10 600 Apple 1054,1 GHz Dual, 9,7" T3 5000 512 7 380 Android 2.2, 1 GHz, 7" T4 20000 4000 3 1160 Windows 7,iCore5 1 GHz, 12,1" T5 5000 256 4 400 Android 2.1, 800 MHz, 7" První čtyři kritéria jsou kvantitativní (cena a hmotnost minimalizační, ostatní maximalizační), u pátého kritéria máme alespoň ordinální informaci v podobě pořadí tabletu dle odborníka: 1,3,4,2,5. Vícekriteriální hodnocení variant Mezi základní cíle při analýze VHV patří: • výběr jedné, tzv. kompromisní varianty (např. při výběrovém řízení) • uspořádání variant (např. spotřebitelské žebříčky) • klasifikace variant (např. při přijímačkách: přijatí/nepřijatí nebo hodnocení bonity klientů bankou, atd.) Vzájemný vztah mezi variantami může při VHV být následující: • Varianta X, dominuje variantu Xy, jestliže (y,i,..., yik) > (yyi,..., yjk), ale vektory se nerovnají. • Varianta Xj dominuje variantu X, • Varianty Xj, Xj 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áln 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), ][] v, = 1, v, > 0, / = 1,..., k. (kardinální informace o kritériích) • 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, = —. /=1 P i • 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 = Sy, = 1, • kritérium Y, je slabě důležitější než Yy, pak s,y = 3, Sy, = 1 /3, • kritérium Y, je silně důležitější než Yy, pak s,y = 5, sy,- = 1 /5, • kritérium V/ je velmi silně důležitější než Yy, pak s,y = 7, sy/ = 1 /7, • kritérium Y, je absolutně důležitější než Yy, pak s,y = 9, sy/ = 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 vi; = 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 íl i 1 1 li " V15> 15' 15' 15' 157- 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 V15'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 V15'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 V15'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 V15'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 V15'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ů £>, 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. 1 J J 1 >T)Q,0 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 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 • 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 jsou tedy nahrazeny pomocí hodnot i/,y = £//(//,), 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 Yy označíme Dy nejnižší a Hj nejvyšší kriteriální hodnotu, pak lze při maximalizaci nahradit prvky zestandardizovanými hodnotami y-ij - 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-ij - 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) = X)yLi 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 r,j podle vztahu O Vypočte se vážená kriteriální matice W = (wjf) jako w,j = yry. O Z prvků W se vybere ideální varianta H = (Hi,..., Hk) a bazální varianta D = (Di,..., Dk), kde Hy = maxj(Wjj), Dj = min^Wjj). (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 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 \N» a určíme ideální a bazálni variantu: H, 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 C 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 df 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 Xh Xj určíme množiny Cij = {h e k}\yih>yih} indexů kritérií, podle nichž je varianta X, alespoň tak dobrá jako Xj a Dij = {h e k}\yih c* A djj < d*. VHV - metody třídy ELECTRE Pro stanovené váhy kritérií v^...,vk pak vypočteme pro každou dvojici variant stupeň preference vztahem °ij — J2hedj vh Platí Cjj e (0,1). V dalším kroku se pro každou dvojici variant vypočte stupeň dispreference vztahem _ maxheD..\yjh-yjh\ 'j ~ maxh=^..^k\yih-yjh\ ' v případě Djj = 0 se definuje d,j = 0. Opět platí ď,j e (0,1). Pomocí vhodně stanovených konstant prahu preference c* a prahu dispreference ď se rozhodne o celkové preferenci mezi X, a Xf. X, preferujeme před Xy, platí-li c,j > c* A ď,j < d*. 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» 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» 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: 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 Dn Dij 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 Dn Dij 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 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 < □ ► < [51 ► 4 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 XhXj 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 X, preferováno před Xy a Ph(XhXj) = 1 v případě absolutní preference. 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 XhXj 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 - yjh), 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í i podle vztahu P(XhXj) = j:kh=,vhPh(XhXj). Pro získání výsledné relace vypočteme pro každou variantu pozitivní (výstupní) a negativní (vstupní) tok jako F+(Xi) = ?M P(XhXj)/(n- 1), F-(Xi) P(Xh 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) = 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{XhXj)/{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'.' yíi 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'.' yíi 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 di. 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(XhXj) T1 T2 T3 T4 T5 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(XhXj) 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 Varianta Xi Wu, j=1,..,k Varianta X* W2J, j=1,..,k Kritérium Yi Varianta X, 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 w^, i = 1,..., n. Z konstrukce modelu vyplývá, že platí vztahy Y^!j=\ vi; = 1 > Z)/Li wíj = vb J = 1' • • •k Celkový užitek, podle nějž lze varianty uspořádat, se vypočte jako u(Xj) = X)Li wij- 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 w^, i = 1,..., n. Z konstrukce modelu vyplývá, že platí vztahy Y^!j=\ vi; = 1 > Z)/Li wu = vb J = 1 > • • •k Celkový užitek, podle nějž lze varianty uspořádat, se vypočte jako u(Xj) = J]yLi 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 e X = {x e Mn|Ax < b, x > 0}, kde c' je cenový vektor i-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 e X = {x e Mn|Ax < b, x > 0}, kde c' je cenový vektor i-té účelové funkce. Pomocí ekvivalence minimalizační úlohy pro z, s maximalizační úlohou pro -Zj 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í. 2 2 C X 2 1 C X 12 11 C X 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, • 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, • 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 • 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 • ř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) Vícekriteriální programování - klasifikace metod Metody s informací apriori dělíme do několika skupin: • 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: • 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) • 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: • 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: • 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) • 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\ = 300xi + 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 z°pt,..., z°kpt). 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. Pokud má úloha více optimálních řešení, řešíme další úlohu: 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 z°pt,..., z°kpt). Hledání kompromisního řešení spočívá v postupném řešení sekvence optimalizačních úloh max. z\ = c1 x, x zopi. 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 e 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\ = 300xi + 200x2 + 170x3 + 250x4 za omezení z2 = 10xi + 15x2 + 25x3 + 5x4 < 120 , (tj. že riziko nepřesáhne hodnotu 120) a dalších omezení modelu *1 + x2 + *3 + *4 < 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\ = 300xi + 200x2 + 170x3 + 250x4 za omezení z2 = 10xi + 15x2 + 25x3 + 5x4 < 120 , (tj. že riziko nepřesáhne hodnotu 120) a dalších omezení modelu *1 + x2 + *3 + *4 < 1 00 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 = á 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 = 5 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,5x<\ - 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 = 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* - 5*. 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 - 5^. 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™111\ 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 d+, 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 d+, 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£, off —> min, za podmínek: < 0,5; x2 < 0,75 15xi +10x2 + of1+-of1- = 12 5xi + 2x2 + d£ - d2~ = 3 x1,x2,d1+,d-,cy2+,cy- > o 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 d7. 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 df" = 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. 2x2=3,2 5x^10x2=12 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]. 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) = ^!x^ za omezení 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 + dor, kterou můžeme vyjádřit jako funkci nových proměnných r, y, = x, • r, / = 1,..., n\ f(r, yi,... 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 xi, x2, x3 množství prodaných výrobků, můžeme definovat například následující poměrové ukazatele: náklaHnx/nQt tryph 7 — 11000*1 +15000x2+14000x3+150000 naKiaaovosi irzeo z - 12000^+13000x2+16000x3 ' rpntphilitn tryph 7 — 1000*1 +3000x2 +2000x3-150000 reniaDiiuu irzeo z - 12000^+13000x2+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^Í7sx^t^5° "I I 2 I 3 za podmínek 11 xi +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^Í7sx^t^5° 1 I 2 I 3 za podmínek 11 xi +15x2 + 14x3 + 150 < 200, xi, x2, x3 > 0. Úlohu linearizujeme zavedením substituce r = 12x ,181x , 16x , dostaneme tak 1 I 2 I 3 problém minimalizovat funkci r(/i, 72,73,0 = 11/1 + 15/2 + 14/3 + 150r za omezení 11^ + 15y2 + 14y3 - 50r < 0, y1} 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^Í7sx^T^5° 1 I 2 I 3 za podmínek 11 xi +15x2 + 14x3 + 150 < 200, xi, x2, x3 > 0. Úlohu linearizujeme zavedením substituce r = 12x ,181x , 16x , dostaneme tak 1 I 2 I 3 problém minimalizovat funkci r(/i, 72,73,0 = 11/1 + 15/2 + 14/3 + 150r za omezení 11^ + 15y2 + 14y3 - 50r < 0, y1} 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 o H / o E / 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 f/y = */*i neboť y = yi nebo í/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], A2[x2,y2], vzhledem ktomu, že , 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 f/y = */*i neboť y = yi nebo f/f =/2/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 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. 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 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 1( 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 H-1-i-1-1-1-1- 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 ,..., Un 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 = (x1q,... ,xmq)\ yq = (y1q,... ,7^)'. Hodnoty lze uspořádat do matic x = Mg i:.:." y = [yiqiq \:: 0, vý > 0, / = 1,... A77, y = 1,... r. CCR model orientovaný na vstupy Celý model pro jednotku Uq lze formulovat jako úlohu lineárního lomeného programování _ uiyu,+...+uryn, Z ~ v,x,q+...+vmXmq ^ maxu,v za omezení uiyv<+...+Uryrk < 1 /r — 1 n V^k + ... + VmXmk !,...##, u, > 0, vy > 0, / = 1,... m, y = 1,... r. Úlohu lze snadno linearizovat pomocí Charnes-Cooperovy transformace: z = uAyAq + ... + uryrq maxWjV za omezení i/1x1q + ...+ ^xmq = 1 + • • • + Ur/r/c < KiX1/c + . . . + /C = 1, ... H, Ui >0, Vj > 0, / = 1,... m, y = 1,... r. CCR model orientovaný na vstupy Celý model pro jednotku Uq lze formulovat jako úlohu lineárního lomeného programování _ u^yiq+...+uryrq za omezeni u^yik+...+uryrk < a /r — 1 n v,xu<+...+vmxmk i,...//, Ui >0, Vj > 0, / = 1,... m, y = 1,... r. Úlohu lze snadno linearizovat pomocí Charnes-Cooperovy transformace: z = u^y^q + ... + uryrq A77axw^ za omezení vix1q + ... + vw^q- = 1 U\y\k + • • • + Uryrfr < ViXw + . . . + VmXmk, k = 1, . . . /7, Ui >0, Vj > 0, / = 1,... m, y = 1,... r. Tento model nazýváme CCR modelem orientovaným na vstupy. Množina takových indexů k e {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 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 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 4vA +3v2 = 1, u < 4vi +3v2 (A) u<8vi + v2 (C) u < 2^ +4v2 (E) u, vu v2>0 u < lvA +3v2 (B) u < 4v\ +2v2 (D) u<^0v^ + 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 A B C D E F 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 4^ +3v2 = 1, u < 4^ +3v2 (A) u < 8vi + v2 (C) u < 2^ + 4v2 (E) u, vu v2>0 u < lvA + 3v2 (B) u < 4^ +2v2 (D) u<^0v^ + v2 (F) Úlohu lze vyřešit standartními postupy lineárního programování, pro A dostaneme řešení z* = a* = 6/7, v? = v? = 11I. Jednotka A není efektivní, 1 — v2 protože z* = 6/7 < 1, omezující nerovnice pro jednotky D, E jsou aktivní, tedy D,E jsou kandidáty na referenční jednotky pro A. CCR model - príklad Úlohy pro ostatní jednotky budou podobné, lišit se budou pouze v omezující rovnosti, pro jednotku B to bude podmínka lv\ + 3v2 = 1, atd. V tabulce jsou shrnuty výsledky úloh pro všechny jednotky: jednotka x2 y v* z* = u* referenční množina A 4 3 1 1/7 1/7 6/7 D, E B 7 3 1 1/19 4/19 12/19 C,D C 8 1 1 1/12 1/3 1 C D 4 2 1 1/6 1/6 1 D E 2 4 1 3/14 1/7 1 E F 10 1 i 0 1 1 C CCR model - príklad Úlohy pro ostatní jednotky budou podobné, lišit se budou pouze v omezující rovnosti, pro jednotku B to bude podmínka lv\ + 3v2 = 1, atd. V tabulce jsou shrnuty výsledky úloh pro všechny jednotky: jednotka x2 y v* z* = u* referenční množina A 4 3 1 1/7 1/7 6/7 D, E B 7 3 1 1/19 4/19 12/19 C,D C 8 1 1 1/12 1/3 1 C D 4 2 1 1/6 1/6 1 D E 2 4 1 3/14 1/7 1 E F 10 1 i 0 1 1 C Vidíme, že jednotky C,D,E jsou efektivní. Optimální hodnota účelové funkce pro F je sice také rovna 1, ale referenční jednotkou pro F je C, protože má při stejném vstupu v2 nižší vstup vi. V definici CCR efektivnosti je tedy třeba zdůraznit: jednotka je CCR efektivní, je-li její z* = 1 a existuje aspoň jedno řešení, pro něž a* > 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 -> maxU)V za omezení vxq = 1 uY < vX, u, v > 0. CCR model - duální úloha Zapišme CCR model pro jednotku Uq maticově: z = uyq -> maxU)V za omezení vxq = 1 uY < vX, u, v > 0. K úloze formulujme její duální problém, duální proměnné označíme 6 a A = (Ai,... An)': z = 9 -> mine,\ za omezení é»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 efektivní hranici: 9xq > XA, YA > yq 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: 6>xq > 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 #* (tzv. Farrellova efektivnost) vyjadřující potřebnou radiální redukci vstupů k dosažení efektivní hranice jednotková, 0* = 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: 6>xq > 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 #* (tzv. Farrellova efektivnost) vyjadřující potřebnou radiální redukci vstupů k dosažení efektivní hranice jednotková, 0* = 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: 6>xq > 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 #* (tzv. Farrellova efektivnost) vyjadřující potřebnou radiální redukci vstupů k dosažení efektivní hranice jednotková, 0* = 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>oOa označme e = (1,..., 1)T. Duální úlohu lze též formulovat ve tvaru z = #- £-(e-s+ + e- s~) -> min0X,s+, s-za omezení S = OXq — xa, s+ = ya - yq, a, S+, S- > 0 Duální CCR model - alternativní formulace Uvažujme primární CCR model s požadavkem nenulovosti vah u, v>s>0a označme e = (1,..., 1 )T. Duální úlohu lze též formulovat ve tvaru z = #- £-(e-s+ + e- s~) -> miriQ \ s+ s- za omezení S = $Xq — 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, y^ pomocí tzv. CCR - projekce: = 6>*xq - s"*, yq7 = yq + s+*5 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. 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") -> A77/A70,A,s+, s~ za omezení S = Xq — xa. s+ = ya-0yq, a, s+, s- > 0 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-) -> minQX,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 Xq = xa*, yq' = ya*. 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-) -> minQX,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* = 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 = 0\q — 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 = 0\q — 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 • 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 • 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 143318 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 < □ ► < [51 ► 4 Matematická analýza funkcí více proměnných Předpokládejme dále, že funkce f je spojitě diferencovatelná až do řádu 2. Gradient funkce Matematická analýza funkcí více proměnných Předpokládejme dále, že funkce f je spojitě diferencovatelná až do řádu 2. Gradient funkce Buď Xcp,í:X^I funkce n proměnných. Gradientem funkce f v bodě t = (ři,..., tn) e X nazýváme vektor v/(t) = (/;i(t),...,^(t))T. Matematická analýza funkcí více proměnných Předpokládejme dále, že funkce f je spojitě diferencovatelná až do řádu 2. Gradient funkce Buď XcRV^^I funkce n proměnných. Gradientem funkce f v bodě t = (ři,..., tn) g X nazývame vektor v/(t) = (/;i(t),...,^(t))T. Hessova matice Hessovou maticí funkce f v bodě t = (ři,..., tn) e X nazývame symetrickou matici řádu n\ «(t) = (^;,,(t))^=i Matematická analýza funkcí více proměnných Předpokládejme dále, že funkce f je spojitě diferencovatelná až do řádu 2. Gradient funkce Buď XcRViA7^! funkce n proměnných. Gradientem funkce f v bodě t = (ři,..., tn) e X nazýváme vektor v/(t) = (/;i(t),...,^(t))T. Hessova matice Hessovou maticí funkce f v bodě t = (ři,..., tn) e X nazýváme symetrickou matici řádu n\ «(t) = (^xy(t))^=1 Příklad : Určete gradient a Hessovu matici funkce f(x,y) = x ■ y2 v bodě (5,3). Matematická analýza funkcí více proměnných Předpokládejme dále, že funkce f je spojitě diferencovatelná až do řádu 2. Gradient funkce Buď X c M77, /: X —> R funkce a? proměnných. Gradientem funkce / v bodě t = (ři,..., ín) e X nazýváme vektor v/(t) = (/;1(t),...,^(t))T. Hessova matice Hessovou maticí funkce f v bodě t = (ři,..., ř„) e X nazýváme symetrickou matici řádu n\ «(t) = (C(t))"/=1 Příklad : Určete gradient a Hessovu matici funkce f(x,y) = x ■ y2 v bodě C5,3). Řešení: Parciální derivace prvního řádu jsou: f'x(x,y) = y2, fý(x,y) = 2x ■ y, tedy W(5,3) = (9,30)T. Matematická analýza funkcí více proměnných Předpokládejme dále, že funkce f je spojitě diferencovatelná až do řádu 2. Gradient funkce Buď X c Rn, f: X -> R funkce n proměnných. Gradientem funkce f v bodě t = (ři,..., tn) e X nazýváme vektor W(t) = (ř;(t),..,((t))T. Hessova matice Hessovou maticí funkce f v bodě t = (ři,..., tn) e X nazýváme symetrickou matici řádu n\ H(t) = (^(t))^ Příklad : Určete gradient a Hessovu matici funkce f(x,y) = x ■ y2 v bodě (5,3). Řešení: Parciální derivace prvního řádu jsou: ?x{x,y) = y2, fý(x,y) = 2x ■ y, tedy W(5,3) = (9,30)T. Parciální derivace druhého řádu jsou: f»(x, y) = 0, %(x, y) = 2y, f'y'y(x, y) = 2x, tedy H(5,3) = ( ° ^ J Směrové derivace Uvažujme X c R", funkci f: X -> R, bod t e X a jednotkový vektor s e R". Vytvoříme funkci jedné proměnné y) = I • (0 + 2y + 2y + 2x) = 2y + x. Grafické znázornění funkce dvou proměnných V třírozměrném prostoru si můžeme graf funkce dvou proměnných představit jako zemský povrch. Pro znázornění povrchu ve 2D se používají většinou vrstevnice funkce. Grafické znázornění funkce dvou proměnných Podobným způsobem si můžeme znázornit třeba funkci f{x,y) X -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 Grafické znázornění funkce dvou proměnných -2 -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 Vrstevnicí funkce r(x,y) "o nadmořské výšce c"rozumíme množinu všech bodů (x,y) g M2 takových, že platí r(x,y) = c. Například pro výše uvedenou funkci f(x,y) určíme nultou vrstevnici jako množinu všech řešení rovnice o dvou neznámých = 0- Zřejmě musí být x = 0, ale y je libovolné, tedy dostaneme množinu {(0,y), y e R}. Grafické znázornění gradientů funkce dvou proměnných Gradient V/(x, y) většinou znázorňujeme jako vektor vycházející z bodu (x, y) do bodu (x + ťx(x, y), y + fý(x, y)). Na obrázku vidíme gradienty funkce K*, y) = -v v bodech pravidelné sítě. Gradienty a vrstevnice Znázorníme-li gradienty funkce do stejného obrázku s vrstevnicemi, můžeme si všimnout, že se jeví jako normálové vektory vrstevnic. Dá se ukázat, že libovolná funkce f v zadaném bodě x nejprudčeji roste ve směru gradientu V/(x) a nejstrměji klesá ve směru -V/(x). Konvexní množina Množinu M cRn nazveme konvexní, jestliže pro každé dva její body A, B jsou všechny body úsečky AB také prvky množiny M. Tuto vlastnost můžeme analyticky vyjádřit symbolickým zápisem: A,BeM=>V\e (0,1) : a4 + (1 - X)B e M Konvexní množina Množinu M cRn nazveme konvexní, jestliže pro každé dva její body A, B jsou všechny body úsečky AB také prvky množiny M. Tuto vlastnost můžeme analyticky vyjádřit symbolickým zápisem: ABgM=>VAg (0,1) : Ad + (1 -X)BeM Na obrázku je znázorněn příklad konvexní a nekonvexní množiny. Poznámka: Průnik dvou konvexních množin je opět konvexní množinou (toto tvrzení lze tedy zřejmě rozšířit pro průnik více konvexních množin). Konvexní funkce Funkci f definovanou na konvexní množině M c Rn nazveme konvexní na M, jestliže pro každé dva body A, B e M platí: va e (0,1) : f(XA + (1 - X)B) < Xf(A) + (1 - \)f(B). Konvexní funkce Funkci f definovanou na konvexní množině M cRn nazveme konvexní na M, jestliže pro každé dva body A, B e M platí: VA e (0,1) : f(XA + (1 - X)B) < Xf(A) + (1 - \)f(B). Pokud je pro všechna A / B a A g (0,1) tato nerovnost ostrá, je funkce f na množině M ostře konvexní. Geometrický význam: "Spojnice každých dvou bodů grafu leží nad grafem." Konvexní funkce Funkci f definovanou na konvexní množině M cRn nazveme konvexní na M, jestliže pro každé dva body A, B e M platí: VA e (0,1) : f(XA + (1 - X)B) < Xf(A) + (1 - \)f(B). Pokud je pro všechna A / B a A g (0,1) tato nerovnost ostrá, je funkce f na množině M ostře konvexní. Geometrický význam: "Spojnice každých dvou bodů grafu leží nad grafem."Na obrázku je znázorněn příklad funkce f(x, y) = x2 + y2, která je konvexní v M2. Konvexní funkce Příklady konvexních funkcí v Rn\ • Pro libovolný vektor c e Rn je lineární funkce f(x) = cT x konvexní na Rn (není ale ostře konvexní). • Euklidovská metrika ||x|| = \Y^=\ xf Je konvexní na Rn. Konvexní funkce Příklady konvexních funkcí v Rn\ • Pro libovolný vektor c g DX77 je lineární funkce f(x) = cT x konvexní na Rn (není ale ostře konvexní). Pro konvexní funkce platí řada tvrzení: • Jsou-li f(x) a g(x) konvexní funkce, pak jejich součet f(x) + g(x) je též konvexní (totéž platí i pro součin f(x) • g(x) v případě nezápornosti funkcí). • Pro konvexní funkci f(x) na Rn a libovolnou konstantu c platí: Množina X = {x g Rn : f(x) < c} je konvexní. • Protože průnik konvexních množin je konvexní množinou, zřejmě je i přípustná množina lineárních úloh X = {x g Rn : A • x < b} pro libovolnou matici A a vektor pravých stran b konvexní množinou. Říkáme, že X je konvexní polyedr. • Euklidovská metrika llx Hessova matice konvexní funkce Funkci f nazveme konvexní v bodě t, jestliže existuje okolí tohoto bodu, na kterém je konvexní. U funkce jedné proměnné lze konvexitu rozpoznat podle znaménka druhé derivace. Hessova matice konvexní funkce Funkci f nazveme konvexní v bodě t, jestliže existuje okolí tohoto bodu, na kterém je konvexní. U funkce jedné proměnné lze konvexitu rozpoznat podle znaménka druhé derivace. Zobecněním této úvahy pro funkci více proměnných dostaneme tvrzení: Dvakrát diferencovatelná funkce f je konvexní v bodě t právě když pro každý směr s platí: ^'(t) > 0 (při platnosti ostré nerovnosti dostaneme ostrou konvexitu). Hessova matice konvexní funkce Funkci f nazveme konvexní v bodě t, jestliže existuje okolí tohoto bodu, na kterém je konvexní. U funkce jedné proměnné lze konvexitu rozpoznat podle znaménka druhé derivace. Zobecněním této úvahy pro funkci více proměnných dostaneme tvrzení: Dvakrát diferencovatelná funkce f je konvexní v bodě t právě když pro každý směr s platí: ^'(t) > 0 (při platnosti ostré nerovnosti dostaneme ostrou konvexitu). Tedy Hessova matice H (i) má následující vlastnost: VSERn: £'(t) = S • H(t) • ST > 0 V lineární algebře se takové matice nazývají pozitivně semidefinitní (pokud je nerovnost pro každé nenulové s ostrá, pak je matice pozitivně definitní). Hessova matice konvexní funkce Funkci f nazveme konvexní v bodě t, jestliže existuje okolí tohoto bodu, na kterém je konvexní. U funkce jedné proměnné lze konvexitu rozpoznat podle znaménka druhé derivace. Zobecněním této úvahy pro funkci více proměnných dostaneme tvrzení: Dvakrát diferencovatelná funkce f je konvexní v bodě t právě když pro každý směr s platí: ^'(t) > 0 (při platnosti ostré nerovnosti dostaneme ostrou konvexitu). Tedy Hessova matice H (i) má následující vlastnost: VSERn: £'(t) = S • H(t) • ST > 0 V lineární algebře se takové matice nazývají pozitivně semidefinitní (pokud je nerovnost pro každé nenulové s ostrá, pak je matice pozitivně definitní). Příklad : Je funkce f(x, y,z) = x2 + z • y2 konvexní v bodě [1,1,1]? Hessova matice konvexní funkce Funkci f nazveme konvexní v bodě t, jestliže existuje okolí tohoto bodu, na kterém je konvexní. U funkce jedné proměnné lze konvexitu rozpoznat podle znaménka druhé derivace. Zobecněním této úvahy pro funkci více proměnných dostaneme tvrzení: Dvakrát diferencovatelná funkce f je konvexní v bodě t právě když pro každý směr s platí: ^'(t) > 0 (při platnosti ostré nerovnosti dostaneme ostrou konvexitu). Tedy Hessova matice H (i) má následující vlastnost: VSERn: £'(t) = S • H(t) • ST > 0 V lineární algebře se takové matice nazývají pozitivně semidefinitní (pokud je nerovnost pro každé nenulové s ostrá, pak je matice pozitivně definitní). Příklad : Je funkce f(x, y,z) = x2 + z • y2 konvexní v bodě [1,1,1]? Řešení: Spočítáme Hessovu matici: Hessova matice konvexní funkce Funkci f nazveme konvexní v bodě t, jestliže existuje okolí tohoto bodu, na kterém je konvexní. U funkce jedné proměnné lze konvexitu rozpoznat podle znaménka druhé derivace. Zobecněním této úvahy pro funkci více proměnných dostaneme tvrzení: Dvakrát diferencovatelná funkce f je konvexní v bodě t právě když pro každý směr s platí: ^'(t) > 0 (při platnosti ostré nerovnosti dostaneme ostrou konvexitu). Tedy Hessova matice H (i) má následující vlastnost: VSERn: £'(t) = S • H(t) • ST > 0 V lineární algebře se takové matice nazývají pozitivně semidefinitní (pokud je nerovnost pro každé nenulové s ostrá, pak je matice pozitivně definitní). Příklad : Je funkce f(x, y,z) = x2 + z • y2 konvexní v bodě [1,1,1]? / 2 0 0 \ Řešení: Spočítáme Hessovu matici: H(1,1,1)= 0 2 2 , například \ 0 2 0 J pro vektor s = (-1 ,-1,2) platí s • H(1,1,1) • sT = -4 < 0. Funkce není v bodě [1,1,1] konvexní. Lokální extrémy Řekneme, že funkce f: Rn —> R má v bodě a e Df. O lokální maximum, když existuje jeho 5-okolí í/*(a) c Df takové, že Vx e U5(a) platí f(x) < f {a) O lokální minimum, když existuje jeho 5-okolí í/j(a) c Df takové, že Vx e Uô(a) platí f(x) > f {a) Lokální extrémy Řekneme, že funkce f: Rn —> R má v bodě a e Df. O lokální maximum, když existuje jeho 5-okolí í/*(a) c Df takové, že Vx e U5(a) platí f(x) < f {a) O lokální minimum, když existuje jeho 5-okolí í/j(a) c Df takové, že Vx e Uô(a) platí f(x) > f {a) Poznámka: jsou-li nerovnosti splněny na ryzím okolí Uô{a) \ {a} ostře, pak extrémy nazýváme ostré. Poznámka: Funkce f může mít lokální extrémy pouze ve stacionárních bodech (tedy bodech s nulovým gradientem), nebo v bodech, v nichž neexistuje aspoň jedna parciální derivace prvního řádu. Lokální extrémy Řekneme, že funkce f: Rn —> R má v bodě a e Df. O lokální maximum, když existuje jeho 5-okolí Uó(a) c D/ takové, že Vx e U5(a) platí f(x) < f {a) o lokální minimum, když existuje jeho 5-okolí í/j(a) c D/ takové, že Vx e Uô(a) platí /(x) > f {a) Poznámka: jsou-li nerovnosti splněny na ryzím okolí Us{a) \ {a} ostře, pak extrémy nazýváme ostré. Poznámka: Funkce f může mít lokální extrémy pouze ve stacionárních bodech (tedy bodech s nulovým gradientem), nebo v bodech, v nichž neexistuje aspoň jedna parciální derivace prvního řádu. Příklad: Funkce r(x,y) = ^/x2 + y2 má minimum v bodě [0,0], kde neexistují parciální derivace. Lokální extrémy Řekneme, že funkce f: Rn —> R má v bodě a e Df. O lokální maximum, když existuje jeho 5-okolí Uó(a) c D/ takové, že Vx e U5(a) platí f(x) < f {a) o lokální minimum, když existuje jeho í-okolí í/j(a) c D/ takové, že Vx e Uô(a) platí /(x) > f {a) Poznámka: jsou-li nerovnosti splněny na ryzím okolí Us{a) \ {a} ostře, pak extrémy nazýváme ostré. Poznámka: Funkce f může mít lokální extrémy pouze ve stacionárních bodech (tedy bodech s nulovým gradientem), nebo v bodech, v nichž neexistuje aspoň jedna parciální derivace prvního řádu. Příklad: Funkce r(x,y) = x2 + y2 má minimum ve stacionárním bodě [0,0]. Lokální extrémy Řekneme, že funkce f: Rn —> R má v bodě a e Df. O lokální maximum, když existuje jeho 5-okolí Uó(a) c D/ takové, že Vx e U5(a) platí f(x) < f {a) o lokální minimum, když existuje jeho 5-okolí í/j(a) c D/ takové, že Vx e Uô(a) platí /(x) > f {a) Poznámka: jsou-li nerovnosti splněny na ryzím okolí Us{a) \ {a} ostře, pak extrémy nazýváme ostré. Poznámka: Funkce f může mít lokální extrémy pouze ve stacionárních bodech (tedy bodech s nulovým gradientem), nebo v bodech, v nichž neexistuje aspoň jedna parciální derivace prvního řádu. Příklad: Funkce r(x,y) = x2 - y2 má stacionární bod [0,0], kde není extrém, jedná se o sedlový bod. Při rozhodování o tom, zda ve stacionárním bodě nastává lokální extrém, se řídíme pomocí Hessovy matice. Zřejmě je-li ve svém stacionárním bodě funkce f ostře konvexní, tj. má-li zde pozitivně definitní Hessovu matici, pak zde nabývá svého lokálního minima. Pozitivně definitní matici lze rozpoznat podle toho, že má všechny hlavní minory, tj. determinanty vycházející z levého horního rohu, kladné. Lokální extrémy Při rozhodování o tom, zda ve stacionárním bodě nastává lokální extrém, se řídíme pomocí Hessovy matice. Zřejmě je-li ve svém stacionárním bodě funkce f ostře konvexní, tj. má-li zde pozitivně definitní Hessovu matici, pak zde nabývá svého lokálního minima. Pozitivně definitní matici lze rozpoznat podle toho, že má všechny hlavní minory, tj. determinanty vycházející z levého horního rohu, kladné. Podmínky pro existenci extrému shrnuje Sylvestrovo kritérium Buď f :Rn ^Raa e Df její stacionární bod. Označme Dk(a), k = 1,..., n determinant submatice vytvořené z prvních k řádků a sloupců Hessovy matice H(a). Pak O Jestliže (a) > 0, D2(a) > 0,..., Dn(a) > 0, má f v a lok. minimum. o Jestliže (a) < 0, D2(a) > 0,..., (-1 )nDn(a) >0, má/va lok. maximum. o Jestliže jsou všechny minory Dk(a), k = 1,..., n nenulové a přitom neplatí žádná z předchozích možností, pak v bodě a není extrém. Lokální extrémy Při rozhodování o tom, zda ve stacionárním bodě nastává lokální extrém, se řídíme pomocí Hessovy matice. Zřejmě je-li ve svém stacionárním bodě funkce f ostře konvexní, tj. má-li zde pozitivně definitní Hessovu matici, pak zde nabývá svého lokálního minima. Pozitivně definitní matici lze rozpoznat podle toho, že má všechny hlavní minory, tj. determinanty vycházející z levého horního rohu, kladné. Podmínky pro existenci extrému shrnuje Sylvestrovo kritérium Buď f :Rn ^Raa e Df její stacionární bod. Označme Dk(a), k = 1,..., n determinant submatice vytvořené z prvních k řádků a sloupců Hessovy matice H(a). Pak O Jestliže (a) > 0, D2(a) > 0,..., Dn(a) > 0, má f v a lok. minimum. o Jestliže (a) < 0, D2(a) > 0,..., (-1 )nDn{a) >0, má/va lok. maximum. o Jestliže jsou všechny minory Dk(a), k = 1,..., n nenulové a přitom neplatí žádná z předchozích možností, pak v bodě a není extrém. Příklad: Hessova matice funkce f{x,y) = x2 -\- y2 ve stacionárním bodě [0,0] tedy je pozitivně definitní a v bodě [0,0] je minimum. Lokální extrémy Při rozhodování o tom, zda ve stacionárním bodě nastává lokální extrém, se řídíme pomocí Hessovy matice. Zřejmě je-li ve svém stacionárním bodě funkce f ostře konvexní, tj. má-li zde pozitivně definitní Hessovu matici, pak zde nabývá svého lokálního minima. Pozitivně definitní matici lze rozpoznat podle toho, že má všechny hlavní minory, tj. determinanty vycházející z levého horního rohu, kladné. Podmínky pro existenci extrému shrnuje Sylvestrovo kritérium Buď f :Rn ^Raa e Df její stacionární bod. Označme Dk(a), k = 1,..., n determinant submatice vytvořené z prvních k řádků a sloupců Hessovy matice H(a). Pak O Jestliže (a) > 0, D2(a) > 0,..., Dn(a) > 0, má f v a lok. minimum. o Jestliže (a) < 0, D2(a) > 0,..., (-1 )nDn{a) >0, má/va lok. maximum. o Jestliže jsou všechny minory Dk(a), k = 1,..., n nenulové a přitom neplatí žádná z předchozích možností, pak v bodě a není extrém. Příklad: Hessova matice funkce f{x,y) = x2 - y2 ve stacionárním bodě [0,0] je: H(0,0) = ^ q '° ^, její hlavní minory jsou Di (0,0) = 2, D2(0,0) = -4, tedy je indefinitní a v bodě [0,0] není extrém. Lokální extrémy - příklad Analytické řešení úlohy hledání volných extrémů funkce řvK" tedy spočívá v nalezení stacionárních bodů (resp. bodů, kde neexistuje gradient) a vyšetření definitnosti Hessovy matice v těchto bodech. Při hledání stacionárních bodů řešíme soustavu n rovnic o n neznámých. Lokální extrémy - příklad Analytické řešení úlohy hledání volných extrémů funkce řvK" tedy spočívá v nalezení stacionárních bodů (resp. bodů, kde neexistuje gradient) a vyšetření definitnosti Hessovy matice v těchto bodech. Při hledání stacionárních bodů řešíme soustavu n rovnic o n neznámých. Příklad : Nalezněte extrémy funkce f(x, y) = x2y + y2x - xy. Lokální extrémy - příklad Analytické řešení úlohy hledání volných extrémů funkce řvK" tedy spočívá v nalezení stacionárních bodů (resp. bodů, kde neexistuje gradient) a vyšetření definitnosti Hessovy matice v těchto bodech. Při hledání stacionárních bodů řešíme soustavu n rovnic o n neznámých. Příklad : Nalezněte extrémy funkce f(x, y) = x2y + y2x - xy. Řešení: První derivace jsou ťx = 2xy + y2 - yjý = x2 + 2xy - x. Položíme-li obě parciální derivace současně nule, má soustava následující řešení: x = y = 0; x = 0, y = 1; x = 1, y = 0; x = 1 /3, y = 1 /3, což dává čtyři stacionární body dané funkce. Lokální extrémy - příklad Analytické řešení úlohy hledání volných extrémů funkce řvK" tedy spočívá v nalezení stacionárních bodů (resp. bodů, kde neexistuje gradient) a vyšetření definitnosti Hessovy matice v těchto bodech. Při hledání stacionárních bodů řešíme soustavu n rovnic o n neznámých. Příklad : Nalezněte extrémy funkce f(x, y) = x2y + y2x - xy. Řešení: První derivace jsou ťx = 2xy + y2 - yjý = x2 + 2xy - x. Položíme-li obě parciální derivace současně nule, má soustava následující řešení: x = y = 0; x = 0, y = 1; x = 1, y = 0; x = 1 /3, y = 1 /3, což dává čtyři stacionární body dané funkce. Hodnoty Hessovy matice ve stacionárních bodech jsou postupně H(0,0) = ^ ^ ^ ^, H(0,1) = ^ j J H(1,0) = ^ ° J ^, H(1 /3,1 /3) = ^ ^ 2/3 ) ■ Pouze P°slední matice je pozitivně definitní, funkce má jen jedno lokální minimum, a to v bodě [1/3,1/3]. Globální extrémy Řekneme, že funkce f dosahuje na množině X v bodě a e X svého O globálního maxima jestliže Vx g X platí f(x) < f (a) o globálního minima jestliže Vx g X platí f(x) > f (a) Poznámka: Místo pojmu globální též používáme pojem absolutní. Opět definujeme ostré extrémy, jestliže nerovnosti jsou ostré pro Vx / a. Globální extrémy Řekneme, že funkce f dosahuje na množině X v bodě a e X svého O globálního maxima jestliže Vx e X platí f(x) < f (a) o globálního minima jestliže Vx e X platí f(x) > f (a) Poznámka: Místo pojmu globální též používáme pojem absolutní. Opět definujeme ostré extrémy, jestliže nerovnosti jsou ostré pro Vx / a. Weierstrassova věta: Je-li XcK" ohraničená, uzavřená množina a f: Rn —> R spojitá funkce na X, pak má f na X globální extrémy, a to buď v bodech lokálních extrémů nebo na hranici množiny X. Globální extrémy Řekneme, že funkce f dosahuje na množině X v bodě a e X svého O globálního maxima jestliže Vx g X platí f(x) < f (a) o globálního minima jestliže Vx g X platí f(x) > f (a) Poznámka: Místo pojmu globální též používáme pojem absolutní. Opět definujeme ostré extrémy, jestliže nerovnosti jsou ostré pro Vx / a. Weierstrassova věta: Je-li XcK" ohraničená, uzavřená množina a f: Rn —> R spojitá funkce na X, pak má f na X globální extrémy, a to buď v bodech lokálních extrémů nebo na hranici množiny X. Poznámka: Není-li množina X uzavřená nebo ohraničená, pak globální extrémy nemusí existovat. Pokud extrémy existují, jsou jejich hodnoty určeny jednoznačně. Funkce však může nabývat těchto hodnot obecně ve více bodech. Hranici množiny lze většinou popsat pomocí rovnic. Vyšetřování hranice je úlohou s omezením. Globální extrémy - příklad Určete globální extrémy funkce f(xy) = (x - 1 )2 + (y - \)2 na obdélníku, který je určen body A = [0; 0]; B = [2; 0]; C = [2; 1]; D = [0; 1]. Globální extrémy - příklad Určete globální extrémy funkce f(xy) = (x - 1)2 + (y - \)2 na obdélníku, který je určen body A = [0; 0]; B = [2; 0]; C = [2; 1]; D = [0; 1]. Řešení: Nalezneme lokální extrémy funkce f. Spočteme parciální derivace ťx = 2x - 2 a = 2y - 1 a nalezneme stacionární bod s = [1, \}. Matice druhých derivací je rovna H(s) = q 2 )" H'avn' minory této matice jsou kladné a proto v bodě s nastává lokální minimum funkce f. Globální extrémy - příklad Určete globální extrémy funkce f(xy) = (x - 1)2 + (y - \)2 na obdélníku, který je určen body A = [0; 0]; B = [2; 0]; C = [2; 1]; D = [0; 1]. Řešení: Nalezneme lokální extrémy funkce f. Spočteme parciální derivace ťx = 2x - 2 a fy = 2y - 1 a nalezneme stacionární bod s = [1, \}. Matice kladné a proto v bodě s nastává lokální minimum funkce f. Hranice zadané množiny je tvořena čtyřmi úsečkami AB, BC, CD a DA. Je tedy třeba řešit čtyři optimalizační úlohy s funkcí f a postupně s podmínkami : y = 0, V2:x = 2, V3 : y = 1 a VA : x = 0. Pozor! Při této formulaci je zapotřebí zvlášť vyšetřit body A, fí, C, D, protože nehledáme extrémy na celých hraničních přímkách, ale pouze na příslušných úsečkách. Globální extrémy - příklad Úlohy optimalizace f za podmínky Vj, kde /' = 1,2,3,4 převedeme ekvivalentní úlohy nalezení lokálních extrémů funkcí F,, kde F1(x) = /(x,0) = (x-1)2 + l, F2(y) = r(2,y) = (y-1)2 + 1, F3(x) = r(x,1) = (x-1)2 + 1, F4(y) = f(0,y) = (y-l)2 + ^. Globální extrémy - příklad Úlohy optimalizace f za podmínky Vj, kde / = 1,2,3,4 převedeme na ekvivalentní úlohy nalezení lokálních extrémů funkcí F/3 kde F1(x) = /(x,0) = (x-1)2 + l, F2(y) = /(2,y) = (y-l)2 + 1, F3(x) = /(x,1) = (x-1)2 + l, F4(y) = /(0,y) = (y-i)2 + l. Snadno se zjistí, že jednotlivé úlohy mají minimum v bodech postupně: a= [1,0], b= [2, i], c= [1,1] a d = [0,^]. Hodnoty funkce / ve všech podezřelých bodech shrneme v tabulce: X s A B C D a b c d f(x) 0 5 4 5 4 5 4 5 4 1 4 1 1 4 1 Je zřejmé, že nejmenší hodnoty dosahuje funkce v bodě s = [1, \] a největší v bodech A, B, C, D. Úloha nelineárního programování (NLP) Úlohu hledání extrémů funkce n proměnných f(x) na množině M vymezené podmínkami 01 M < (resp. =, resp. >)0 92 (x) < (resp. =, resp. >)0 (resp. =, resp. >)0, kde alespoň jedna z funkcí f, ,..., gn je nelineární, nazveme úlohou nelineárního programování (NLP). Úloha nelineárního programování (NLP) Úlohu hledání extrémů funkce n proměnných f(x) na množině M vymezené podmínkami 01 (X) < (resp. =, resp. >)0 92 (x) < (resp. =, resp. >)0 (resp. =, resp. >)0, kde alespoň jedna z funkcí f, ,..., gn je nelineární, nazveme úlohou nelineárního programování (NLP). Je-li m = 0, tj. nejsou přítomna žádná omezení, hledáme tedy extrémy funkce f na celém Rn a hovoříme o volných extrémech. V případě, kdy jsou na proměnné uvalena omezení, tj. m > 0 nebo když je definiční obor funkce f limitován na nějakou podmnožinu X c Rn, hovoříme o vázaných extrémech. Úloha nelineárního programování (NLP) Úlohu hledání extrémů funkce n proměnných f(x) na množině M vymezené podmínkami 01 (X) < (resp. =, resp. >)0 92 (x) < (resp. =, resp. >)0 (resp. =, resp. >)0, kde alespoň jedna z funkcí f, ,..., gn je nelineárni, nazveme úlohou nelineárního programování (NLP). Je-li m = 0, tj. nejsou přítomna žádná omezení, hledáme tedy extrémy funkce f na celém Rn a hovoříme o volných extrémech. V případě, kdy jsou na proměnné uvalena omezení, tj. m > 0 nebo když je definiční obor funkce f limitován na nějakou podmnožinu X c Rn, hovoříme o vázaných extrémech. Poznámka: U úloh NLP nemusí existovat žádné řešení nebo naopak může existovat více extrémů, z nichž některé jsou pouze lokální. Optimum nemusí ležet pouze na hranici přípustné množiny! Úloha nelineárního programování (NLP) - příklad Uvažujme úlohu optimalizace funkce r(x,y) = x3 - 3x + y3 - 3y na množině M vymezené nerovnostmi x > 0, y > 0,2x + 2y < 5. Problém si můžeme znázornit graficky. Modře je vyznačena přípustná množina, vrstevnice jsou odstupňovány od nejnižší červené po nejvyšší žlutou. Zřejmě má funkce f na množině M minimum v bodě [1,1] a maximum v bodech [0;2,5] a [2,5;0]. Optimalizační úloha s omezením ve formě rovností Uvažujme úlohu na vázaný extrém f(x) —> min , na množině M vymezené soustavou m rovnic gr,-(x) = 0, / = 1,... m. Jsou - li funkce f\gh i = 1,..., m spojitě diferencované a jsou - li gradienty omezení Vg, lineárně nezávislé vektory (tj. žádné omezení není nadbytečné), pak pro bod optima x* existují jednoznačné hodnoty ..., Am, takové, že: V/(x*) + £,=i A/■ Vg/(x*) = 0. Čísla Ai, ..., Xm se nazývají Lagrangeovy multiplikátory a umožňují převedení optimalizační úlohy na řešení systému rovnic. Optimalizační úloha s omezením ve formě rovností Uvažujme úlohu na vázaný extrém f (x) —> min , na množině M vymezené soustavou m rovnic gr,-(x) = 0, / = 1,... m. Jsou - li funkce f\gh i = 1,..., m spojitě diferencované a jsou - li gradienty omezení Vg, lineárně nezávislé vektory (tj. žádné omezení není nadbytečné), pak pro bod optima x* existují jednoznačné hodnoty Ai, ..., Xm, takové, že: Vr(x*) + £,=i Xj • Vgf/(x*) = 0. Čísla Ai, ..., Xm se nazývají Lagrangeovy multiplikátory a umožňují převedení optimalizační úlohy na řešení systému rovnic. Jaký je formální postup? Vytvoří se tzv. Lagrangeova funkce L(x, A) = /(x) + E"i A/ • g,-(x) a sestaví se podmínky pro její stacionární body, tzv. podmínky 1. řádu: Vx/_(x,A) = 0, VA/_(x,A) = 0 Jde o systém n + m rovnic pro n + m neznámých (posledních m rovnic vyjadřuje vlastně vazební podmínky). Jestliže má tento systém řešení (x*, A*) a jsou-li f i M konvexní, pak je bod x* globálním minimem funkce f na množině M. Optimalizační úloha s omezením ve formě rovností Ukažme si metodu Lagrangeových multiplikátorů na následující úloze: Najděte patu kolmice spuštěné z bodu [5,1,2] na rovinu 2x + 3y + z = 6. Optimalizační úloha s omezením ve formě rovností Ukažme si metodu Lagrangeových multiplikátorů na následující úloze: Najděte patu kolmice spuštěné z bodu [5,1,2] na rovinu 2x + 3y + z = 6. Řešení: Hledáme tedy bod [x, y, z] ležící v zadané rovině, pro nějž je vzdálenost od bodu [5,1,2] minimální. Místo minimalizace funkce r(x,y, z) = ^/(x - 5)2 + (y - 1 )2 + (z - 2)2 můžeme pro zjednodušení výpočtu minimalizovat její druhou mocninu. Abychom mohli použít Lagrangeův multiplikátor, je třeba rovnici omezení anulovat: 2x + 3y + z - 6 = 0. Optimalizační úloha s omezením ve formě rovností Ukažme si metodu Lagrangeových multiplikátorů na následující úloze: Najděte patu kolmice spuštěné z bodu [5,1,2] na rovinu 2x + 3y + z = 6. Řešení: Hledáme tedy bod [x, y, z] ležící v zadané rovině, pro nějž je vzdálenost od bodu [5,1,2] minimální. Místo minimalizace funkce r(x,y, z) = ^/(x - 5)2 + (y - 1 )2 + (z - 2)2 můžeme pro zjednodušení výpočtu minimalizovat její druhou mocninu. Abychom mohli použít Lagrangeův multiplikátor, je třeba rovnici omezení anulovat: 2x + 3y + z - 6 = 0. Sestavme Lagrangeovu funkci úlohy: /.(x, y, z, A) = (x - 5)2 + (y - 1 )2 + (z - 2)2 + A(2x + 3y + z - 6) a určeme její parciální derivace: /_x(x,y,z,A) = 2(x-5) + 2A, /_y(x,y,z,A) = 2(y-1) + 3A, /_z(x,y,z,A) = 2(z-2) + A, /_A(x, y, z, A) = 2x + 3y + z - 6. Optimalizační úloha s omezením ve formě rovností Ukažme si metodu Lagrangeových multiplikátorů na následující úloze: Najděte patu kolmice spuštěné z bodu [5,1,2] na rovinu 2x + 3y + z = 6. Řešení: Hledáme tedy bod [x, y, z] ležící v zadané rovině, pro nějž je vzdálenost od bodu [5,1,2] minimální. Místo minimalizace funkce r(x,y, z) = ^/(x - 5)2 + (y - 1 )2 + (z - 2)2 můžeme pro zjednodušení výpočtu minimalizovat její druhou mocninu. Abychom mohli použít Lagrangeův multiplikátor, je třeba rovnici omezení anulovat: 2x + 3y + z - 6 = 0. Sestavme Lagrangeovu funkci úlohy: /.(x, y, z, A) = (x - 5)2 + (y - 1 )2 + (z - 2)2 + A(2x + 3y + z - 6) a určeme její parciální derivace: /_x(x,y,z,A) = 2(x-5) + 2A, /_y(x,y,z,A) = 2(y-1) + 3A, /_z(x,y,z,A) = 2(z-2) + A, /_A(x, y, z, A) = 2x + 3y + z - 6. Položíme parciální rovnice rovny nule a dostaneme lineární systém, jehož vyřešením získáme bod optima jf ]. Protože minimalizovaná funkce i přípustná množina jsou konvexní, nalezli jsme bod minin^. ^ ^( Ekonomická interpretace Příklad z M. W. Klein: Mathematical Methods for Economics: Uvažujme úlohu hledání optima spotřebitele, který má 6 dolarů, které chce utratit za oběd v samoobslužné restauraci, kde se polévka i hlavní chod platí na váhu, přičemž cena za 1 unci polévky je $0,25 a za 1 unci hlavního chodu je $0,5. Označíme-li S a V zakoupené množství obou chodů (v uncích), pak rozpočtové omezení můžeme zapsat jako 6 = f + |. Hledáme takovou kombinaci jídel splňující tuto podmínku, která maximalizuje užitkovou funkci Ekonomická interpretace Příklad z M. W. Klein: Mathematical Methods for Economics: Uvažujme úlohu hledání optima spotřebitele, který má 6 dolarů, které chce utratit za oběd v samoobslužné restauraci, kde se polévka i hlavní chod platí na váhu, přičemž cena za 1 unci polévky je $0,25 a za 1 unci hlavního chodu je $0,5. Označíme-li S a V zakoupené množství obou chodů (v uncích), pak rozpočtové omezení můžeme zapsat jako 6 = f + |. Hledáme takovou kombinaci jídel splňující tuto podmínku, která maximalizuje užitkovou funkci U{S, V) = !^ + !^. Řešení: Zavedeme Lagrangeovu funkci L{S, V, A) = ^ + ^P- - A(f + f - 6). Podmínky prvního řádu jsou: LS{S, V,\) = £;-$ = 0 LV(S, V,X) = 2v-| = 0 LX(S, V,X) = f + |-6 = 0 Ekonomická interpretace Příklad z M. W. Klein: Mathematical Methods for Economics: Uvažujme úlohu hledání optima spotřebitele, který má 6 dolarů, které chce utratit za oběd v samoobslužné restauraci, kde se polévka i hlavní chod platí na váhu, přičemž cena za 1 unci polévky je $0,25 a za 1 unci hlavního chodu je $0,5. Označíme-li S a V zakoupené množství obou chodů (v uncích), pak rozpočtové omezení můžeme zapsat jako 6 = f + |. Hledáme takovou kombinaci jídel splňující tuto podmínku, která maximalizuje užitkovou funkci U{S, V) = !^ + !^. Řešení: Zavedeme Lagrangeovu funkci L{S, V, A) = ^ + ^P- - A(f + f - 6). Podmínky prvního řádu jsou: LS{S, V,\) = £;-$ = 0 LV(S, V,X) = 2v-| = 0 LX(S, V,X) = f + |-6 = 0 Z prvních dvou rovnic lze vyjádřit, že A = | = y, neboli S = 2 V. Spolu s poslední podmínkou dostaneme řešení S* = 12, V* = 6 uncí, A* = g, což dává užitek 1/(12,6) = 2,14. Ekonomická interpretace Znázorněme si uvažovanou úlohu graficky, si 24 12 6 12 v Sklon rozpočtové linie je dán vztahem dán poměrem cen Ekonomická interpretace Znázorněme si uvažovanou úlohu graficky, si 24 12 6 12 v Sklon rozpočtové linie je dán vztahem dán poměrem cen: ^ = -2. Sklon indiferenční křivky je dán poměrem mezních užitků (mezní míra substituce): % = -jr- Ekonomická interpretace Znázorněme si uvažovanou úlohu graficky, st 24 12 6 12 v Sklon rozpočtové linie je dán vztahem dán poměrem cen: ^ = -2. Sklon indiferenční křivky je dán poměrem mezních užitků (mezní míra substituce): $ = Spočteme mezní užitky US{S, V) = ^ £MS, ^) = 2v> JeJich Pocl'' Je t% = I Protože v bodě optima (S*, \/*) je sklon rozpočtové linie a indiferenční křivky shodný, platí: -2 = neboli ^ = ^ (rovnováha spotřebitele). Ekonomická interpretace Získáme-li dodatečný dolar, budeme-li tedy chtít utratit $7, u nového optimálního řešení bude zachován poměr spotřebovaných jídel: S* = 14, V* = 7 a hodnota Lagrangeova multiplikátoru poklesne na \. Získaný užitek bude 1/(14,7) = 2,29. Přírůstek užitku je tedy AU = 1/(14,7) - 1/(12,6) = 2,29 - 2,14 = 0,15 = (i) • 1. Zřejmě jeden dodatečný dolar vyvolal (^)-násobný přírůstek užitku, což je něco mezi 1 a 1. Můžeme říct, že optimální hodnota Lagrangeova multiplikátoru vyjadřuje mezní užitek peněz určených k útratě. Ekonomická interpretace Získáme-li dodatečný dolar, budeme-li tedy chtít utratit $7, u nového optimálního řešení bude zachován poměr spotřebovaných jídel: S* = 14, V* = 7 a hodnota Lagrangeova multiplikátoru poklesne na \. Získaný užitek bude 1/(14,7) = 2,29. Přírůstek užitku je tedy AU = 1/(14,7) - 1/(12,6) = 2,29 - 2,14 = 0,15 = (i) • 1. Zřejmě jeden dodatečný dolar vyvolal (^)-násobný přírůstek užitku, což je něco mezi 1 a 1. Můžeme říct, že optimální hodnota Lagrangeova multiplikátoru vyjadřuje mezní užitek peněz určených k útratě. Tento vztah lze ukázat, vyjádříme-li si optimální množství jídel při rozpočtovém omezení B\ S* = 2fí, l/* = 8aA* = ^. Optimální užitek při rozpočtu B je po úpravě: f(B) = U(2B, B) = \ln{2) + ln(B). Derivováním podle B získáme jeho mezní užitek ť(B) = ^ což je rovno A*. Ekonomická interpretace Získáme-li dodatečný dolar, budeme-li tedy chtít utratit $7, u nového optimálního řešení bude zachován poměr spotřebovaných jídel: S* = 14, V* = 7 a hodnota Lagrangeova multiplikátoru poklesne na \. Získaný užitek bude 1/(14,7) = 2,29. Přírůstek užitku je tedy AU = 1/(14,7) - 1/(12,6) = 2,29 - 2,14 = 0,15 = (i) • 1. Zřejmě jeden dodatečný dolar vyvolal (^)-násobný přírůstek užitku, což je něco mezi 1 a 1. Můžeme říct, že optimální hodnota Lagrangeova multiplikátoru vyjadřuje mezní užitek peněz určených k útratě. Tento vztah lze ukázat, vyjádříme-li si optimální množství jídel při rozpočtovém omezení B\ S* = 2fí, l/* = 8aA* = ^. Optimální užitek při rozpočtu B je po úpravě: f(B) = U(2B, B) = \ln{2) + ln(B). Derivováním podle B získáme jeho mezní užitek ť(B) = 1, což je rovno A*. Podobně v úlohách optimalizace výrobního programu, budou Lagrangeovy multiplikátory u omezení pro jednotlivé vstupy vyjadřovat mezní užitek při zvýšení jejich kapacity. Tedy jsou rovny ceně, kterou je výrobce ochoten za dodatečnou jednotku vstupu zaplatit, proto se pro ně používá název stínové ceny. Lagrangeova funkce - postačující podmínky pro optimum Pro odvození podmínek 2. řádu uvažujme kvadratickou funkci Q(x, y) = ax2 + 2bxy + cy2, kterou lze též zapsat maticově jako a b \ í x Q(x, y) = (x, y) . Předpokládejme, že hledáme optimum b c i \ y této funkce na množině dané lineární rovnicí Ax + By = 0. Lagrangeova funkce - postačující podmínky pro optimum Pro odvození podmínek 2. řádu uvažujme kvadratickou funkci Q(x, y) = ax2 + 2bxy + cy2, kterou lze též zapsat maticově jako Q(x,y) = (x,y) • ^ ^ c ) ( y )" Přepokládejme, že hledáme optimum této funkce na množině dané lineární rovnicí Ax + By = 0. Vyjádříme-li y = -|x a dosadíme-li do Q, dostaneme r(x) = Q(x, -|x) = ax2 + 2bx(-*x) + c(-|x)2 = -£[2bAB - aB2 - cA2]. Výraz uvnitř hranaté závorky lze také zapsat jako determinant matice / 0 A B \ H = i A a b \, což je vlastně Hessova matice Lagrangeovy funkce V B b c J Z_(a, x, y) = a(/4x + By) + Q(x, y). Pokud je det(H) záporný, je funkce f (x) konvexní, což je postačující podmínka pro existenci minima ve stacionárním bodě (a je-li kladný, je f(x) konkávni - podmínka pro maximum). Lagrangeova funkce - postačující podmínky pro optimum Zobecníme-li odvození z předchozího slajdu pro funkci dvou proměnných f{x,y) optimalizovanou na množině dané rovnicí g(x,y) = c , dostaneme podmínky 2. řádu: Označme H(A,x,y) Hessovu matici Lagrangeovy funkce Z_(A,x,y) = A(g(x,y) - c) + f(x,y). Pak je-li ve stacionárním bodě determinant deř(H(A,x,y)) • kladný, je stacionární bod bodem maxima • záporný, je stacionární bod bodem minima Lagrangeova funkce - postačující podmínky pro optimum Zobecníme-li odvození z předchozího slajdu pro funkci dvou proměnných r(x,y) optimalizovanou na množině dané rovnicí g(x,y) = c , dostaneme podmínky 2. řádu: Označme H(A,x,y) Hessovu matici Lagrangeovy funkce Z_(A,x,y) = A(g(x,y) - c) + r(x,y). Pak je-li ve stacionárním bodě determinant deř(H(A,x,y)) • kladný, je stacionární bod bodem maxima • záporný, je stacionární bod bodem minima Příklad: Pro úlohu zákazníka restaurace má Lagrangeova funkce L(A, S, V) = ^ + ^ + A(f + | - 6) Hessovu matici /OJ \ \ H = \ l ~2^2 0 . Její determinant je deř(H(A, S, \/)) = + \ 2 u 2\/2 / což je kladné číslo pro jakékoliv S, V, takže ve stacionárním bodě nastává maximum. Lagrangeova funkce - postačující podmínky pro optimum Zobecněme podmínky 2. řádu dále pro funkci n proměnných f(x\,..., xn) optimalizovanou na množině dané soustavou rovnic flf/ÍXi,... ,Xn) = C/, /= 1,...,A77 : Označme H(\i,..., Xm, x^,..., xn) Hessovu matici Lagrangeovy funkce L(Ai,..., Am, xi,..., x„), pak pro její hodnotu v případném stacionárním bodě platí: o má - li determinant H(\i,..., Xm, x^,..., xn) znaménko (-1 )n a všech n - m jejích největších hlavních minorů střídá znaménka, pak ve stacionárním bodě nastává maximum. o má - li všech n - m největších hlavních minorů včetně determinantu H(\i,..., Xm, x^,..., xn) znaménko (-1)™, pak ve stacionárním bodě nastává minimum. o Je-li n - m největších hlavních minorů nenulových a přitom neplatí ani jedna z výše uvedených podmínek, pak ve stacionárním bodě není extrém. Lagrangeova funkce - postačující podmínky pro optimum, příklad Uvažujme modifikaci úlohy zákazníka restaurace, kdy je možné konzumovat ještě džus v ceně 1 dolar za 12 uncí, přitom novou funkci užitku vyjádříme jako L/(S, V, J) = i/n(S) + \ln(V) + l/n(J) a rozpočet zůstává $6. Lagrangeova funkce - postačující podmínky pro optimum, příklad Uvažujme modifikaci úlohy zákazníka restaurace, kdy je možné konzumovat ještě džus v ceně 1 dolar za 12 uncí, přitom novou funkci užitku vyjádříme jako L/(S, V, J) = i/n(S) + \ln(V) + l/n(J) a rozpočet zůstává $6. Lagrangeova funkce úlohy bude L(A, S, V, J) = l/n(S) + + i/n(J) + A(f + f + ^ - 6). Z podmínek prvního řádu pro proměnné odvodíme S = 2V, J = 6V a po dosazení do rozpočtového omezení vyjde S* = 8, \/* = 4 a J* = 24 uncí. Lagrangeova funkce - postačující podmínky pro optimum, příklad Uvažujme modifikaci úlohy zákazníka restaurace, kdy je možné konzumovat ještě džus v ceně 1 dolar za 12 uncí, přitom novou funkci užitku vyjádříme jako L/(S, V, J) = i/n(S) + \ln(V) + l/n(J) a rozpočet zůstává $6. Lagrangeova funkce úlohy bude L(A, S, V, J) = l/n(S) + + ±/n(J) + A(f + f + ^ - 6). Z podmínek prvního řádu pro proměnné odvodíme S = 2V, J = 6V a po dosazení do rozpočtového omezení vyjde S* = 8, \/* = 4 a J* = 24 uncí. Hessova matice / Lagrangeovy funkce je: H(A, S, \/, J) = Podmínka druhého řádu pro případ n = 3. 0 1 4 1 2 12 A77 1 4 1 3 S2 0 1 2 0 12 0 1 V T2 0 3 v2 0 0 3J2 / 1 nabývá podoby: "je-li znaménko det(H) rovno (-1) a znaménko druhého hlavního minoru -(-1 )s pak ve stacionárním bodě nastává maximum" Pro naši funkci je det(H) = -(i29ěW + i4W + 3ěikp)> což Je záP°rné v každém bodě a přitom determinant 2.hlavního minoru je + což je kladné v každém bodě, takže ve stacionárním bodě nastává maximug\ <9 > < = ► 4 = ► Lagrangeova funkce - postačující podmínky pro optimum, příklad Uvažujme další modifikaci, kdy kromě rozpočtového omezení uvažujeme ještě podmínku na celkový objem tekutin S + J = 24. Lagrangeova funkce - postačující podmínky pro optimum, příklad Uvažujme další modifikaci, kdy kromě rozpočtového omezení uvažujeme ještě podmínku na celkový objem tekutin S + J = 24. Lagrangeova funkce úlohy bude L(A, S, V, J) = l/n(S) + l/n( V) + l/n(J) + A(f +1 + ^ - 6) + + J- 24). Z podmínek prvního řádu pro proměnné odvodíme V = 3^5) a P° dosazení do soustavy omezení vyjde S* = 8, \/* = ^ a J* = 16 uncí. Lagrangeova funkce - postačující podmínky pro optimum, příklad Uvažujme další modifikaci, kdy kromě rozpočtového omezení uvažujeme ještě podmínku na celkový objem tekutin S + J = 24. Lagrangeova funkce úlohy bude L(a, m, S, V, J) = l/n(S) + l/n( V) + l/n( J) + a(f +1 + ^ - 6) + + J - 24). Z podmínek prvního řádu pro proměnné odvodíme V = 3^5) a P° dosazení do soustavy omezení vyjde S* = 8, \/* = ^ a J* = 16 uncí. Hessova matice Lagrangeovy funkce je: H(a, /i, S, \/, J) / 0 0 1 1 — \ / v v 4 2 12 x 0 0 1 0 1 1 1 4 o 0 i 0 0 -3^ o V I2 1 o o -i / 12 w 3J2 Podmínka druhého řádu pro případ a? = 3, m = 2 nabývá podoby: "je-li znaménko det(H) rovno (-1)3 , pak ve stacionárním bodě nastává maximum a je-li jeho znaménko rovno (-1 )2, pak se jedná o minimum."Lze vypočítat, že pro naši funkci je det(H) = -(^2 + 1^72 + jožv* )■ co^ Je záporné v každém bodě, takže ve stacionárním bodě nastává maximum. Optimalizační úloha s omezením ve formě nerovností -motivační příklad Uvažujme jednoduchou optimalizační úlohu f (x, y) = x2 - 2x + 2y2 - y + 3 —> min za podmínky x + y < 1. Můžeme problém převést na úlohu s omezením ve tvaru rovností? Optimalizační úloha s omezením ve formě nerovností -motivační příklad Uvažujme jednoduchou optimalizační úlohu f (x, y) = x2 - 2x + 2y2 - y + 3 —> min za podmínky x + y < 1. Můžeme problém převést na úlohu s omezením ve tvaru rovností? Přidáme na levou stranu omezující podmínky doplňkovou proměnnou: Optimalizační úloha s omezením ve formě nerovností -motivační příklad Uvažujme jednoduchou optimalizační úlohu /(x, y) = x2 - 2x + 2y2 - y + 3 —> min za podmínky x + y < 1. Můžeme problém převést na úlohu s omezením ve tvaru rovností? Přidáme na levou stranu omezující podmínky doplňkovou proměnnou: x + y + w2 = 1 a vytvoříme Lagrangeovu funkci Z_(x, y, w, A) = x2 - 2x + y2 - 2y + 3 + A • (x + y + w2 - 1) Optimalizační úloha s omezením ve formě nerovností -motivační příklad Uvažujme jednoduchou optimalizační úlohu /(x, y) = x2 - 2x + 2y2 - y + 3 —> min za podmínky x + y < 1. Můžeme problém převést na úlohu s omezením ve tvaru rovností? Přidáme na levou stranu omezující podmínky doplňkovou proměnnou: x + y + w2 = 1 a vytvoříme Lagrangeovu funkci Z_(x, y, w, A) = x2 - 2x + y2 - 2y + 3 + A • (x + y + w2 - 1) Kromě podmínek 2x 2 + A = 0. 2y-2 + A = 0ax + y+w2-1 = 0 dostaneme derivováním podle iv ještě 2wX = 0. Je zřejmé, že možnost A = 0 nedává žádné řešení, protože z prvních dvou rovnic dostaneme x = 1, y = 1 a pak třetí podmínka nemá řešení pro w. Musí tedy být w = 0, tedy x + y = 1, pak sečtením prvních dvou rovnic 2(x + y) - 4 + 2A = 0, takže A = 2-(x + y) = 1ax = y=1-| = l. Optimalizační úloha s omezením ve formě nerovností -motivační příklad Uvažujme jednoduchou optimalizační úlohu /(x, y) = x2 - 2x + 2y2 - y + 3 —> min za podmínky x + y < 1. Můžeme problém převést na úlohu s omezením ve tvaru rovností? Přidáme na levou stranu omezující podmínky doplňkovou proměnnou: x + y + w2 = 1 a vytvoříme Lagrangeovu funkci Z_(x, y, w, A) = x2 - 2x + y2 - 2y + 3 + A • (x + y + w2 - 1) Kromě podmínek 2x 2 + A = 0. 2y-2 + A = 0ax + y+w2-1 = 0 dostaneme derivováním podle iv ještě 2wX = 0. Je zřejmé, že možnost A = 0 nedává žádné řešení, protože z prvních dvou rovnic dostaneme x = 1, y = 1 a pak třetí podmínka nemá řešení pro w. Musí tedy být w = 0, tedy x + y = 1, pak sečtením prvních dvou rovnic 2(x + y) - 4 + 2A = 0, takže A = 2-(x + y) = 1ax = y=1-| = l. Rovnice 2wX = 0 říká, že extrém leží buď na hranici {w = 0) nebo ve stacionárním bodě (A = 0). Kdybychom zvětšili omezující konstantu o 5, dostaneme x + y < 1 + ô. Je-li omezení aktivní (tj. w = 0), musí být ô < 1 a tedy zřejmě A = 2-(x + y) = 1 - 5 >0. Shrňme podmínky pro obecnou úlohu. >oq,o Optimalizační úloha s omezením ve formě nerovností Uvažujme úlohu na vázaný extrém f (x) —> min , na množině M vymezené soustavou m nerovnic gr,-(x) min , na množině M vymezené soustavou m nerovnic gr,-(x) min , na množině M vymezené soustavou m nerovnic gr,-(x) min , na množině M vymezené soustavou m nerovnic gr,-(x) 0, / = 1,... m (duální přípustnost) Optimalizační úloha s omezením ve formě nerovností Uvažujme úlohu na vázaný extrém f (x) —> min , na množině M vymezené soustavou m nerovnic gr,-(x) 0, / = 1,... m (duální přípustnost) A, • (flf/(x) - Cj) = 0, / = 1,... m (komplementarita) Optimalizační úloha s omezením ve formě nerovností Uvažujme úlohu na vázaný extrém f (x) —> min , na množině M vymezené soustavou m nerovnic gr,-(x) 0, / = 1,... m (duální přípustnost) A, • (flf/(x) - Cj) = 0, / = 1,... m (komplementarita) Tyto vztahy se nazývají Ku h n-Tu cke rovy podmínky úlohy. Za určitých předpokladů regularity (nezávislost gradientů omezení) se jedná o nutné podmínky pro to, aby v bodě x* měla úloha lokální minimum. V tomto kontextu se též používá označení Karush-Kuhn-Tuckerovy podmínky, zkráceně KKT-pod minky. Optimalizační úloha s omezením ve formě nerovností Interpretace KKT podmínek vychází z ekonomického významu Lagrangeových multiplikátorů. • Stacionarita a primární přípustnost jsou přirozené požadavky na optimalitu řešení úlohy s omezením. Optimalizační úloha s omezením ve formě nerovností Interpretace KKT podmínek vychází z ekonomického významu Lagrangeových multiplikátorů. • Stacionarita a primární přípustnost jsou přirozené požadavky na optimalitu řešení úlohy s omezením. • Z čeho plyne požadavek duální přípustnosti? Jestliže Lagrangeův multiplikátor A, reprezentuje mezní užitek při uvolnění / - tého omezení, pak nerovnost A, > 0 znamená, že optimální hodnota účelové funkce se nemůže uvolněním tohoto omezení zhoršit. Optimalizační úloha s omezením ve formě nerovností Interpretace KKT podmínek vychází z ekonomického významu Lagrangeových multiplikátorů. • Stacionarita a primární přípustnost jsou přirozené požadavky na optimalitu řešení úlohy s omezením. • Z čeho plyne požadavek duální přípustnosti? Jestliže Lagrangeův multiplikátor a, reprezentuje mezní užitek při uvolnění / - tého omezení, pak nerovnost a, > 0 znamená, že optimální hodnota účelové funkce se nemůže uvolněním tohoto omezení zhoršit. • Poslední požadavek komplementarity lze rozepsat jako: a, = 0 nebo gr,-(x) = c, (případně mohou platit obě rovnosti) To znamená, že je-li příslušné omezení v bodě optima neaktivní (tj. není splněné jako rovnost), pak jeho multiplikátor musí být nulový, jinak by šla hodnota účelové funkce zlepšit uvolněním omezení. U aktivních omezení může být obecně i kladná hodnota multiplikátoru. Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f{x,y) = x - \ + y2 na "pulelipse'Vymezené nerovnostmi ^- + y2 < |, y > 0. Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f(x,y) = x - \ + y2 na "půlelipse"vymezené nerovnostmi \ + y2 < |, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci L = x- 4+y2 + A(4+y2-§)+ Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f{x,y) = x - \ + y2 na "půlelipse"vymezené nerovnostmi \ + y2 < §, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci /_ = x- ^+y2 + A(^+y2-§) + Zapišme KKT podmínky pro minimum: L'x = 1 - x + Ax = 0, Ly = 2y + 2Ay - ii (stacionarita) ^- + y2 < |, y > 0 (primární přípustnost) A > 0, /i > 0 (duální přípustnost) A ( y + y2 - |) = 0, ny = 0 (komplementarita) Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce r(x,y) = x - ^- + y2 na "púlelipse'Vymezené nerovnostmi \ + y2 < |, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci /_ = x- ^+y2 + A(^+y2-§) + ii(-y) Zapišme KKT podmínky pro minimum: Ux = 1 - x + Ax = 0, Uy = 2y + 2Ay - (stacionarita) |-+y2<|, y>0 (primární přípustnost) A > 0, ii > 0 (duální přípustnost) ^ (t + ~~ i) = 03 = 0 (komplementarita) Výpočet provedeme zvlášť pro všechny kombinace (ne)nulovosti multiplikátorů Aa/i: A = ii = 0, pak z podmínek stacionarity dostaneme x = 1, y = 0, účelová funkce zde má hodnotu /(1,0) = \. Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f(x,y) = x - ^ + y2 na "půlelipse"vymezené nerovnostmi \ + y2 < |, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci /_ = x- ^+y2 + A(^+y2-§) + ii(-y) Zapišme KKT podmínky pro minimum: Ux = 1 - x + Ax = 0, Uy = 2y + 2Ay - ii (stacionarita) |-+y2<|, y>0 (primární přípustnost) A > 0, ii > 0 (duální přípustnost) ^ (t + ~~ i) = 03 = 0 (komplementarita) Výpočet provedeme zvlášť pro všechny kombinace (ne)nulovosti multiplikátorů Aa/i: A = 0, ii > 0, pak opět stacionarita dává x = 1 a z podmínek komplementarity musí být y = 0. Dostali jsme opět bod [1,0]. Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f(x,y) = x - ^ + y2 na "půlelipse"vymezené nerovnostmi \ + y2 < |, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci /_ = x- ^+y2 + A(^+y2-§) + ii(-y) Zapišme KKT podmínky pro minimum: Ux = 1 - x + Ax = 0, Uy = 2y + 2Ay - ii (stacionarita) |-+y2<|, y>0 (primární přípustnost) A > 0, ii > 0 (duální přípustnost) ^ (t + y2 ~~ i) = 03 = 0 (komplementarita) Výpočet provedeme zvlášť pro všechny kombinace (ne)nulovosti multiplikátorů Aa/i: A > 0, ii = 0, pak z podmínek stacionarity dostaneme 2y(1 + A) = 0, tedy buď y = 0 nebo A = -1, což nelze. Druhé souřadnice dopočítáme ze vztahu y + O2 = §, získáme tedy body [-§, 0], [§, 0], hodnoty A jsou §, resp. i. Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f(x,y) = x - ^ + y2 na "půlelipse"vymezené nerovnostmi \ + y2 < |, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci /_ = x- ^+y2 + A(^+y2-§) + ii(-y) Zapišme KKT podmínky pro minimum: Ux = 1 - x + Ax = 0, Uy = 2y + 2Ay - ii (stacionarita) |-+y2<|, y>0 (primární přípustnost) A > 0, ii > 0 (duální přípustnost) ^ (t + ~~ i) = 03 = 0 (komplementarita) Výpočet provedeme zvlášť pro všechny kombinace (ne)nulovosti multiplikátorů Aa/i: A > 0, ii > 0 nedává žádný nový bod, protože kvůli komplementaritě je y = 0 a současně \ + y2 = |, což se shoduje s předchozím případem. Optimalizační úloha s omezením ve formě nerovností -příklad Najděte minimum funkce f(x,y) = x - ^ + y2 na "půlelipse"vymezené nerovnostmi \ + y2 < |, y > 0. Řešení: druhé omezení přepíšeme do tvaru -y < 0 a vytvoříme Lagrangeovu funkci /_ = x- ^+y2 + A(^+y2-§) + ii(-y) Zapišme KKT podmínky pro minimum: Ux = 1 - x + Ax = 0, Uy = 2y + 2Ay - /n (stacionarita) |-+y2<|, y>0 (primární přípustnost) A > 0, ii > 0 (duální přípustnost) ^ (t + ~~ i) = 03 = 0 (komplementarita) Výpočet provedeme zvlášť pro všechny kombinace (ne)nulovosti multiplikátorů Aa/i: Porovnáním hodnot ve všech podezřelých bodech f(1,0) = \, /(-§, 0) = /(§, 0) = | zjistíme, že minimum nastává v bodě Optimalizační úloha s omezením ve formě nerovností -příklad Znázorněme si vrstevnice funkce f(x,y) = x - *y + y2 a přípustnou množinu vymezenou nerovnostmi ^- + y2 < |, y > 0, minimum nastává v bodě [-§,0], maximum v bodě [\, 1]. -2-10 1 Konvexní programování Úlohu f (x) -» min na prípustné množině M vymezené soustavou m nerovnic gf,-(x) < ch i = 1,... m nazveme úlohou konvexního programování, jestliže účelová funkce f (x) i levé strany omezení g,(x), / = 1,..., m jsou konvexní funkce. Konvexní programování Úlohu f(x) —> min na přípustné množině M vymezené soustavou m nerovnic gf,-(x) < C/, / = 1,... m nazveme úlohou konvexního programování, jestliže účelová funkce f(x) i levé strany omezení g,(x), / = 1,..., m jsou konvexní funkce. Věta: Pro úlohu konvexního programování za předpokladu regularity platí: Vyhovuje-li bod x* KKT podmínkám, pak je bodem minima funkce f(x) na M. V případě konvexního programování je tedy splnění KKT vztahů postačující podmínkou pro existenci minima. Konvexní programování Úlohu f (x) —> min na prípustné množině M vymezené soustavou m nerovnic gf,-(x) < C/, / = 1,... m nazveme úlohou konvexního programování, jestliže účelová funkce f (x) i levé strany omezení g,(x), / = 1,..., m jsou konvexní funkce. Věta: Pro úlohu konvexního programování za předpokladu regularity platí: Vyhovuje-li bod x* KKT podmínkám, pak je bodem minima funkce f(x) na M. V případě konvexního programování je tedy splnění KKT vztahů postačující podmínkou pro existenci minima. Poznámka: Uvažujeme-li v dané úloze konvexního programování při vymezení přípustné množiny M také obligátní podmínky nezápornosti x > 0, pak lze KKT podmínky přeformulovat následovně: Funkce f(x) nabývá svého minima na M v bodě x* > 0 právě tehdy když existuje vektor A* > 0, takový že: L(x, A*) > L(x*, A*) > L(x*, A) pro všechny nezáporné vektory x, A. Toto tvrzení se nazývá Kuhn-Tuckerova věta o sedlovém bodě. Konvexní programování Poznámka: Vlastnosti sedlového bodu: Je-li (x*, A*) > 0 sedlovým bodem Lagrangeovy funkce na M, pak pro její gradienty zde platí: VxL(x*,A*) > 0 Vx/-(x*, A*). • x = 0 VA/-(x*, A*) < 0 VA/-(x*, A*). • A = 0, kde symbolem "."rozumíme násobení vektorů po složkách. Konvexní programování Poznámka: Vlastnosti sedlového bodu: Je-li (x*, A*) > 0 sedlovým bodem Lagrangeovy funkce na M, pak pro její gradienty zde platí: VxZ-(x*, A*) > 0 Vx/-(x*, A*).-x = 0 VA/-(x*, A*) < 0 Va/-(x*, A*). • A = 0, kde symbolem "."rozumíme násobení vektorů po složkách. Funkce L(x, A) nabývá na M v bodě (x*, A*) svého minima vzhledem k x a maxima vzhledem k A. První dvě podmínky jsou zřejmě zobecněním požadavku stacionarity (VxZ_(x*, A*) = 0) pro případ s obligátními podmínkami x > 0. Konvexní programování Poznámka: Vlastnosti sedlového bodu: Je-li (x*, A*) > 0 sedlovým bodem Lagrangeovy funkce na M, pak pro její gradienty zde platí: VxZ-(x*, A*) > 0 Vx/-(x*, A*).-x = 0 VA/-(x*, A*) < 0 Va/-(x*, A*). • A = 0, kde symbolem "."rozumíme násobení vektorů po složkách. Funkce L(x, A) nabývá na M v bodě (x*, A*) svého minima vzhledem k x a maxima vzhledem k A. První dvě podmínky jsou zřejmě zobecněním požadavku stacionarity (VxZ_(x*, A*) = 0) pro případ s obligátními podmínkami x > 0. Povšimněme si ještě, že VA/-(x*, A*) = (flf/(x) - C/)/=i,..., poslední dva vztahy vyjadřují tedy podmínky přípustnosti a komplementarity vzhledem k omezujícím podmínkám. Konvexní programování Poznámka: Vlastnosti sedlového bodu: Je-li (x*, A*) > 0 sedlovým bodem Lagrangeovy funkce na M, pak pro její gradienty zde platí: VxZ-(x*, A*) > 0 Vx/-(x*, A*).-x = 0 VA/-(x*, A*) < 0 Va/-(x*, A*). • A = 0, kde symbolem "."rozumíme násobení vektorů po složkách. Funkce L(x, A) nabývá na M v bodě (x*, A*) svého minima vzhledem k x a maxima vzhledem k A. První dvě podmínky jsou zřejmě zobecněním požadavku stacionarity (VxZ_(x*, A*) = 0) pro případ s obligátními podmínkami x > 0. Povšimněme si ještě, že VA/-(x*, A*) = (flf/(x) - C/)/=i,...,m poslední dva vztahy vyjadřují tedy podmínky přípustnosti a komplementarity vzhledem k omezujícím podmínkám. Poznámka: Pro maximalizační úlohy se sestaví Lagrangeova funkce ve tvaru Z_(x, A) = f(x) - YliL\ A, • (flf/(x) - Cj) a v podmínkách pro sedlový bod se uvažují opačné nerovnosti. Konvexní programování - príklad Poznámka: Lineární problém cT x —> max, A x < b, x > 0 je vlastně speciálním případem konvexního programování. Přepíšeme-li si účelovou funkci jako -cT • x —> min, budou podmínky pro sedlový bod (x, A) > 0 Lagrangeovy funkce následující: -cT + AT A > 0 (—cT + AT • A). • x = 0 A x - b < 0 (A-x-b).-A = 0 Konvexní programování - príklad Poznámka: Lineární problém cT x —> max, A x < b, x > 0 je vlastně speciálním případem konvexního programování. Přepíšeme-li si účelovou funkci jako -cT • x —> min, budou podmínky pro sedlový bod (x, A) > 0 Lagrangeovy funkce následující: -cT + AT A > 0 (—cT + AT • A). • x = 0 A x - b < 0 (A-x-b).-A = 0 S těmito tvrzeními jsme se již setkali dříve, vyjadřují dualitu v úlohách LP. Optimální A je řešením tzv. duální úlohy bT • A —> min, AT A < c, A > 0, protože dosazením vztahu (-cT + AT • A) • x = 0 do Lagrangeovy funkce dostaneme tvar Z_(x, A) = -cT x + ATAx-ATb = -AT • b. Konvexní programování - príklad Poznámka: Lineární problém cT x —> max, A x < b, x > 0 je vlastně speciálním případem konvexního programování. Přepíšeme-li si účelovou funkci jako -cT • x —> min, budou podmínky pro sedlový bod (x, A) > 0 Lagrangeovy funkce následující: -cT + AT A > 0 (—cT + AT • A). • x = 0 A x - b < 0 (A-x-b).-A = 0 S těmito tvrzeními jsme se již setkali dříve, vyjadřují dualitu v úlohách LP. Optimální A je řešením tzv. duální úlohy bT • A —> min, AT A < c, A > 0, protože dosazením vztahu (-cT + AT • A) • x = 0 do Lagrangeovy funkce dostaneme tvar Z_(x, A) = -cT x+AAx-Ab= -AT • b. Řešení primární i duální úlohy jsou totožná. Při velkém počtu omezení (m » rí) může být duální úloha mnohem jednodušší, proto se v praxi často při řešení primární úlohy používá tzv. duální algoritmus. Kvadratické programování Problém minimalizace funkce f (x) = \xT C x + d x na množině M = {x e Rn, x > 0, A x < b} nazveme úlohou kvadratického programování. Kvadratické programování Problém minimalizace funkce f (x) = |xT C x + d x na množině M = {x e M77, x > 0, A x < b} nazveme úlohou kvadratického programování. Jedná o úlohu konvexního programování? Prípustná množina M je jistě konvexní, stačí ověřit konvexitu účelové funkce. Hessova matice účelové funkce je H(x) = C, je-li tedy tato matice pozitivně definitní, jedná se o konvexní problém. Kvadratické programování Problém minimalizace funkce f (x) = \xT C x + d x na množině M = {x e M77, x > 0, A x < b} nazveme úlohou kvadratického programování. Jedná o úlohu konvexního programování? Prípustná množina M je jistě konvexní, stačí ověřit konvexitu účelové funkce. Hessova matice účelové funkce je H(x) = C, je-li tedy tato matice pozitivně definitní, jedná se o konvexní problém. Zapišme podmínky pro sedlový bod Lagrangeovy funkce: VxZ-(x*, A*) = Cx + d + ATA>0 Vx/-(x*, A*), x = (C x + d + AT A), x = 0 VA/-(x*,A*) = A-x-b<0 VA/-(x*, A*). • A = (A • x - b). • A = 0 Kvadratické programování Problém minimalizace funkce f (x) = |xT C x + d x na množině M = {x e M77, x > 0, A x < b} nazveme úlohou kvadratického programování. Jedná o úlohu konvexního programování? Prípustná množina M je jistě konvexní, stačí ověřit konvexitu účelové funkce. Hessova matice účelové funkce je H(x) = C, je-li tedy tato matice pozitivně definitní, jedná se o konvexní problém. Zapišme podmínky pro sedlový bod Lagrangeovy funkce: VxZ-(x*, A*) = Cx + d + ATA>0 Vx/-(x*, A*), x = (C x + d + AT A), x = 0 VA/-(x*,A*) = A-x-b<0 VA/_(x*, A*). • A = (A • x - b). • A = 0 Tato soustava se zpravidla upraví pomocí zavedení doplňkových proměnných w, kterými se první nerovnost převede na rovnici Cx + d + ATA-i/i/ = 0. Dále se úloha řeší jako lineární pomocí upravené simplexové metody, přičemž dodržení podmínky w. x = 0 se zajistí tak, že hlídáme, aby se do báze nedostaly proměnné x, a w, nikdy současně (/ = 1,... rí). Na této myšlence je založena tzv. Wolfeho metoda řešení úloh kvadratického programování. Kvadratické programování, příklad Uvažujme příklad minimalizace funkce z = xf + 2xí x2 + 3xf + 10x! - 2x2 na množině dané omezeními 2x^ + x2 > 5 xi + 3x2 < 10, x!, x2 > 0. Kvadratické programování, příklad Uvažujme příklad minimalizace funkce z = xf + 2x\ x2 + 3xf + 10x! - 2x2 na množině dané omezeními 2xA + x2 > 5 x\ + 3x2 < 10, x\, x2 > 0. Jde o úlohu kvadratického programování, navíc lze snadno ověřit, že Hessova matice je pozitivně definitní, tudíž je funkce konvexní. Sestavme Lagrangeovu funkci L(xi, x2, Ai, A2) = x12+2x1x2+3xf+1 Oxi -2x2+Ai (x^ +3x2-10)+A2(5-2x1 -x2) a formulujme KKT podmínky: Kvadratické programování, příklad Uvažujme příklad minimalizace funkce z = xf + 2xí x2 + 3x| + 1 Oxí - 2x2 na množině dané omezeními 2x\ + x2 > 5 X\ + 3x2 < 10, x\, x2 > 0. Jde o úlohu kvadratického programování, navíc lze snadno ověřit, že Hessova matice je pozitivně definitní, tudíž je funkce konvexní. Sestavme Lagrangeovu funkci L(xi, x2, A-i, A2) = x12+2x1x2+3x|+10^ -2x2+A-, (xA +3x2-10)+A2(5-2x1 -x2) a formulujme KKT podmínky: /_X1 = 2xA + 2x2 - 2Ai + A2 + 10 > 0; xA • /_X1 = 0 LX2 = 2xA + 6x2 - Ai + 3A2 - 2 > 0; x2 • Z_X2 = 0 Z_Al = -2X! - x2 + 5 < 0; Ai • LAl = 0 LA2 = x! + 3x2 - 10 < 0; A2 • LA2 = 0 Kvadratické programování, příklad Použijeme Wolfeho metodu: nejprve přepíšeme nerovnice na rovnice zavedením nezáporných doplňkových proměnných: 1/1/1 = Z-X1,1/1/2 = LX2, u\ = -/-a1 , U2 = —L\2. Sestavíme simplexovou tabulku úlohy, přičemž kvůli přípustnosti je nutné držet pravé strany kladné. Kvadratické programování, příklad Použijeme Wolfeho metodu: nejprve přepíšeme nerovnice na rovnice zavedením nezáporných doplňkových proměnných: 1/1/1 = Z-X1,1/1/2 = LX2, u\ = -/-a1 , U2 = —L\2. Sestavíme simplexovou tabulku úlohy, přičemž kvůli přípustnosti je nutné držet pravé strany kladné. *1 x2 Ai A2 1/1/1 w2 u2 bi -2 -2 2 -1 1 10 2 6 -1 3 -1 2 2 1 -1 5 1 3 1 10 Kvadratické programování, příklad Použijeme Wolfeho metodu: nejprve přepíšeme nerovnice na rovnice zavedením nezáporných doplňkových proměnných: 1/1/1 = Z-X1,w2 = LX2, u\ = -/-a1 , U2 = —L\2. Sestavíme simplexovou tabulku úlohy, přičemž kvůli přípustnosti je nutné držet pravé strany kladné. *1 x2 Ai A2 1/1/1 w2 u2 bi -2 -2 2 -1 1 10 2 6 -1 3 -1 2 2 1 -1 5 1 3 1 10 Do báze nesmíme zahrnout současně oba prvky z následujících dvojic: w\ a *i; tv2 a x2; 1/1 a Ai; 1/2 a A2. Bohužel sloupce u doplňkových proměnných mají na 2. a 3. řádku záporné koeficienty a tedy netvoří jednotkovou matici, takže je třeba ještě přidat umělé proměnné y^, y2. Zatím jsme hledali libovolné řešení vyhovující KKT podmínkám. Díky umělým proměnným získáme vlastně účelovou funkci: chceme dostat y\ = y2 = 0, minimalizujeme tedy Kvadratické programování, příklad Rozšířená simplexová tabulka: báze X2 Ai A2 w2 "1 u2 yi /2 bi -2 -2 2 -1 1 10 y\ 2 6 -1 3 -1 1 2 2 1 -1 1 5 u2 1 3 1 10 zi -1 -1 0 Je třeba anulovat redukované ceny u bazických proměnných, takže k poslednímu řádku přičteme druhý a třetí. Kvadratické programování, příklad Rozšířená simplexová tabulka: báze X2 Ai A2 1V2 "1 u2 /2 bi -2 -2 2 -1 1 10 y\ 2 6 -1 3 -1 1 2 V2 2 1 -1 1 5 u2 1 3 1 10 zi 4 7 -1 3 -1 -1 7 Jde o minimalizační úlohu, volíme tedy největší kladnou redukovanou cenu, tj. 7 a x2 vstoupí do báze místo yi. Kvadratické programování, příklad Rozšířená simplexová tabulka: báze x2 Ai A2 1/1/1 w2 u2 yi /2 bi -4/3 5/3 1 -1/3 1/3 32/3 x2 2/6 1 -1/6 3/6 -1/6 1/6 2/6 10/6 1/6 -3/6 1/6 -1 -1/6 1 28/6 u2 1/2 -3/2 1/2 1 -1/2 9 zi 5/3 1/6 -1/2 1/6 -1 -7/6 14/3 Největší redukovaná cena je 5/3, ale xi do báze vstoupit nemůže, protože už tam je . Do báze tedy vstoupí Ai. Kvadratické programování, příklad Rozšířená simplexová tabulka: báze x2 Ai A2 Wi I/I/2 u2 Y2 bi Ai -4/5 1 3/5 -1/5 1/5 32/5 *2 1/5 1 1/2 1/10 -1/5 1/5 7/5 Y2 9/5 -1/2 -1/10 -1/5 1/5 18/5 U2 2/5 -3/2 -3/10 3/5 1 -3/5 29/5 Zj 9/5 -1/2 -1/10 1/5 -1 -6/5 18/5 Nyní již do báze může vstoupit xi, které má redukovanou cenu 9/5. Nahradí tam proměnnou y2. Podaří se nám vynulovat účelovou funkci, výpočet končí. Dostaneme: xi =(18/5)/(9/5) = 2, x2 = 7/5-2-1/5 = 1, \i =32/5+2-4/5 = 8, A2 = 0. Kvadratické programování, příklad: optimalizace portfolia Předpokládejme, že chceme sestavit portfolio z cenných papírů, jejichž výnosy jsou náhodné veličiny, které označíme X|,..., Xn. Tyto náhodné veličiny můžeme charakterizovat očekávaným výnosem E(X|),..., E(Xn) a také variabilitou vyjádřenou rozptyly D(X|),..., D(Xn). Navíc mezi jednotlivými dvojicemi cenných papírů může existovat nějaký vztah, kdy se jejich ceny mohou vyvíjet souhlasně či naopak protichůdně - tyto závislosti jsou vyjádřeny pomocí kovariancí C(XhXj). Kovariance a rozptyly lze zapsat souhrnně pomocí variační matice V(X). Přístupem, založeným na těchto charakteristikách, se zabývá Markowitzův model portfolia. Kvadratické programování, příklad: optimalizace portfolia Předpokládejme, že chceme sestavit portfolio z cenných papírů, jejichž výnosy jsou náhodné veličiny, které označíme X|,..., Xn. Tyto náhodné veličiny můžeme charakterizovat očekávaným výnosem E(X|),..., E(Xn) a také variabilitou vyjádřenou rozptyly D(X|),..., D(Xn). Navíc mezi jednotlivými dvojicemi cenných papírů může existovat nějaký vztah, kdy se jejich ceny mohou vyvíjet souhlasně či naopak protichůdně - tyto závislosti jsou vyjádřeny pomocí kovariancí C(XhXj). Kovariance a rozptyly lze zapsat souhrnně pomocí variační matice V(X). Přístupem, založeným na těchto charakteristikách, se zabývá Markowitzův model portfolia. Výnos portfolia, ve kterém jsou jednotlivé cenné papíry zastoupeny v podílech Pí,..., pn je náhodná veličina Y = ]T"=1 p/X,. Očekávaný výnos bude roven E(Y) = ]T"=1 PíE(Xj). Variabilitu výnosu portfolia je možné vyjádřit pomocí jeho rozptylu, D( Y) = ,..., pn) • V(X) • (pí,..., pn)T• Kvadratické programování, příklad: optimalizace portfolia Investor zpravidla požaduje co největší očekávaný výnos E(Y) za co nejmenšího rizika (riziko, tedy nejistotu můžeme vyjádřit právě rozptylem D(Y)) Jde o úlohu vícekriteriálního programování E(Y) —> max, D(Y) —> min za omezující podmínky ]T"=1 P/ = 1 ■ Kvadratické programování, příklad: optimalizace portfolia Investor zpravidla požaduje co největší očekávaný výnos E(Y) za co nejmenšího rizika (riziko, tedy nejistotu můžeme vyjádřit právě rozptylem D(Y)) Jde o úlohu vícekriteriálního programování E(Y) —> max, D(Y) —> min za omezující podmínky ]T"=1 P/ = 1 ■ Jeden z možných přístupů k řešení této vícekriteriální úlohy je stanovení minimálního požadovaného výnosu Rmin a minimalizace rizika mezi všemi portfolii s výnosem alespoň Rmin. Dostaneme úlohu kvadratického programování f fa,..., pn) = fa,..., pn) • V(X) • fa,..., pn)T ro/n , za omezení p, > 0, ^=1 P/ = 1 > Z)/Li Píe(xí) ^ Pro nedegenerovaná portfolia je matice V(X) pozitivně definitní, takže problém je konvexní. Kvadratické programování, příklad: optimalizace portfolia Investor zpravidla požaduje co největší očekávaný výnos E(Y) za co nejmenšího rizika (riziko, tedy nejistotu můžeme vyjádřit právě rozptylem D(Y)) Jde o úlohu vícekriteriálního programování E(Y) —> max, D(Y) —> min za omezující podmínky ]T"=1 P/ = 1 ■ Jeden z možných přístupů k řešení této vícekriteriální úlohy je stanovení minimálního požadovaného výnosu Rmin a minimalizace rizika mezi všemi portfolii s výnosem alespoň Rmin. Dostaneme úlohu kvadratického programování f fa,..., pn) = fa,..., pn) • V(X) • fa,..., pn)T ro/n , za omezení p, > 0, ^=1 P/ = 1 > Z)/Li Píe(xí) ^ ^/n- Pro nedegenerovaná portfolia je matice V(X) pozitivně definitní, takže problém je konvexní. Příklad: Navrhněte strukturu portfolia z dvou cenných papírů , P2, tak aby jeho očekávaný výnos byl alespoň 0,04 a riziko minimální. Sledováním časových řad cenového vývoje cenných papírů jsme odhadli očekávané výnosy E(X^) = 0,03, E(X2) = 0,05, rozptyly D(^) = 3, D(X2) = 4 a kovarianci C(X15X2) = 2. Kvadratické programování, příklad: optimalizace portfolia Zapíšeme matematický model úlohy: r(Pi,P2) = (Pí ,A>) • ( 2 4 ) ' ( £ ) ~" m/n za P°dmínky Pí, p2 > 0, 3pi + 5p2 > 4, p! + p2 < 1 . Poznámka: Očekávané výnosy jsme pro snadnější výpočty vynásobili 100 a poslední podmínku jsme zapsali jako nerovnici (připouštíme tedy i možnost nevyčerpání celé částky na investici!) Kvadratické programování, příklad: optimalizace portfolia Zapíšeme matematický model úlohy: r(Pi,P2) = (Pí,P2) • ( 2 4 ) ' ( p2 ) ~" m/n za P°dmínky Pí, p2 > 0, 3pi + 5p2 > 4, p! + p2 < 1 . Poznámka: Očekávané výnosy jsme pro snadnější výpočty vynásobili 100 a poslední podmínku jsme zapsali jako nerovnici (připouštíme tedy i možnost nevyčerpání celé částky na investici!) Lagrangeova funkce úlohy má tvar L(pi, p2, a, ijl) = 3pf + 4^p2 + 4p| + a(pi + p2 - 1) + fi{-3fh - 5p2 + 4) Kvadratické programování, příklad: optimalizace portfolia Zapíšeme matematický model úlohy: r(Pi,p2) = (Pi,A>) • ( 2 4 ) ' ( jj, ) ^ m/n za p°dmínky Pí, P2 > 0, 3p! + 5p2 > 4, pí + p2 < 1 . Poznámka: Očekávané výnosy jsme pro snadnější výpočty vynásobili 100 a poslední podmínku jsme zapsali jako nerovnici (připouštíme tedy i možnost nevyčerpání celé částky na investici!) Lagrangeova funkce úlohy má tvar /.(P!,P2, A, ii) = 3pf + 4p!P2 + 4pf + A(p! + P2 - 1) + M-3p! - 5p2 + 4) Kuhn-Tuckerovy podmínky pro pí, p2, A, n > 0 jsou: *-p, = 6pi + 4p2 + A - 3/lí > 0, (6p! + 4p2 + A - 3/x)pi = 0 l'p2 = 4Pi + 8p2 + A - 5// > 0, (4pi + 8p2 + A - 5^)^ = 0 Z-'A = Pi +p2-1 <0, (pí +p2-1)A = 0 Z.' = -3pi - 5p2 + 4 < 0, (-3pi - 5p2 + 4)aí = 0 Kvadratické programování, příklad: optimalizace portfolia Při hledání bodu vyhovujícího KT podmínkám uvažujme opět všechny možnosti (ne)nulovosti multiplikátorů A a fi: A > 0, ii > 0 : Komplementarita pro oba multiplikátory dává 3p^ + 5p2 = 4, Pí + P2 = 1, což nám dá řešení = p2 = \, po dosazení do prvních dvou rovnic dostaneme 5 + A - 3/i = 0, 6 + A - 5/i = 0, tato soustava ale dává záporné A, takže nezískáme žádné řešení. Kvadratické programování, příklad: optimalizace portfolia Při hledání bodu vyhovujícího KT podmínkám uvažujme opět všechny možnosti (ne)nulovosti multiplikátorů A a fi: A > 0, ii > 0 : Komplementarita pro oba multiplikátory dává 3p^ + 5p2 = 4, Pí + P2 = 1, což nám dá řešení = p2 = \, po dosazení do prvních dvou rovnic dostaneme 5 + A - 3/i = 0, 6 + A - 5/i = 0, tato soustava ale dává záporné A, takže nezískáme žádné řešení. A = 0, ii > 0 : Z komplementarity pro ii plyne 3pi + 5p2 = 4. Zřejmě tedy p2 / 0 a druhou podmínku lze vydělit p2: Ap\ + 8p2 - 5/i = 0, po vyloučení možnosti Pí = 0 (pokazila by se nezápornost Lj^) musí být 6pi + 4p2 + A - 3/i = 0, takže dostaneme lineární soustavu, jejímž řešením je Pí = 0,16, p2 = 0,7, ii = 1,25 a očekávaný výnos 4 při riziku 2,5. Kvadratické programování, příklad: optimalizace portfolia Při hledání bodu vyhovujícího KT podmínkám uvažujme opět všechny možnosti (ne)nulovosti multiplikátorů A a fi: A > 0, ii > 0 : Komplementarita pro oba multiplikátory dává 3p^ + 5p2 = 4, Pí + P2 = 1, což nám dá řešení = p2 = \, po dosazení do prvních dvou rovnic dostaneme 5 + A - 3/i = 0, 6 + A - 5/i = 0, tato soustava ale dává záporné A, takže nezískáme žádné řešení. A = 0, ii > 0 : Z komplementarity pro ii plyne 3pi + 5p2 = 4. Zřejmě tedy p2 / 0 a druhou podmínku lze vydělit p2: Ap\ + 8p2 - 5/i = 0, po vyloučení možnosti Pí = 0 (pokazila by se nezápornost Lj^) musí být 6pi + 4p2 + A - 3/i = 0, takže dostaneme lineární soustavu, jejímž řešením je Pí = 0,16, p2 = 0,7, ii = 1,25 a očekávaný výnos 4 při riziku 2,5. A > 0, ii = 0 : Z komplementarity pro A plyne Pí + p2 = 1. Pro extrémní případ Pí = 0, p2 = 1 nebo naopak se pokazí nezápornost derivace í!pA nebo Up2. Tedy pí, p2 / 0 a první dvě podmínky lze vydělit pí a p2: 6pi + 4p2 + A = 0, Ap\ + 8p2 + A = 0 a dostaneme soustavu, pro niž však vyjde A < 0, takže nezískáme žádné řešení. Kvadratické programování, příklad: optimalizace portfolia a = ii = 0 : Z prvních dvou rovnic dostaneme (6pi + 4p2)pi = 0, (4pi + 8p2)p2 = 0, což má jediné nezáporné řešení Pí = p2 = 0, což však nevyhovuje podmínce 3pi + 5p2 > 4. 2=|- Kvadratické programování, příklad: optimalizace portfolia Úlohu bychom mohli řešit i pro jiné aspirační úrovně výnosu Rm-Im například Ftmin e {1; 1,5; 2; 2,5; 3; 3,5; 4; 5}. Vynesme si tyto hodnoty spolu s optimálními hodnotami účelové funkce (tj. minimálními riziky při daném výnosu) graficky v tzv. kriteriálním prostoru: J JI 4 vi 2 - i v t 3 1 L : riziko J \ Spojnice mezi body je odhadem tzv. efektivní hranice, tvořené portfolii, jejichž výnos lze zlepšit jen za cenu zhoršení rizika a naopak. Efektivní hranici také najít pomocí optimalizace funkcí f(Y) = c-E(Y)-(1 - c) • D(Y) na množině všech portfolií, kde konstanta c probíhá interval (0,1). 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 • metoda kvadratické interpolace • 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) a b Označme d = (b - ä). 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 av = 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 >- ^f(v) 1 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, fc>1), 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 pd (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 e, stačí provést N iterací, kde N> /0^a) -logO-p)- Výsledný odhad bodu optima zapíšeme ve tvaru x* = 2 - ± 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 e, 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 e, 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š) * 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 f(x) = x + 4 na počátečním intervalu a = 0,5; b = 3, svislou čárou je znázorněno skutečné minimum x* = « 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.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{y) = 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 ř = (1.766445,1.905765). Jednorozměrná optimalizace - metoda zlatého řezu, příklad 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). /(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, f (ä)], [c, f(c)] a [b, f(b)] 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 1 \ / 1 1 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) 1 \ f(x)/ 1 ! i (x)! ! a x c b Dá se ukázat, že x = \ ^^ž^alg^g^ • Další P0StuP se volí podle hodnoty f(x). Jednorozměrná optimalizace - metoda kvadratické interpolace Víme, že x g (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) > /(c), 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. t 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 - x77-1 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í s = 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í s = 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, b) a modře parabolu, protínající jej v bodech a, fc>, c: 1. krok: /(a) = 12.500000, f(c) x = 2.208333, f(x) = 2.823499 a = 1.500000, c = 2.208333, b 2.833333, f {b) = 3.333333 Nově: 3.000000, chyba ^ Tjŕ°|<=^Q.7Q833i 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í s = 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 ,6=1.869995, chyba x° — 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 f je zde diferencovatelná. Nejjednodušší iterační optimalizační metodou využívající derivaci funkce f je 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í f'(x) < 0) a rostoucí na intervalu (p, b) (tudíž zde platí f'(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 f je zde diferencovatelná. Nejjednodušší iterační optimalizační metodou využívající derivaci funkce f je 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í f'(x) < 0) a rostoucí na intervalu (p, b) (tudíž zde platí f'(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'(s) = 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 f je zde diferencovatelná. Nejjednodušší iterační optimalizační metodou využívající derivaci funkce f je 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í f'(x) < 0) a rostoucí na intervalu (p, b) (tudíž zde platí f'(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'(s) = 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 2e, kde e je požadovaná přesnost. Lze ukázat, že pak stačí provést N > M|p) 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í e = 0,05. Funkce má derivaci ť(x) = 1 - ^. Graf funkce f(x) = x + ^ na počátečním intervalu a = 0,5; fc> = 3, svislou čárou je znázorněno skutečné minimum x* = s/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í e = 0,05. Funkce má derivaci ť(x) = 1 - ^. 141-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í e = 0,05. Funkce má derivaci ť(x) = 1 - ^. 141-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í e = 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í e = 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í e = 0,05. Funkce má derivaci ť(x) = 1 - -|. 2 ■ 5. krok: s = 1.828125, f'(š) = 0.017950 nový interval bude: /1 = (1.750000,1.828125). protože šířka intervalu < e, 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 f'(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 = f'{x0) + /"(xo) • (x - xo) ■ 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 f'(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 = f'{x0) + /"(x0) • (x - xo) ■ Položíme-li pravou stranu rovnu nule, spočteme odtud x = x0 - Tuto hodnotu označíme xi 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 ť(á) • f'(b) < 0. Důležité je též dobrá volba bodu x0, doporučuje se volit tak, aby f'{xo) • //7/(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 f'(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 f'(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 f'(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 + 4, 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 f(x) = x + ^ s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3). Řešení: f'(x) = 1 - f"(x) = if. Zvolme x0 = 1.750000 (1. aproximace z metody bisekce) 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í: ť(x) = 1 - /"(x) = 1|. Zvolme x0 = 1.750000 (1. aproximace z metody bisekce) 1 .krok: x0 = 1,750000, /'(x0) = -0,119534, /"(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í: ť(x) = 1 - /"(x) = 1|. Zvolme x0 = 1.750000 (1. aproximace z metody bisekce) 1 .krok: x0 = 1,750000, /'(x0) = -0,119534, /"(x0) = -1,919200 x1= 1,812283, X!-x0| = 0,062283 2.krok: x^ = 1,812283, /;(xi) = -0,008029, /"(x1) = 1,668662 x2 = 1,817095, |x2 — X! | = 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í: f(Xk\ ~ '(*)-'(**-i) 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í: f(Xk\ ~ '(*)-'(**-i) My tuto aproximaci provedeme pro druhou derivaci: _ f'(xk)-f'(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, xi. 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í: f(Xk\ ~ '(*)-'(**-i) My tuto aproximaci provedeme pro druhou derivaci: _ f'(xk)-f'(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, . 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 f'(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, Xi, 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, Xi, 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, Xi, 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, Xi, provedeme ještě další tři: Jednorozměrná optimalizace - metoda regula falsi, příklad Příklad: Nalezněte minimum funkce f(x) = x + 4, s přesností e = 0,05, víte-li, že se nalézá v intervalu (0,5; 3). 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'(xo)f'(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, xA = 2,375000. Ověříme, že /'(xo)/'(xi) = -0,119534 • 0,552121 < 0. Lkrok: x2 = - f>{*)Zxf\Xo)f'(x\) = 1,861230, |x2 -x^ = 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, x^ = 2,375000. Ověříme, že ť{x0)ť(x^) = -0,119534 • 0,552121 < 0. Lkrok: x2 = *1 - f>(£)Zr{X6)f'fa) = 1,861230, \x2 = 0,062283 Protože f'(x2) = 0,069426 > 0, použijeme dále x0 a x2. 2.krok: x3 = x2 - n^Z*\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í o Komparativní metody • Gradientní metody • Newtonova metoda a její modifikace • Gaussova-Newtonova metoda • Metody konjugovaných směrů • Metoda konjugovaných gradientů • 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ů • Metoda konjugovaných gradientů • 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 • 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 Si = (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 Si = (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 Si = (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 Si = (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 Si = (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(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 . 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 + 4x^2 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 f(x^ 1) = -12 + 4xf + 4 + 4x1s dostaneme x^ = -\. Následně ve směru druhé proměnné minimalizujeme f(-\,x2) = -12x2 + 1 + 4x| - 2x2, dostaneme 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 + 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 f(x^ 1) = -12 + 4xf + 4 + 4x1s dostaneme x^ = -\. Následně ve směru druhé proměnné minimalizujeme f(-\,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 /(-|,x2) = -12x2 + ^ + 4x| - |x2 nabývá minima pro x2 = 21. 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 f(x^ 1) = -12 + 4xf + 4 + 4x1s dostaneme = -\. Následně ve směru druhé proměnné minimalizujeme f(-\,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 xi = -|. Poté ve směru druhé proměnné: funkce /(-|,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. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. Vícerozměrná optimalizace - metoda pravidelného simplexu Pro volbu pevné velikosti simplexu dosáhneme pouze omezené přesnosti. 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 xeK": o urči výchozí bod x° O urči gradient funkce f v tomto bodě: X7f(x°) o přejdi z bodu x° do bodu x1 ve směru "antigradientu" -W(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 xeK": o urči výchozí bod x° O urči gradient funkce f v tomto bodě: X7f(x°) o přejdi z bodu x° do bodu x1 ve směru "antigradientu" -W(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) 1 )T - °>1' "4)T • is = (-0-0707;1 -0707)T- Y2 _ Y1 _ Vf(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(x-\,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 . Řešení: Spočteme gradient W(xi, x2) = (8x! + 4x2, -12 + 4xi + 8x2)T a vyčíslíme x1 = x° - a • = (0,1 )T - 0,1 • (4, -4)T • -j- = (-0.0707; 1.0707)T. Y2 - Y1 - n, Vf)T je sdružený s Si vzhledem k matici H pokud Si • H • s2 = 8a + 4fc> = 0. To je splněno například pro a = 1, b = -2. Začneme minimalizaci z x° ve směru Si: g\ (a) = f(1 + a, 1) = 12a + 4a2, což je minimální pro a = -§, takže x1 = (-1,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. 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ále jsou 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 • 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 • JABLONSKÝ, Josef: Operační výzkum kvantitativní modely pro ekonomické rozhodování, 1. vyd. Praha: Professional Publishing, 2002 • PLEVNÝ, Miroslav a Miroslav ŽIŽKA: Modelování a optimalizace v manažerském rozhodování, Vyd. 2. Plzeň: Západočeská univerzita, 2010 • GROS, Ivan: Kvantitativní metody v manažerském rozhodování, 1. vyd. Praha: Grada, 2003 < n►< ^►<=►<=► =