Algorytmy i Struktury Danych.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Algorytmy i Struktury Danych."

Transkrypt

1 Algorytmy i Struktury Danych. Grafy Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 1 / 39

2 Plan wykładu Wyszukiwanie spójnych składowych grafu (ang. Connected components) Sortowanie topologiczne (ang. Topological sort) Cykle Eulera Algorytm Bellmana-Forda Algorytm Dijkstry Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 2 / 39

3 Spójne składowe Definicja Każda spójna składowa grafu G = (V, E) jest maksymalnym podzbiorem wierzchołków U zbioru V takim, że dla dowolnych dwóch wierzchołków z U istnieje łacz aca je ścieżka w G. Jeżeli graf składa się z jednej spójnej składowej to mówimy, że jest spójny (ang. connected). Każdy graf nieskierowany można podzielić na jedna lub większa liczbę spójnych składowych (ang. connected components). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 3 / 39

4 Spójne składowe Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 4 / 39

5 Spójne podgrafy Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 5 / 39

6 Spójne składowe - algorytm Wejście: G = (V, E) Wyjście: Spójne składowe grafu G 1 J. Hopcroft, R. Tarjan. Efficient algorithms for graph manipulation Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 6 / 39

7 Spójne składowe - algorytm Wejście: G = (V, E) Wyjście: Spójne składowe grafu G Algorytmy DFS oraz BFS wyznaczaja spójne składowe grafu G 1. 1 J. Hopcroft, R. Tarjan. Efficient algorithms for graph manipulation Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 6 / 39

