Top Banner
31

Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Mar 01, 2019

Download

Documents

nguyentuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages
Page 2: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytmika Internetu

Krzysztof Diks

Instytut Informatyki

Uniwersytet Warszawski

2 informatyka +

Page 3: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Czym jest algorytmika?

„Przepisy określiliśmy mianem algorytmów, obszar zaś

ludzkich dociekań, wiedzy i doświadczeń dotyczących

algorytmów nazwiemy algorytmiką.”

„Algorytmika to więcej niż dział informatyki. Tkwi ona w

centrum wszystkich działów informatyki”

David Harel: ALGORITHMICS. The Spirit of Computing.

(Rzecz o istocie informatyki. Algorytmika.)

informatyka + 3

Page 4: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Krótko o długiej historii algorytmiki

około 350 p.n.e.: algorytm Euklidesa

IX wiek, Muhammed Alchwarizmi: reguły dodawania,

odejmowania, mnożenia i dzielenia zwykłych liczb

dziesiętnych

1845, Lamé: analiza złożoności algorytmu Euklidesa ( co

najwyżej 4.8 log(N)/log(10) - 0.32 kroków )

1936, Alan Turing: maszyna Turinga – model obliczeń

ogólnego przeznaczenia

1947, George Dantzig: metoda sympleks

informatyka + 4

Page 5: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Krótko o długiej historii algorytmiki

1962, C.A.R. Hoare: Quicksort

1965, Edmonds: wielomianowa, a wykładnicza

złożoność

1971, Stephen Cook: NP-zupełność problemu SAT

1971, Richard Karp: NP-zupełność ośmiu kluczowych

problemów kombinatorycznych (redukcja Karpa)

1977, R. Rivest, A. Shamir, L. Adleman: RSA

2002, M. Agrawal, N. Kayal, N. Saxena: wielomianowy

test pierwszości

informatyka + 5

Page 6: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Przykłady problemów algorytmicznych

Lider

Dane: skończony ciąg liczb całkowitych a[1], a[2], …, a[n], dla pewnego n > 0.

Wynik: liczba całkowita x taka, że

|{i: a[i] = x}| > n/2, o ile takie x istnieje; w przeciwnym przypadku dowolny element z ciągu a

Rozmiar zadania: n – długość ciągu

Page 7: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Lider x := pierwszy element ciągu; licz := 1;

while nie koniec ciągu do {

y := kolejny element ciągu;

if licz = 0 then

{ x := y; licz := 1}

else

if x = y then

licz := licz +1

else licz := licz – 1

}

return x;

Page 8: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Lider - przykład

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

a: 3 1 2 3 3 2 3 3 1 3 3 3 2 2 2 2 2

x: 3 3 2 2 3 3 3 3 3 3 3 3 3 3 3 3 2

licz:1 0 1 0 1 0 1 2 1 2 3 4 3 2 1 0 1

Page 9: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Mnożenie macierzy przez wektor Dane: liczba naturalna n > 0, macierz rzeczywista

A[1..n,1..n], wektor rzeczywisty x[1..n]

Wynik: wektor y[1..n] = Ax, gdzie

y[i] = A[i,1]*x[1] + A[i,2]*x[2] + … + A[i,n]*x[n]

Algorytm Macierz_x_Wektor::

for i := 1 to n do{

y[i] := 0;

for j := 1 to n do

y[i] := y[i] + A[i,j]*x[j]

}

return y;

Page 10: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Analiza algorytmu mnożenia macierzy przez wektor

Rozmiar zadania: n^2

Złożoność czasowa: Θ(n^2), n^2 mnożeń

n = 100 000 000; szybkość komputera 10^8 instrukcji na sekundę; czas obliczeń - 100 000 000 sekund ≈ 1600 dni

Do zapamiętania macierzy: 8*10^16 bajtów

Niech Nz(A) będzie liczbą niezerowych elementów w A.

Wówczas liczba mnożeń wynosi Nz(A).

