obliczenia PageRank

Transkrypt

obliczenia PageRank
Metody numeryczne
Wykład nr 4
dr hab. Piotr Fronczak
Obliczanie wartości własnych i wektorów własnych
Niech M będzie kwadratową macierzą n x n. Wówczas M wyznacza
przekształcenie liniowe przestrzeni Rn w siebie.
Niech v  Rn będzie pewnym niezerowym wektorem oraz niech L będzie
prostą wyznaczoną przez ten wektor.
Definicja. Jeżeli przekształcenie M przekształca prostą L w siebie, to mówimy,
ze v jest wektorem własnym przekształcenia M. Oznacza to, że
M·v= ·v
dla pewnej liczby rzeczywistej , zwanej wartością własną związaną z wektorem
własnym v.
Obliczanie wartości własnych i wektorów własnych
Chcąc znaleźć wartości i wektory własne musimy rozwiązać równanie:
 x
 x
M – macierz, λ - skalar
Mx  y  x  y 
M x     x  
M xy   xy
My  x y   x  0
yx  yx 0 
M
Przekształcając…
M x  y  x  y0 0
M xy
  xy  00

My  x y   0x 0
I x 0  0  
yx  
y 
M



 y   0 By móc wyciągnąć wektor przed
y


M x      Ix  0 
nawias, musimy zamienić skalar na
M xy

I



x
0




y
0




   I yx 00 
macierz mnożąc go przez macierz
MyM







I

jednostkową.
 y  x xyy00 00
  
 
M


I

 M   I   xy  00
Wyciągamy wektor…
 M   I  y   0 
 y  0
Obliczanie wartości własnych i wektorów własnych
xx 000


x
      
M


I


M


I

 M   I   xyy  00
  I  yx   0 0 
 M
M  aI  by    0 
 a bby  0 
a

Ma b 
MM
 cacc ddbd

M  

M   c d  a b
 a b b  000
c
d
a



M

III


M


M





  acc dbd  00 0
  I   c a db   0 0 
 M
M   I    ac  d   b0  
c
a
 b 0b   
d
a


MMIIIa   b 
M
 accc ddd



b

  I   
 M

M
 I  b  c x d 0  
a


a
  b b cxxd00 
 a 
xy   0 

b
 aac

c
d


c
d   y 000
    d b  yx 


d     y   0 
 cc
d     y  0

Zapisując M jako macierz
dwuwymiarową:
Możemy teraz napisać jawnie układ
równań:
Obliczanie wartości własnych i wektorów własnych
Jeśli wyznacznik macierzy (M- λI) nie
a


b
x
0






a


b
x
0

   b   x   0jest
a

 równy zero, to możemy pomnożyć







 cc
yy 00    obustronnie
to równanie przez macierz


d


d


c
d


y
0







    odwrotną:

11
xx  aax  abb 

yy   cc  dd 
    y  c 
xx  00 x  0
yy  00    
    y  0
to, że nasz wektor to wektor
00b  1 Oznacza
0
zerowy,
nie wyznacza on żadnej
00  prostej.
d    0
Zatem, wyznacznik macierzy (M- λI)
musi być równy zero. Czyli jest to
macierz osobliwa.
Obliczanie wartości własnych i wektorów własnych
a
b
Ważne równanie –
a
b
0
tak szukamy wartości własnych.

0
c
d 
c
d 
a    d     bc  0

 a    d     bc  0
2
2    a  d     ad  bc   0
   a  d     ad  bc   0 Równanie charakterystyczne.
Wartości własne określają wielkość przeskalowania położenia punktu
(wektora wodzącego) w przestrzeni. Możemy mieć jedną, dwie, lub
brak rzeczywistych wartości własnych w macierzy 2x2.
0
Jaka jest wartość własna czerwonego wektora?
A niebieskiego?
Obliczanie wartości własnych i wektorów własnych
Gdy znajdziemy już wartości własne, możemy podstawić je do
naszego pierwotnego równania by znaleźć wektory własne.
x
x
M   
 y
 y
To jest wektor własny. Uwaga:
nie jest on jednoznaczny.
Wyznacza kierunek. Wiele
innych wektorów też wyznacza
ten sam kierunek.
By rozwiązać to równanie, trzeba przyjąć dodatkowy warunek (np. długość
wektora, wartość jednej składowej, itp.)
Znajdź wartości własne i odpowiadające im wektory własne macierzy A:
11 44 
A
A
 1112 4443