8 Spójne składowe - algorytm Wejście: G = (V, E) Wyjście: Spójne składowe grafu G Algorytmy DFS oraz BFS wyznaczaja spójne składowe grafu G 1. Złożoność: O((m + n). 1 J. Hopcroft, R. Tarjan. Efficient algorithms for graph manipulation Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 6 / 39

9 Spójne składowe - algorytm Wejście: G = (V, E) Wyjście: Spójne składowe grafu G Algorytmy DFS oraz BFS wyznaczaja spójne składowe grafu G 1. Złożoność: O((m + n). Algorytm wyszukiwania spójnych składowych może zostać tak zaimplementowany, aby jego koszt zamorytzowany był: O(α(m, n)), gdzie α jest bardzo słabo rosnac a odwrotnościa funkcji Ackermana, która wynosi co najwyżej 5 dla wszystkich możliwych m oraz n. 1 J. Hopcroft, R. Tarjan. Efficient algorithms for graph manipulation Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 6 / 39

10 Spójne składowe - algorytm DFS Require: Graf (V, E), tablica visited o rozmiarze V = n Algorytm DFS: 1: for all i := 1 to n do 2: visited[i] := 0; 3: end for 4: for all i := 1 to n do 5: if visited[i] = 0 then 6: visit(i); 7: end if 8: end for Require: Graf (V, E), tablica visited o rozmiarze V = n Algorytm visit(i): 1: print(i); 2: visited[i] := 1; 3: for each neighbor j of i do 4: if visited[j] = 0 then 5: visit(j); 6: end if 7: end for Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 7 / 39

11 Spójne składowe Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 8 / 39

12 Sortowanie Topologiczne - sformułowanie problemu Wejście: Acykliczny graf skierowany G = (V, E). Wyjście: Liniowy porzadek wierzchołków z V taki, że jeśli graf G zawiera krawędź (u, v), to w tym porzadku wierzchołek u występuje przed wierzchołkiem v. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 9 / 39

13 Sortowanie Topologiczne - przykład Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 10 / 39

14 Sortowanie topologicznie Wierzchołki w każdym grafie acyklicznym skierowanym można posortować topologicznie na jeden lub więcej sposobów 7,5,3,11,8,2,9,10 7,5,11,2,3,10,8,9 3,7,8,5,11,10,9,2 5,7,11,2,3,8,9, Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 11 / 39

15 Sortowanie Topologiczne - algorytm bazujacy na DFS Wykonaj TopologicalDFS na wejściowym acyklicznym grafie skierowanym G = (V, E). Wypisz wierzchołki w porzadku malejacym ze względu na ich czas końcowy - umieszczony w tablicy final. Złożoność: O( V + E ) Require: Graf G, tablice visited oraz final o rozmiarze V = n Algorytm TopologicalDFS: 1: t := 0 2: for all i := 1 to n do 3: visited[i] := 0; final := 0 4: end for 5: for all i := 1 to n do 6: if visited[i] = 0 then 7: visit(i, final); 8: end if 9: end for Algorytm visit(i,final): 1: visited[i] := 1; 2: for each outgoing edge j of i do 3: if visited[j] = 0 then 4: visit(j, final); 5: end if 6: end for 7: t = t + 1; 8: final[i] = t; Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 12 / 39

16 Sortowanie Topologiczne - przykład Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 13 / 39

17 Sortowanie topologiczne - Algorytm 2 Metoda usuwania wierzchołków o stopniu wejściowym równym zero Wykorzystywana własność: jeśli graf jest acyklicznym grafem skierowanym, to posiada przynajmniej jeden wierzchołek o stopniu wejściowym równym zero. Idea: Dopóki graf posiada wierzchołki o stopniu wejściowym zero, znajdujemy taki wierzchołek, usuwamy go z grafu wraz ze wszystkimi wychodzacymi z niego krawędziami i umieszczamy go na liście wierzchołków posortowanych topologicznie. Jeśli w grafie pozostana jakieś wierzchołki, to graf posiada cykle i sortowania topologicznego nie można wykonać. Złożoność: O( V + E ) Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 14 / 39

18 Sortowanie topologiczne - Algorytm 2 Algorytm: G = (V, E) 1: Q - Zbiór wszystkich wierzchoków bez krawędzi wchodzacych; 2: while Q! = do 3: Usuń wierzchołek n z Q. 4: Wypisz n. 5: for all m V takiego, że (n, m) E do 6: E = E \(n, m) 7: if m nie ma już więcej krawędzi wchodzacych then 8: Wstaw m do Q. 9: end if 10: end for 11: end while 12: if E! = then 13: Graf G ma cykl. 14: end if Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 15 / 39

19 Sortowanie topologiczne - Algorytm 2, przykład Usuwamy Usuwamy Usuwamy 3 5 Usuwamy 4 5 Usuwamy 5 Sortowanie topologiczne: 1, 2, 3, 4, 5 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 16 / 39

20 Cykl Eulera Droga Eulera w grafie (skierowanym), to droga prosta, która zawiera każda krawędź grafu dokładnie jeden raz. Cykl Eulera to taki cykl w grafie, który zawiera każda krawędź grafu dokładnie jeden raz. Warunkiem istnienia cyklu sa: spójność grafu. dla grafu skierowanego należy sprawdzić, czy dla każdego wierzchołka stopień wyjściowy jest równy stopniu wejściowemu. dla grafu nieskierowanego z każdego wierzchołka musi wychodzić parzysta liczba krawędzi. Graf, który posiada cykl Eulera nazywany jest grafem eulerowskim Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 17 / 39

21 Cykl Eulera - idea Zaczynamy od dowolnego wierzchołka (na przykład tego z najmniejszym indeksem), dodajemy ten wierzchołek na stos i idziemy do następnego osiagalnego z niego wierzchołka z najmniejszym indeksem, a łacz aca go z nim drogę usuwamy. Dodajemy ten wierzchołek na stos i idziemy do następnego osiagalnego wierzchołka z najmniejszym indeksem, a łacz ac a go z nim drogę usuwamy, itd. Jeżeli nie możemy już nigdzie pójść pobieramy element ze stosu (będzie on kolejnym w cyklu) i teraz z ostatniego wierzchołka na stosie idziemy dalej. Czynność powtarzamy tak długo jak długo mamy jakieś wierzchołki na stosie. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 18 / 39

22 Cykl Eulera - przykład (1) (2) (3) (4) a b c d e a b c d e a b c d e a b c d e Stos: a,b Stos: a,b,c Stos: a,b,c, a (5) (6) (7) a b c d e a b c d e a b c d e a b c d e Stos: a,b,d Stos: a,b,d,e Stos: a,b,d,e,b Cykl: a,c Cykl: a,c Cykl: a,c Cykl: a,c,b,e,d,b,a Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 19 / 39

23 Czy można narysować następujac a kopertę bez odrywania kredki od papieru i nie rysujac dwukrotnie żadnego odcinka? Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 20 / 39

24 Graf spójny, który ma nie więcej niż dwa wierzchołki stopnia nieparzystego, ma drogę Eulera. Wniosek: w grafie reprezentujacym kopertę jest droga Eulera, ale nie ma cyklu. Spójny graf skierowany ma drogę Eulera, gdy dla każdego wierzchołka v zachodzi stopień_wyjściowy(v) = stopień_wejściowy(v), albo gdy istnieja dokładnie dwa weirzchołki v 1 i v 2 nie spełniajace tego warunku, dla których zachodzi: stopień_wejściowy(v 1 ) - stopień_wyjściowy(v 1 ) = stopień_wejściowy(v 2 )-stopień_wyjściowy(v 2 ) = 1. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 21 / 39

25 Cykl Eulera - Zastosowania Rysowanie/wycinanie figur przy pomocy plotera Problem chińskiego listonosza W roku 1962 chiński matematyk Mei-Ko Kwan sformułował następujacy problem: Listonosz roznoszac listy musi przejść przez wszystkie ulice w swojej dzielnicy co najmniej jeden raz i wrócić na pocztę. Ponieważ jest człowiekiem leniwym, chciałby mieć jak najkrótsza do przejścia trasę. Znalezienie takiej trasy jest problemem, który nazwano problemem chińskiego listonosza (ang. Chinese postman problem - CPP). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 22 / 39

26 Etykietowany graf skierowany Definicja Etykietowanym grafem skierowanym nazywamy strukturę G = (V, E, w : E Z) gdzie V to zbiór wierzchołków, E {(u, v) : u, v V} to zbiór uporzadkowanych par wierzchołków ze zbioru V, zwanych krawędziami. w : E Z jest funkcja wagi; wagi reprezentuja pewne wielkości (np. długość drogi). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 23 / 39

27 Etykietowany graf skierowany - przykład u Pytanie: Czy najkrótsza ścieżka pomiędzy wierzchołkami u i v może zawierać cykl? 1 v 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 24 / 39

28 Etykietowany graf skierowany - przykład u v Pytanie: Czy najkrótsza ścieżka pomiędzy wierzchołkami u i v może zawierać cykl? Odpowiedź: Jeśli w graf istnieje najkrótsza ścieżka z u do v, to w grafie tym również istnieje najkrótsza ścieżka z u do v, która nie zawiera cykli. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 24 / 39

29 Drzewo najkrótszych ścieżek Sformułowanie problemu Wejście: Etykietowany graf skierowany G = (V, E, w : E Z) Wierzchołek r V. Wyjście: Drzewo T o korzeniu r takie, że ścieżka z r do każdego wierzchołka u w T jest najkrótsza sieżka z r do u w grafie G. Założenie: Rozważane grafy maja wierzchołki osiagalne z wybranego wierzchołka (korzenia) r a. a Dlaczego? Wierzchołki nieosiagalne moga być usunięte w czasie liniowym Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 25 / 39

30 Czy najkrótsza ścieżka zawsze istnieje? Raczej nie... Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 26 / 39

31 Graf G bez ujemnych cykli - własności Graf G posiada drzewo najkrótszych ścieżek wtedy i tylko wtedy, gdy G nie zawiera ujemnych cykli. Usunięcie cyklu ze ścieżki nie zwiększa jej długości. Dla każdego wierzchołka u grafu G istnieje najkrótsza ścieżka z korzenia r do wierzchołka u, która nie zawiera cykli. Suma wszystkich tych n najkrótszych ścieżek (przypomnijmy, że rozmiar zbioru wierzchołków jest oznaczany przez n) jest drzewem najkrótszych ścieżek grafu G ukorzenionego w wierzchołku r. 2 Przez odległość od wierzchołka r do wierzchołka u w grafie G rozumiemy długość najkrótszej ścieżki w grafie G prowadzacej z r do u. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 27 / 39

32 Graf G bez ujemnych cykli - własności Graf G posiada drzewo najkrótszych ścieżek wtedy i tylko wtedy, gdy G nie zawiera ujemnych cykli. Usunięcie cyklu ze ścieżki nie zwiększa jej długości. Dla każdego wierzchołka u grafu G istnieje najkrótsza ścieżka z korzenia r do wierzchołka u, która nie zawiera cykli. Suma wszystkich tych n najkrótszych ścieżek (przypomnijmy, że rozmiar zbioru wierzchołków jest oznaczany przez n) jest drzewem najkrótszych ścieżek grafu G ukorzenionego w wierzchołku r. Problem znalezienia drzewa najkrótszych ścieżek jest równoważny problemowi znalezienia odległości każdego z wierzchołków u grafu G od korzenia r 2. 2 Przez odległość od wierzchołka r do wierzchołka u w grafie G rozumiemy długość najkrótszej ścieżki w grafie G prowadzacej z r do u. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 27 / 39

33 Algorytm Forda-Bellmana Algorytm służy do wyznaczania najmniejszej odległości od ustalonego wierzchołka s do wszystkich pozostałych w grafie skierowanym bez cykli o ujemnej długości. Warunek nieujemności cyklu jest spowodowany faktem, że w grafie o ujemnych cyklach najmniejsza odległość między niektórymi wierzchołkami jest nieokreślona, ponieważ zależy od liczby przejść w cyklu. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 28 / 39

34 Algorytm Forda-Bellman Dany jest graf G = (V, E, w N) i macierz A, która dla każdej pary wierzchołków u i v zawiera wagę krawędzi (u, v) (ozn. w((u, v))). Jeśli krawędź (u, v) nie istnieje, to przyjmujemy, że jej waga wynosi nieskończoność i wpisujemy. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 29 / 39

35 Algorytm Forda-Bellman Dany jest graf G = (V, E, w N) i macierz A, która dla każdej pary wierzchołków u i v zawiera wagę krawędzi (u, v) (ozn. w((u, v))). Jeśli krawędź (u, v) nie istnieje, to przyjmujemy, że jej waga wynosi nieskończoność i wpisujemy. Algorytm Forda-Bellmana w każdym kroku oblicza górne oszacowanie odległości od wierzchołka r do wszystkich pozostałych wierzchołków v (ozn. d(v)). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 29 / 39

36 Algorytm Forda-Bellman Dany jest graf G = (V, E, w N) i macierz A, która dla każdej pary wierzchołków u i v zawiera wagę krawędzi (u, v) (ozn. w((u, v))). Jeśli krawędź (u, v) nie istnieje, to przyjmujemy, że jej waga wynosi nieskończoność i wpisujemy. Algorytm Forda-Bellmana w każdym kroku oblicza górne oszacowanie odległości od wierzchołka r do wszystkich pozostałych wierzchołków v (ozn. d(v)). W pierwszym kroku przyjmujemy d(v) = w((r, v)). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 29 / 39

37 Algorytm Forda-Bellman Dany jest graf G = (V, E, w N) i macierz A, która dla każdej pary wierzchołków u i v zawiera wagę krawędzi (u, v) (ozn. w((u, v))). Jeśli krawędź (u, v) nie istnieje, to przyjmujemy, że jej waga wynosi nieskończoność i wpisujemy. Algorytm Forda-Bellmana w każdym kroku oblicza górne oszacowanie odległości od wierzchołka r do wszystkich pozostałych wierzchołków v (ozn. d(v)). W pierwszym kroku przyjmujemy d(v) = w((r, v)). Gdy stwierdzimy, że d(v) > d(u)+w((u, v)), to każdorazowo polepszamy aktualne oszacowanie i podstawiamy d(v) := d(u)+w((u, v)). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 29 / 39

38 Algorytm Forda-Bellman Dany jest graf G = (V, E, w N) i macierz A, która dla każdej pary wierzchołków u i v zawiera wagę krawędzi (u, v) (ozn. w((u, v))). Jeśli krawędź (u, v) nie istnieje, to przyjmujemy, że jej waga wynosi nieskończoność i wpisujemy. Algorytm Forda-Bellmana w każdym kroku oblicza górne oszacowanie odległości od wierzchołka r do wszystkich pozostałych wierzchołków v (ozn. d(v)). W pierwszym kroku przyjmujemy d(v) = w((r, v)). Gdy stwierdzimy, że d(v) > d(u)+w((u, v)), to każdorazowo polepszamy aktualne oszacowanie i podstawiamy d(v) := d(u)+w((u, v)). Algorytm kończy się, gdy żadnego oszacowania nie można już poprawić. Wówczas macierz d(v) zawiera najkrótsze odległości od wierzchołka r do wszystkich pozostałych. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 29 / 39

39 Algorytm Forda-Bellman Require: Macierz A dla grafu G = (V, E, w : E N), wierzchołek r 1: for each v V do 2: d(v) = w((r, v)); 3: end for 4: for k := 1 to V 2 do 5: for each v V \{r} do 6: for each u V do 7: d(v) := min{d(v), d(u)+w((u, v))} 8: end for 9: end for 10: end for Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 30 / 39

40 Algorytm Forda-Bellman - przykład * * * 2 * 0 * * 4 * 3 * * * 4 1 * * 0 * 2 5 * * * * 0 * 6 * 2 * * 1 0 k=0 d(v) = w((1, v)). Przepisujemy pierwszy wiersz macierzy wag krawędzi. k d(1) d(2) d(3) d(4) d(5) d(6) * * * a 6b 4c d Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 31 / 39

41 Algorytm Forda-Bellman - przykład * * * 2 * 0 * * 4 * 3 * * * 4 1 * * 0 * 2 5 * * * * 0 * 6 * 2 * * 1 0 k d(1) d(2) d(3) d(4) d(5) d(6) * * * a 6b 4c d k=0 d(v) = w((1, v)). Przepisujemy pierwszy wiersz macierzy wag krawędzi. a. W kroku k = 0, d(4) =, gdyż nie istnieje krawędź (1,4). Możemy jednak przejść przez wierzchołek 3 (odległość od 1 do 3 wynosi 4) a następnie do 4 (waga krawędzi[3, 4] = 2), długość drogi od 1 do 4 wynosi więc 4 2 = 2. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 31 / 39

42 Algorytm Forda-Bellman - przykład * * * 2 * 0 * * 4 * 3 * * * 4 1 * * 0 * 2 5 * * * * 0 * 6 * 2 * * 1 0 k d(1) d(2) d(3) d(4) d(5) d(6) * * * a 6b 4c d k=0 d(v) = w((1, v)). Przepisujemy pierwszy wiersz macierzy wag krawędzi. a. W kroku k = 0, d(4) =, gdyż nie istnieje krawędź (1,4). Możemy jednak przejść przez wierzchołek 3 (odległość od 1 do 3 wynosi 4) a następnie do 4 (waga krawędzi[3, 4] = 2), długość drogi od 1 do 4 wynosi więc 4 2 = 2. b. Do wierzchołka 5 możemy dojść przez 2, 3, lub 6. Wybieramy drogę o najmniejszej długości: d(2) + w(2, 5) = = 6, d(3) + w(3, 5) = = 7, d(6) + w(6, 5) = + 1. Wybieramy opcję z wierzchołkiem nr. 2. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 31 / 39

43 Algorytm Forda-Bellman - przykład * * * 2 * 0 * * 4 * 3 * * * 4 1 * * 0 * 2 5 * * * * 0 * 6 * 2 * * 1 0 k d(1) d(2) d(3) d(4) d(5) d(6) * * * a 6b 4c d k=0 d(v) = w((1, v)). Przepisujemy pierwszy wiersz macierzy wag krawędzi. a. W kroku k = 0, d(4) =, gdyż nie istnieje krawędź (1,4). Możemy jednak przejść przez wierzchołek 3 (odległość od 1 do 3 wynosi 4) a następnie do 4 (waga krawędzi[3, 4] = 2), długość drogi od 1 do 4 wynosi więc 4 2 = 2. b. Do wierzchołka 5 możemy dojść przez 2, 3, lub 6. Wybieramy drogę o najmniejszej długości: d(2) + w(2, 5) = = 6, d(3) + w(3, 5) = = 7, d(6) + w(6, 5) = + 1. Wybieramy opcję z wierzchołkiem nr. 2. c. Do wierzchołka 6 możemy dojść przez 4 (do którego dochodzimy przez 3) droga jest więc następująca: 1, 3, 4, 6 a jej długość wynosi d(4)+ w(4, 6) = = 4. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 31 / 39

44 Algorytm Forda-Bellman - przykład * * * 2 * 0 * * 4 * 3 * * * 4 1 * * 0 * 2 5 * * * * 0 * 6 * 2 * * 1 0 k=0 d(v) = w((1, v)). Przepisujemy pierwszy wiersz macierzy wag krawędzi. k d(1) d(2) d(3) d(4) d(5) d(6) * * * a 6b 4c d a. W kroku k = 0, d(4) =, gdyż nie istnieje krawędź (1,4). Możemy jednak przejść przez wierzchołek 3 (odległość od 1 do 3 wynosi 4) a następnie do 4 (waga krawędzi[3, 4] = 2), długość drogi od 1 do 4 wynosi więc 4 2 = 2. b. Do wierzchołka 5 możemy dojść przez 2, 3, lub 6. Wybieramy drogę o najmniejszej długości: d(2) + w(2, 5) = = 6, d(3) + w(3, 5) = = 7, d(6) + w(6, 5) = + 1. Wybieramy opcję z wierzchołkiem nr. 2. c. Do wierzchołka 6 możemy dojść przez 4 (do którego dochodzimy przez 3) droga jest więc następująca: 1, 3, 4, 6 a jej długość wynosi d(4)+ w(4, 6) = = 4. d. Z punktu (b.) wynika, że do wierzchołka 5 możemy dojść także poprzez wierzchołek 6. W poprzednim kroku poznaliśmy odległość do wierzchołka 6 i nie wynosi ona już nieskończoność. Zatem długość drogi do wierzchołka 5 poprzez 6: d(6)+w(6,5)=4+1=5. Jest to wartość mniejsza niż aktualna (6), więc znaleźliśmy krótsza drogę. k=3 Nic się nie zmieniło od kroku k=2. Kończymy obliczenia i mamy wektor najkrótszych dróg od wierzchołka r = 1 do wszystkich pozostałych. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 31 / 39

45 Algorytm Dijkstry Algorytm Dijkstry służy do wyznaczania najmniejszej odległości od ustalonego wierzchołka r do wszystkich pozostałych w grafie skierowanym. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 32 / 39

46 Algorytm Dijkstry Algorytm Dijkstry służy do wyznaczania najmniejszej odległości od ustalonego wierzchołka r do wszystkich pozostałych w grafie skierowanym. W odróżnieniu jednak od Algorytmu Forda-Bellmana, graf wejściowy nie może zawierać krawędzi o ujemnych wagach. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 32 / 39

47 Algorytm Dijkstry Algorytm Dijkstry służy do wyznaczania najmniejszej odległości od ustalonego wierzchołka r do wszystkich pozostałych w grafie skierowanym. W odróżnieniu jednak od Algorytmu Forda-Bellmana, graf wejściowy nie może zawierać krawędzi o ujemnych wagach. W algorytmie tym pamiętany jest zbiór Q wierzchołków, dla których nie obliczono jeszcze najkrótszych ścieżek, oraz wektor d[v] odległości od wierzchołka r do v. Poczatkowo zbiór Q zawiera wszystkie wierzchołki, a wektor d jest pierwszym wierszem macierzy zawierajacym wagi krawędzi. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 32 / 39

48 Algorytm Dijkstry - pseudokod Dopóki zbiór Q nie jest pusty wykonuj: Pobierz ze zbioru Q wierzchołek v o najmniejszej wartości d[v] i usuń go ze zbioru. Dla każdego następnika i wierzchołka v sprawdź czy d[i] > d[v]+w((v, i)), tzn. czy aktualne oszacowanie odległości do wierzchołka i jest większe od oszacowania odległości do wierzchołka v plus waga krawędzi (v, i). Jak widać z powyższego pseudokodu algorytm wybiera z kolejki Q najlżejszy wierzchołek, tzn. jest oparty o strategię zachłanna. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 33 / 39

49 Algorytm Dijkstry - przykład a b c d e a 0 10 * * 5 b * 0 1 * 2 c * * 0 4 * d 7 * 6 0 * e * * Q d(a) d(b) d(c) d(d) d(e) {b,c,d,e} 0 10 * * 5 {b,c,d} {b,c} {c} {} Najlżejszy wierzchołek jest podkreślony. Wierzchołki, dla których wyznaczono już najkrótsze ścieżki sa pogrubione Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 34 / 39

50 Wyznaczanie najkrótszej drogi w grafie dla znanej odległości Algorytm służy do wyznaczania w grafie ciagu wierzchołków u s, u s+1...u t tworzacych drogę między wierzchołkami u s i u t o długości d(u s, u t ) i jest on najczęściej używany razem z algorytmem Forda-Bellmana lub Dijkstry. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 35 / 39

51 Wyznaczanie najkrótszej drogi w grafie dla znanej odległości Algorytm służy do wyznaczania w grafie ciagu wierzchołków u s, u s+1...u t tworzacych drogę między wierzchołkami u s i u t o długości d(u s, u t ) i jest on najczęściej używany razem z algorytmem Forda-Bellmana lub Dijkstry. Po wyznaczeniu najkrótszej odległości d(u s, u t ) między para wierzchołków w grafie, można skonstruować drogę między tymi wierzchołkami taka, że suma wag jej krawędzi jest równa d(u s, u t ), tzn. możemy wyznaczyć drogę między wierzchołkami u s i u t o najkrótszej długości. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 35 / 39

52 Wyznaczanie najkrótszej drogi w grafie dla znanej odległości Algorytm służy do wyznaczania w grafie ciagu wierzchołków u s, u s+1...u t tworzacych drogę między wierzchołkami u s i u t o długości d(u s, u t ) i jest on najczęściej używany razem z algorytmem Forda-Bellmana lub Dijkstry. Po wyznaczeniu najkrótszej odległości d(u s, u t ) między para wierzchołków w grafie, można skonstruować drogę między tymi wierzchołkami taka, że suma wag jej krawędzi jest równa d(u s, u t ), tzn. możemy wyznaczyć drogę między wierzchołkami u s i u t o najkrótszej długości. Załóżmy więc, że dla danego grafu opisanego za pomoca macierzy wag krawędzi wywołaliśmy algorytm wyznaczania najkrótszej odległości od ustalonego wierzchołka (u s ) do wszystkich pozostałych i w jego wyniku otrzymaliśmy wektor odległości D. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 35 / 39

53 Wyznaczanie najkrótszej drogi w grafie dla znanej odległości Z wektora D odczytujemy najmniejsza odległość między wierzchołkami u s i u t : D[u t ] = d(u s, u t ). Po wykonaniu poniższego algorytmu na stosie otrzymamy ciag wierzchołków u s,...,u t będacych droga między wierzchołkiem u s i u t o długości d(u s, u t ). Algorytm Require: Stos S, wierzchołki poczatkowy u s i końcowy u t 1: push(s, u t ); 2: v := u t ; 3: while v! = u s do 4: znajdź wierzchołek u taki, że D(v) = D(u)+w((u, v)); 5: push(s, u); 6: v := u; 7: end while Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 36 / 39

54 Przykład * * * 2 * 0 * * 4 * 3 * * * 4 1 * * 0 * 2 5 * * * * 0 * 6 * 2 * * 1 0 Jak widać z macierzy wag graf ten ma krawędzie o ujemnych wagach, musimy więc zastosować algorytm Forda-Bellmana. W wyniku jego działania otrzymamy wektor d postaci: D[1] = 0, D[2] = 2, D[3] = 4, D[4] = 2, D[5] = 5, D[6] = 4. Załóżmy że wierzchołkiem, względem którego wyznaczać będziemy najkrótsza drogę jest wierzchołek o indeksie 1. Dlatego też D[1] = 0. Musimy też wybrać wierzchołek końcowy niech będzie to wierzchołek nr. 5. Z wektora D odczytujemy najmniejsza odległość między wierzchołkami 1 i 5, tj. D[5] = d(1, 5) = 5. Wyznaczamy drogę łacz ac a wierzchołek 1 i 5 o długości równej 5. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 37 / 39

55 Przykład, cd. Po wykonaniu pierwszej linii algorytmu otrzymamy anstępujace parametry: Stos = {5}, v = 5, D[v] = 5, u =?, D[u]+w((u, v)) =?. Poszukujemy teraz wierzchołka u. Sprawdzamy wartości D[u]+w((u, v)) tylko dla tych wierzchołków u, które sa poprzednikami wierzchołka v. W naszym przypadku poprzednikami wierzchołka 5 sa wierzchołki 2, 3 i 6. Sprawdzamy więc: D[2]+w((2, 5)) = 2+4 = 6! = D[5], D[3]+w((3, 5)) = 4+3 = 7! = D[5], oraz D[6]+w((6, 5)) = 4+1 = 5 = D[5]. Znaleźliśmy wierzchołek u = 6, wykonujemy zatem instrukcje 5 i 6 algorytmu: Stos = {5, 6}, v = 6, D[v] = 4, u =?, D[u]+w((u, v)) =?. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 38 / 39

56 Przykład, cd. Tym razem nie mamy zbyt dużego wyboru, gdyż jedynym poprzednikiem wierzchołka nr. 6 jest 4. A więc D[4]+w((4, 6)) = 2+2 = 4 = d[6], zatem m = 4. Dalej algorytm przebiega podobnie: Stos = {5, 6, 4}, v = 4, D[v] = 2, u = 3, D[u]+w((u, v)) = 4+( 2) = 4. Stos = {5, 6, 4, 3}, v = 3, D[v] = 4, u = 1, D[u]+w((u, v)) = 0+4 = 4. Tu algorytm się kończy, gdyż w następnej iteracji v = 1. A zatem droga między wierzchołkiem 1 i 5 o długości 5 jest następujaca: (1, 3, 4, 6, 5). Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 39 / 39

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 20

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 53

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Używane struktury danych: V - zbiór wierzchołków grafu, V = {1,2,3...,n} E - zbiór krawędzi grafu, E = {(i,j),...}, gdzie i, j Î V i istnieje

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy wyznaczania centralności w sieci Szymon Szylko Algorytmy wyznaczania centralności w sieci Szymon Szylko Zakład systemów Informacyjnych Wrocław 10.01.2008 Agenda prezentacji Cechy sieci Algorytmy grafowe Badanie centralności Algorytmy wyznaczania centralności

Bardziej szczegółowo

Digraf. 13 maja 2017

Digraf. 13 maja 2017 Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,

Bardziej szczegółowo

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY ERIAŁY DO WYKŁADU GRAFY Graf nieskierowany Grafem nieskierowanym nazywamy parę G = (V, E), gdzie V jest pewnym zbiorem skończonym (zwanym zbiorem wierzchołków grafu G), natomiast E jest zbiorem nieuporządkowanych

Bardziej szczegółowo

a) 7 b) 19 c) 21 d) 34