Page 11: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Silnie spójne składowe Dane: G=(V,E) – graf skierowany.

Wynik: funkcja s: V {1,…,|V|} taka, że dla każdej pary

węzłów u, v, s(u) = s(v) wtedy i tylko wtedy, gdy istnieją ścieżki w grafie G z u do v i z v do u.

Możliwe reprezentacje grafu:

- macierz sąsiedztwa: A[1..|V|,1..|V|], A[u,v] є {0,1}, A[u,v] = 1 (u,v) є E

rozmiar: Θ(|V|^2)

- listy sąsiedztwa: L[1..|V|], L[u] – lista węzłów, do których prowadzą krawędzie z u

rozmiar: Θ(|V|+|E|)

Page 12: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

10,1

2,9

3,6

8,1

4,5

5,3

6,2

11,2

12,1

7,1

1,10

9,2

Page 13: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Silnie spójne składowe – faza I W_przód(v: węzeł){

ost_nr := ost_nr + 1; nr[v] := ost_nr; // ost_nr – ostatnio nadany // numer

wezly[ost_nr] := v; // porządkowanie węzłów według numerów

for each u – węzeł na liście w przód węzła v do

if nr[u] = 0 then // nr[u] = 0 oznacza, że węzeł nie został

// odwiedzony

W_przód(u);

w_poddrzewie[v] := ost_nr – nr[v] + 1 // rozmiar //poddrzewa w przód

}

Page 14: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Silnie spójne składowe – faza I

Przeszukiwanie w przód::

ost_nr := 0;

for each węzeł v do nr[v] := 0;

for each węzeł v do

if nr[v] = 0 then W_przód(v);

Page 15: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Silnie spójne składowe – faza II

W_tył(v: węzeł, id_s: 1..|V| ){ // id_s – id aktualnie // wykrywanej składowej

s[v] := id_s;

for each węzeł u na liście w tył węzła v do

if ( (s[u] = 0) // u nie był jeszcze odwiedzony

AND // oraz

(nr[id_s] < nr[u] < nr[id_s]+w_poddrzewie[id_s])) // jest w poddrzewie id_s

then W_tył(u, id_s);

}

Page 16: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Silnie spójne składowe – faza II

Przeszukiwanie w tył::

for each węzeł v do s[v] := 0; // s[v] = 0 oznacza, że // v nie był odwiedzony

for i := 1 to |V| do

if s[wezly[i]] = 0 then

W_tył(wezly[i], wezly[i]);

Page 17: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Krótko o krótkiej historii Internetu

1969 Powstaje ARPANET (Stanford Research Institute, UCLA, UC Santa Barbara, the University of Utah); pierwszy komunikat przesłany z UCLA do SRI

1974 Transmission Control Protocol

1975 Początki Microsoftu

1976 Unix; pierwszy e-mail wysłany przez królową Elżbietę

1979 Powstaje Usenet (matka grup dyskusyjnych)

1981 Pojawia się IBM PC

1982 Narodziny nazwy „Internet”; protokól TCP/IP

1987 Liczba „hostów” w Internecie przekracza 10 000

1989 Liczba „hostów” w Internecie przekracza 100 000

Page 18: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Krótko o krótkiej historii Internetu 1990 ARPANET przechodzi do historii, liczba „hostów” przekracza

300 000

1991 Narodziny World Wide Web

1992 Liczba „hostów” przekracza 1 000 000

1993 Pojawia się Mosaic, pierwsza graficzna przeglądarka

1994 Powstaje Netscape, pojawia się Yahoo

1995 Powstaje wyszukiwarka AltaVista; Internet Explorer

1998 Pojawia się Google

1999 Odpalony zostaje Napster

2000 Udostępniony zostaje komunikator Gadu-Gadu

2001 Serwis gier Kurnik

2004 Start serwisu Facebook

2006 Narodziny Naszej-klasy

Page 19: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Jak wielki jest Internet?

The Indexed Web contains at least 13.16 billion pages (Sunday, 02

January, 2011).

Google: about 21 billion pages.

