MASARYKOVA UNIVERZITA V BRNĚ Přírodovědecká fakulta DYNAMICKÉ PROGRAMOVÁNÍ V OPTIMALIZAČNÍCH ÚLOHÁCH BRNO,květen 2005 Hana Pmdilová Děkuji touto cestou Prof. RNDr. Ondřeji Došlému, DrSc. za cenné rady a pečlivé vedení diplomové práce, rovněž za trpělivost a pochopení. Prohlašuji, že jsem pracovala samostatně, a že jsem použila pouze uvedené literatury. $4mjkj ^IfylMtfl* l#~rO 25S. ZOOT Obsah Úvod 1 1 Konečněkrokový deterministický rozhodovací proces 2 1.1 Obecné schéma rozhodovacího procesu.................... 4 1.2 Dekompozice .................................. 5 1.3 Příklady..................................... 8 2 Nekonečněkrokový deterministický rozhodovací proces 16 2.1 Metody řešení funkcionální rovnice dynamického programování....... 19 2.1.1 Metoda postupných aproximací.................... 19 2.1.2 Metoda aproximace na množině optimálních rozhodnutí....... 19 2.2 Základní funkcionální rovnice dynamického programovaní.......... 22 2.3 Vlastnosti řešení funkcionální rovnice dynamického programovaní..... 24 2.4 Příklady..................................... 32 Závěr 34 Literatura 35 Úvod Dynamické programování se používá k řešení komplexních optimalizačních problémů. Tato metoda byla rozpracována Richardem Bellmanem v 50. letech minulého století a základy této teorie jsou shrnuty v jeho monografii [1]. Cílem této diplomové práce je vysvětlit základní myšlenku této optimalizační metody a ukázat její použití na příkladech v případě konečně a nekonečněkrokového deterministického rozhodovacího procesu. Práce je rozdělena do dvou kapitol. V první kapitole výkladu je specifikován obecný konečněkrokový rozhodovací proces a popis řešení. Ve druhé kapitole je rozebrán ne- konečněkrokový rozhodovací proces, metody jeho řešení s použitím funkcionálních rovnic a na závěr obou kapitol je popsaná teorie aplikována na různé typy úloh. Hlavním zdrojem při zpracování tématu byly práce R. Bellmana [1] a G.L. Nemhausera [3]. Předpokládá se, že čtenář je seznámen se základy matematické analýzy a matematického programování v rosahu, v jakém jsou tyto probírány v kurzech na Přírodovědecké fakultě Masarykovy univerzity. 1 Kapitola 1 Konečněkrokový deterministický rozhodovací proces Při řešení nějakého komplexního rozhodovacího problému se často používá dekompozice, kdy je původní rozhodovací problém rozložen na řadu z jistého pohledu jednodušších problémů a výsledek získán kombinací a složením řešení těchto subproblémů. Tuto metodu nazýváme rozklad vícerozměrného problému. Rozhodovací situace nastává, pokud existuje více než jedno přípustné řešení. Cílem rozhodování nebo optimalizačního problému bude určení jednoho řešení (rozhodnutí), které dává optimální výsledek. Začneme s výkladem vlastností typické situace obecného vícekrokového rozhodovacího procesu. Je dána rozhodovací situace, kterou můžeme schématicky znázornit následujícím obrázkem X Z ve kterém je: • Vstupní veličina Y, která se nazývá počáteční stav systému, představuje v něm popis počátečního stupně a obsahuje všechny relevantní vstupní informace. • Výstupní stavová veličina Z, popisujcí systém v konečné úrovni, obsahuje všechny informace o výstupu. • Rozhodovací proměnná X, která charakterizuje operace probíhající v průběhu jednotlivých kroků. 2 • Účelová funkce r představuje skalární proměnnou. Je to jednorozměrná funkce vstupu, rozhodování a výstupu, tzn. r = r(Y,X, Z). • Transformační funkce y, která vyjadřuje každou komponentu výstupní proměnné jako funkci vstupu a rozhodování, Z = y(Y,X). Pomocí transformační funkce y můžeme veličinu Z z účelové funkce vyeliminovat a dostáváme r = r(Y,X, Z) = r{Y,X,y(Y,X)), to znamená, že jednotlivé nezávislé proměnné, které ovlivňují výsledek, jsou Y a X. Jejich hodnoty jednoznačně určují hodnotu Z prostřednictvím transformační funkce y. Účelovou funkci můžeme tedy uvažovat pouze jako funkci1 vstupní a rozhodovací proměnné r = r(Y,X). Jednorozměrný optimalizační problém spočívá v nalezení maxima resp. minima účelové funkce jako funkce vstupní veličiny. Označme f(Y) jako optimální výnos aT = X{Y) jako optimální rozhodnutí. Potom obdržíme f(Y) = r(Y,X*) = r(Y,X(Y)) = max r(Y,X) > r(Y,X). V některých rozhodovacích situacích má být účelová funkce r, vyjadřující optimální výnos, určena jako funkce výstupu Z. Můžeme předpokládat Y jako jednoznačnou funkci Z a X, což dostaneme z inverze transformace Z = y(Y,X). Obdržíme tedy Y = y(Z,X). Vyjádříme výnos pouze jako funkci rozhodnutí a výstupu: r = r{y{Z,X),X, Z) = r(Z,X). Optimalizačním problémem je nalezení X jako funkci Z tak, aby r bylo maximální. Buď f (Z) optimální výnos a X* = X(Z) optimální rozhodnutí, f (Z) = r(Z, X*) = max r(Z, X) = max r(Y, Z, X) X YjX za podmínky Z = y(Y,X) a je-li možné invertovat transformaci y, můžeme tedy provést maximalizaci přes ľal Poznámka 1. Je lhostejné, zda uvažujeme optimalizační úlohu na maximum nebo na minimum, neboť maximalizovat funkci / je totéž, jako minimalizovat funkci -/. označme ji opět r 3 1.1 Obecné schéma rozhodovacího procesu Obecný rozhodovací proces, popsaný v předchozím odstavci se ve většině případů sestává z řady rekurzivně provázaných rozhodnutí tak, že výstup jednoho kroku je zároveň vstupem dalšího kroku, což můžeme znázornit následujícím schématem Xl Xí • n Yk Y1 Y0 1 ľ ý v rn rk n Z důvodu, který bude patrný z konkrétních příkladů, prvnímu rozhodovacímu kroku přiřadíme index n a poslednímu index 1, tj. rozhodovací kroky jsou očíslovány v sestupném pořadí. Pro k-tý krok n-rozměrného systému je výstupní veličina Yk_ľ zároveň vstupem (jfc -1)-kroku, tedy transformační rovnice Y = y (Y, X) je tvaru Yk-i = yk(Yk, Xk), pro každé k = 1,2,n, (1.1) a výnos tohoto kroku je rk = rk(Yk,Xk). Z transformace (1.1) plyne, že Yk závisí na rozhodnutích, které předcházejí jfe-tému kroku, tedy naXfc+i,...,Xn, anaľn: Yk = yk+i{Yk+uXk+1)^yk+1(yk+2(Yk+2,Xk+2),Xk+^ = ífc+iWfe+2, Xk+2, Xk+1) = yk+1(yk+s(Yk+3, Xk+3), Xk+í,Xk+2) = •■• = yk+1(Yn,Xn,Xn_1...,Xk). Poznámka 2. Poslední zápis není zcela korektní, protože yk+1 je funkce dvou proměnných. Nebudeme však funkční závislost Yk na Yn,Xn,Xn_i ...,Xk označovat novým symbolem. Podobné nepřesnosti se dopustíme i ve zbývající části tohoto odstavce. Dosazením do účelové funkce rk = rk(Yk,Xk) = rk(yk+1{Yn,Xn,Xn.u...,Xk+1),Xk) = = rk(Y„,Xn,Xn-1,...,Xk), jinými slovy, Xk ovlivňuje jenom výnos prvního až fc-tého kroku. Celkový výnos z prvního až n-tého kroku je funkce RniYn, yn_i,..., Yu Xn, Xn_i,..., Xi) = ^[rn(y„,Xn),rn_1(yn_1,X„_1),...,ri(y1,X1)], 4 kde g je zatím nespecifikovaná funkce n proměnných vyjadřující, jak jednotlivé výnosy rk, pro každé k = 1,..., n, přispívají k celkovému výnosu Ä„. Nyní z výrazu pro celkový výnos eliminujeme (Yn_l5...,Yi). Z rovnice (1.1), dále pomocí výrazu pro rk, tedy rk = rk(Yk, Xk) a z rovnice rk = rk(Yn, Xn, X„_i,..., Xk) dostaneme rovnici Rn = g(rn, ...,n) = g [r„(y„, Xn), rv.^, Xn, X^),..., n(Yni Xn, Xn_u ..., Xj)]. Máme tedy optimalizační problém: maximalizovat celkový zisk iž„ při dílčích rozhodnutích Xu X2,..., Xn, jako funkci vkladu Yn. Položme funkci fn(Yn) jako maximální výnos v n-tém kroku a Xk* = Xfc(y„) jako optimální rozhodnutí v fc-tém kroku fn(Yn) = y[r„(ľB,^)>rB.1(ľB.1,x;_1),...,r1(y1,x;)] = max g[rn(y^,Xn),r„_i(yí,_i,Xn_i),... ,ri(Ví,Xi)], Xl,...,Xn za podmínky Yk^ = yk{Yk, Xk), pro každé k = 1,..., n. Tedy /n(y„)= max ^[^(y^xj^^fy^x^x^!),...^^^,^,^^!,...,^!)]. Xi,.,X„ 1.2 Dekompozice Cílem bude rozložit problém fn(Yn)= max £ [rn(y„, Xn), r„_i(y„_i, X^j),..., n(YÍ, X"i)], za podmínky Yk_x = yfc(yfc,Xfc) na n jednodušších subproblémů. Předpokládejme, že celková účelová funkce je aditivní funkcí účelových funkcí v jednotlivých krocích, tj. Rn = rn{Yn,Xn) + rn^Yn.uX^) + • • • +r1(y1,X1), potom /„(y„)= max {rn(yn,Xn)+rn_1(yn_i,Xn_1)-r--- + r1(y1,Xi)}, Xi,...,Xn za podmínky yfc_! = yfc(yfc, A; = 1,..., n. Výnos n-tého kroku nezávisí na Xn-lt ... ,X1? můžeme tedy předchozí rovnost přepsat ve tvaru fn(Yn) = max{rn(Yn,Xn)+ max [r„_i(y„_i, Xn_i) + • • • + n(Yu XJ]}. (1.2) Xn Xl,...,Xn_l Z definice fn{Yn) získáme /„_i(y„_i) = max {rn_i(yn_i,X„_i) + • • • + n(yi,Xi)}. 5 Použijeme-li tento vztah v rovnici (1.2), dostaneme a tedy Položme nyní fn(Yn) = max{rn(Yn,Xn) + /„^(y^)}, Xn fn(Yn) = max{rn(Yn,Xn) + /n_i(y„(y„, *„))}. Qn{Yn,Xn) = rn{Yn,Xn) + fn-i{yn(Yn,Xn)). Potom je určení fn(Yn) při dané funkci /n_i(y„_i) jednoduchý jednorozměrný optimalizační problém se vstupní proměnnou Yn, rozhodovací proměnnou Xn a výnosem Q„. Tedy /n(K) = maxQn(yn,Xn) = max{rn(yn, Xn) + /n_i(y„(yn,Xn))}. Xn Xn \*s \ Původní n-rozměrný problém máme tedy rozložený na dva subproblémy: 1. (n - 1) - rozměrný optimalizační problém /»-i(yn-i)= max K_1(yn_1,Xn_1) + --- + r1(y1,X1)}, Xn-1,--;X\ za podmínky Yk_x = yk{Yk, Xk), k = 1,..., n - 1; 2. jednorozměrný optimalizační problém /n(yn) = maxQn(Yn,Xn) = max {rn(yn, X„) + /„_i(í„(y„, Xn))}. Podobným postupem při určování /n_l5..., fx dostaneme následující rekurzivní schéma fk(Yk) = max Qk{Yk, Xk), pro k = 1,..., n Xk \rfc(yfc)Xfc) + A-i(y„(y*,Xfc)), pro fc = 2,..., n Poznámka 3. Optimalizace v koncovém kroku Speciálním případem rozhodovacího procesu, který lze zkoumat v rámci výše popsaného obecného schématu je maximalizace jisté funkce v koncové proměnné. Tento případ se nazývá optimalizace v koncovém produktu. Uvažujme optimalizační problém /„(y„)= max g(Y0) 6 za podmínky Yk^ = yk(Yk,Xk), k = Předpokládejme, že pro výnosy ve 2.,3.,...,n-tém kroku platí rn{Yn,Xn) = r^Y^X^) = ■•■ = r2(Y2,X2) = 0 a pro výnos v 1. kroku r1(Y1,X1) = g[y1(YuX1)] = g(Y0). Pak platí rn(Yn,Xn) + --' + r1(Y1,X1)=g(Y0). Odtud můžeme psát fn(Yn)= max [r„(y„,Xn) + ..-+ri(yi,X1)]. Xn,—,Xi Nechť platí n zn = 0 a zk = n{YuXt\ pro k = 0,... ,n - 1. Položme pevně 71 £o = í"fc(Yjfc, -^fc) a ^fc-i = Zk + ^fc), pro = 1,..., n\ k— 1 potom platí fn(Yn) = max {zo} X\ ,...,Xn—i za podmínky Yjfc_i = ^(1*;, Xk) a 2^_i = zk + rk(Yk, Xk), kde A; = 1,..., n. 7 1.3 Příklady Příklad 1.3.1. Řešte extrémální úlohu ^]r(xfc) min, Xl + ...+xn>a, xu xn > 0, k=i kde r je konvexní a rostoucí funkce aaGi Řešení: Označme yn = x\ + ... + xn, yk_i = yk - xk, pro každé k = 2,..., n a y0 = y1 - x\ =0. Z poslední rovnice máme 3/1 = a?i. Použijeme rekurzívní schéma A(yfc)= min {rfe) + /fc-i(?/fc-i)} 0 *3 = =► *3 = p dosadíme do /3(?/3) a dostáváme J3\y3) — Tyiz) + v) = ^rív)- ó ó ó 8 Z předchozích výsledků odvodíme výraz pro fc-tý člen: A(yO = r(^) + (fe-l)r(|) = My), prokaždéfc=l,...ln, xk = |, tento vzorec ověříme pro n-tý krok: fn(yn)= min {r(zn) + /n_i(2,n_i)}= min (r(zn) + (n - 1) r f ^L^lA 1 = 0 a . Protože r je rostoucí funkce, pak výraz r (^) bude nabývat nejmenší hodnoty při yn — a. Dosazením do výrazů pro x získáme optimální hodnoty * ^ * * Xn = n = = *"' = ^ a tedy xk ^, & 1,..., ti. Výsledek tedy je fn{yn) min{r(xi) + • • • 4- r(xn) \xi + ...#„} nr i J. \ TI / I^ríklcid X*3«2« R^este extremalni úlohu £>(**) - min, f[xk>a, xk>0, kde r je konvexní a rostoucí funkce, a a G M Řešeni: Označme yn = ÍILi^ yk-i = ^, pro každé fc = 2,...,n a je zřejmé, že Vl = n. Použijeme rekurzívní schéma A(y*)= min {r(*0 + A-i(lfc-i)}. 9 S využitím vztahu Vl = xx dostaneme pro k = 1: fi(yi)= min r(xl) = r(yl). Nyní počítejme pro k = 2, použijeme = ^, tedy Vl = ^ a odtud /2(ífc)= min {r(x2) + /1(yi)}= min {r(z2) + r(^) } 0 a. Nejmenší hodnoty bude nabývat při 2/n = a, a optimálni hodnoty jsou: Výsledek je tedy /„(y„) = min{r(zi) + • • • + r(zn)||xi •■ - íc„ = ?/„} = n (a)i. Příklad 1.3.3. Řešte extrémální úlohu n —> k=l fc=l —>• max, Řešení: Označme yn = ELi < <*, yk-i = Vk - xkl pro každé k = 2,..., n a y0 = j/i - xx = 0. Z poslední rovnice máme y1 = x1. Použijeme rekurzívní schéma fk(yk)= max {a;fc./fc_i(^_i)}. S využitím vztahu ^ = Xl dostaneme pro k = 1: /i(yi) = max x1 = yi. Nyní počítejme pro k = 2, použijeme vazebné podmínky ^ = yfc - xk, tedy ^ = y2 - x2l odtud 72(1/2) = max {^2/"i (l/i)} — max { £2(2/2 — ^2) } =^ £2 = ir, derivujeme podle X2 „, 2 a tedy 72(2/2) — —:-• 11 Počítáme výraz pro k = 3 : /3(ífe)= max {Z3/2MH max {x3hy3 - x3)2}, 00. Použijeme postup, jaký známe z první kapitoly a příklad znázorníme schématicky: Xr Vn-1 Vk rn(xn,yn) Vk-i rk(xk,yk) X\ yo kde r„(x„,y„) v našem konkrétním príklade je Axl + B(yn - xnf a yk_x = b(yk - xk). V prvním kroku minimalizujeme Ax\ + B(Vl - Xl)2. Tedy /,(»,) = min [Ax\ + B(yi-Xlf}. Hledáme takové xu aby frfa) bylo nejmenší. Derivaci minimalizované funkce podle Xl položíme rovnu nule a vyjádříme Xl: 2Ax1-2B{y1-x1) = 0 xx B ÄTBVl _ 16 a dosadíme do frfa) (všimněme si, že minimalizovaná funkce / je konvexní, proto stacionární bod je bodem absolutního minima): fÁVi) AB A + B Ví Stejným postupem získáme f2(y2): h{V2) Ax\ + B(y2 - x2f + 4^(V2 - x2)2 AB(A + B) + 2 (^ + 5)2 + ^62 i4 + B kde jsme využili skutečnosti, že _ B(A + B) + ^^62 je stacionárním bodem minimalizované funkce. Pokračováním ve schématu dostáváme stále komplikovanější výrazy, zejména pro n jdoucí k nekonečnu. Všimněme si však, že fkl resp. xk, k = 1,2, závisí na yk kvadraticky, resp. lineárně. Předpokládejme tedy, že A-i(ífc-i) = yŽ_i = afc-i &2 (y* - xfc)2. Vyjádříme-li tedy /fc(yfc), dostáváme: /fc(yfc)= min [^ + %-ířfc)a + at.1%-ífc)2]. Derivováním zjistíme a dosazením také /fc(yfc): AB + Aak^b2 fk{yk) xk A + B + afc_i 62 5 + afc_! 62 A + B + afc_i 62 tedy i /fc závisí na yk kvadraticky a xk lineárně. Máme obecnou rovnici schématu: fk(yk) = min [Ax2k + Sfe* - xkf + - zfc))l , = 1,... ,n. (2.2) Formálním limitním přechodem pro k -+ oo (předpokládáme, že existují limity posloupností xk, yk a funkcí fk - vysvětlení viz konec tohoto odstavce), můžeme uvažovat následující rovnici: }{y) = min [Ax2 + B(y - xf + f{b{y - x))] . 0 oo. Na základě výsledku pro n = 1,2 hledáme řešení ve tvaru f(y) = ay2,s neznámou konstantou a. Dostáváme tedy rovnici: ay2 = min \Ax2 + B(y - x)2 + ab2(y - x)2} . 0 1), ukazuje se jako výhodné n-krokový proces (tedy konečně krokový rozhodovací proces) nahradit nekonečně stupňovým, který popisuje jistá funkcionální rovnice. Nyní uvažujme rekurzivní formuli rz-krokového procesu: fn(yn)= min [rn(a?B,yn) + /n_1(^_1(xn,yn))]2 0 0. 2v předchozím motivačním příkladu bylo rn(a;n,yn) rovno Ax2n + B(yn - xn)2 a #(a;n,yn) bylo rovno b{yn-xn) 18 2.1 Metody řešení funkcionální rovnice dynamického programování Uvažujme rovnici /(»)= min lr(x,y) + f(g(x,y))], (2.5) tedy funkcionální rovnici, kde předpokládáme, že celkový zisk je součtem zisků z jednotlivých stupňů rozhodovacího procesu a / je neznámá funkce, kterou chceme spočítat. Nyní uvedeme dvě základní metody, jak lze tuto rovnici řešit. 2.1.1 Metoda postupných aproximací Zvolíme počáteční aproximaci neznámé funkce f(y) a tu označíme f0(y). Většinou bereme fo(y) = 0. Definujeme posloupnost funkcí fn(y) rekurentním předpisem fk(y)= min [r(x,y) + fk-i(g{x,y))], k = 1,2,... ,n, 0 dosadíme do f(y) a obdržíme: A(B + a0b2)2 2 / B + aob2 V , . / B + a062 ,46y ^ + g062)2 + ^ 2 (,4 + £ + ao&2)2 V +/l yt + £-fa062_ 20 a v této rovnici opět využijeme toho, že fx(y) závisí na y kvadraticky, tedy h{y) = ax y2 a vyjádříme ax a zpětným dosazením f^y): A(B + a0b2)2 + A2B A(B + a0b2)2 + A2 B 2 ai~ (A + B + a0b2)2-AH2 a fl(y)- (A + B + a0b2)2-A2b2V- Pro x2 řešíme tuto úlohu: min \Ax2 + B(y-x)2 + f1{b{y-x))] 0 \A + B + OL\(ry — AÁ 0Z + aiO ) A tí 2 (j4 + 5 + a\b2)2 — A2b2 ' 3, 5 = 1, b = ^, z následující tabulky je vidět, že výsledky metody aproximace optimálních rozhodnutí (v tabulce jako MAOR) konvergují rychleji, než s použitím metody postupných aproximací (MPA) funkce /. MPA MAOR k = 0 k=l fc = 2 k = 3 k = 4 /o = 0 íi = 0.75y2 f2 = 0.945y2 f3 = 0.987y2 U = 0.995y2 Xo = 0 id = 0.25y x2 = 0.314y ^3 - 0.37y z4 - 0.332y /o = 1.043y2 /i = 1-OOy2 h = 1.00y2 x0 = 0.25y a;i = 0.32y x2 = 0.333?y 21 2.2 Základní funkcionální rovnice dynamického programování Jako speciální případ funkcionální rovnice (2.5) uvažujme tento případ: y vstupních prostředků máme rozdělit do nákupu dvou zařízení (strojů). Do prvního stroje investujeme x {0 max, 0 < x < y. Nyní předpokládejme dvoukrokový proces: po určité době obě výrobní zařízení prodáme a obdržíme za ně částku ax resp. b(y - x), a, b € [0,1) (předpokládáme amortizaci, tj. sníží se hodnota, proto uvažujeme a, b < 1). Ve druhém kroku máme k dispozici na rozdělení už jen ax + b(y - x) prostředků, které označíme yY. To vede na úlohu max [g(x) + h(y - x) + gfa) + h(Vl - Xl)], 0 0, pak existuje jediné řešení rovnice (2.8), splňující podmínky spojitosti funkce / v bodě y = 0 a /(O) = 0 . Toto řešení je spojité pro všechna y G [0, oo], pro něž jsou splněny podmínky věty. Důkaz. Větu dokážeme na dílčím případě, kdy obě funkce g i h nabývají pouze nezáporných hodnot. Tehdy je při libovolném y posloupnost funkcí {fn(y)}, získaná ze vztahu fk(y) = max \g{x) + h{y - x) + h-^ax + b{y - x))], k = 1,... ,n, 00 posloupnost funkcí fn{y) konverguje k funkci f(y) pro n —► co. 22 Ukážeme, že tato funkce vyhovuje rovnici f (y) = sup [g{x) + h(y - x) + f(ax + b(y - x))}. (2.9) 0 max T(fk,x), 0 T(fk,x), a tato nerovnice zůstává zachována i pro k -> co, tj. /(y) > T(/,a;) pro všechna x G [0,y], odkud ve skutečnosti vyplývá, že f (y) > sup T(f,x). (2.11) 06>a>0, ^g'(oc). (2.13) 1 — a l — o Pak existuje číslo y G (0, oo), které je určeno jako řešení rovnice oo h'W = 9'(y) - ~~ a)aV(a/c+1y) fc=0 s následující vlastností a) Pro y < y je maxima v rovnici (2.8) nabyto v pravém krajním bodě x(y) = y a v tomto případě je řešením úlohy 2.8 funkce OO í(y) = g{y)Jr^J9{^y) ■ k=i b) Pro y > y je maxima v rovnici (2.8) nabyto ve stacionárním bodě, který je řešením rovnice g'(x) - h'(y -x) + (a- b)f'(ax + b(y - x)) = 0. Důkaz. Nechť /0 = 0, potom /i= max{g(x)-{-h{y-x)}. Protože g'{0) > h'{0) (to plyne z (2.13), neboť b > a > 0) a g', h' jsou spojité, existuje y > 0 takové, že inf g'(x) > max h'(t), xe[o,»] íg[o)2/] pak pro x G [0,y] je g'{x) > h'{y - x), což znamená že [g(x) + h(y - x)]' > 0 a tedy max\g{x) + h(y-x)]=g(y). 0 y leží řešení rovnice g'(x) - tí{y - x) = 0 26 uvnitř intervalu [O, y], což plyne z toho, že pro y = y je řešením rovnice g'(x) -h'(y-x) = 0 právě x = y. Označme toto řešení xx = Xl(y) (tj. Xl(ý) = y). Funkce fľ(y) je tvaru h[y) \ g{Xl) + h(y-Xl), y>y, a po derivaci JÚV) ~ \ UK o. Ji\y>-\ h'(y-xx), y>ý, kde h'(y - xi) máme z výpočtu 4-[g{xi) + h(y - a*)] = y(Xl) - h'(y - Xl)] ^ + h'(y - Xl) = - zi) ay >-v-' ay =o Všimněme si, že f[ je spojitá funkce, neboť fi(v-) = 9'(v), ti(H) = ti(0) = g'(y). Z konkávnosti funkcí g, h plyne konkávnost funkce h(y) - viz důkaz předchozí věty. Pro další iteraci označme: D(x) = g\x)-h\y-x)+f[{ax+b{y-x))(b-a) = ^[g{x)+h{y-x)+h{ax+b{y-x)){b-a% přičemž pro x = y = 0 platí g'{0) - h'(0) + f[(0)(b - a) = /i,(0) Odtud plyne, že existuje y > 0 takové, že > 0 min [g'(x) + f[{ax + 6(y - x))] > max fc(í), a tedy D(a;) > 0 pro re e 0,y. To znamená, že pro malá y > 0 je maxima v definici /2(y): /2(y) = max {g(x) + % - x) + /^az + % - z))} 0 y leží řešení rovnice D(a;) - 0 uvnitř intervalu [0,y], označme toto řešení x2 = x2(y). S využitím těchto informací dostáváme \ pfefe)) + % - x2(y)) + fi(ax2(y) + 6(y - x2(y))), y>y, 27 to je S, , í 9'(y) + ag'(ay), 0y. Všimněme si opět spojitosti funkce f2(y) : ň(y-) - sf(y) + ^(ay) = g'(y) + a/í(ay), f2(y+) = ^ (0) + bf1(ay). Nyní pomocí rozdílu /í(y-) - /í(y+) = yn+1 ve stacionárním bodě uvnitř intervalu. Existenci yn+1 dokážeme obdobně jako v předchozí části, je to řešení rovnice g'(x)-tí{0) + (a-b)&(ax)=0 K důkazu nerovnosti yn+1 < yn musíme ukázat, že f'n{y) > f^(y), neboť yn je řešením g'(x) - h'(0) + (a - 6)/;_!(aa;) = 0. Ukážeme, že f'2{y) > f[(y), pro další n se postupuje indukcí. Pro y > yY je ň(y) = fc'(y - *2(y)) + bfí(ax2(y) + % - x2(y))), f1(y) = tí(y-x1(y)), kde a?i(i/),a?2(y) jsou stacionární body v definicích funkcí f^y), f2{y), tedy xx(y) získáme z rovnice -v-' O — g'{xi(y)) h'(y—xi(y)) bg(x1(y))-ah'(y-x1(y)) b — a Z rovnice pro x2{y) : VMy)) - a^'(y - *2(y)) - M'(y - x2(y)) - ah'{y - x2(y)) - b(a - b)f[{ax2{y) + + b{y - x2(y))) = (b - aMtffo - z2(y)) + bf[{ax2(y) + 6fo - x2(y)))] = (6 - a)/^?/), 28 a tedy h\y) bg(x2(y)) - ah'(y - x2(y)) b — a Funkce (6-a) [bg(x(V))-ah (y-x(y)} je: klesající na m^u [O »]. Mttri, azfektu, ze My) < (viz rovnice, které je určuji) dostávame f2(y) > /,(„). Podobne dostaneme tyto nerovnosti i pro y e Ijte, WiJ a y £ |0,iftj. Jeste naznačíme, jaK oy se urciio y3: fz{y) = Qmax {p(a;) + h(y - x) + f2(ax + b(y-x))}, potom y3 bude nejmenší kořen rovnice 0 = g'(x) - h'{0) + (a - b)f2{ax) = y2 > ■ ■ ■ > yn > ..., posloupnost derivací funkcí fí{y) > fi(y) > ..., a posloupnost optimálních řešení Xl{y) > x2(y) > .... Protože posloupnosti jsou monotónní, existují jejich limity a tím dostáváme tvrzení věty. □ Na závěr uveďme ještě dvě tvrzení týkající se řešitelnosti rovnice (2.8) v případě, kdy funkce g, h jsou mocninné, resp. kvadratické funkce. Věta 2.6. Spojité řešení rovnice f(y) = max[q/d + f(ay), ey9 + f(by)], /(O) - 0, pro jejíž parametry platí o) a, 6 G (0,1); c,d,e,g>0, 6) 0 < d < g je tvaru kde y c(l - a*)-1 e(l — ¥) 1 Zejména, funkci f(y) lze vyjádřit v explicitním tvaru na každém intervalu (2.14) (2.15) (2.16) (2 17) (2.18) n 0,1,2,.... _ z 29 Důkaz. Označme A, resp. B skutečnost, že v rovnici (2.14) nastane maximum pro funkce cyd + f{ay), resp. ey9 + f (by) (dále budeme mluvit o strategiích A a B). Pak řešení 5, odpovídající optimálnímu výběru maxima v rovnici (2.14) (při řešení této rovnice metodou postupných aproximací) je možno symbolicky zapsat jako kde d>0a0<6 d, platí p < y. Z toho, že fAB{y) < fBA(y) pro y > p plyne, že pro y > y optimální strategie AB následovaná optimálními rozhodnutími v dalších krocích je horší, než strategie BA následovaná optimálními rozhodnutími. Odtud je vidět, že strategie A nemůže být vybrána pro y > y, s výjimkou případu, kdy je následována strategií A°°, což však také není možné, jak jsme ukázali v předchozí části důkazu. Tím je důkaz věty dokončen. □ V následující větě se budeme zabývat situací, kdy funkce g, h jsou kvadratické. Věta 2.7. Nechť c, d > 0, 0 < 6 < a < 1 a f(y) = max [cx - x2 + d(y - x) - (y - x)2 + f(ax + b(y - x))], /(O) = 0. (2.21) Pak v intervalu 0 < y < min(c/2, d/2) 4 je řešení f{y) následujícího tvaru, který závisí na znaménku rozdílu c/(l - a) - d/(l - b). Řešení rozdělíme na několik případů: (i) Případc/(l-a) = d/(l-6). f(y) (c-d)a + d l-b+{b-a)aV a2 + (1 - a)2 2 1- [(a-b)a + b]2V ' kde (ii) Případ c/(l - a) - 6). pro0i Je-li y G [0,1], pak Nyní nechť y G [2", 2n+1] pro n = 0, l„pak » /(ž/) = E(í)2=2/2t1t = ^2- > 1 a -\- < 1. 2n — 2n~*~ V tomto případě funkci f(y) získáme takto: /<*> = £^) = E'(£)+= fc=0 fc=0 fc=n+l -£{»(&■-(*)}♦£(*)- fc=0 fc=rz+l Příklad 2.4.2. Určete mezní hodnotu y a pro y < y určete řešení rovnice f(y) = 3^ {g{x) + h{y - x) + /(az + ft(y - a?))}, 0