a) 7 b) 19 c) 21 d) 34 Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie

Bardziej szczegółowo

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie Algorytmy Grafowe dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie b.wozna@ujd.edu.pl Wykład 5 i 6 B. Woźna-Szcześniak (UJD) Algorytmy

Bardziej szczegółowo

Suma dwóch grafów. Zespolenie dwóch grafów

Suma dwóch grafów. Zespolenie dwóch grafów Suma dwóch grafów G 1 = ((G 1 ), E(G 1 )) G 2 = ((G 2 ), E(G 2 )) (G 1 ) i (G 2 ) rozłączne Suma G 1 G 2 graf ze zbiorem wierzchołków (G 1 ) (G 2 ) i rodziną krawędzi E(G 1 ) E(G 2 ) G 1 G 2 G 1 G 2 Zespolenie

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na

Bardziej szczegółowo

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie Algorytmy Grafowe dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie b.wozna@ujd.edu.pl Wykład 1,11,1 B. Woźna-Szcześniak (UJD) Algorytmy

Bardziej szczegółowo

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew Drzewa Las - graf, który nie zawiera cykli Drzewo - las spójny Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew Niech T graf o n wierzchołkach będący

Bardziej szczegółowo

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06

Bardziej szczegółowo

Graf. Definicja marca / 1

