Jaka jest najgorsza złożoność gradientu sprzężonego?

9

Pozwolić ARn×n, symetryczny i dodatni określony. Załóżmy, że to trwam jednostki pracy do pomnożenia wektora przez A. Powszechnie wiadomo, że wykonuje się algorytm CGA z numerem warunku κ wymaga O(mκ), jednostki pracy.

Teraz oczywiście będąc Ooświadczenie to jest górna granica. Algorytm CG może zawsze kończyć się w zerowych krokach przy szczęśliwym początkowym zgadywaniu.

Czy wiemy, czy istnieje RHS i wstępne (pechowe) przypuszczenie, które będzie wymagać Θ(κ)kroki? Innymi słowy, naprawdę najgorsza złożoność pracy CGΘ(mκ)?

To pytanie powstaje, gdy próbowałem ustalić, czy korzyść ze stanu wstępnego (niższa κ) przeważyło koszt (wyższy m). Obecnie pracuję z problemami z zabawkami i chciałbym mieć lepszy pomysł, zanim zaimplementuję cokolwiek w skompilowanym języku.

Fred
źródło
5
Można przypuszczalnie skonstruować początkowe zgadywanie, uruchamiając algorytm CG „do tyłu” i wkładając odpowiednią energię do każdego z A-ortogonalne kierunki wyszukiwania, że ​​algorytm wymaga wszystkich kroków.
origimbo

Odpowiedzi:

9

Odpowiedź brzmi: tak. Granica współczynnika konwergencji wynosząca(κ1)/(κ+1) jest ostry w stosunku do zbioru symetrycznych dodatnich macierzy z określoną liczbą warunków κ. Innymi słowy, nie wiedząc o niczym więcejA niż liczba warunków, CG naprawdę może wziąć κiteracje do zbieżności. Mówiąc luźniej, górna granica jest osiągana, jeśli wartości własneA są równomiernie rozmieszczone (tzn. „pieprzone”) w przedziale liczby warunków κ.

Oto bardziej rygorystyczne stwierdzenie. Wersje deterministyczne są bardziej zaangażowane, ale działają na tych samych zasadach.

Twierdzenie (wybór najgorszego przypadku zA). Wybierz dowolną losową macierz ortogonalnąU, pozwolić λ1,,λn być n liczby rzeczywiste jednolicie próbkowane z rzeczywistego przedziału [1,κ], i pozwól b=[b1;;bn] być nliczby rzeczywiste próbkowane iid ze standardowego Gaussa. Definiować

A=Udiag(λ1,,λn)UT.
Następnie w limicie n, gradienty sprzężone zbiegną się z prawdopodobieństwem jeden do jednego ϵ dokładne rozwiązanie Ax=b w nie mniej niż Ω(κlogϵ1) iteracje.

Dowód. Standardowy dowód oparty jest na optymalnych przybliżeniach wielomianowych Czebyszewa, z wykorzystaniem technik znalezionych w wielu miejscach, takich jak książka Greenbauma lub książka Saada .

Richard Zhang
źródło
1
Granica nie jest ostra, jak wyjaśnia później odpowiedź: Jeśli wartości własne nie są równomiernie rozmieszczone, cg zbiega się szybciej, ponieważ nie jest to iteracja postacyjna. Dlatego musimy dowiedzieć się więcej o matrycy.
Guido Kanschat,
@GuidoKanschat: Dobra uwaga, i poprawiłem to stwierdzenie, aby wyjaśnić, że ostrość została osiągnięta ponad wszystko A z warunkiem κ.
Richard Zhang
Dowód sprowadza się do minimalizacji p(A)w przestrzeni rzędu - wielomianów spełniających . Odpowiednio jest to. W podanym limicie , a rozwiązaniem problemu minimax jest wówczas wielomian Czebyszewa, którego błąd jest zbieżny jakokp(0)=1minpmaxλΛ(A)|p(λ)|Λ(A)[1,κ]κ
Richard Zhang
0

Przyjmując to jako moje pierwotne pytanie: Czy wiemy, czy istnieje RHS i początkowe (pechowe) przypuszczenie, które będzie wymagało kroków ?Θ(κ)

Odpowiedź na pytanie brzmi „nie”. Idea tej odpowiedzi pochodzi z komentarza Guido Kanschata.

Twierdzenie: Dla każdego podanego numeru warunku istnieje macierz z tym numerem warunku, dla którego algorytm CG zakończy się co najwyżej w dwóch krokach (dla dowolnego RHS i początkowego przypuszczenia).kA

Rozważ gdzie . Zatem numerem warunku jest . Niech będzie RHS, i oznacz wartości własne jako gdzie ARn×nA=diag(1,κ,κ,,κ)AκbRnAλi

λi={1i=1κi1.

Najpierw rozważamy przypadek, w którym , początkowe przypuszczenie, wynosi zero. Oznacz jako drugie oszacowanie bz algorytmu CG. Pokazujemy, że , pokazując . Rzeczywiście mamyx(0)Rnx(2)RnA1bx(2)=A1bx(2)A1b,A(x(2)A1b)=0

x(2)A1b,A(x(2)A1b)=x(2)A1bA2=minppoly1(p(A)A1)bA2=minppoly1i=1n(p(λi)λi1)2λibi2i=1n(p^(λi)λi1)2λibi2=0

Gdzie używamy wielomianu pierwszego rzędu zdefiniowanego jako . Więc udowodniliśmy, że przypadek dla .p^p^(x)=(1+κx)/κx(0)=0

Jeśli , to gdzie jest drugim oszacowaniem algorytmu CG z zastąpionym przez . Więc ograniczyliśmy tę sprawę do poprzedniej. x(0)0x(2)=x(2)¯+x(0)x(2)¯bb¯=bAx(0)

Fred
źródło
Ile z tego jest odporna na skończoną precyzję arytmetyki?
origimbo
@origimbo Jeśli twoje pytanie zostało skierowane do mnie, odpowiedź brzmi: „nie wiem”.
fred