# hosts

Jan 2010 732 740 444

Jan 2009 625 226 456

Jan 2008 541 677 360

Jul 2007 489 774 269

Jan 2007 433 193 199

Jul 2006 439 286 364

Jan 2006 394 991 609

Jul 2005 353 284 187

Jan 2005 317 646 084

Internet System Consortium

Countries Total IPs

240 3 300 466 944

Poland 16 731 391 (21. miejsce w świecie)

http://www.domaintools.com

Page 20: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Graf WWW (A. Broder et al. - 9th WWW Conference, 2000)

Page 21: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Kilka podstawowych problemów algorytmicznych związanych z siecią WWW

-wyszukiwanie i składowanie stron (zawartości)

-indeksowanie

-przetwarzania zapytań -odpowiadanie na zapytania w sposób zadowalający użytkownika -zgłębianie i analiza sieci WWW

Page 22: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank Sergiej Brin i Lary Page, 1998

Pięć pierwszych odpowiedzi na zapytanie „matematyka” wybranych przez Google.pl spośród 4 970 000 kandydatów:

(1) www.matematyka.org,

(2) www.matematyka.pisz.pl,

(3) pl.wikipedia.org/wiki/Matematyka,

(4) www.matematyka.org,

(5) www.math.edu.pl.

Page 23: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

S1, S2, …, Sn – strony;

w(Si) – ranga (ważność), liczba rzeczywista dodatnia

Żądamy, żeby

Początkowo wszystkie rangi wynoszą 1/n. Rangi obliczamy iteracyjnie (proces 1):

Page 24: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

„Ucieczka” ze stron bez dowiązań (proces 2):

K – zbiór stron bez dowiązań

Page 25: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

Porzucamy bieżące przeszukiwanie i kontynuujemy od

losowej strony (proces 3):

Page 26: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

Związek procesu iteracyjnego z mnożeniem macierzy przez wektor.

Macierz H opisuje sieć W

Wówczas proces 1 możemy zapisać jak następuje:

H jest macierzą rzadką!!!

Page 27: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

Proces 2 uwzględnia fakt, że są strony nie zawierające

żadnych dowiązań.

W macierzy H kolumny odpowiadające takim stronom

zawierają same 0.

Z takich stron do dalszego przeszukiwania wybieramy

dowolną stronę z prawdopodobieństwem 1/n.

W podejściu macierzowym wystarczy zatem zastąpić

w macierzy H wszystkie kolumny zawierające same 0

przez kolumny posiadające na każdej pozycji wartość 1/n.

Oznaczmy tak powstałą macierz przez S.

Wówczas proces 2 ma postać:

Page 28: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

Proces 3 to zmodyfikowany proces 2, w którym

z prawdopodobieństwem α kontynuujemy przeszukiwanie

sieci z danej strony, a z prawdopodobieństwem (1 – α)

przechodzimy do losowej strony.

Oznacza to następującą modyfikację macierzy S: każdą

pozycję macierzy S mnożymy przez α i dodajemy do tego

(1 – α)/n.

Tak otrzymaną macierz oznaczmy przez G.

Proces 3 w zapisie macierzowym:

Uwaga: G nie jest macierzą rzadką!!!

Page 29: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Algorytm PageRank

Mnożenie przez macierz rzadką:

Do każdego elementu wektora wk+1 dodaj βk.

W Google za α przyjmuje się 0.85.

Page 30: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages

Podsumowanie

Lider – analiza ruchu pakietów w sieci

Mnożenie macierzy przez wektor – ustalanie ważności stron

Silnie spójne składowe – analiza struktury Internetu

Wiele problemów i ich rozwiązań czeka na swoich odkrywców – może to będziesz Ty!!!

Page 31: Algorytmika Internetu - flash.wwsi.edu.plflash.wwsi.edu.pl/wwsivideo/iplus/pdf/10_03_11_kdiks.pdf · Jak wielki jest Internet? The Indexed Web contains at least 13.16 billion pages