Graf. Definicja marca / 1 Graf 25 marca 2018 Graf Definicja 1 Graf ogólny to para G = (V, E), gdzie V jest zbiorem wierzchołków (węzłów, punktów grafu), E jest rodziną krawędzi, które mogą być wielokrotne, dokładniej jednoelementowych

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

Podstawowe własności grafów. Wykład 3. Własności grafów

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

Bardziej szczegółowo

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? DROGI i CYKLE EULERA w grafach Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? Czy można narysować podaną figurę nie odrywając ołówka od papieru

Bardziej szczegółowo

Złożoność obliczeniowa klasycznych problemów grafowych

Złożoność obliczeniowa klasycznych problemów grafowych Złożoność obliczeniowa klasycznych problemów grafowych Oznaczenia: G graf, V liczba wierzchołków, E liczba krawędzi 1. Spójność grafu Graf jest spójny jeżeli istnieje ścieżka łącząca każdą parę jego wierzchołków.

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova M. Czoków, J. Piersa 2010-12-21 1 Definicja Własności Losowanie z rozkładu dyskretnego 2 3 Łańcuch Markova Definicja Własności Losowanie z rozkładu

Bardziej szczegółowo

Zagadnienie najkrótszej drogi w sieci

Zagadnienie najkrótszej drogi w sieci L L Zagadnienie najkrótszej drogi w sieci 1 Rozważmy sieć, gdzie graf jest grafem skierowanym (digrafem) a jest funkcją określoną na zbiorze łuków. Wartość tej funkcji na łuku!"$#%'&, którą oznaczać będziemy

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Teoria grafów podstawy Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Grafy zorientowane i niezorientowane Przykład 1 Dwa pociągi i jeden most problem wzajemnego wykluczania się Dwa

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego

