Metoda sdružených gradientů 1
Poznámka A-skalární součin, A-norma (energetická norma) Standardní euklidovský skalární součin vektorů n x, y = y T x = y i x i. i=1 A R n n je symetrická, pozitivně definitní, definujme x, y A y T Ax, x A x, x 1/2 A. Z normality a z pozitivní definitnosti plyne x 2 A = A1/2 x 2. 3
Problém Ax = b a minimalizace funkcionálu A R n n je symetrická, pozitivně definitní. Data A, b, definujme kvadratický funkcionál F(y) 1 2 yt Ay y T b, F :R n R. Platí F(y) = Ay b. F(y) nabývá minima v bodě F(y) = 0, tj. Ay b = 0. Ax = b F(x) nabývá v x minima. 4
Problém Ax = b a minimalizace funkcionálu Nechť y je aproximace řešení x, platí F(y) = 1 2 yt Ay y T b = 1 2 (x y)t A(x y) 1 2 xt Ax = 1 2 x y 2 A 1 2 x 2 A. Minimalizace funkcionálu F(y) přes nějaký podprostor minimalizace x y A přes ten samý podprostor. Přirozené měřit vzdálenost aproximace řešení y od x pomocí energetické normy x y A. 5
Problém Ax = b a minimalizace funkcionálu - shrnutí Problém: Ax = b, kde A R n n je symetrická, pozitivně definitní. Ax = b F(y) nabývá v x minima. F(y) a A-norma chyby, F(y) = 1 2 x y 2 A 1 2 x 2 A. Jak efektivně konstruovat aproximace řešení? Strategie na hledání minima F(y). Blížím se k minimu blížím se i k řešení Ax = b. 6
Hledání minima v daném směru Dána aproximace minima x k. Nová aproximace x k+1 = x k + γ k p k kde p k je zvolený směrový vektor a γ k vhodný koeficient. Určení γ k : lokální minimalizace F(x k + γp k ), ukážeme (cv.) kde r k b Ax k je reziduum. γ k = pt k r k p T k Ap, k Reziduum lze psát pomocí chyby Pro reziduum platí (cv.) r k = b Ax k = A(x x k ) Ae (k). r k+1 = r k γ k A p k, r k+1 p k e (k+1) A p k. 8
Hledání minima v daném podprostoru Start v aproximaci x 0. V každém kroku x k+1 = x k + γ k p k. Rozepsáním x k+1 = x 0 + γ 0 p 0 + + γ k p k. Pro chyby e (k+1) x x k+1 platí e (k+1) = e (0) (γ 0 p 0 + + γ k p k ). γ k umíme volit. Jak volit směrové vektory? Chceme, aby e (k+1) k A = e(0) γ j p j byla co nejmenší. j=1 A 9
Kdy je e (k+1) A minimální? k e (k+1) = e (0) γ j p j. j=1 e (k+1) A bude minimální, odečteme-li od e (0) její projekci do S k+1 = span{p 0,..., p k }, ortogonalitu měříme energetickým skalárním součinem. Požadujeme, aby platilo e (k+1), p j A = 0, j = 0,..., k. Vektory ortogonální v, A se nazývají sdružené. Cíl: metoda, pro kterou bude chyba v každém kroku sdružená ke všem předchozím směrovým vektorům. 10
Směrové vektory stačí volit sdružené Zajímá nás, jak docílit splnění podmínky e (k+1), p j A = 0, j = 0,..., k. Víme, že e (1), p 0 A = 0. V následujícím kroku platí e (2) = e (1) γ 1 p 1, díky volbě γ 1 je e (2), p 1 A = 0. Chceme e (2), p 0 A = 0, tj. 0 = e (2), p 0 A = e (1), p 0 A γ 1 p 1, p 0 A = γ 1 p 1, p 0 A. Postačující podmínka: p 1, p 0 A = 0. Indukce: Podmínky e (k+1), p j A = 0 lze docílit, volíme-li p i, p j A = 0 i j. 11
Konkrétní volba směrových vektorů Krok k: máme A-ortogonální vektory p 0,..., p k, aproximace x 0,..., x k a rezidua r 0,..., r k, umíme sestrojit x k+1 a r k+1. Jak rozšiřovat prostor směrových vektorů, jak volit p k+1? K rozšíření použijeme reziduový vektor r k+1. Volme k p k+1 = r k+1 c k,j p j, j=0 koeficienty c k,i určíme tak, aby p k+1, p j A = 0, tj. c k,j = r k+1, p j A p j, p j A, j = 0,..., k. 12
Shrnují Tím je formálně definována metoda sdružených gradientů Dáno A, b, x 0 r 0 = b Ax 0, p 0 = r 0 Pro k = 0,... γ k = pt k r k p T k Ap k x k+1 = x k + γ k p k r k+1 = r k γ k A p k c k,j = r k+1, p j A p j, p j A, j = 0,..., k k p k+1 = r k+1 c k,j p j j=0 Kdy skončí? Nalezne řešení? Lze zapsat efektivněji? 13
Metoda sdružených gradientů nalezne řešení nejvýše po n krocích Věta Metoda sdružených gradientů nalezne řešení nejvýše po n krocích. k-tý Krylovův podprostor generovaný maticí A a vektorem v, K k (A, v) span{v, Av, A 2 v,..., A k 1 v}. Lemma o rovnosti podprostou Po k krocích sdružených gradientů (s r j 0 v každém kroku) platí span{p 0,..., p k } = span{r 0,..., r k } = K k+1 (A, r 0 ). 14
Ortogonalita reziduí e (j) A span{p 0,..., p j 1 } e (j) A K j (A, r 0 ) r j K j (A, r 0 ), neboť Ae (j) = r j. Jelikož K j (A, r 0 ) = span{r 0,..., r j 1 }, platí r j span{r 0,..., r j 1 }. Metoda sdružených gradientů postupně počítá A-ortogonální bázi K j+1 (A, r 0 ) (směrové vektory p k ), ortogonální bázi K j+1 (A, r 0 ) (reziduové vektory r k ). 15
Formálně definovaná CG Lze zapsat efektivněji? Dáno A, b, x 0 r 0 = b Ax 0, p 0 = r 0 Pro k = 0,... γ k = pt k r k p T k Ap k x k+1 = x k + γ k p k r k+1 = r k γ k A p k c k,j = r k+1, p j A p j, p j A, j = 0,..., k k p k+1 = r k+1 c k,j p j j=0 16
Efektivní implementace k p k+1 = r k+1 c k,j p j j=0 Lemma o nulovosti c k,j koeficientů Pro j = 0,..., k 1 jsou koeficienty c k,j nulové. Označme δ k+1 c k,k, potom p k+1 = r k+1 + δ k+1 p k. Platí γ k = r k, r k p k, Ap k, δ k+1 = r k+1, r k+1. r k, r k 17
Metoda sdružených gradientů input A, b, x 0 r 0 := b Ax 0 p 0 := r 0 for k = 0, 1, 2,... do γ k := r k r k p k A p k x k+1 := x k + γ k p k r k+1 := r k γ k A p k δ k+1 := r k+1 r k+1 rk r k p k+1 := r k+1 + δ k+1 p k end for 18
Konvergence metody sdružených gradientů Chyba zapsaná pomocí polynomu Jak rychle se aproximace x 1, x 2,... přibližují k řešení x? K k (A, r 0 ) je generován vektory r 0, Ar 0,..., A k 1 r 0 v K k (A, r 0 ) v = q(a)r 0, kde q je polynom stupně nejvýše k 1. Potom x k = x 0 + q(a)r 0, deg q k 1, a chybu e (k) x x k lze psát jako e (k) = (x x 0 ) (x k x 0 ) = e (0) Aq(A)e (0) = p(a)e (0), kde p(z) 1 z q(z), deg q k, p(0) = 1. 20
Konvergence metody sdružených gradientů Použití spektrálního rozkladu Minimalizační vlastnost metody x x k A = min y x 0 +K k (A,r 0 ) x y A, e (k) A = min p π k p(a)e (0) A, kde π k je množina všech polynomů, deg p k, p(0) = 1. Uvažujme spektrální rozklad A = QΛQ T, a definujme vektor Potom ω = [ω 1,..., ω n ] T Q T r 0. p(a)e (0) 2 A = n j=1 ω j 2 λ j p(λ j ) 2. 21
Konvergence metody sdružených gradientů Dva rozhodující faktory Dosazením n e (k) ω A = min j 2 1/2 p(λ j ) 2 p π k λ j=1 j. Konvergence CG závisí na dvou faktorech, na velikosti projekcí ω j vektoru r 0 do báze vlastních vektorů, na rozložení vlastních čísel matice A. Jak odhadnout veličinu na pravé straně? Z nerovnosti p(a)e (0) A = p(a)a 1/2 e (0) p(a) e (0) A plyne e (k) A e (0) A min p π k p(a). 22
Konvergence metody sdružených gradientů Odhad (omezení) pravé strany e (k) A e (0) A min p π k p(a). Využijeme-li spektrálního rozkladu matice A, dostaneme a proto p(a) = p(qλq T ) = Qp(Λ)Q T = p(λ) = max i=1,...,n p(λ i). e (k) A e (0) A min p π k max p(λ i). i=1,...,n Odhad platí b, dostali jsme min-max aproximační problém na diskrétní množině bodů (na spektru matice A). 23
Konvergence metody sdružených gradientů Hrubší omezení (méně informativní odhad) Uvažujme místo diskrétní množiny bodů interval obsahující všechna vlastní čísla, min max p(λ i) min max p(λ). p π k i=1,...,n p π k λ [λ 1,λ n] Řešení problému na intervalu známo, pomocí vhodně posunutých a škálovaných Čebyševových polynomů, platí ( ) e (k) k A κ(a) 1 e (0) 2, A κ(a) + 1 kde κ(a) = A A 1 = λ n /λ 1. Důsledek: Je-li κ(a) malé, CG konverguje rychle. 24
Konvergence metody sdružených gradientů Špatná podmíněnost matice A nemusí implikovat pomalou konvergenci. Vliv rozlozeni vlastnich cisel na konvergenci CG 10 0 relativni A norma chyby 10 5 10 10 10 15 ρ = 0.6 ρ = 0.8 ρ = 0.9 κ odhad 0 10 20 30 40 50 pocet iteraci Konvergence závisí na rozložení vlastních čísel. λ j = λ 1 + j 1 n 1 (λ n λ 1 )ρ n j, j = 2, 3,..., n 1. 25
Předpodmínění Kdy je konvergence CG rychlá? Malé číslo podmíněnosti. Vhodné rozložení vlastních čísel. Vektor pravé strany má málo nenulových komponent. Smysl předpodmínění: modifikace soustavy za účelem zrychlení konvergence. Jak modifikovat soustavu Ax = b? Modifikovaná matice soustavy by opět měla být symetrická a pozitivně definitní. Nechť C je libovolná regulární matice. Ax = b (C 1 AC T )(C T x) = C 1 b. Máme systém ˆx = ˆb se symetrickou pozitivně definitní Â. Mezi řešeními platí vztah x = C T ˆx. 27
Předpodmínění Transformace vektorů CG na ˆx = ˆb získáme aproximace řešení ˆx. Potom jsou x k C T ˆx k aproximace původního řešení x. Navíc platí ˆx ˆx k 2  = (ˆx ˆx k) T Â(ˆx ˆx k ) = (C T x C T x k ) T C 1 AC T (C T x C T x k ) = x x k 2 A. Pokud ˆx k aproximuje dobře ˆx, pak x k dobře aproximuje x. Zajímají nás vektory vztahující se k původní soustavě Ax = b, položme p k C T ˆp k, r k C ˆr k, z k C T C 1 r k. Přepišme CG aplikované na ˆx = ˆb do nové podoby (cvičení), ve kterém využijeme právě zavedených vektorů. 28
Algoritmus PCG Předpodmíněná metoda sdružených gradientů input A, b, x 0, C r 0 := b Ax 0 z 0 := C T C 1 r 0 p 0 := z 0 for k = 1, 2,... do ˆγ k 1 := zt k 1 r k 1 p T k 1 Ap k 1 x k := x k 1 + ˆγ k 1 p k 1 r k := r k 1 ˆγ k 1 Ap k 1 z k := C T C 1 r k ˆδ k := zt k r k zk 1 T r k 1 p k := z k + ˆδ k p k 1 end for 29
Poznámky k předpodmínění Snadnou manipulací dostaneme r k = C ˆr k = b Ax k. Nepočítáme inverze matic C a C T! Platí z k = C T C 1 r k CC T z k = r k, řešeníme soustavy lineárních algebraických rovnic Cy = r k a C T z k = y. 30
Předpodmínění Volba matice C Požadavky 1 Rychlá konvergence CG aplikované na ˆx = ˆb, ideálně  = C 1 AC T I. 2 Soustavy Cy = r k a C T z k = y musí být rychle řešitelné, řádově v O(n) operacích. 3 A řídká C musí být řídká (jinak vzrostou paměťové i výpočetní nároky). Předpodmínění v jistém smyslu jde o kombinaci přímých metod (řešíme soustavy s C a C T ) a iteračních metod (CG). Soustavy s C a C T je možné řešit i iteračně (dostáváme tzv. metody s vnější a vnitřní iterací). 31
Neúplný Choleského rozklad Jedna z možností, jak volit matici C Choleského rozklad A = LL T. A řídká, L nemusí být řídká, výpočet L často neekonomický. Idea: aproximovat L dolní trojúhelníkovou C, která je blízká L a zachovává předepsanou řídkost a A CC T, použijeme ji k předpodmínění metody sdružených gradientů. Jeden způsob: položit c i,j = 0 vždy, když je a i,j = 0 (definujeme nenulovou strukturu matice C) označení IC(0), v Matlabu C T získáme příkazem cholinc(a, 0 ). 32
Neúplný Choleského rozklad IC(0) input A C := tril(a) for k = 1 : n do c k,k := c k,k for i = k + 1 : n do if c i,k 0 then c i,k := c i,k c k,k end if for j = k + 1 : i do if c i,j 0 then c i,j := c i,j c i,k c T j,k end if end for end for end for 33
Další varianty neúplného Choleského rozkladu Dovolíme větší zaplnění matice C. Dva základní principy. Zobecnění IC(0). Nenulovou strukturu C rozkladu IC(1) určíme z nenulové struktury matice, jež vznikne (formálním) vynásobením faktorů rozkladu IC(0). Obecně IC(k). Můžeme vzít v úvahu velikosti prvků matice C, položíme malé prvky ve spočtené části faktoru rovny nule, velikost malých prvků vyhodnotíme pomocí zadané tolerance droptol. Matlabovským příkazem cholinc(a,droptol) získáme matici C T s prvky c i,j jejichž velikosti jsou zdola omezeny podle c i,j droptol a j c ii, kde a j označuje j-tý sloupec matice A. 34
Volba počáteční aproximace řešení Vhodná počáteční aproximace řešení může urychlit nalezení dobré aproximace řešení x k. Pozor na vnesení irelevantní informace vzhledem k řešení. Při nevhodné volbě x 0 totiž může dojít k tomu, že x x 0 A x A. Nutné škálovat nenulovou počáteční aproximaci tak, aby Platí (cvičení), že pro je x αx 0 A minimální. x αx 0 A x A, α = bt x 0 x T 0 Ax 0 Není-li k dispozici vhodná počáteční aproximace, volíme standardně x 0 = 0. 35
Zastavovací kritéria Přirozenou konvergenční charakteristikou je x x k A x A, není obecně možné vyjádřit (neznáme přesné řešení x). Existují techniky jak tuto veličinu odhadovat. Normovaná relativní zpětná chyba β(x k ) = r k b + A x k. udává velikosti nejmenších možných změn vstupních dat A a b takových, že x k je přesným řešením (A + A)x k = b + b. Velikost změn měříme pomocí podílu norem A A a b b. 36
Zastavovací kritéria Třetí charakteristika r k b reprezentuje relativní velikost změny pravé strany, Ax k = b r k = b + b. Výběr zastavovacího kritéria i velikosti tolerance tol by měl být vždy propojen s řešeným problémem reálného světa. 37
Vliv konečné aritmetiky V CG ortogonalizujeme vznikající r k pouze proti r k 1, p k A-ortogonalizujeme pouze proti p k 1. Ortogonalita proti ostatním vektorům plyn ze symetrie A, lze očekávat, že v aritmetice s konečnou přesností nebude zachována. Vliv konečné aritmetiky je značný a nemůže být ignorován. Příklad, vykreslíme ztrátu ortogonality mezi r 0,..., r k 1 měřenou pomocí I V T k V k F, V k sloupce tvoří normované reziduové vektory r j / r j. 39
Vlivem konečné aritmetiky Zpoždění konvergence, ztráta ortogonality, hladina limitní přesnosti 10 0 x x k A x x k A I V T k V k F 10 5 I V T k V k F 10 10 10 15 0 50 100 150 200 pocet iteraci 40
Analýza chování CG v konečné aritmetice Předmětem mnoha prací Paige 1972 ztráta ortogonality v Lanczosově metodě. Greenbaum a Strakoš na výpočty FP CG aplikované na systém Ax = b lze hledět jako na výpočty přesné CG aplikované na jiný systém à x = b, kde à je symetrická pozitivně definitní matice. Ve výše uvedeném smyslu nahrazení původní úlohy Ax = b větší úlohou à x = b zůstávají některé teoretické vlastnosti CG zachovány i v konečné aritmetice. Vlivem konečné aritmetiky dochází ke zpoždění konvergence, případně k jejímu zastavení na hladině maximálně dosažitelné přesnosti. 41
Cvičení Ukažte, že funkce g(γ) = F(x k + γp k ) nabývá minima pro a že platí γ = pt k r k p T k Ap. k r k+1 p k. 8.2 Ukažte, že pro směrové vektory počítané metodou CG platí p T j p i > 0. Na základě této vlastnosti dokažte: 1 Euklidovská norma chyby x x k v metodě CG je monotónně klesající. 2 Je-li x 0 = 0, potom je x k ostře rostoucí. 8.3 Uvažujme CG algoritmus pro řešení systému ˆx = ˆb. Definujme x k C T ˆx k, p k C T ˆp k, r k C ˆr k a z k C T C 1 r k. Ukažte, že pomocí nově definovaných vektorů lze algoritmus přepsat do podoby algoritmu PCG. 43
Cvičení 8.5 Uvažujme soustavu Ax = b se symetrickou pozitivně definitní maticí a počáteční aproximaci x 0. Ukažte, že x αx 0 A je minimální pro α = bt x 0 x T 0 Ax 0 Ukažte, že A-norma chyby je monotónně klesající a že platí x x k 2 A = γ k r k 2 + x x k+1 2 A. Ukažte, že pro celé kladné číslo d platí, k+d 1 x x k 2 A = j=k γ j r j 2 + x x k+d 2 A. 44