🔗 PageRank
Pierwotny algorytm rankingowy Google: wynik strony to (1−d)/N plus d razy wkład linków przychodzących. Obserwuj zbieżność metody potęgowej — albo symuluj losowego surfera, który dociera do tego samego rozkładu stacjonarnego.
O tej symulacji
Ta symulacja wizualizuje PageRank, algorytm, którego założyciele Google użyli do rankingowania stron internetowych według ważności. Budujesz skierowany graf stron i odnośników, a następnie obserwujesz, jak wyniki rankingu zbiegają albo przez iterację potęgową (wielokrotne stosowanie wzoru PageRank do całego wektora naraz), albo przez losowego surfera, który klika odnośniki i sporadycznie teleportuje się. Współczynnik tłumienia d (domyślnie 0,85) kontroluje, ile rangi płynie wzdłuż odnośników, a ile „wycieka” jako losowa teleportacja, a wiszące węzły (strony bez odnośników wychodzących) rozdzielają swoją rangę równomiernie, dzięki czemu suma zawsze wynosi 1.
🔬 Co przedstawia
Każdy węzeł to strona, której ranga p jest wielokrotnie aktualizowana według p ← (1−d)/N + d·Mp, gdzie M koduje strukturę odnośników, a N to liczba stron. Promień węzła rośnie wraz z jego rangą, wiszące węzły są rysowane na czerwono, a wstawka zbieżności przedstawia logarytm zmiany L1 na iterację, dzięki czemu widać, jak proces zbliża się do rozkładu stacjonarnego.
🎮 Jak korzystać
Wybierz predefiniowany układ (Podręcznikowy, Zlew rangi, Przykład Brina-Page'a, Graf gwiazda) lub zbuduj własny za pomocą narzędzi Dodaj węzeł, Rysuj krawędź i Usuń; przeciągaj węzły, by zmienić układ. Przełączaj między trybem Iteracja potęgowa a Losowy surfer, dostosuj suwak Tłumienie (0,5–0,95) i Prędkość, a następnie naciśnij Krok dla jednej iteracji lub Autoodtwarzanie, by obserwować zbieganie. Panel statystyk pokazuje liczbę węzłów/krawędzi, bieżące tłumienie, liczbę iteracji, zmianę L1, sumę rang, najwyżej ocenianą stronę oraz liczbę wiszących węzłów.
💡 Czy wiesz, że?
PageRank matematycznie jest łańcuchem Markowa: długoterminowa częstość odwiedzin losowego surfera na każdej stronie to dokładnie jej wynik PageRank. Dlatego dwa tryby w tej symulacji — iteracja potęgowa na wektorze rang oraz symulacja rzeczywistego losowego wędrowca — zbiegają do tych samych liczb.
Najczęściej zadawane pytania
Czym jest PageRank i dlaczego był ważny?
PageRank to algorytm opracowany przez Larry'ego Page'a i Sergeya Brina, który oceniał strony internetowe, traktując odnośnik ze strony A do strony B jako „głos” na B, ważony własną ważnością A. Pozwolił Google rankingować wyniki wyszukiwania według pozycji strony w ogólnej strukturze odnośników sieci, a nie tylko dopasowania słów kluczowych, co było głównym powodem, dla którego jego wyniki wydawały się trafniejsze niż w wcześniejszych wyszukiwarkach.
Jak działa współczynnik tłumienia d?
Współczynnik tłumienia, zwykle ustawiony na 0,85, to prawdopodobieństwo, że losowy surfer nadal podąża za odnośnikami zamiast skoczyć na losową stronę. We wzorze aktualizacji p ← (1−d)/N + d·Mp, składnik (1−d)/N rozprowadza niewielką bazową rangę na każdą stronę („teleportacja”), podczas gdy składnik d·Mp przenosi rangę wzdłuż rzeczywistych odnośników. Bez tłumienia ranga mogłaby zostać uwięziona na zawsze w pętlach lub zlewach; z nim proces jest gwarantowany zbiegać.
Czym jest iteracja potęgowa i dlaczego zbiega?
Iteracja potęgowa wielokrotnie mnoży wektor rang przez macierz odnośników (z domieszką tłumienia i teleportacji), aż wektor przestaje się znacząco zmieniać. Działa to, ponieważ aktualizacja jest operatorem liniowym z unikalnym dominującym wektorem własnym — stacjonarnym rozkładem PageRank — więc wielokrotne stosowanie prowadzi dowolny wektor startowy w jego stronę. Odczyt zmiany L1 symulacji i wykres zbieżności pokazują tę malejącą różnicę między kolejnymi iteracjami.
Co dzieje się z wiszącymi węzłami lub zlewami rangi?
Wiszący węzeł to strona bez odnośników wychodzących, więc w innym przypadku „uwięziłaby” każdą rangę, która do niej wpływa. Symulacja radzi sobie z tym, biorąc całkowitą rangę posiadaną przez wszystkie wiszące węzły i rozdzielając ją równomiernie na każdą stronę w każdej iteracji, co utrzymuje sumę rang równą 1 i zapobiega cichemu znikaniu rangi. Predefiniowany układ „Zlew rangi” demonstruje mały klaster stron, który w innym przypadku pochłaniałby rangę bez tłumienia.
Jak losowy surfer odnosi się do iteracji potęgowej?
Model losowego surfera symuluje rzeczywistego wędrowca, który w każdym kroku podąża za losowym odnośnikiem wychodzącym z prawdopodobieństwem d lub teleportuje się na jednostajnie losową stronę z prawdopodobieństwem 1−d. Po wielu krokach ułamek czasu spędzonego na każdej stronie zbiega do tego samego rozkładu, który iteracja potęgowa oblicza analitycznie, ponieważ oba opisują ten sam leżący u podstaw łańcuch Markowa. Ta symulacja pozwala porównać oba podejścia: iteracja potęgowa zbiega w kilku krokach, podczas gdy losowy surfer potrzebuje znacznie więcej odwiedzin, zanim jego empiryczne częstości się ustabilizują.