Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Algorytmika Internetu Krzysztof Diks Instytut Informatyki Uniwersytet Warszawski 2 informatyka +

Podobne prezentacje


Prezentacja na temat: "Algorytmika Internetu Krzysztof Diks Instytut Informatyki Uniwersytet Warszawski 2 informatyka +"— Zapis prezentacji:

1

2 Algorytmika Internetu Krzysztof Diks Instytut Informatyki Uniwersytet Warszawski 2 informatyka +

3 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

4 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) kroków ) 1936, Alan Turing: maszyna Turinga – model obliczeń ogólnego przeznaczenia 1947, George Dantzig: metoda sympleks informatyka + 4

5 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

6 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

7 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;

8 Lider - przykład a: x: licz:

9 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;

10 Analiza algorytmu mnożenia macierzy przez wektor Rozmiar zadania: n^2 Złożoność czasowa: Θ(n^2), n^2 mnożeń n = ; szybkość komputera 10^8 instrukcji na sekundę; czas obliczeń 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).

11 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|)

12 10,1 2,9 3,6 8,1 4,5 5,3 6,2 11,2 12,1 7,1 1,10 9,2

13 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 }

14 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);

15 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); }

16 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]);

17 Krótko o krótkiej historii Internetu 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 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 Liczba hostów w Internecie przekracza

18 Krótko o krótkiej historii Internetu 1990 ARPANET przechodzi do historii, liczba hostów przekracza Narodziny World Wide Web 1992 Liczba hostów przekracza 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

19 Jak wielki jest Internet? The Indexed Web contains at least billion pages (Sunday, 02 January, 2011). Google: about 21 billion pages. # hosts Jan Jan Jan Jul Jan Jul Jan Jul Jan Internet System Consortium Countries Total IPs Poland (21. miejsce w świecie)

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

21 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

22 Algorytm PageRank Sergiej Brin i Lary Page, 1998 Pięć pierwszych odpowiedzi na zapytanie matematyka wybranych przez Google.pl spośród kandydatów: (1) (2) (3) pl.wikipedia.org/wiki/Matematyka,pl.wikipedia.org/wiki/Matematyka (4) (5)

23 Algorytm PageRank S 1, S 2, …, S n – strony; w(S i ) – ranga (ważność), liczba rzeczywista dodatnia Żądamy, żeby Początkowo wszystkie rangi wynoszą 1/n. Rangi obliczamy iteracyjnie (proces 1):

24 Algorytm PageRank Ucieczka ze stron bez dowiązań (proces 2): K – zbiór stron bez dowiązań

25 Algorytm PageRank Porzucamy bieżące przeszukiwanie i kontynuujemy od losowej strony (proces 3):

26 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ą!!!

27 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ć:

28 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ą!!!

29 Algorytm PageRank Mnożenie przez macierz rzadką: Do każdego elementu wektora w k+1 dodaj β k. W Google za α przyjmuje się 0.85.

30 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!!!

31


Pobierz ppt "Algorytmika Internetu Krzysztof Diks Instytut Informatyki Uniwersytet Warszawski 2 informatyka +"

Podobne prezentacje


Reklamy Google