Bardziej szczegółowo

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 13: Teoria Grafów Gniewomir Sarbicki Literatura R.J. Wilson Wprowadzenie do teorii grafów Definicja: Grafem (skończonym, nieskierowanym) G nazywamy parę zbiorów (V (G), E(G)),

Bardziej szczegółowo

TEORIA GRAFÓW I SIECI

TEORIA GRAFÓW I SIECI TEORIA GRAFÓW I SIECI Temat nr 3: Marszruty, łańcuchy, drogi w grafach dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl tel.: 261-83-95-04, p.225/100

Bardziej szczegółowo

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 2 Przeszukiwanie grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów 3. Spójność grafu,

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

Egzaminy i inne zadania. Semestr II. Egzaminy i inne zadania. Semestr II. Poniższe zadania są wyborem zadań ze Wstępu do Informatyki z egzaminów jakie przeprowadziłem w ciągu ostatnich lat. Ponadto dołączyłem szereg zadań, które pojawiały

Bardziej szczegółowo

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii

Bardziej szczegółowo

Algorytmika Problemów Trudnych

Algorytmika Problemów Trudnych Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.

Bardziej szczegółowo

Algorytm chińskiego listonosza Katarzyna Ignaszewska SPI51. Temat: Problem chińskiego listonosza, czyli jak obejść miasto najmniejszym nakładem sił.