A   2 3 
A
A
 22 33
 2I 30
A
A
 
I  0
A

 II  00
A


A


I 40
11 


4 0
1


0
11 
444  
22
 33 

0
 
0

0


222
333 


(1
(1 

 )(3
)(3 

 )) 
 88 
 00
(1 

 )(3
)(3 
2
 ))  88  00
(1
(1


)(3


)  8 0 0
33 
 44


 222 
 88 
0
3

4




8
 00
2
33 




88 
22 4

4





0

 22 
 44

 55 
 00
 2  44  55  00

((
4
 0
  5)(
5)(

51)
1)
 00
  5)(
5)(
  1)
1) 
 00
(((


5)(


1)

11 
 5,
5, 
22 

11 0
  5,
5, 2 
 11

11 
 5, 
2  
1
1
2
Odpowiada
wartości własnej 5
4   x  0
1  5
1  5  
 



 2 3  5  y  0 
 4 4   x  0 
 2 2   y   0 

   
4 x  4 y  0
2x  2 y  0
1
1

1

1
1 4
4 xxx 0
0
1
1


1
4
0



111

1
11

 






 2



3  1 y
0
 22 3311yy 00
2
22 4
44xxx0
00
22 44yy 00
2 4 y  0
2
22xxx
4
44yyy
0
00
2
22xxx
4
44yyy
0
00
2
22
11
1
Odpowiada
wartości własnej -1
Zastosowania
Równanie Schroedingera:
Funkcje falowe elektronów w atomie wodoru mogą
być postrzegane jako wektory własne operatora
energii i momentu pędu. Wartości własne
reprezentują wartość energii (n = 1,2,3,...)
i momentu pędu (s, p, d,...).
Analiza składowych głównych
Metoda statystyczna umożliwiająca
zrzutowanie wysokowymiarowego zbioru
danych na dwa lub trzy wymiary. Umożliwia
ona wybrać te kierunki wersorów, które
charakteryzują się największą wariancją
danych.
Mechanika drgań
Wartości własne reprezentują
naturalne częstości drgań układu
złożonego z kilku elementów.
Wektory określają mody tych drgań.
Dynamika ruchu obrotowego:
Moment bezwładności
trójwymiarowego obiektu bez
żadnych osi symetrii jest dany
macierzą 3x3. Wektory własne –
kierunki osi przechodzące przez
środek masy, wokół których obiekt
może się obracać. Wartości
własne – wartości momentu pędu
dla danego kierunku.
Metoda potęgowa (iteracji wektorów)
Można ją stosować dla znajdowania wartości własnej o największym module
i odpowiadającego jej wektora własnego.
Rozważmy macierz [a], która ma n różnych rzeczywistych wartości własnych
1, 2, …, n i n związanych z nimi wektorów własnych [u]1, [u]2, …, [u]n.
Ponumerujmy wartości własne od największej do najmniejszej:
|1| > |2| > …> |n|
Wspomniane wektory stanowią bazę w tym sensie, iż każdy inny wektor
może być przedstawiony jednoznacznie jako ich kombinacja liniowa.
[ x]1  c1[u]1  c2 [u]2  ...  cn [u]n
gdzie ci – stałe skalarne  0.
[ x]1  c1[u]1  c2 [u]2  ...  cn [u]n
Pomnożywszy przez [a]:
[a ][ x]1  c1[a ][u ]1  c2 [a ][u ]2  ...  cn [a ][u ]n 
c11[u ]1  c2 2 [u ]2  ...  cn n [u ]n 


cn n
c 2 2
c11  [u ]1 
[u ]2  ... 
[u ]n  
c11
c11


c11[ x]2
cn n
c2 2
[ x]2  [u ]1 
[u ]2  ... 
[u ]n
c11
c11
[ x]2  [u ]1 
c
c2 2
[u ]2  ...  n n [u ]n
c11
c11
Pomnożywszy przez [a]:
cn n
c2 2
[a][ x]2  [a][u ]1 
[a][u ]2  ... 
[a][u ]n
c11
c11
cn n
c22
[a][ x]2  1[u ]1 
2 [u ]2  ... 
n [u ]n
c11
c11
cn 2n
c2 22
 1[u ]1 
[u ]2  ... 
[u ]n
c11
c11


cn 2n
c222
 1 [u ]1 
[
u
]

...

[
u
]
2
n
2
2
c11
c11


 1[x]3
cn 2n
c2 22
[ x]3  [u ]1 
[u ]2  ... 
[u ]n
2
2
c11
c11
Pomnożywszy przez [a]:
cn 2n
c2 22
[a][ x]3  [a][u ]1 
[a][u ]2  ... 
[a][u ]n
2
2
c11
c11
cn 2n
c2 22
[a][ x]3  1[u ]1 
2 [u ]2  ...  2 n [u ]n
2
c11
c11
cn 3n
c2 32
 1[u ]1 
[u ]2  ... 
[u ]n
2
2
c11
c11


cn 3n
c232
 1 [u ]1 
[
u
]

...

[
u
]
2
n
3
3
c11
c11


 1[x]4
Widać zatem, że kolejne iteracje dadzą:
cn n
c2 2
[ x]2  [u ]1 
[u ]2  ... 
[u ]n
c11
c11
cn 2n
c2 22
[ x]3  [u ]1 
[u ]2  ... 
[u ]n
2
2
c11
c11
cn 3n
c232
[ x]4  [u ]1 
[u ]2  ... 
[u ]n
3
3
c11
c11
...
cn kn
c2k2
[ x]k 1  [u ]1  k [u ]2  ... 
[u ]n
k
c11
c11
Pamiętajmy, że
Zatem
i
 1 dla i  1
1
[ x]k 1  [u]1
dla
k 
[a][ x]1  1c1[ x]2
[a][ x]2  1[ x]3
[a][ x]3  1[ x]4
[a][a][a][ x]1  111c1[ x]4
[a ]k [ x]1  1k c1[ x]k 1  1k c1[u ]1
Przypomnienie: jeśli [x] jest wektorem własnym, to k[x] też jest wektorem
własnym. Tylko kierunek wektora własnego ma znaczenie. Jego długość
możemy przyjąć dowolnie.
My przyjmiemy jego długość równą 1 (znormalizowany wektor własny). Dzięki
temu prawa strona ostatniego równania nie urośnie lub nie zmaleje poza
zakres liczb zmiennoprzecinkowych.
Algorytm:
1. Wybierz wektor początkowy [x0] i znormalizuj go.
[y 0 ] 
[x 0 ]
[x 0 ]
2. Pomnóż [y0] przez [a]. Otrzymany wektor znormalizuj.
[a][y 0 ]  [x1 ],
[y1 ] 
[x1 ]
[x1 ]
3. Pomnóż [y1] przez [a]. Otrzymany wektor znormalizuj.
[a][y1 ]  [x 2 ],
[y 2 ] 
[x 2 ]
[x 2 ]
Powtórz ostatnią operację m razy. Gdy m jest duże, to [ym]  [ym-1]. Wtedy
również [ym]  [u1] (wektor własny znormalizowany). Zatem z zależności:
[a][y m1 ]  [a][y m ]  [y m ]
Znajdziemy wartość własną.
Przykład:
1.
2.
1
4 1 0 

[a ]  0 2 1  x0  1
1
0 0  1
4 1 0  1  5 
 1 
0 2 1  1   3
 0.6

5

   


0 0  1 1   1
 0.2
4 1 0   1  4.6
 1 
0 2 1   0.6   1 
 0.217 

4
.
6


  


0 0  1  0.2 0.2
0.0435
Krok
[u1]

1
[1 -0.6 -0.2]
5
2
[1 0.217 0.0435]
4.6
3
[1 0.1134 -0.0183]
4.2174
4
[1 0.0526 0.0025]
4.1134
...
…………………….
……..
k
3.
4 1 0   1   4.2174 
 1 
0 2 1   0.217    0.4783   4.2174 0.1134 


 



0 0  1 0.0435  0.0435
 0.0183
4.
 1 
4 1 0   1  4.1134
0 2 1   0.1134   0.2165  4.11340.0526




 

0.0025
0 0  1  0.0183 0.0103
[1
0
0]
4
Zbieżność metody potęgowej
0.65 0.35
H 

0.35 0.65
1 = 1, 2 = 0.3
0.85 0.15
H 

0.15 0.85
Zbieżność metody zależy od
1 = 1, 2 = 0.7
1
.
2
cn kn
c2k2
[ x]k 1  [u ]1  k [u ]2  ... 
[u ]n
k
c11
c11
Przypadek, gdy [x]1 nie ma składowej w kierunku [u]1 (c1 = 0).
Przykład: Google PageRank
Każdej stronie P w sieci przypiszemy liczbę – miarę jej ważności I(P).
Załóżmy, że strona Pj ma lj odnośników. Jeśli jeden z tych odnośników prowadzi do strony Pi, to
Pj wniesie wkład do ważności Pi w wysokości I(Pj)/lj. Zatem ważność Pi będzie sumą wszystkich
wkładów stron, których odnośniki prowadzą do tej strony.
I ( Pi ) 

I ( Pj )
Pj S ( Pi )
lj
Klasyczny przykład problemu
o jajku i kurze.
Stwórzmy macierz odnośników:

H ij  
0
1
lj
oraz wektor:
Zatem:
dla Pj  S ( Pi )
dla Pj  S ( Pi )
I  [ I ( Pi )]
I  HI
Suma elementów w każdej
kolumnie wynosi 1 (chyba, że strona
odpowiadająca tej kolumnie nie ma
odnośników do Pi.
Wektor ważności stron.
I jest wektorem własnym macierzy H
o wartości własnej równej 1.
Zastosujmy metodę potęgową I k+1 = H I k
I0
I1
I2
I3
I4
...
I 60
I 61
1
0
0
0
0.0278
...
0.06
0.06
0
0.5
0.25
0.1667
0.0833
...
0.0675
0.0675
0
0.5
0
0
0
...
0.03
0.03
0
0
0.5
0.25
0.1667
...
0.0675
0.0675
0
0
0.25
0.1667
0.1111
...
0.0975
0.0975
0
0
0
0.25
0.1806
...
0.2025
0.2025
0
0
0
0.0833
0.0972
...
0.18
0.18
0
0
0
0.0833
0.3333
...
0.295
0.295
Odpowiedzmy na trzy pytania:
• Czy ciąg Ik jest zawsze zbieżny?
• Czy wektor końcowy nie zależy od wyboru wektora początkowego?
• Czy wynik zawiera informację, o którą nam chodziło?
NIE!
NIE!
NIE!
Konieczne modyfikacje.
Modyfikacja nr 1
0 0 
H 

1 0
Rozważmy przykład:
I0
I1
I2
I 3=I
1
0
0
0
0
1
0
0
Węzeł bez wyjścia
Rozwiązanie: całą kolumnę odpowiadającą takiemu węzłowi wypełniamy
liczbami 1/n. (Prawdopodobieństwo przejścia do dowolnej innej strony
jest takie samo).
0
H 
1

1 
2
1
2
 13 
I  
 23 
Modyfikacja nr 2
0
1

H  0

0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0

0
0
I0
I1
I2
I3
I4
I5
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1 = 1, 2 = 1
Co do licha???
Zbieżność metody zależy od
1
.
2
Twierdzenie Frobeniusa-Perrona.
Jeżeli macierz nxn jest macierzą pierwotną, to jedna z jej wartości własnych jest dodatnia i większa
co do modułu od pozostałych wartości własnych.
Macierz A jest macierzą pierwotną, jeśli istnieje takie k, że każdy element macierzy Ak jest dodatni.
Zmodyfikujmy naszą macierz H:
Macierz, w której wszystkie
elementy równe są 1.
1
G    H  (1   ) 1
n
Macierz Google
Prawdopodobieństwo,
z jakim poruszamy się po sieci
zgodnie z macierzą H
Prawdopodobieństwo,
z jakim wybieramy następny
węzeł losowo.
Im większe , tym większą wagę przykładamy do macierzy rzeczywistych połączeń H.
Dla macierzy Google udowodniono, że |2| = . Zatem  powinno być jak najmniejsze.
Jako kompromis, twórcy tej metody wybrali  = 0.85.
Liczba iteracji konieczna do uzyskania zbieżności – 50  100
Rozmiar macierzy 25 * 109 stron.
Obliczanie wektora I trwa około tygodnia.
Odwrotna metoda potęgowa
Służy do określenia najmniejszej wartości własnej.
[a][ x]  [ x]
[a]1[a][ x]  [a]1[ x]
[ x]  [a]1[ x]
[a]1[ x] 
1

[ x]

jest wartością własną macierzy odwrotnej [a] -1.
Zatem równanie iterowane ma postać:
[ x]k 1  [a]1[ x]k
Liczenie macierzy odwrotnej jest nieefektywne obliczeniowo. Lepsza postać tego równania:
[a][ x]k 1  [ x]k
A to już rozwiązujemy np. metodą LU.
Dekompozycja QR
Idea:
1.
2.
Macierze podobne mają te same wartości własne.
Wartości własne macierzy trójkątnej górnej to elementy leżące na przekątnej głównej.
Zatem spróbujmy przekształcić naszą macierz, na macierz podobną, która jest macierzą trójkątną górną.
Definicja: Dwie macierze kwadratowe A i B nazywamy macierzami podobnymi, jeśli istnieje taka
macierz nieosobliwa P, że zachodzi związek:
B  P 1 AP
Definicja: Macierz Q jest ortogonalna, jeśli wektory qi utworzone z jej kolumn mają długość 1 i są
wzajemnie prostopadłe. Czyli, Q = [q1, …, qn], dla każdego j mamy |qj| = 1 oraz qi*qj = 0 dla i  j.
QT Q  I
QQ T  I
Q T  Q 1
Transformacje ortogonalne nie zniekształcają obrazów (odpowiadają za rotacje i odbicia).
Podstawowa idea dekompozycji QR polega na utworzeniu iterowanej sekwencji
macierzy {[Ai]} podobnych do pierwotnej macierzy [A], które zbiegają do takiej
postaci, której wartości własne są dostępne.
Twierdzenie: Niech [A]Rnxn i niech |1| > … > | n| > 0. Wtedy sekwencja {[Ai]}
dana poniższym algorytmem zbiega do macierzy trójkątnej górnej.
Algorytm
[A]1 = [A]
for k = 1..kmax
[A]k = [Q]k[R]k
[A]k+1 = [R]k[Q]k
Zwróćmy uwagę, że
[A]k = [Q]k[R]k
[Q]kT[A]k = [Q]kT [Q]k[R]k
[R]k = [Q]kT[A]k
[A]k+1 = [R]k[Q]k
[A]k+1 = [Q]kT[A]k[Q]k
Czyli [A]k+1 i [A]k to macierze podobne.
Macierz Householdera
Macierz Householdera H zwana również refleksją (odbiciem) symetryczna i
ortogonalna macierz przekształcenia wektora, które odbija go względem
pewnej płaszczyzny.
Metoda Householdera H jest najczęściej używaną metodą dekompozycji QR.
2
[ H ]  [ I ]  T [v][v]T
[v ] [v ]
[ H ][ x]  [ x]'
Schemat dekompozycji przy pomocy macierzy Householdera
Wektor odbicia [v] musi zapewnić następujący ciąg przekształceń macierzy [A]:
1. Weźmy pierwszą kolumnę i znajdźmy wektor [v] taki, aby pierwszy wektor
(kolumna) macierzy [H]1[A] miał tylko jedną składową.
x
x

x

x
x
x
x
x
x
x
x
x
x
x 
x

x

0

0

0
x'
x'
x'
x'
x'
x'
x'
x'
x'
x'
x'

x'
[H]1[A]
[A]
2. Kolejny wektor [v] powinien zmienić drugą kolumnę macierzy [H]1[A] (tak,
by kolumna ta w nowej macierzy [H]2[H]1[A] miała tylko dwie składowe)
i jednocześnie zachować postać pierwszej kolumny [H]1[A],
 x' x' x'
 1 x' ' x' '
 0 x' x' x'
 0  x' ' x' '
2




0

0
3. I tak dalej…
x' x' x'

x' x' x'
[H]1[A]
0

0
0
0
x' ' x' '

x' ' x' '
[H]2[H]1[A]
Taką transformację zapewnia wektor:
[v]  [ai ]  ai [e]
gdzie
• wektor [ai] – jest i-tą kolumną aktualnie przekształcanej macierzy z zerami
w wierszach od 1 do i-1
• ||ai|| - jest długością (normą) wektora [ai]
• wektor [e] – wektor zerowy, którego i-ty element jest równy 1.
Przykład
1 2  1
[A]  1 4 5 
1 4 1 
2.73
[v]T [v]  [2.73 1 1] 1   9.46
 1 
1
1 2.73
[v]  1  3 0   1 
1
0  1 
2.73
7.46 2.73 2.73
[v][v]T   1 [2.73 1 1]  2.73 1
1 
 1 
2.73 1
1 
1 0 0
7.46 2.73 2.73  0.58  0.58  0.58
2
2 
   0.58 0.79  0.21
[ H ]  [ I ]  T [v][v]T  0 1 0 
2
.
73
1
1
 

[v ] [v ]
9.46 
0 0 1
2.73 1
1   0.58  0.21 0.79 
 0.58  0.58  0.58 1 2  1 1.73  5.77  2.89
[ H ][ A]   0.58 0.79  0.21 1 4 5    0
1.15
4.31 
 0.58  0.21 0.79  1 4 1   0
1.15
0.31 
[v]
[a]1
[H][a]1
1.73  5.77  2.89
[ H ][ A]   0
1.15
4.31 
 0
1.15
0.31 
 0 
[v]T [v]  [0 2.79 1.15]2.79  9.10
1.15 
 0 
0  0 
[v]  1.15  2.64 1  2.79
1.15
0 1.15 
0
0 
 0 
0
[v][v]T  2.79[0 2.79 1.15]  0 7.77 3.22
1.15 
0 3.22 1.33
0
0  1
0
0 
1 0 0
0
2
2 
  0  0.71  0.71
[ H ]  [ I ]  T [v][v]T  0 1 0 
0
7
.
77
3
.
22
 

[v ] [ v ]
9.10 
0 0 1
0 3.22 1.33 0  0.71 0.71 
0
0   1.73  5.77  2.89  1.73  5.77  2.89
1
[ H ]2 [ H ]1[ A]  0  0.71  0.71  0
1.15
4.31    0
 1.63  3.26
0  0.71 0.71   0
1.15
0.31   0
0
 2.83
H n  H 2 H1 A  R
H1H 2  H n H n  H 2 H1 A  H1H 2  H n R
H jest symetryczna zatem
Q
H n  H nT
H jest ortogonalna zatem
H nT  H n1
czyli
Hn Hn  I
Ostatecznie:
A  QR
Zatem rozłożyliśmy macierz A na macierz ortogonalną i macierz trójkątną.
[A]1 = [A]
for k = 1..kmax
[A]k = [Q]k[R]k
[A]k+1 = [R]k[Q]k
Zatem to właśnie zrobiliśmy.
Rzeczywiste wartości własne: 7.464 ; -2 ; 0.535
Przykład: widmo wibracyjne acetylenu
kCH  5.92 102 kg / s 2
kCC  15.8 102 kg / s 2
mH  1amu
mC  12amu
amu  1.6605 10 27 kg
x j  A j e i t
d 2 x1
mH
 kCH x1  kCH x2
dt 2
d 2 x2
mC
 kCH x1  (kCH  kCC ) x2  kCC x3
dt 2
d 2 x3
mC
 kCC x2  (kCH  kCC ) x3  kCH x4
2
dt
d 2 x4
mH
 kCH x3  kCH x4
2
dt
12  4.05 10 29
  3.86 10
Wartości własne :
2
2

29
32  1.39 10 29
1  5.05m
2  2.96m
3  3.03m
2c

42  1.2 1013
Wektory własne :
H -- C -- C -- H
v1  0.7  0.09 0.09  0.7
3.0
2.5
v2  0.7  0.06  0.06 0.7
2.0
1.5
v3   0.6  0.37 0.37 0.6
1.0
0.5
v4   0.5  0.5  0.5  0.5
0.0
1.0
1.5
2.0
2.5
3.0
3.5
4.0
v1  0.7  0.09 0.09  0.7
v2  0.7  0.06  0.06 0.7
v3   0.6  0.37 0.37 0.6
v4   0.5  0.5  0.5  0.5

Podobne dokumenty