Úloha: 3. Přednáška: Line search min f(x), x R n kde x R n, n 1 a f : R n R je dvakrát spojitě diferencovatelná. Iterační algoritmy: Začínám v x 0 a vytvářím posloupnost iterací {x k } k=0, tak, aby minimum bylo aproximováno s dostatečnou přesností, ideálně končila v přesném řešení. K posunutí z x k do x k+1, aby f(x k+1 ) < f(x k ) mohu použít informace o x 0,..., x k 1 a jejich funkčních hodnotách. 2 základní strategie, jak se posunout z x k do x k+1 : Line search, trust region. Line search algoritmus: Dáno x 0, interval (a, b), ε atd. a pro k = 0, 1, 2,... : 1) najdi směr p k R n - spádový směr, 2) najdi α k tak, aby x k + α k p k bylo lepší než x k (ideálně minimální - exaktní line search, dostatečně malé - aproximace), 3) polož x k+1 = x k + α k p k. Priklad3.m ad 1) viz další přednášky, ad 2) hledání minima jednodimenzionální funkce φ(α) = f(x k + αp k ), tj. řeším úlohu: min φ(α). α>0 Jednodimenzionální minimalizace: Definice: Unimodální funkce Funkce φ : R R je unimodální na intervalu a, b, jestliže existuje c (a, b) takové, že φ je klesající na a, c a rostoucí na c, b. Věta: Pozice minima Nechť φ je unimodální v a, b a nabývá svého minima v α a, b. Pak pro libovolné x a y, kde a x < y b platí následující tvrzení: 1
Je-li φ(x) < φ(y), pak α < y. Je-li φ(x) > φ(y), pak α > x. Je-li φ(x) = φ(y), pak x < α < y. Algoritmus: Za předpokladu unimodální funkce φ a pomocí výše uvedené věty generuji posloupnost zmenšujících se intervalů obsahujících řešení α (intervaly neurčitosti): a, b = I 0 I 1... I k 1 I k = a k, b k, k b k a k značí délku k-tého intervalu. Požaduji co nejmenší vyhodnocování funkce φ, co největší redukci intervalů, jednoduchost. Metody: Metoda bisekce (krácení na poloviny, jednoduché, drahé - hodně vyhodnocování φ). Priklady3 bisekce.m Fibonacciho metoda (optimální, krácení v poměru fibonacciho čísel, když chceme zpřesnit musíme začít od začátku). Fibonacciho posloupnost: F 0 = F 1 = 1, F k = F k 1 + F k 2, k = 2...., N. Priklady3 fibonacci.m Metoda zlatého řezu (optimální). Zafixujeme zkracování intervalu na jedné hodnotě: F ξ = lim N 1 N F N, platí ξ = 5 1 - zlatý řez. 2 Priklady3 zlatyrez.m Newtonova metoda: funkce φ musí být navíc hladká, aproximace kvadratickou funkcí. Priklady3 newton.m Testování dostatečného poklesu. Dostatečný pokles: Dilema přesnost x výpočetní čas Použití minimalizační metody (viz výše), ale zastavím hledání řešení, pokud interval neurčitosti splňuje podmínku: α ᾱ cᾱ, kde α je přesné řešení, ᾱ je aktuální řešení, α ᾱ délka intervalu neurčitosti. Spokojím se s dostatečným poklesem. 2
Přímka udávající pokles: x k, p k spádový směr φ (0) = grad T f(x k )p k < 0. Chci zvolit α tak, aby φ(α) f(x k + αp k ) dostatečně pokleslo a α nebylo ani malé ani velké. Přímka udávající pokles: pro dané ε (0, 1): l(α) φ(0) + εφ (0)α. Pro všechna α taková, že φ(α) < l(α) platí f(x k + αp k ) = φ(α) < φ(0) = f(x k ). Armijův test (podmínka): Pokud bude α malé i pokles může být malý. Volba tak, aby například dvojnásobné (desetinásobné) α už nesplnilo podmínku φ(α) < l(α), tj. zvol η (η = 2) a najdi α tak, aby Pseudo-algoritmus: Start: volím ε (v praxi volíme malé, 10 4 ), η, α... φ(α) φ(0) + εφ (0)α (1) φ(ηα) > φ(0) + εφ (0)α. (2) Pokud je splněna (1), prováděj α = ηα dokud není splněna (2). Pokud není splněna (1), prováděj α = α, dokud není splněna (1). η Interval přípustných hodnot α nemusí obsahovat minimum funkce φ(α). Priklad3 pokles.m Goldsteinův test (podmínka): Zvolím ε ( 0, 1 2) tak, aby φ(α) φ(0) + εφ (0)α. (3) Aby α nebylo příliš malé, musí ležet nad jinou přímkou, tj. φ(α) φ(0) + (1 ε)φ (0)α. (4) Interval přípustných hodnot α nemusí obsahovat minimum funkce φ(α). Priklad3 goldstein.m 3
Wolfeho test (podmínka): Zvolím ε ( 0, 1 2) tak, aby φ(α) φ(0) + εφ (0)α. (5) Dám požadavek na sklon: pokud jsem blízko minima φ (α) < φ (0). Wolfeho podmínka: (5) a φ(α) (1 ε)φ (0). (6) Silná Wolfeho podmínka: (5) a Nemusím se omezovat jen jedním ε. Alternativa: pro 0 < c 1 < c 2 < 1 φ(α) (1 ε) φ (0). (7) φ(α) φ(0) + c 1 φ (0)α, φ (α) c 2 φ (0), φ(α) c 2 φ (0). Wolfeho test zaručí jak dostatečný pokles φ(α), tak dostatečný nárůst φ (α) vzhledem k α = 0. Priklad3 wolfe.m Konvergence algoritmů typu Line-search: Body x k nalezené Line-search algoritmem obecně nemusí konvergovat k přesnému řešení x. Konvergenci lze chápat v různém smyslu: lim x k = x nebo lim f(x k ) = 0. k k p k f k f k p k, θ k... úhel svírající zvolený spádový směr a směr nej- Označme cos θ k = většího spádu. Lipchitzovská spojitost f(x) na Ω: existuje konstanta L > 0 taková, že f(x) f(y) L x y, x, y Ω. Vrstevnicová oblast Γ f(x0 ) {x : f(x) f(x 0 )}. 4
Věta: Nechť x 0 R n je počáteční přiblížení a nechť f C 1 (Ω), kde Ω je otevřená množina obsahující vrstevnicovou oblast Γ f(x0 ). Dále nechť f je Lipschitzovsky spojitý na Ω. Uvažujme algoritmus Line-search, tj. iterace x k+1 = x k + α k p k, kde p k je spádový směr a α k splňuje Wolfeho podmínky. Potom cos 2 (θ k ) f(x k ) 2 < a tato podmínka implikuje k 0 cos 2 (θ k ) f(x k ) 2 0 pro k. Definice: Řekneme, že konvergentní posloupnost {x k } konverguje k x rychlostí řádu p, pokud existují čísla 0 < c < 1 a k 0 > 0 taková, že platí ɛ k+1 ɛ k p c, k k 0. Kde ɛ k x k x. Pro p = 1 mluvíme o lineární rychlosti konvergence, pro p = 2 mluvíme o kvadratické rychlosti konvergence. Pokud platí ɛ k+1 a k, ɛ k kde {a k } je posloupnost nezáporných čísel, a k 0 + pro k, hovoříme o superlineární konvergenci. 5