Algorytm chińskiego listonosza Katarzyna Ignaszewska SPI51. Temat: Problem chińskiego listonosza, czyli jak obejść miasto najmniejszym nakładem sił. Scenariusz lekcji Temat: Problem chińskiego listonosza, czyli jak obejść miasto najmniejszym nakładem sił. W roku 1962 chioski matematyk Mei-Ko Kwan zaproponował następujący problem: Listonosz roznosząc

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

5. Najkrótsze ścieżki

5. Najkrótsze ścieżki p. Definicja 5. Najkrótsze ścieżki 5.1 Odległości w grafach: definicje i własności (Długość ścieżki). Długościa ścieżki nazywamy liczbę krawędzi występujacych w tej ścieżce. Bardziej formalnie, jeżeli

Bardziej szczegółowo

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki. SPÓJNOŚĆ Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja równoważna: Graf jest spójny, gdy każde dwa wierzchołki są połączone ścieżką

Bardziej szczegółowo

Opracowanie prof. J. Domsta 1

Opracowanie prof. J. Domsta 1 Opracowanie prof. J. Domsta 1 Algorytm FLEURY'ego: Twierdzenie 6.5 G-graf eulerowski. Wtedy cykl Eulera otrzymujemy nastepująco: a) Start w dowolnym wierzchołku b) Krawędzie w dowolnej kolejności po przebyciu

