Professional Documents
Culture Documents
Kordian A. Smoliski
Uniwersytet dzki
2007/2008
Analiza algorytmw
2007/2008
1 / 26
Analiza algorytmw
2007/2008
2 / 26
Podstawy
Odwracanie macierzy
Rozkad LUP
Zastosowania rozkadu LUP
Analiza algorytmw
2007/2008
3 / 26
Podstawy
Podstawy
Definicja
Piercie (S , +, , 0, 1) jest struktur algebraiczn, w ktrej S jest zbiorem
elementw, + i dziaaniami dwuargumentowymi w S . Dla kadych a, b
i c z S zachodz:
1
(a + b) + c = a + (b + c) i (a b) c = a (b c) (czno + i );
(a + b) = (b + a) (przemienno +);
(a + b) c = a c + b c i a (b + c) = a b + a c (rozdzielno
wzgldem +);
a 1 = 1 a (element neutralny );
Analiza algorytmw
2007/2008
4 / 26
Podstawy
Przykad
1
Analiza algorytmw
2007/2008
5 / 26
Podstawy
Definicja
Niech R = (S , +, , 0, 1) bdzie piercieniem i niech Mn bdzie zbiorem
macierzy n n utworzonych z elementw R. Niech 0n bdzie macierz
n n zer i niech In bdzie macierz tosamociow n n, majc na
gwnej przektnej jedynki, a poza ni zera. Dla A i B z Mn niech A +n B
bdzie macierz C n n tak, e C [i , j ] =
, j ] + B [i , j ] i niech A n B
PA[i
n
bdzie macierz D n n, gdzie D[i , j ] = k =1 A[i , k ] B [k , j ].
Lemat
(Mn , +n , n , 0n , In ) jest piercieniem.
Dowd.
Elementarny.
Analiza algorytmw
2007/2008
6 / 26
Podstawy
f (A B ) = f (A) f (B ) .
Dowd.
Podstawienie definicji + i z Mn do definicji + i w R2, n2 .
Analiza algorytmw
2007/2008
7 / 26
Podstawy
Definicja
Niech A macierz n n o elementach z pewnego ciaa. Macierz
odwrotna A1 do A, o ile istnieje, to macierz n n taka, e AA1 = In .
Jeeli A1 istnieje, to jest jedyna i AA1 = A1 A = In ; (AB )1 = B 1 A1 .
Definicja
Niech A macierz n n. Wyznacznik det(A) macierzy A jest to suma
po wszystkich permutacjach
Q p = (i1 , i2 , . . . , in ) liczb cakowitych od 1
do n z iloczynw (1)kp nj=1 A[j , ij ] , gdzie kp = 0, gdy permutacja p
jest parzysta i kp = 1, gdy p jest nieparzysta.
Przykad
Analiza algorytmw
2007/2008
8 / 26
Podstawy
Dowd.
Kada permutacja (i1 , i2 , . . . , in ) prcz (1, 2, . . . , n) ma element ij taki, e ij < j oraz
element ik taki, e ik > k . Zatem kady wyraz det(A) prcz wyrazu dla (1, 2, . . . , n)
jest zerem.
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
9 / 26
Podstawy
Definicja
Macierz jedynkowa to macierz z jedynkami na gwnej przektnej.
Definicja
Macierz permutacji to macierz zero-jedynkowa, w ktrej kady wiersz
i kolumna ma dokadnie jedn jedynk.
Definicja
Podmacierz dla A otrzymujemy przez wykrelenie pewnych wierszy
i kolumn A. Podmacierz gwna dla A n n to jej kwadratowa
podmacierz zoona z pierwszych k wierszy i k kolumn, 1 k n.
Rzd rank(A) dla A jest wymiarem jej najwikszej nieosobliwej
podmacierzy kwadratowej.
Jeeli A = BC , to rank(A) min(rank(B ), rank(C )).
Definicja
Transpozycj AT dla A otrzymujemy zamieniajc A[i , j ] z A[j , i ].
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
10 / 26
Analiza algorytmw
2007/2008
11 / 26
Lemat (Strassen)
Iloczyn dwch macierzy 2 2 o elementach z dowolnego piercienia mona
obliczy przez 7 mnoe i 18 dodawa (odjemowa).
Dowd.
Aby obliczy
c11
c21
c12
a11
=
c22
a21
a12
a22
b11
b21
b12
, obliczamy iloczyny:
b22
m2 = (a11 + a22 )(b11 + b22 ) ,
c12 = m4 + m5 ,
c21 = m6 + m7 ,
c22 = m2 m3 + m5 m7 .
Rachunek liczby dziaa jest prosty. Dowd poprawnoci wyniku jest elementarny.
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
12 / 26
Twierdzenie
Dwie macierze n n o elementach z dowolnego piercienia mona
pomnoy wykonujc O(n log 7 ) operacji arytmetycznych.
Dowd.
Niech n = 2k . Niech T (n) liczba operacji arytmetycznych potrzebnych do
pomnoenia dwch macierzy n n. Z ostatniego lematu mamy
n 2
n
+ 18
, n 2.
T (n) 7T
2
2
Wobec tego T (n) jest O(7log n ) lub rwnowanie O(n log 7 ).
Jeeli n nie jest potg 2, wpisujemy obie macierze odpowiednio do dwch macierzy
wymiaru, ktry jest najmniejsz potg 2 wiksz od n. Wymiar ulegnie co najwyej
podwojeniu, a staa zostanie pomnoona przez czynnik co najwyej 7. Wobec tego T (n)
jest O(n log 7 ) dla n 1.
Analiza algorytmw
2007/2008
13 / 26
Odwracanie macierzy
Odwracanie macierzy
Lemat
h
A11 A12
Podzielmy A na A
. Zamy istnienie A1 . Niech
21 A22
1
= A22
A12 i niech istnieje 1 . Wwczas
1A21 A11
1
A11 + A11 A12 1 A21 A1
A1
A12 1
1
11
11
A =
.
1 A21 A1
1
11
Dowd.
A=
A11
A21
I
A12
=
A22 .
A21 A1
11
0
I
A11
0
I
0
A1
11 A12
,
I
I
0
A1
11
I
I
0
A1
0
11
0
1 A21 A1
I
11
1
1
1
A11 + A11 A12 A21 A1
11
=
1 A21 A1
11
Analiza algorytmw
1
A11
A12 1
.
1
2007/2008
14 / 26
Odwracanie macierzy
Lemat
Jeeli A jest nieosobliw macierz trjktn grn (doln), to macierze
A11 i , o ktrych mowa w poprzednim lemacie, maj macierze odwrotne
i s one trjktnymi grnymi (dolnymi) nieosobliwymi macierzami.
Dowd.
Zamy, e A jest trjktna grna. A11 jest oczywicie nieosobliwa, wic A1
11 istnieje.
Zauwamy, e A21 = 0, wobec tego = A22 A21 A1
11 A12 = A22 i jest nieosobliw
macierz trjktn grn. Dowd dla macierzy trjktnej dolnej przebiega podobnie.
Twierdzenie
Niech M (n) bdzie czasem wymaganym do pomnoenia dwch macierzy
n n nad pewnym piercieniem. Jeeli dla kadego m,
8M (m) M (2m) 4M (m), to istnieje staa c taka, e macierz
odwrotn do dowolnej nieosobliwej macierzy n n trjktnej grnej
(dolnej) A mona obliczy w czasie cM (n).
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
15 / 26
Odwracanie macierzy
Dowd.
Zamy, e n jest potg 2. Moemy podzieli A na cztery podmacierze n2 n2
i stosowa rekurencyjnie wzr z pierwszego lematu. Mamy A21 = 0, wic = A22 .
Odwrcenie macierzy trjktnych wymaga czasu 2T ( n2 ), nietrywialne mnoenia czasu
2
2M ( n2 ), a zmiana znaku prawej grnej podmacierzy czasu n4 . Z zaoenia twierdzenia
2
i std, e M (1) 1, mamy n4 M ( n2 . Wobec tego
T (1) = 1 ,
T (n) 2T
n
2
+ 3M
n
2
n 2.
A 0
,
0 Im
gdzie m + n 2n jest potg 2. Wobec tego mnoc c co najwyej przez 8, otrzymamy
twierdzenie dla dowolnego n.
Analiza algorytmw
2007/2008
16 / 26
Rozkad LUP
Rozkad LUP
Definicja
Rozkadem LU macierzy A wymiaru m n, m n, jest para macierzy L
i U takich, e A = LU , gdzie L jest jedynkow macierz trjktn doln
m m, a U jest macierz trjktn grn m n.
Rwnanie Ax = b mona rozwiza wzgldem x, gdzie A macierz
n n, x wektor kolumnowy rozmiaru n niewiadomych, b wektor
kolumnowy rozmiaru n, jeeli zapiszemy A w postaci iloczynu jedynkowej
macierzy trjktnej dolnej L przez macierz trjktn grn U , o ile
czynniki takie istniej. Wtedy Ax = b zapisujemy jako LU x = b. Aby
wyznaczy x, rozwizujemy najpierw Ly = b wzgldem y, a nastpnie
U x = y wzgldem x.
Wad tej metody jest to, e A moe nie mie rokadu LU nawet wtedy,
gdy jest nieosobliwa. Jednak jeeli A jest nieosobliwa, to istnieje macierz
permutacji P taka, e AP 1 ma rozkad LU. Macierze L, U i P takie, e
A = LUP nosz nazw rozkadu LUP macierzy A.
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
17 / 26
Rozkad LUP
H U1 P31
L macierz m m zoona z L1 , 0 m , FE 1 i L2
2
U macierz m p zoona z H i U2
P P3 P1
return (L, U , P )
Analiza algorytmw
2007/2008
18 / 26
Rozkad LUP
Twierdzenie
Powyszy algorytm oblicza L, U i P takie, e A = LUP dla kadej
nieosobliwej macierzy A.
Dowd.
Niech A macierz m n. Indukcyjnie wzgldem m, gdzie m jest potg 2, udowodnimy,
e jeeli A jest rzdu m, to factor oblicza L, U i P , o rzdach odpowiednio m, m i n,
takie, e A = LUP , przy czym pierwsze m kolumn U jest rzdu m. Jeeli m = 1, to A
musi mie niezerowy element, wic twierdzenie zachodzi. Zamy, e m = 2k , k 1.
Skoro A ma m kolumn i jest rzdu m, to B i C maj po m kolumn i s rzdu m2 .
Wywoanie factor dla B oblicza L1 , U1 i P1 z za. ind. oraz pierwsze m2 kolumn U1
jest rzdu m2 . Zatem macierz E 1 istnieje.
Po tym kroku algorytmu A jest iloczynem trzech macierzy i na jedn z nich skadaj si
U1 i G. Poniewa A jest rzdu m, wic macierz ta te jest rzdu m. Zatem G ma rzd
m
. Poniewa pierwsze m2 kolumn G tworz zera, a G 0 powstaje z G przez wykrelenie
2
pierwszych m2 kolumn, to G 0 take musi mie rzd m2 . Z za. ind. factor oblicza
poprawnie macierze L2 , U2 i P2 . Implikacja zachodzi natychmiast.
Pozostaa cz dowodu nie nastrcza trudnoci.
Analiza algorytmw
2007/2008
19 / 26
Rozkad LUP
Analiza algorytmw
2007/2008
20 / 26
Rozkad LUP
Dowd (cd.).
Obliczenie E 1 i iloczynu FE 1 wymagaj oba czasu po O(M ( m2 ). Poniewa U1 jest
co najwyej wymiaru m2 n, to iloczyn (FE 1 )U1 mona obliczy w czasie
n
O( m
M ( m2 )). m dzieli n bez reszty, gdy s to potgi 2 i m n. Pozostae kroki s
w najgorszym razie O(mn). Mamy rekurencj
(
bn ,
n = 1,
` m cn ` m
T (m) =
2T n + m M 2 + dmn , n > 1 ,
dla staych b, c i d .
` 2
Z za. i std, e M (1) = 1, mamy M ( m2 ) m2 , czyli moemy poczy drugi i trzeci
wyraz w rekurencji.
Dla pewnej staej e
(
bn ,
n = 1,
` en ` m
T (m) =
2T m
+
M
,
n > 1.
n
m
2
Analiza algorytmw
2007/2008
21 / 26
Rozkad LUP
Dowd (dokoczenie).
Na tej podstawie
T (m)
Z za. 4i M
m
m
i
en h
4M
+ 42 M
+ + 4log m M (1) + bmn
2
4m
2
2
log m
en X i m
+ bmn .
4M
4m i=1
2i
`m
2i
1 i
2
i
X
en
1
M (m)
+ bm, .
4m
2
i=1
Wniosek
Dla danej nieosobliwej macierzy A jej rozkad LUP mona znale
w O(n log 7 ) krokach.
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
22 / 26
Rozkad LUP
Wniosek
Macierz odwrotn do macierzy n n mona wyznaczy w O(n log 7 )
krokach.
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
23 / 26
Rozkad LUP
Twierdzenie
Jeeli M (n) jest czasem jak w poprzednim twierdzeniu i A jest macierz
n n, to det(A) mona obliczy w O(M (n)) krokach.
Dowd.
Stosujemy dla A algorytm rozkadu LUP. Jeeli algorytm nie dziaa, to nie mona
znale niezerowej kolumny lub nie istnieje E 1 , to A jest osobliwa i det(A) = 0.
W przeciwnym przypadku A = LUP . Wtedy det(A) = det(L) det(U ) det(P ). Biorc
iloczyny elementw na gwnej przektnej znajdujemy det(L) i det(U ). Poniewa L jest
jedynkowa trjktna dolna, to det(L) = 1. Poniewa U jest trjktna grna, to det(U )
znajdujemy w O(n) krokach. Poniewa P jest macierz permutacji, to det(P ) = 1,
zalenie od tego, czy permutacja reprezentowana przez P jest parzysta, czy nieparzysta,
a to mona sprawdzi tworzc t permutacj z (1, 2, . . . , n) zliczajc przestawienia,
ktrych potrzeba co najwyej n 1.
Wniosek
Wyznacznik macierzy n n mona obliczy w O(n log 7 ) krokach.
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
24 / 26
Rozkad LUP
Twierdzenie
Jeeli M (n) jest czasem jak w poprzednim twierdzeniu i A jest macierz
nieosobliw n n, b wektorem kolumnowym wymiaru n, a x wektorem
kolumnowym [x1 , x2 , . . . , xn ]T , to rozwizanie ukadu rwna liniowych
Ax = b mona uzyska w O(M (n)) krokach.
Dowd.
Wyznaczmy rozkad A = LUP . Wtedy LU x = b rozwizujemy w dwch krokach.
Wpierw ukad Ly = b rozwizujemy wzgldem wektora niewiadomych y, a nastpnie
UP x = y rozwizujemy wzgldem x. Kade z tych podzada mona rozwiza w czasie
O(n 2 ) przez podstawienia za niewiadome, tzn. przez przeksztacenie ze wzgldu na y1 ,
podstawienie za y1 ; przeksztacenie ze wzgldu na y2 , itd. Rozkad LUP mona uzyska
w O(M (n)) krokach, wic rozwizanie LUP x = b mona uzyska w czasie O(n 2 ).
Wniosek
Ukad n rwna liniowych o n niewiadomych mona rozwiza w czasie
O(n log 7 ).
Kordian A. Smoliski (Uniwersytet dzki)
Analiza algorytmw
2007/2008
25 / 26
Rozkad LUP
Twierdzenie
Niech M (n) i I (n) bd odpowiednio czasem wymaganym, by
pomnonoy dwie macierze n n, i czasem wymaganym, by odwrci
macierz n n. Zamy, e 8M (m) M (2m) 22+ M (m) dla pewnego
> 0 i podobnie dla I (n). Funkcje M (n) i I (n) s asymptotycznie rwne
z dokadnoci do staego czynnika.
Dowd.
I (n) c1 M (n) dla pewnego c1 . Niech A i B dla ustalenia zwizku M (n) c2 I (n)
przy pewnym c2 bd macierzami n n. Wtedy
2
31 2
3
I A 0
I A AB
40 I B 5 = 40
I
B 5 .
0 0 I
0
0
I
Iloczyn AB mona uzyska przez odwrcenie macierzy 3n 3n. Std wynika, e
M (n) I (3n) I (4n) 64I (n).
Analiza algorytmw
2007/2008
26 / 26