Algorytmy i Struktury Danych.
|
|
- Kamila Dudek
- 5 lat temu
- Przeglądów:
Transkrypt
1 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
2 Plan wykładu Ścieżka Eulera Cykle Eulera Algorytm Bellmana-Forda Algorytm Dijkstry Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 2 / 53
3 Ścieżka Eulera Ścieżka Eulera w grafie (skierowanym), to ścieżka (droga) prosta, która zawiera każda krawędź grafu dokładnie jeden raz. Warunkiem istnienia ścieżki sa: 1 spójność grafu. 2 dla grafu skierowanego należy sprawdzić, czy dla każdego wierzchołka, za wyjatkiem dwóch, stopień wyjściowy jest równy stopniu wejściowemu. 3 dla grafu nieskierowanego z każdego wierzchołka, za wyjatkiem dwóch, musi wychodzić parzysta liczba krawędzi. Graf, który posiada ścieżkę Eulera nazywamy grafem półeulerowskim Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 3 / 53
4 Ścieżka Eulera - przykład Graf ze ścieżka Eulera: Graf bez ścieżki Eulera: Ścieżka: 1-> ABCDE -> 3 Nie spełniony warunek 3 istnienia ścieżki Eulera Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 4 / 53
5 Cykl Eulera 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 nazywamy grafem eulerowskim Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 5 / 53
6 Ścieżka Eulera - przykład Graf bez cyklu Eulera: Graf z cyklem Eulera: Cykl 1: 1-> ABCDEF -> 1 Cykl 2: 1-> ABEDCF -> 1 Cykl 3: 1-> FCDEBA -> 1 Cykl 4: 1-> FEDCBA -> 1 Nie spełniony warunek 3 istnienia cyklu Eulera Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 6 / 53
7 Zagadki Sprawdź, w którym z poniższych grafów istnieje cykl lub droga Eulera. Jeśli w grafie istnieje cykl lub droga Eulera, to można ja narysować nie odrywajac ołówka od papieru. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 7 / 53
8 Twierdzenie Eulera, 1736 Twierdzenie Spójny graf G (nieskierowany) ma cykl Eulera wtedy i tylko wtedy, gdy stopień każdego wierzchołka w G jest parzysty. Leonhard Euler ( ) Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 8 / 53
9 Most Mostem nazywamy taka krawędź grafu, której usunięcie zwiększa liczbę spójnych składowych tego grafu. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 9 / 53
10 Wyznaczanie cyklu Eulera Do wyznaczania syklu Eulera słuzy algorytm Fleury ego Algorytm działa zarówno dla grafów skierowanych jak i nieskierowanych. Algorytm jest rekurencyjny Algorytm zakłada, że graf jest eulerowski. Algorytm Fleury ego opiera się na prostej zasadzie: aby znaleźć cykl Eulera lub ścieżkę Eulera, mosty sa ostatnimi krawędziemi, które nalezy przejść. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 10 / 53
11 Algorytm Fleury ego Warunek wstępny: Wejściowy graf jest grafem eulerowskim, czyli: jest spójny w przypadku poszukiwania ścież Eulera - posiada co najwyżej dwa wierzchołki o nieparzystym stopniu w przypadku poszukiwania cyklu Eulera - wszytkie wierzchołki musza mieć parzysty stopień Warunek startowy: W przypadku cyklu: wybierz dowolny wierzchołek W przypadku ścieżki: wybierz jeden z wierzchołków nieparzystych Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 11 / 53
12 Algorytm Fleury ego Kroki pośrednie: Na każdym kroku, jeśli jest wybór, nie wybieraj mostu występujacego w części grafu, która nie została jeszcze odwiedzona. Jednakże, jeśli jest tylko jeden wybór, to weź go. Warunek Końcowy: Kiedy nie można przechodzić już dalej, cykl (ścieżka) jest kompletna. [W przypadku cyklu, wracamy do wierzchołka wyjściowego; w przypadku ścieżki dochodzimy do drugiego wierzchołka o nieparzystym stopniu.] Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 12 / 53
13 Algorytm Fleury ego Graf eulerowski: Wybieramy wierzchołek F jak startowy Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 13 / 53
14 Algorytm Fleury ego Idziemy z F do C Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 14 / 53
15 Algorytm Fleury ego Idziemy z C do D Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 15 / 53
16 Algorytm Fleury ego Idziemy z D do A. (Można również iść z D do B, ale nie można z D do F, bo DF jest mostem) Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 16 / 53
17 Algorytm Fleury ego Idziemy z A do C. (Można również iść z A do E, ale nie można z A do B, bo AB jest mostem) Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 17 / 53
18 Algorytm Fleury ego Idziemy z C do E. Nie ma wyboru. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 18 / 53
19 Algorytm Fleury ego Idziemy z E do A. Nie ma wyboru. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 19 / 53
20 Algorytm Fleury ego Idziemy z A do B, potem z B do D i na koniec z D do F. Jednoznaczna ściezka. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 20 / 53
21 Algorytm Fleury ego Kolejne kroki algorytmu - podsumowanie. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 21 / 53
22 Algorytm Fleury ego Dany jest graf półeulerowski. Znaleźć ścieżkę Eulera. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 22 / 53
23 Algorytm Fleury ego Możemy wystartować z wierzchołka J lub wierzcholka E. Startujemy z wierzchołka J. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 23 / 53
24 Algorytm Fleury ego Z wierzchołka J mamy 5 możliwych dróg. Wszystkie sa OK. Wybieramy drogę do wierzchołka K Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 24 / 53
25 Algorytm Fleury ego Z wierzchołka K mamy 3 możliwe drogi. Wszystkie sa OK. Wybieramy drogę do wierzchołka B. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 25 / 53
26 Algorytm Fleury ego Z wierzchołka B mamy 3 możliwe drogi. Wszystkie sa OK. Wybieramy drogę do wierzchołka C. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 26 / 53
27 Algorytm Fleury ego Z wierzchołka C mamy 3 możliwe drogi. Wszystkie sa OK. Wybieramy drogę do wierzchołka L. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 27 / 53
28 Algorytm Fleury ego Z wierzchołka L mamy 3 możliwe drogi. Wszystkie sa OK. Wybieramy drogę do wierzchołka K. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 28 / 53
29 Algorytm Fleury ego Z wierzchołka K mamy tylko 1 drogę, drogę do wierzchołka H. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 29 / 53
30 Algorytm Fleury ego Z wierzchołka H mamy 3 możliwe drogi: do G, I oraz J. Nie możemy wybrać drogi z H do G, bo jest mostem. Pozostałe dwie sa Ok. Wybieramy drogę do wierzchołka J. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 30 / 53
31 Algorytm Fleury ego Z wierzchołka J mamy 3 możliwe drogi: do A, B oraz I. Nie możemy wybrać drogi z J do I, bo jest mostem. Pozostałe dwie sa Ok. Wybieramy drogę do wierzchołka B. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 31 / 53
32 Algorytm Fleury ego Z wierzchołka B do wierzcholka G prowadzi jednoznaczna droga poprzez wierzcholki A, J, I oraz H. Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 32 / 53
33 Algorytm Fleury ego Z wierzchołka G do wierzcholka E prowadzi wiele dróg. Oto jedna z nich: z G do F, potem do E, potem do D, potem do C, potem do E, potem do G, potem do L i na końcu do E. INNA DROGE PROSZE odnaleźć jako ćwiczenie!!! Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 33 / 53
34 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 9 34 / 53
35 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 9 35 / 53
36 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 9 36 / 53
37 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 9 36 / 53
38 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 9 37 / 53
39 Czy najkrótsza ścieżka zawsze istnieje? Raczej nie... Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 38 / 53
40 Drzewo najkrótszych ścieżek Graf G posiada drzewo najkrótszych ścieżek wtedy i tylko wtedy, gdy G nie zawiera ujemnych cykli. 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 najkrótszych ścieżek jest drzewem najkrótszych ścieżek grafu G ukorzenionego w wierzchołku r. 1 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 9 39 / 53
41 Drzewo najkrótszych ścieżek Graf G posiada drzewo najkrótszych ścieżek wtedy i tylko wtedy, gdy G nie zawiera ujemnych cykli. 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 najkrótszych ścieżek 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 1. 1 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 9 39 / 53
42 Richard Ernest Bellman - ( ) Twórca programowania dynamicznego (Dynamic Programming 1957) W 1979 roku otrzymał IEEE Medal of Honor za wkład w teorie sterowania i procesów decyzyjnych, szczególnie za stworzenie i zastosowanie programowania dynamicznego Członek amerykańskiej akademii Nauki i Sztuki. Więcej na wikipedia.org/wiki/ Richard_E._Bellman Źródło: uni.lodz.pl/bellman.jpeg Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 40 / 53
43 Lester Randolph Ford, junior (ur ) Syn matematyka Lester R. Forda, seniora Amerykański matematyk specjalizujacy się w algorytmach przepływu w sieci Autor algorytmu Bellmana-Forda do znajdowania najkrótszej ścieżki w grafach, które posiadaja krawędzie z ujemnymi wagami. Źródło:http: //arodrigu.webs.upv.es/ Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 41 / 53
44 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 9 42 / 53
45 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 9 43 / 53
46 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 9 43 / 53
47 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 9 43 / 53
48 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 9 43 / 53
49 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 9 43 / 53
50 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 9 44 / 53
51 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 9 45 / 53
52 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 9 45 / 53
53 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 9 45 / 53
54 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ępujaca: 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 9 45 / 53
55 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ępujaca: 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 9 45 / 53
56 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 9 46 / 53
57 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 9 46 / 53
58 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 9 46 / 53
59 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 9 47 / 53
60 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 9 48 / 53
61 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 9 49 / 53
62 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 9 49 / 53
63 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 9 49 / 53
64 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 9 50 / 53
65 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 9 51 / 53
66 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)) = = 6! = D[5], D[3] + w((3, 5)) = = 7! = D[5], oraz D[6] + w((6, 5)) = = 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 9 52 / 53
67 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)) = = 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)) = = 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 9 53 / 53
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 8 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 1 / 39 Plan wykładu
Bardziej szczegółowoWYŻ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ółowoMatematyczne 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ółowoZofia 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ółowoAlgorytm 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ółowoDigraf. 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ółowoSuma 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ółowoStruktury 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ółowoAlgorytmy 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ółowoCzy 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ółowoSpis 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ółowoMATEMATYKA 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ółowoAlgorytmy 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ółowoMatematyka 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ółowoAlgorytmiczna 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ółowoAlgorytmy 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ółowoa) 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ółowoPrzykł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ółowoTEORIA 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ółowoPoró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ółowoElementy 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ółowoReprezentacje 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ółowoGrafy 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ółowoGraf. 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ółowo5. 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ółowoTeoria 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ółowoDrzewa. 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ółowoDroga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona
Wykład 4. Droga i cykl Eulera i Hamiltona 1 / 92 Grafy Eulera Droga i cykl Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie
Bardziej szczegółowoWykł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ółowoOgó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ółowoMatematyczne 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ółowoZł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ółowoWstę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ółowoOpracowanie 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ółowo1) 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ółowoAlgorytmy 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ółowoDrzewa 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ółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Programowanie Dynamiczne dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 14 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.
Bardziej szczegółowoAlgorytmika 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ółowoG. 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ółowoTEORETYCZNE 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ółowoAlgorytmy 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ółowoAlgorytm 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ółowo6a. Grafy eulerowskie i hamiltonowskie
6a. Grafy eulerowskie i hamiltonowskie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny6a. w Krakowie) Grafy eulerowskie i hamiltonowskie
Bardziej szczegółowoAlgorytmy 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ółowoProgramowanie 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ółowoGrafy 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ółowoMatematyka 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ółowoAlgorytmy 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ółowoWykł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ółowoPodstawowe 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ółowoTeoria 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ółowoMatematyczne 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ółowoSchemat programowania dynamicznego (ang. dynamic programming)
Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten
Bardziej szczegółowoGrafem 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ółowoWstę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ółowoMatematyka 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ółowoE: 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ółowoEGZAMIN - 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ółowoProgramowanie sieciowe. Tadeusz Trzaskalik
Programowanie Tadeusz Trzaskalik 8.1. Wprowadzenie Słowa kluczowe Drzewo rozpinające Minimalne drzewo rozpinające Najkrótsza droga w sieci Wierzchołek początkowy Maksymalny przepływ w sieci Źródło Ujście
Bardziej szczegółowoTeoria grafów II. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Teoria grafów II Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Graf planarny Graf planarny Graf, który może być narysowany tak, by uniknąć przecinania się krawędzi, nazywamy grafem
Bardziej szczegółowo5c. 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ółowoEgzamin, 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ółowoMatematyka 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ółowoMetody 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ółowoWstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach
Bardziej szczegółowoSortowanie 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ółowoSPÓ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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoStruktury 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ółowoSieć (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ółowo7. 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ółowoGrafy (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ółowoPodejście zachłanne, a programowanie dynamiczne
Podejście zachłanne, a programowanie dynamiczne Algorytm zachłanny pobiera po kolei elementy danych, za każdym razem wybierając taki, który wydaje się najlepszy w zakresie spełniania pewnych kryteriów
Bardziej szczegółowoDziałanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).
Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze
Bardziej szczegółowoMarek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1
Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1 G. Wybrane elementy teorii grafów W matematyce teorię grafów klasyfikuje się jako gałąź topologii. Jest ona jednak ściśle związana z algebrą i
Bardziej szczegółowoMatematyka dyskretna - 5.Grafy.
Matematyka dyskretna - 5.Grafy. W tym rozdziale zajmiemy się grafami. Są to wykresy zawierające rozmaite informacje, przedstawiające połączenia pomiędzy różnymi swoimi elementami. Algorytmy na nich oparte
Bardziej szczegółowoSzukanie najkrótszych dróg z jednym ródłem
Szukanie najkrótszych dróg z jednym ródłem Algorytm Dijkstry Załoenia: dany jest spójny graf prosty G z wagami na krawdziach waga w(e) dla kadej krawdzi e jest nieujemna dany jest wyróniony wierzchołek
Bardziej szczegółowo6. Wstępne pojęcia teorii grafów
6. Wstępne pojęcia teorii grafów Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 6. Wstępne pojęcia teorii grafów zima 2016/2017
Bardziej szczegółowoMatematyka 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ółowoZagadnienie 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Ścieżki w grafach. Grafy acykliczne i spójne
TEORIA GRAFÓW I SIECI - ROZDZIAL II Ścieżki w grafach. Grafy acykliczne i spójne Ścieżka lub droga w grafie [digrafie] G nazywamy dowolny ciag d = (a 0, k 1, a 1,..., k n, a n ), gdzie n N {0}, a i V G,
Bardziej szczegółowoPodstawowe 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ółowoWykł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ółowoAlgorytmy 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ółowoZad. 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ółowoKURS MATEMATYKA DYSKRETNA
KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie ZADANIE DOMOWE www.akademia.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź (tylko jedna jest prawdziwa). Pytanie 1 Drogę nazywamy
Bardziej szczegółowoKolorowanie 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ółowoSieć (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ółowoDynamiczne 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ółowoEgzaminy 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ółowoWykł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ółowoPodstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów
Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Drzewa: Drzewo (ang. tree) jest strukturą danych zbudowaną z elementów, które nazywamy węzłami (ang. node).
Bardziej szczegółowoZnajdowanie wyjścia z labiryntu
Znajdowanie wyjścia z labiryntu Zadanie to wraz z problemem pakowania najcenniejszego plecaka należy do problemów optymalizacji, które dotyczą znajdowania najlepszego rozwiązania wśród wielu możliwych
Bardziej szczegółowoMinimalne 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ółowoTeoria 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ółowoWstę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ółowoWybrane podstawowe rodzaje algorytmów
Wybrane podstawowe rodzaje algorytmów 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 informatycznych
Bardziej szczegółowo