Bardziej szczegółowo

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska. Grafy dla każdego dr Krzysztof Bryś brys@mini.pw.edu.pl Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska www.mini.pw.edu.pl Warszawa, 28 marca 2015 Graf składa się z elementów pewnego zbioru

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 7 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 7 1 / 43 Grafy -

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Twierdzenie 2.1 Niech G będzie grafem prostym

Bardziej szczegółowo

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 7,8,9. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 7,8,9. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie Algorytmy Grafowe dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie b.wozna@ujd.edu.pl Wykład 7,8,9 B. Woźna-Szcześniak (UJD) Algorytmy

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1B/14 Drogi w grafach Marszruta (trasa) w grafie G z wierzchołka w do wierzchołka u to skończony ciąg krawędzi w postaci. W skrócie

Bardziej szczegółowo

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Egzamin, AISDI, I termin, 18 czerwca 2015 r. Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział

Bardziej szczegółowo

Minimalne drzewa rozpinające

Minimalne drzewa rozpinające KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

Grafy co o ich rysowaniu wiedzą przedszkolaki i co z tego wynika dla matematyków

Grafy co o ich rysowaniu wiedzą przedszkolaki i co z tego wynika dla matematyków Wykłady popularne z matematyki Grafy co o ich rysowaniu wiedzą przedszkolaki i co z tego wynika dla matematyków Joanna Jaszuńska Politechnika Warszawska, 6 maja 2010 Grafy Wykłady popularne z matematyki,

Bardziej szczegółowo

Algorytmy z powracaniem

Algorytmy z powracaniem Algorytmy z powracaniem Materiały Grafem nazywamy zbiór G = (V, E), gdzie: V jest zbiorem wierzchołków (ang. vertex) E jest zbiorem krawędzi (E można też określić jako podzbiór zbioru nieuporządkowanych

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. IX Jesień 2014 1 / 26 Algorytmy zachłanne Strategia polegająca

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 1 / 42

Bardziej szczegółowo

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy

Bardziej szczegółowo

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany , 1 2 3, czas zamortyzowany zajęcia 3. Wojciech Śmietanka, Tomasz Kulczyński, Błażej Osiński rozpinajace, 1 2 3 rozpinajace Mamy graf nieskierowany, ważony, wagi większe od 0. Chcemy wybrać taki podzbiór

Bardziej szczegółowo

Laboratorium nr 7 Sortowanie

Laboratorium nr 7 Sortowanie Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę

Bardziej szczegółowo

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza 165 1) Grafy eulerowskie własnoci algorytmy 2) Problem chiskiego listonosza 166 Grafy eulerowskie Def. Graf (multigraf, niekoniecznie spójny) jest grafem eulerowskim, jeli zawiera cykl zawierajcy wszystkie

Bardziej szczegółowo

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Teoria grafów dla małolatów Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Wstęp Matematyka to wiele różnych dyscyplin Bowiem świat jest bardzo skomplikowany wymaga rozważenia

Bardziej szczegółowo

Kolorowanie wierzchołków grafu

Kolorowanie wierzchołków grafu Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,...,

Bardziej szczegółowo

Sieć (graf skierowany)

Sieć (graf skierowany) Sieci Sieć (graf skierowany) Siecia (grafem skierowanym) G = (V, A) nazywamy zbiór wierzchołków V oraz zbiór łuków A V V. V = {A, B, C, D, E, F}, A = {(A, B), (A, D), (A, C), (B, C),..., } Ścieżki i cykle

