Pomocné texty pro přípravu ke státním zkouškám Jndřch Klapka, Vítězslav Ševčík 1. března 2014 15 Lneární programování, smplexová metoda, způsoby převádění optmalsačního problému na kanoncký tvar (Zde e třeba nastudovat učební texty J. Klapka, J Dvořák, P. Popela: Metody operačního výzkumu VUTIUM Brno 2001, str. 6 36) Aby bylo možno problém lneárního programování řešt smplexovou metodou, musí být převeden na kanoncký tvar. 15.1 Jak e převedeme, když e zadán s omezuícím podmínkam ve tvaru nerovností? Příklad zadání problému: Nalézt Nalézt max{3x 1 + 2x 2 } Za podmínek 27x 1 + 36x 2 128 13x 1 + 15x 2 336 x 1 0, x 2 0 Převedení na kanoncký tvar: max{3x 1 + 2x 2 } = max{3x 1 + 2x 2 + 0x 3 + 0x 4 } } 27x 1 + 36x 2 + 1x 3 = 128 13x 1 + 15x 2 + 1x 4 = 336 x 1 0, x 2 0, x 3 0, x 4 0 (1) Proměnné x 3, x 4 nazýváme přídatné (doplňkové) proměnné. V případě výrobkového problému mohou vyadřovat nevyužté část zdroů, echž kapacty sou vyádřeny pravým stranam omezuících podmínek. Proměnné x 1, x 2, x 3, x 4 rozdělíme na dvě skupny: Bázcké a nebázcké. Nebázcké zde zvolíme x 1, x 2, bázcké pak budou x 3, x 4. Nebázcké položíme rovny nule. Pak bázcké sou rovny pravým stranám. Výchozí bázcké řešení, které e edním z přípustných řešení problému, které nemusí být optmální, e: x 1 = 0, x 2 = 0, x 3 = 128, x 4 = 336. 1
Následue řešení tohoto problému smplexovou metodou. Základní myšlenka smplexové metody spočívá v postupné transformac systému lneárních algebrackých rovnc vyadřuících omezuící podmínky optmalsačního problému (v našem případě systému (1)), která e provedena tak, aby transformovaný systém splňoval tyto požadavky: a) aby měl stenou množnu přípustných řešení ako před transformací b) aby byl též v kanonckém tvaru c) aby krterální funkce (v našem případě výraz 3x 1 + 2x 2 ) neměla menší hodnotu než před transformací. Kdy má systém po transformac stenou množnu přípustných řešení? Je to tehdy, když e transformueme tak, že lbovolný eho řádek násobíme lbovolnou nenulovou reálnou konstantou, nebo lbovolný eho řádek upravíme tak, že k němu přčteme kterýkolv ný řádek tohoto systému, násobený lbovolnu reálnou konstantou, případně provedeme lbovolné množství úprav tohoto druhu v lbovolném pořadí. Tyto vlastnost má smplexová transformace v ctované knze Metody operačního výzkumu 2001 (vzorce (2.33), (2.34)), kde e též uvedeno krterum optmalty, podle něhož poznáme, která z těchto transformací e ž poslední, t. poskytuící optmální řešení. 15.2 Jak problém převedeme na kanoncký tvar, když e zadán s omezuícím podmínkam ve tvaru rovnc? Nalézt max{30x 1 + 20x 2 } Za podmínek 270x 1 + 360x 2 = 1280 (2) 130x 1 + 150x 2 = 3360 x 1 0, x 2 0 Převedeme na kanoncký tvar převedením na rozšířený problém: max{30x 1 + 20x 2 + 0x 3 + 0x 4 } 270x 1 + 360x 2 + 1x 3 = 1280 130x 1 + 150x 2 + 1x 4 = 3360 30x 1 20x 2 + z = 0 x 1 0, x 2 0, x 3 0, x 4 0 x 3, x 4 nazýváme pomocné proměnné. Nemaí věcný význam. Pouze rozšřuí problém na ný problém, který e v kanonckém tvaru. Náš problém nyní řešíme dvoufázovou smplexovou metodou: 2
1. fáze: mn{x 3 + x }{{} 4 }, t. max{ x 3 x 4 } (mnmalsace pomocné krterální funkce). z Pokud má náš původní problém řešení, dosáhneme stavu, kdy z = 0. neprve však musíme pomocné proměnné x 3, x 4 vyádřt pomocí ostatních proměnných, abychom měl stotu, že se nestanou bázckým. Tím máme problém převeden na náš původní problém (2), který e však ž v kanonckém tvaru, takže ho ž můžeme řešt smplexovou metodou, což e úkolem druhé fáze: 2. fáze: max{30x 1 + 20x 2 }. Tato původní krterální funkce však ž bude transformována, t. bude mít né cenové koefcenty, neboť v 1. fáz měla úlohu omezuící podmínky, takže eí koefcety se transformovaly smplexovou transformací spolu s koefcenty ostatních omezuících podmínek rozšířeného problému. Má však stenou hodnotu maxma stené optmalsuící hodnoty nezávsle proměnných takže druhá fáze dvoufázové smplexové metody nám poskytne optmální řešení původního problému. Pokud e pomocných proměnných malý počet, můžeme e anulovat nak než využtím dvoufázové smplexové metody. Spočívá to ve využtí tzv. prohbtvní ceny. Je to záporná cena (cenový koefcent) M, kde M e vhodně zvolené velké kladné číslo. Smplexová metoda pracue tak, že pokud má problém přípustné řešení, pak pomocná proměnná, která e v krterální funkc oceněná dostatečně velkou zápornou cenou, nebude na konc výpočtu bázckou proměnnou. Jako nebázcká e pak anulována automatcky. Pokud na některou proměnnou x není kladena podmínka nezápornost, můžeme použít smplexovou metodu, použeme-l substtuce x = x + x, x+ 0, x 0, ak v krterální funkc, tak v omezuících podmínkách, čímž místo této proměnné zavedeme dvě nové proměnné. 15.3 Duální problém a eho využítí v analyse ctlvost řešení problému Zde e potřeba vycházet z přednášky. V dalším přpomenu en základní myšlenku: V oblast symetrckého duálního problému považueme za vzáemně duálně sdružené tyto dva optmalsační modely: Prmární model Duální model kde Nalézt Za podmínek max c T x Ax b x 0 Nalézt Za podmínek mn b T u A T u c u 0, 3
a 11 a 12... a 1n x 1 c 1 b 1 u 1 a 21 a 22... a 2n A =......, x = x 2., c = c 2., b = b 2., u = u 2. a m1 a m2... a mn x n c n b m u m Věta o dualtě (tzv. hlavní věta o dualtě): Má-l eden ze sdružených matematckých modelů optmální řešení s konečnou hodnotou krterální funkce, pak má druhý model optmální řešení s konečnou hodnotou krterální funkce a optmální hodnoty krterálních funkcí obou modelů sou s rovny. 15.3.1 Využtí k analyse ctlvost Jak se změní optmální hodnota krterální funkce z = c T x (o) př změně pravé strany b o ednčku? Označme z(b ) = c 1 x (o) 1 + c 2 x (o) 2 + + c n x (o) n = b 1 u (o) 1 + b 2 u (o) 2 + + b m u (o) m, což platí podle věty o dualtě. Pak platí též: z(b + 1) = b 1 u (o) 1 + + (b + 1)u (o) + + b m u (o) m. Z toho plyne: z(b ) = z(b + 1) z(b ) = u (o). To znamená, že př změně b o ednčku vzroste maxmální hodnota z právě o u (o). 4
16 Konvexní a kvazkonvexní optmalsační problémy. Lneární lomené programování. Maxmalsace haléřového ukazatele frmy. Je třeba vyít z přednášky. Máme-l se rozhodnout, zda můžeme pro optmalsac dané funkce použít např. fremní program určený pro optmalsac konvexní funkce, musíme umět zstt, zda e tato funce konvexní. K tomu používáme analysy mnorů Hessovy matce. Množna M e konvexní, stlže s každým dvěma body (vektory) x, y M do ní patří každá ech konvexní kombnace k 1 x + k 2 y, kde k 1 + k 2 = 1, k 1 0, k 2 0, (3) t. každý bod ležící na úsečce spouící body x, y. Funkce f e konvexní na konvexní množně M, estlže pro všechny body x, y M platí f(k 1 x + k 2 y) k 1 f(x) + k 2 f(y) (4) pro všechna k 1, k 2 splňuící (3). Jestlže v (4) platí místo ostrá nerovnost < př k 1 > 0, k 2 > 0, říkáme, že f e ryze konvexní. Má-l f na M druhé dervace, můžeme rozhodnout o konvexnost funkce f tak, že sestavíme čtvercovou matc D z prvků d = 2 f x x (, = 1, 2,..., n), t. Hessova matce (Hessán). Funkce f e ryze konvexní v M, estlže všechny rohové mnory matce D sou v M kladné. Funkce f e konvexní v M, estlže všechny 2 n 1 možné hlavní mnory matce D sou v M nezáporné. Přtom hlavním mnorem matce D nazýváme každý determnant tvaru d 1 1 d 1 2... d 1 p d 2 1 d 2 2... d 2 p.....,. d p1 d p2... d p p kde platí 1 1 < 2 < < p n. Takový determnant dostaneme, když v matc D vyškrtáme všechny řádky a sloupce kromě řádků a sloupců 1, 2,..., p a z nepřeškrtaných prvků sestavíme determnant, anž bychom přtom měnl vzáemné postavení prvků. Funkce f e (ryze) konkávní v M, e-l funkce f (ryze) konvexní v M 16.1 Lneární lomené programování Účelová funkce f(x) = c 1x 1 + c 2 x 2 + + c n x n d 1 x 1 + d 2 x 2 + + d n x n = n =1 c x n =1 d x 5
udává například hodnotu hrubé produkce vztaženou na ednotku výrobních nákladů kde x = úroveň výroby výrobku c = cena ednotky výrobku d = náklady na výrobu ednotky výrobku ( = 1, 2,..., n). Hledáme za podmínek max f(x) n a x = b ( = 1, 2,..., m) =1 x 0 ( = 1, 2,..., n) kde a e množství -tého zdroe, potřebné k výrobě edné ednotky -tého výrobku. Převedení na lneární programování lze provést za podmínek: 1) Pro všechna přípustná x platí n =1 d x > 0. Tento výraz e tedy nenulový. 2) Žádné a nesmí být záporné. T. když sou nulové kapacty zdroů, pak nc nevyrábíme. Jnak bychom vyrobl zdroe, což nechceme. Je to ekvvalentní předpokladu, že množna přípustných řešení e omezená. Metoda řešení: Upravíme krterální funkc do tvaru: a položíme f(x) = c 1 x 1 d 1 x 1 + d 2 x 2 + + d n x n + c 2 x 2 d 1 x 1 + d 2 x 2 + + d n x n + z = z n+1 = x n =1 d x ( = 1, 2,..., n), 1 n =1 d x. + c n x n d 1 x 1 + d 2 x 2 + + d n x n Lnearsace se tedy provádí za cenu zavedení další proměnné z n+1, a musíme též zavést o ednu omezuící podmínku více. Provedeme-l tuto substtuc, dostaneme úlohu lneárního programování maxmalsovat n c z =1 6
za podmínek n a z b z n+1 = 0 ( = 1, 2,..., m) =1 n d z = 1, z 0 ( = 1, 2,..., n + 1). =1 Hledaný výrobní program dostaneme po vyřešení úlohy lneárního programování zpětnou substtucí x = z z n+1 ( = 1, 2,..., n). Zde používaná lneární lomená krterální funkce patří mez tzv. kvazkonkávní funkce. Defnce 1 Funkce f e kvazkonkávní na konvexní množně M, estlže pro každé reálné číslo α e množna {x; x M, f(x) α} konvexní. Funkce f e kvazkonvexní, estlže f e kvazkonkávní. Pro maxmalsační úlohy s kvazkonkávní účelovou funkcí a pro mnmalsační úlohy s kvazkonvexní účelovou funkcí a konvexní množnou přípustných řešení se používá souhrnného názvu kvazkonvexní úlohy. 7
17 Kuhn-Tuckerova věta a eí aplkace v gradentních metodách a v kvadratckém programování V této otázce e třeba vycházet z přednášky. Hledeme maxmum funkce f(x) př omezeních g 1 (x) 0. g m (x) 0, x 0. Zaveďme nyní m nových proměnných u = [u 1, u 2,..., u m ], z nchž každá odpovídá edné omezuící podmínce, a pomocí nch zaveďme novou pomocnou funkc n + m proměnných x 1,..., x n, u 1,..., u m, tzv. Langrangeovu funkc, čl Lagrangán ϕ(x, u) = f(x) + m u g (x). =1 Předpokládeme, že funkce f, g 1, g 2,..., g m sou konkávní a spotě dervovatelné, a že pro každý nezáporný a nenulový bod u exstue nezáporný bod x takový, že platí m u g (x) > 0 =1 (podmínka regularty) Od podmínky regularty lze upustt, sou-l omezení lneární. Pak platí věta Kuhn-Tuckerova: Nezáporný bod x e řešením maxmalsačního problému nelneárního programování, uvedeného výše, tehdy a en tehdy, exstue-l nezáporný bod u takový, že platí ϕ 0, x ϕ 0, u ϕ x = 0 x ( = 1, 2,..., n) ϕ u = 0 u ( = 1, 2,..., m) Všechny dervace se berou v bodě optma. Tyto 4 podmínky se nazývaí Kuhn-Tuckerovy podmínky. Bod x, ū, splňuící tyto 4 vztahy, se nazývá sedlový bod. Pro ně platí ϕ(x, ū) ϕ( x, ū) ϕ( x, u) ϕ( x, ū) = max x 0 ϕ(x, ū) = mn ϕ( x, u). u 0 Věta Kuhn-Tuckerova tedy převádí problém konvexního programování na problém nalezení nezáporného sedlového bodu Lagrangánu ϕ. Na tom sou založeny: a) nepřímé gradentní metody b) Wolfeho metoda kvadratckého programování. 8
Nepřímé gradentní metody konverguí k maxmu funkce f hledáním směru neprudšího vzestupu Lagrangánu ϕ podle vektoru x, a eho neprudšího klesání podle vektoru u, tedy hledáním sedlového bodu Lagrangánu ϕ(x, u). Ve Wolfeho metodě se počítá max f(x), kde f(x) = p T x x T Cx Prncp Wolfeho metody: Kvadratcká krterální funkce se dervováním v Kuhn-Tuckerových podmínkách lnearsue. Dále v problému přbude edna nová kvadratcká omezuící podmínka, která vznkne takto: Vydeme z první Kuhn-Tuckerovy podmínky, kterou převedeme na rovnc zavedením přídatné proměnné v : ϕ x + v = 0 ϕ x = v. Dosazením za ϕ x do druhé Kuhn-Tuckerovy podmínky a sečtením přes všech n proměnných dostaneme novou kvadratckou omezuící podmínku n =1 x v = 0. Platnost této podmínky se ve Wolfeho metodě zašťue takto: Je-l v dané etapě výpočtu proměnná x k proměnnou bázckou, pak ponecháme proměnnou v k mmo báz (tedy v k = 0). Jestlže naopak e v báz v k, nevezmeme do báze proměnnou x k (tedy platí x k = 0). 9
18 Dynamcké programování determnstckých rozhodovacích procesů. K této otázce e třeba prostudovat stránky 121 135 učebních textů Metody operačního výzkumu 2001 (VUTIUM Brno). Zde přpomenu pouze základní myšlenku tohoto přístupu k tvorbě matematckých optmalsačních metod: Zkoumeme víceetapový rozhodovací proces vývoe zkoumaného systému, ehož počáteční stav e dán vektorem p. Zaměříme-l se na specální případ dskretního staconárního determnstckého rozhodovacího procesu a adtvní krterální funkce, můžeme eho stavy, následuící v ednotlvých etapách v čase za sebou, popsat, e-l dána transformační funkce T (p, q) pro kterou platí p 1 = T (p, q) p 2 = T (p 1, q 1 ). p n+1 = T (p n, q n ), kde p = p 0 e stav systému v počáteční (nulté) etapě, p 1 e stav po provedení edné transformace, p 2 stav po provedení dvou transformací (čl v etapě číslo 2), atd. Předpokládáme, že můžeme tento proces natolk ovlvnt, že eho -té etapě pro = 0, 1, 2,..., n můžeme přřadt vektor q, příslušný dané množně S(p ) přípustných vektorů, a tím ovlvnt tvar transformace, kde q = q 0 S(p), q 1 S(p 1 ),..., q n S(p n ). Vektor q se nazývá rozhodovací vektor nebo rozhodovací proměnná. Volbu q nazveme rozhodnutím. Zkoumeme problém maxmalsace účelové funkce F (p, p 1,..., q, q 1,...) = N g(p, q ). (5) =0 Předpokládeme, že maxmum exstue, že funkce g(x, y) e omezená, a že velčny p, q mohou nabývat pouze konečného množství hodnot. Označme maxmální hodnotu funkce F pro daný počáteční stav a pro počet etap N symbolem f N (p). Je tedy f N (p) účelová funkce N-etapového procesu, ehož počáteční stav e p, a u něhož e použto optmální stratege, t. takové posloupnost proměnných q, q 1,..., q N, která poskytue funkc F maxmální hodnotu. Platí-l tedy [ ] f N (p) = max g(p, q) + g(p 1, q 1 ) + + g(p N, q N ), q,q 1,...,q N pak lze snadno odvodt základní funkconální rovnc dynamckého programování N- etapového dskretního determnstckého procesu s účelovou funkcí (5): [ ( ) ] f N (p) = max g(p, q) + f N 1 T (p, q). (6) q S(p) 10
K této rovnc přísluší podmínka f 0 (p) = max g(p, q) q S(p) Řešení rekurentní rovnce (6) spočívá v nalezení optmální hodnoty f N (p) krterální funkce F, a optmální stratege rozhodnutí ve formě posloupnost rozhodovacích proměnných {q, q 1,..., q N } vztažených k ednotlvým etapám procesu, se snahou nalézt funkční závslost rozhodnutí q(p) na stavu, v němž se zkoumaný systém v dané etapě nachází. Z praktckých aplkací dynamckého programování stačí znát alespoň optmální průchod dopravního prostředku dopravní sítí, kde hledáme cestu s mnmální dobou trvání, spouící dané dva uzly. Zkoumaným systémem e zde dopravní prostředek, stavem systému e číslo uzlu, v němž e tento prostředek přítomen, rozhodnutí spočívá ve volbě uzlu, který má bezprostředně následovat. Jnou důležtou aplkací e optmalsace stratege obnovy stroů, kde maxmalsueme celkový užtek stroe z několkaletého procesu přčemž roční zsk stroe klesá s eho stárnutím. Považueme-l za stav systému stáří stroe, který e na počátku etapy, na daném pracovšt v provozu, pak rozhodnutí na začátku každé etapy spočívá ve volbě zda stro nahradíme novým stroem téhož typu, nebo e necháme dále pracovat. Transformace stavu systému pak spočívá v tom, že za rok stáří stroe buďto stoupne o ednčku, nebo se stane rovným edné. Ve zmíněných učebních textech e z praktckých aplkací dynamckého programování též popsáno řešení optmálního rozdělování zdroů, což e v současné době edna z neaktuálněších ekonomckých úloh. 11
19 Vícekrterální optmalsace. Fuzzy-vícekrterální optmalsace. Vícekrterální selekce portofola K této otázce doporuču nastudovat ze zmíněných skrpt Metody operačního výzkumu 2001 stránky 145 153. V následuícím textu přpomenu základní myšlenku vícekrterálního výběru skupny proektů: Nechť pro výběr do plánu přchází v úvahu s proektů. Nechť e číslo (ndex) proektu ( = 1, 2,..., s). Cílem řešení e nalézt pro všechna hodnoty bvalentních proměnných δ, pro něž { 1 (e-l úkol vybrán do plánu) δ = 0 (v opačném případě), tak aby byly splněny požadavky na řešení, k nmž patří a) splnění zdroových omezení a δ b ( = 1, 2,..., m), kde a = množství -tého zdroe, které potřebue -tý proekt b = dsponblní množství (kapacta) -tého zdroe ( = 1, 2,..., m) b) snaha o dosažení co nevyšších hodnot krterálních funkcí o počtu p "max" s c δ = "max"z ( = 1, 2,..., p), =1 kde c = příspěvek -tého proektu k -té krterální funkc. Pro každou krterální funkc z se stanoví eí deální hodnota I, t. horní mez optmální hodnoty velčny z, což může být např. maxmální hodnota funkce z, stanovená za uvedených podmínek s gnorováním vlvu ostatních krterálních funkcí. Dále se pro každé z analogcky stanoví eho nemenší možná hodnota N. Platí tedy N z I. Pro krterální zskové funkce můžeme lehce odvodt ednoduchou horní hranc I = s =1 c a dolní hranc N = 0. Třetím odhadem krterální funkce z e eí realstcký odhad ( referenční hodnota ) R. Platí N R I. Dostáváme se nyní k otázce, ak sestavt z ednotlvých dílčích z ( = 1, 2,..., p) společnou skalarzuící funkc, převáděící náš problém na monokrterální optmalsac. Pro řešení úloh velkého rozsahu se osvědčla funkce p ( ) I z h σ(z, R) =, I R =1 12
kde h > 0, a dále z = [z 1, z 2,..., z p ], R = [R 1, R 2,..., R p ]. Řešení spočívá v nalezení mn σ(z, R) za výšeuvedených podmínek. Pro smultánní výběr stovek proektů př desítkách krterálních funkcí a desítkách zdroových omezení se osvědčla heurstcká metoda efektvního gradentu, přčemž z kompromsu mez ctlvostí metody a vlvem zaokrouhlovacích chyb vyplývá doporučení volby h = 4. Takto stanovená skalarzuící funkce e tedy v podstatě součtem měr relatvních odchylek ednotlvých krterálních funkcí od ech deálních (nevyšších hypotetcky možných) hodnot. Relatvní odchylkou zde rozumíme odchylku vztaženou na ednotku ntervalu dostatečně uspokových hodnot krterální funkce. Ze struktury ednotlvých sčítanců skalarzuící funkce e tedy patrno, že váhově sou preferovány ty z nch, u nchž R e blízké k I. Fuzzy dvoukrterální optmalsac tvorby časových rozvrhů proektů e třeba nastudovat ze zmíněných skrpt Metody operačního výzkumu 2001, str. 152 153. Vícekrterální výběr proektů, respektuící synergcké efekty druhého a třetího řádu a vzáemnou herarchckou závslost proektů e popsán v prác Jndřch Klapka, Petr Pňos: Decson Support System for Multcrteral R&D and Informaton Systems Proects Selecton. European Journal of Operatonal Research 140 (2002), str. 434 446. 13
20 Základní pomy síťové analysy. Metoda krtcké cesty. Základní pomy síťové analysy e třeba čerpat z přednášky. Zde přpomenu alespoň tř základní vzorce metody krtcké cesty: začátku zpracování čnnost, která vychází z uzlu e dán vzta- Nedříve možný okamžk hem: t (0) { (0) } = max t + y, kde sou ndexy bezprostředních předchůdců uzlu, t. uzlů, z nchž vystupuí hrany představuící čnnost (, ), y e doba trvání čnnost (, ). Nepozdě přípustný okamžk ukončení čnnost, která vstupue do uzlu e dán vztahem: t (1) = mn { t (1) y }, kde sou ndexy bezprostředních následníků uzlu, t. uzlů, do nchž vstupuí hrany představuící čnnost (, ) vystupuící z uzlu, y e doba trvání čnnost (, ). celková rezerva čnnost (, ) e dána vztahem: CR = t (1) ( t (0) + y ) = t (1) t (0), t. nepozdě přípustný okamžk ukončení čnnost (, ) mnus nedříve možný okamžk eího ukončení. 14