Bardziej szczegółowo

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow 9: Digrafy (grafy skierowane) Spis zagadnień Digrafy Porządki częściowe Turnieje Przykłady: głosowanie większościowe, ścieżka krytyczna Digraf (graf skierowany) Digraf to równoważny termin z terminem graf

Bardziej szczegółowo

Znajdowanie skojarzeń na maszynie równoległej

Znajdowanie skojarzeń na maszynie równoległej 11 grudnia 2008 Spis treści 1 Skojarzenia w różnych klasach grafów Drzewa Grafy gęste Grafy regularne dwudzielne Claw-free graphs 2 Drzewa Skojarzenia w drzewach Fakt Wybierajac krawędź do skojarzenia

Bardziej szczegółowo

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania

Bardziej szczegółowo

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny

Bardziej szczegółowo

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14 Algorytmy dynamiczne Piotr Sankowski - p. 1/14 Dynamiczne: drzewa wyszukiwanie wzorca w tekście spójność grafu problemy algebraiczne (FFT i inne) domknięcie przechodnie oraz dynamiczne macierze najkrótsze

Bardziej szczegółowo

Elementy teorii grafów Elementy teorii grafów

Elementy teorii grafów Elementy teorii grafów Spis tresci 1 Spis tresci 1 Często w zagadnieniach praktycznych rozważa się pewien zbiór obiektów wraz z zależnościami jakie łączą te obiekty. Dla przykładu można badać pewną grupę ludzi oraz strukturę

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku ( Rozdział 1 Grafy skierowane W tym rozdziale zajmiemy siȩ algorytmami wyszukiwania najkrótszej drogi w grafach skierowanych Każdej krawȩdzi

Bardziej szczegółowo

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których

Bardziej szczegółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Podstawowe pojęcia Definition Graf = wierzchołki + krawędzie. Krawędzie muszą mieć różne końce. Między dwoma wierzchołkami może

Bardziej szczegółowo

Wykład 4. Droga i cykl Eulera i Hamiltona

Wykład 4. Droga i cykl Eulera i Hamiltona Wykład 4. i Hamiltona Wykład 4. i Hamiltona 1 / 35 Grafy Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką

Bardziej szczegółowo

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees Dynamiczne drzewa Marian M. Kędzierski 26 listopada 2009 Plan prezentacji Wstęp 1 Wstęp Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST 2 Euler-TourTrees Operacje na ET-drzewach Rozszerzenia 3 Dynamicznaspójność

Bardziej szczegółowo

G. Wybrane elementy teorii grafów

G. Wybrane elementy teorii grafów Dorota Miszczyńska, Marek Miszczyński KBO UŁ Wybrane elementy teorii grafów 1 G. Wybrane elementy teorii grafów Grafy są stosowane współcześnie w różnych działach nauki i techniki. Za pomocą grafów znakomicie

Bardziej szczegółowo

Sieć (graf skierowany)

Sieć (graf skierowany) Sieć (graf skierowany) Siecia (grafem skierowanym) G = (V, A) nazywamy zbiór wierzchołków V oraz zbiór łuków A V V. V = {A, B, C, D, E, F}, A = {(A, B),(A, D),(A, C),(B, C),...,} Ścieżki i cykle Ciag wierzchołków

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

Siedem cudów informatyki czyli o algorytmach zdumiewajacych Siedem cudów informatyki czyli o algorytmach zdumiewajacych Łukasz Kowalik kowalik@mimuw.edu.pl Instytut Informatyki Uniwersytet Warszawski Łukasz Kowalik, Siedem cudów informatyki p. 1/25 Problem 1: mnożenie

Bardziej szczegółowo

10. Kolorowanie wierzchołków grafu

10. Kolorowanie wierzchołków grafu p. 10. Kolorowanie wierzchołków grafu 10.1 Definicje i twierdzenia Przez k-kolorowanie wierzchołków grafu G rozumiemy przyporzadkowanie każdemu wierzchołkowi grafu G jednego z k kolorów 1, 2,...,k. p.

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie

Bardziej szczegółowo

5c. Sieci i przepływy

5c. Sieci i przepływy 5c. Sieci i przepływy Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 5c. Sieci i przepływy zima 2016/2017 1 / 40 1 Definicje

Bardziej szczegółowo

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania Grafy i Grafy i 5: Rozpinające Spis zagadnień Grafy i i lasy cykle fundamentalne i własności cykli i rozcięć przestrzenie cykli i rozcięć* : zastosowanie w sieciach elektrycznych minimalne * algorytm Kruskala*

Bardziej szczegółowo

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Oznaczenia G = V, E - graf bez wag, gdzie V - zbiór wierzchołków, E- zbiór krawdzi V = n - liczba wierzchołków grafu G E = m

Bardziej szczegółowo

7. Teoria drzew - spinanie i przeszukiwanie

7. Teoria drzew - spinanie i przeszukiwanie 7. Teoria drzew - spinanie i przeszukiwanie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie

Bardziej szczegółowo

Lista 4. Kamil Matuszewski 22 marca 2016

Lista 4. Kamil Matuszewski 22 marca 2016 Lista 4 Kamil Matuszewski 22 marca 2016 1 2 3 4 5 6 7 8 9 10 Zadanie 2 Ułóż algorytm który dla danego n-wierzchołkowego drzewa i liczby k pokoloruje jak najwięcej wierzchołków tak, by na każdej ścieżce

Bardziej szczegółowo

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

Bardziej szczegółowo

Wykład 7. Algorytmy grafowe

Wykład 7. Algorytmy grafowe Wykład Algorytmy grafowe Algorytmy grafowe i podstawowe algorytmy przeszukiwania Problem Definicje i własności Reprezentacja Przeszukiwanie wszerz (Breadthirst Search) Przeszukiwanie w głąb (Depthirst

Bardziej szczegółowo