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

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

Download "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"

Transkrypt

1 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 Grafowe / 43

2 Spis treści Algorytmy Zachłanne Grafy z wagami 3 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

3 Algorytmy zachłanne Algorytmy Zachłanne Algorytmy zachłanne stosowane do rozwiazywania problemów optymalizacyjnych, w których osiagnięcie optymalnego rozwiazania wymaga podejmowania wielu decyzji. Algorytm zachłanny przy podejmowaniu jednej z wielu możliwych decyzji zawsze wykonuje działanie, które wydaje się w danej chwili najkorzystniejsze. Algorytm zachłanny wybiera lokalnie optymalna możliwość w nadziei, że doprowadzi ona do globalnie optymalnego rozwiazania (działa zachłannie) Algorytmy zachłanne nie zawsze prowadza do optymalnych rozwiazań. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 3 / 43

4 Algorytmy Zachłanne Problem wyboru zajęć Problem wyboru zajęć, to problem przydzielenia dostępu do zasobu wykorzystywanego podczas wykonywania pewnych zajęć. Założenia: Niech będzie dany zbiór proponowanych zajęć S = {,..., n}, do których ma być przydzielona sala wykładowa (zasoby), w której może się odbywać w danej chwili tylko jedno z tych zajęć. Każde zajęcie ma swój czas rozpoczęcia s i oraz czas zakończenia f i takie, że s i f i. Jeżeli zajęcie o numerze i zostanie wytypowane, to zajmuje zasób [s i, f i ). Zajęcia o numerach i oraz j sa zgodne, jeśli [s i, f i ) [s j, f j ) = 0 Problem: Wyznaczyć największy podzbiór parami zgodnych zajęć. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 4 / 43

5 Algorytmy Zachłanne Jak działa algorytm wyczerpujacy (naiwny)? Generujemy wszystkie podzbiory zbioru zajęć Wybieramy te podzbiory, które sa parami zgodne Wybieramy ten podzbiór, który ma najwięcej elementów Obserwacja: Algorytm wyczerpujacy ma złożoność O( n ) B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 5 / 43

6 Algorytmy Zachłanne Algorytm zachłanny: Greedy-Activity-Selector Dane wejściowe: tablice s (czasów rozpoczęcia) i f (czasów zakończenia) oraz rozmiar tablic n. Założenie:, że zajęcia sa posortowane ze względu na czas zakończenia. Require: Greedy-Activity-Selector(s,f,n) : A := {} : j := 3: for i := to n do 4: if s i f j then 5: A := A {i} 6: j := i 7: end if 8: end for 9: return A Zbiór A zawiera wybrane zajęcia, a zmienna j zawiera numer ostatnio dodanego do A zajęcia. Zajęcia sa rozpatrywane w porzadku rosnacego czasu zakończenia, zatem f j jest zawsze największym czasem zakończenia zajęcia należacego do A. W wierszach - wybieramy zajęcie, zbiór {} staje się wartościa zmiennej A, a zmiennej j przypisujemy numer tego zajęcia. W wierszach 3-8 rozpatrywane sa wszystkie zajęcia; zajęcie zostaje dołaczone, jeżeli jest zgodne ze wszystkimi dołaczonymi dotychczas zajęciami. Aby stwierdzić, czy zajęcie i jest zgodne z każdym zajęciem ze zbioru A, wystarczy sprawdzić czy jego czas rozpoczęcia s i nie jest wcześniejszy niż czas zakończenia f j zajęcia ostatnio dodanego do A. Jeśli zajęcie i jest zgodne, to w wierszach 5-6 zostaje ono dodane do zbioru A oraz jest aktualizowana wartość j. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 6 / 43

7 Algorytmy Zachłanne Algorytm zachłanny: Greedy-Activity-Selector Zakładajac, że dane wejściowe sa uporzadkowane rosnaco według czasów zakończenia zajęć, Greedy-Activity-Selector wyznacza maksymalny podzbiór zajęć n elementowego zbioru S w czasie Θ(n). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 7 / 43

8 Algorytmy Zachłanne Algorytm zachłanny: Greedy-Activity-Selector Zakładajac, że dane wejściowe sa uporzadkowane rosnaco według czasów zakończenia zajęć, Greedy-Activity-Selector wyznacza maksymalny podzbiór zajęć n elementowego zbioru S w czasie Θ(n). Zajęcie wybrane przez Greedy-Activity-Selector ma zawsze najwcześniejszy czas zakończenia wśród zajęć, które moga być dołaczone bez zakłócenia zgodności zbioru A. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 7 / 43

9 Algorytmy Zachłanne Algorytm zachłanny: Greedy-Activity-Selector Zakładajac, że dane wejściowe sa uporzadkowane rosnaco według czasów zakończenia zajęć, Greedy-Activity-Selector wyznacza maksymalny podzbiór zajęć n elementowego zbioru S w czasie Θ(n). Zajęcie wybrane przez Greedy-Activity-Selector ma zawsze najwcześniejszy czas zakończenia wśród zajęć, które moga być dołaczone bez zakłócenia zgodności zbioru A. Wybór jest zachłanny ponieważ pozostawia możliwie najwięcej swobody przy wyborze pozostałych zajęć. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 7 / 43

10 Algorytmy Zachłanne Algorytm zachłanny: Greedy-Activity-Selector Zakładajac, że dane wejściowe sa uporzadkowane rosnaco według czasów zakończenia zajęć, Greedy-Activity-Selector wyznacza maksymalny podzbiór zajęć n elementowego zbioru S w czasie Θ(n). Zajęcie wybrane przez Greedy-Activity-Selector ma zawsze najwcześniejszy czas zakończenia wśród zajęć, które moga być dołaczone bez zakłócenia zgodności zbioru A. Wybór jest zachłanny ponieważ pozostawia możliwie najwięcej swobody przy wyborze pozostałych zajęć. Wybór na każdym kroku zajęcia, które ma najwcześniejszy czas zakończenia wśród zajęć, które moga być dołaczone do zbioru maksymalizuje ilość nie zajętego czasu po jego dokonaniu. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 7 / 43

11 Algorytmy Zachłanne Strategia zachłanna: przykład Źródło: Cormen T.H., Leiserson Ch.E., Rivest R.L. Wprowadzenie do algorytmów. WNT, 997 i późniejsze. Dane sa zajęcia: s i f i Porzadkujemy zajęcia ze względu na czas zakończenia f f... f n i s i f i B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 8 / 43

12 Algorytmy Zachłanne Strategia zachłanna: przykład i s_i f_i rozwiązanie B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 9 / 43

13 Algorytmy Zachłanne Charakterystyczne cechy problemów poddajacych się strategii zachłannej optymalna podstruktura - optymalne rozwiazanie jest funkcja optymalnych rozwiazań podproblemów. Na przykład dla problemu wyboru zajęć własność optymalnej podstruktury polega na tym, że: jeżeli optymalne rozwiazanie A tego problemu rozpoczyna się od zajęć o numerze, to A = A {} jest optymalnym rozwiazaniem problemu optymalnego wyboru zajęć dla zbioru S = {i S : s i f }. własność wyboru zachłannego - za pomoca lokalnie optymalnych (zachłannych) wyborów można uzyskać globalnie optymalne rozwiazanie. W algorytmie zachłannym wybory sa podejmowane jako najlepsze (z punktu widzenia zadania) w danej chwili. Wybory podejmowane w algorytmie zachłannym nie sa zależne od wyborów przeszłych. Można formalnie udowodnić (stosujac metodę indukcji), że dany problem ma własność wyboru zachłannego. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 0 / 43

14 Algorytmy Zachłanne Problem przydziału zajęć do minimalnej liczby sal Problem: Dany jest zbiór zajęć, które maja się odbyć w pewnej liczbie sal wykładowych. Należy wyznaczyć taki przydział zajęć do sal, aby liczba użytych sal była najmniejsza. Metoda zachłanna rozwiazuj aca ten problem: Niech będzie dany zbiór zajęć S =,..., n, do których ma być przydzielona sala wykładowa (zasoby), w której może się odbywać w danej chwili tylko jedno z tych zajęć. Każde zajęcie ma swój czas rozpoczęcia s i oraz czas zakończenia f i takie, że s i f i. Jeżeli zajęcie o numerze i zostanie wytypowane, to zajmuje zasób [s i, f i ). Zajęcia o numerach i oraz j sa zgodne jeśli [s i, f i ) [s j, f j ) = 0. Niech zajęcia w S będa uporządkowane niemalejąco ze względu na ich czas rozpoczęcia; Jeżeli znajda się dwa zajęcia i oraz j takie, że s i = s j, to wówczas pierwsze będzie to zajęcie, które ma dłuższy czas trwania. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

15 Algorytmy Zachłanne Algorytm: GREEDY-ROOM-SELECTOR Dane wejściowe: tablice s (czasów rozpoczęcia) i f (czasów zakończenia) oraz rozmiar tablic n. Założenie:, że zajęcia sa posortowane ze względu na czas rozpoczęcia. Require: Greedy-Room-Selector(s,f) : k := : A := {,,..., length[s]} 3: while A do 4: p[k] := Greedy Selector(s, f ) 5: A := A p[k] 6: if A then 7: k := k + 8: end if 9: end while 0: return k Zadaniem procedury Greedy-Selector jest wybranie ze zboru S podzbioru zawierajacego wszystkie parami zgodne zajęcia, wśród których jest zajęcie nr. Działanie tej procedury jest analogiczne do działania procedury Greedy-Activity-Selector. Różnica polega na tym, że Greedy-Selector pobiera zajęcia uporzadkowane zgodnie z czasem ich rozpoczęcia, a Greedy-Activity-Selector pobiera zajęcia uporzadkowane zgodnie z czasem ich zakończenia. Złożoność Θ(n ) B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

16 Algorytmy Zachłanne Algorytm: GREEDY-ROOM-SELECTOR - Uwagi Liczba sal wyznaczona Greedy-Room-Selector jest zawsze najmniejsza. Wybór jest zachłanny ponieważ pozostawia w danej Sali minimalna ilość niewykorzystanego czasu. Twierdzenie: Algorytm Greedy-Room-Selector generuje optymalne rozwiazanie problemu przydziału zajęć do jak najmniejszej liczby sal. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 3 / 43

17 Algorytmy Zachłanne Problem wydawania reszty za pomoca jak najmniejszej liczby monet Problem: Mamy resztę R i N monet o nominałach o określonych wartościach całkowitych. Monet o określonym nominale jest nieograniczona liczba. Należy podać jak najmniejsza ilość monet potrzebna do wydania reszty. Przykład: Wydać 98 PLN, dysponujac nominałami: 50, 0, 0, 5,,. Rozwiazanie: Porzadkujemy nominały malejaco ze względu na ich wartości. Wydajemy następujaco: 50 - pozostało pozostało pozostało pozostało 3 - pozostało - pozostało 0 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 4 / 43

18 Algorytmy Zachłanne Algorytm: GREEDY-GIVE-CHANGE Założenie: c jest uporzadkowan a malejaco tablica nominałów, sum jest reszta do wydania, k jest liczba nominałów różnego rodzaju. GREEDY-GIVE-CHANGE (sum,c,k) : for i := 0 to k do : if (sum div c[i]) 0 then 3: change[i] := sum div c[i] 4: sum := sum mod c[i] 5: else 6: change[i] := 0 7: end if 8: end for 9: return change Do tablicy change wpisujemy największa możliwa liczbę nominału c k > c k >... > c 0. Jeżeli jakiegoś nominału nie można użyć do wydania określonej reszty, tzn. nie jest spełniony warunek (sum div c[i])!= 0, to do tablicy change wpisywana jest wartość zero - wiersz 6 algorytmu. Złożoność Θ(n). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 5 / 43

19 Algorytmy Zachłanne Problem wydawania reszt - uwagi Istnieja zbiory nominałów, dla których podany algorytm nie daje optymalnego rozwiazania. Przykład : Wydać 0PLN za pomoca nominałów, 5 i 6. Rozwiazanie algorytmu zachłannego: , czyli 5 monet. Rozwiazanie optymalne: Przykład : Wydać 66 PLN za pomoca nominałów 50, 0 i. Rozwiazanie algorytmu zachłannego: *, czyli 7 nominałów. Rozwiazanie optymalne: 3* 0 + 6*, czyli 9 nominałów. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 6 / 43

20 Grafy z wagami Etykietowany graf skierowany Definicja Etykietowanym grafem skierowanym nazywamy strukturę G = (V, E, w : E R) 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 R jest funkcja wagi; wagi reprezentuja pewne wielkości (np. długość drogi). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 7 / 43

21 Grafy z wagami Etykietowany graf skierowany - przykład F D B 3-3 E C 3 Macierz sasiedztwa: A B C D E F A B C D E F A B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 8 / 43

22 Grafy z wagami Etykietowany graf nieskierowany Definicja Etykietowanym grafem nieskierowanym nazywamy strukturę G = (V, E, w : E R) gdzie V to zbiór wierzchołków, E {{u, v} : u, v V } to zbiór par wierzchołków ze zbioru V, zwanych krawędziami. w : E R jest funkcja wagi; wagi reprezentuja pewne wielkości (np. długość drogi). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 9 / 43

23 Grafy z wagami Etykietowany graf skierowany - przykład F D B 3-3 E C 3 Macierz sasiedztwa: A B C D E F A B C D E F A B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 0 / 43

24 Definicja Drzewem rozpinajacym grafu G nazywamy spójny i acykliczny podgraf grafu G zawierajacy wszystkie jego wierzchołki. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

25 Definicja Drzewem rozpinajacym grafu G nazywamy spójny i acykliczny podgraf grafu G zawierajacy wszystkie jego wierzchołki. Twierdzenie Każdy graf spójny zawiera drzewo rozpinajace. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

26 Definicja Drzewem rozpinajacym grafu G nazywamy spójny i acykliczny podgraf grafu G zawierajacy wszystkie jego wierzchołki. Twierdzenie Każdy graf spójny zawiera drzewo rozpinajace. Twierdzenie W grafie spójnym G = (V, E) krawędź e E jest krawędzia cięcia wtedy i tylko wtedy, gdy e należy do każdego drzewa rozpinajacego grafu G. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

27 Drzewa rozpinajace o minimalnej wadze Jeżeli mamy do czynienia z grafem z funkcja wagi, to najczęściej interesuje nas znalezienie drzewa rozpinajacego o minimalnej wadze, tzn., drzewa z najmniejsza suma wag jego krawędzi. Aby znaleźć drzewo o żadanych własnościach można zastosować dwa algorytmy: Kruskala Prima B. Woźna-Szcześniak (UJD) Algorytmy Grafowe / 43

28 Algorytmy Kruskala Algorytm jest oparty o metodę zachłanna i polega na łacze- niu wielu poddrzew w jedno za pomoca krawędzi o najmniej- szej wadze. Założenia: Zastosowanie struktury danych reprezentujacej zbiory rozłaczne do pamiętania kilku rozłacznych zbiorów wierzchołków. FIND-SET(U) zwraca reprezentanta zbioru zawierajacego wierzchołek u. UNION(U,V) - łaczy drzewa zawierajace u i v w jedno drzewo. Wejście: Spójny graf nieskierowany z funkcja wagi G = (V, E, w : E R). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 3 / 43

29 Algorytm Kruskala Require: KRUSKAL(G) : A = : for każdy wierzchołek v V [G] do 3: Make Set(v) 4: end for{utworzenie V drzew jednowierzchołkowych} 5: posortuj krawędzie z E niemalejaco względem wag. 6: for każda krawędź (u, v) E, w kolejności niemalejacych wag do 7: if FIND SET (u) FIND SET (v) then 8: A = A {(u, v)} 9: Union(u, v) 0: end if : end for B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 4 / 43

30 Algorytm Kruskala - Złożoność obliczeniowa Algorytm można podzielić na dwa etapy: w pierwszym etapie sortujemy krawędzie według wag w czasie O(m log(m)). w drugim etapie budujemy rozpięte drzewo poprzez wybór najkrótszych krawędzi ze zbioru krawędzi E(G); ten etap można wykonać w czasie O(m log(n)). Sumaryczny czas pracy algorytmu Kruskala wynosi: O(m log(n)) B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 5 / 43

31 Algorytm Kruskala - Przykład a f 7 4 b e 6 3 c d 8 Po posortowaniu krawędzi wg. wag otrzymujemy: ae=, af=, bc=, be=, de=3, ab=4, fd=6, ef=7, cd=8 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 6 / 43

32 Algorytm Kruskala - Przykład Krok. a 4 b c Krok. a 4 b c f 7 e 3 d 8 f 7 e 3 d 8 ae=, af=, bc=, be=, de=3, ab=4, fd=6, ef=7, cd=8 6 ae=, af=, bc=, be=, de=3, ab=4, fd=6, ef=7, cd=8 6 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 7 / 43

33 Algorytm Kruskala - Przykład Krok 3. a 4 b c Krok 4 - scalenie. 4 a b c f 7 e 3 d 8 f 7 e 3 d 8 ae=, af=, bc=, be=, de=3, ab=4, fd=6, ef=7, cd=8 6 ae=, af=, bc=, be=, de=3, ab=4, fd=6, ef=7, cd=8 6 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 8 / 43

34 Algorytm Kruskala - Przykład Krok 5. a f 7 4 b e 6 3 c d 8 Minimalne drzewo. a b f e 3 c d ae=, af=, bc=, be=, de=3, ab=4, fd=6, ef=7, cd=8 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 9 / 43

35 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 30 / 43

36 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 3 / 43

37 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 3 / 43

38 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 33 / 43

39 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 34 / 43

40 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 35 / 43

41 Algorytm Kruskal -przykład Rysunek: Źródło:Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. The MIT Press, 009. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 36 / 43

42 Algorytm Prima Algorytm został wynaleziony w 930 przez czeskiego matematyka Vojtěcha Jarníka, a następnie w 957 odkryty na nowo przez informatyka Roberta C. Prima oraz niezależnie w 959 przez Edsgera Dijkstrę. Z tego powodu algorytm nazywany jest również algorytmem Dijkstry-Prima, algorytmem Jarníka, albo algorytmem Prima-Jarníka. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 37 / 43

43 Algorytm Prima Budowę minimalnego drzewa rozpinajacego zaczynamy od dowolnego wierzchołka, np. od pierwszego. Dodajemy wierzchołek do drzewa, a wszystkie krawędzie incydentne umieszczamy na posortowanej wg. wag liście. Następnie zdejmujemy z listy pierwszy element (o najmniejszej wadze) i jeżeli wierzchołek, który łaczy nie należy do drzewa, dodajemy go do drzewa a na liście znów umieszczamy wszystkie krawędzie incydentne z wierzchołkiem, który dodaliśmy. Jednym zdaniem: zawsze dodajemy do drzewa krawędź o najmniejszej wadze, osiagaln a (w przeciwieństwie do Kruskala) z jakiegoś wierzchołka tego drzewa. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 38 / 43

44 Algorytm Prima - Przykład a 4 b c f 7 e 3 d 8 6 B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 39 / 43

45 Algorytm Prima - Przykład Krok. a f 7 4 b e 3 c d 8 Krok. a f 7 4 b e 3 c d 8 6 Wybieramy wierzchołek a. Tworzymy posortowana listę L=[a,e,],[a,f,],[a,b,4]. Wybieramy krawędź (a,e). 6 Dodajemy nowe krawędzie: L=[a,f,],[e,b,],[e,d,3],[a,b,4],[e,f,7]. Wybieramy krawędź (a,f). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 40 / 43

46 Algorytm Prima - Przykład Krok 3. a 4 b c Krok 4 a 4 b c f 7 e 3 d 8 f 7 e 3 d 8 6 Krawędź [f,e,7] jest już na liście: L=[e,b,],[e,d,3],[a,b,4],[f,d,6],[e,f,7]. Wybieramy krawędź (e,b). 6 Dodajemy krawędź [b,c,]: L=[b,c,],[e,d,3],[a,b,4],[f,d,6],[e,f,7] Wybieramy krawędź (b,c). B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 4 / 43

47 Algorytm Prima - Przykład Krok 5. a f 7 4 b e 6 3 c d 8 Minimalne Drzewo a b f e 3 c d Dodajemy krawędź [c,d,8]: L=[e,d,3],[a,b,4],[f,d,6],[e,f,7],[c,d,8] Wybieramy krawędź (e,d). Drzewo utworzone. B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 4 / 43

48 Algorytm Prima a Algorytm Kruskala - Przykład Minimalne Drzewo wg. Algorytmu Kruskala. a b c Minimalne Drzewo wg. Algorytmu Prima a b c f e 3 d f e 3 d B. Woźna-Szcześniak (UJD) Algorytmy Grafowe 43 / 43

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

Temat: Algorytmy zachłanne

Temat: Algorytmy zachłanne Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje się w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymalną możliwość w nadziei,

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

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

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

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

Podejście zachłanne, a programowanie dynamiczne

Podejś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ół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

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

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

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 8 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 8 1 / 39 Plan wykładu

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

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

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

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

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

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

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

Ćwiczenie 3 Programowanie dynamiczne

Ćwiczenie 3 Programowanie dynamiczne Ćwiczenie 3 Programowanie dynamiczne [źródło: Wprowadzenie do algorytmów, T.H. Cormen, Ch.E. Leiserson, R.L.Rivest, Wyd. Naukowo-Techniczne Warszawa, 2001; ZłoŜoność obliczeniowa problemów kombinatorycznych,

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

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

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.

Bardziej szczegółowo

Sprawozdanie do zadania numer 2

Sprawozdanie do zadania numer 2 Sprawozdanie do zadania numer 2 Michał Pawlik 29836 Temat: Badanie efektywności algorytmów grafowych w zależności od rozmiaru instancji oraz sposobu reprezentacji grafu w pamięci komputera 1 WSTĘP W ramach

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

Programowanie dynamiczne cz. 2 Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy

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

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy

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

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

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 zachłanne. dr inż. Urszula Gałązka

Algorytmy zachłanne. dr inż. Urszula Gałązka Algorytmy zachłanne dr inż. Urszula Gałązka Algorytm zachłanny O Dokonuje wyboru, który w danej chwili wydaje się najkorzystniejszy. O Mówimy, że jest to wybór lokalnie optymalny O W rzeczywistości nie

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

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

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 1 Podstawy teorii grafów Reprezentacje 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

Bardziej szczegółowo

Algorytmy i Struktury Danych.

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

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

Bardziej szczegółowo

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy: Temat: Powtórzenie wiadomości z PODSTAW INFORMATYKI I: Pojęcia: złożoność czasowa algorytmu, rząd funkcji kosztu. Algorytmy. Metody programistyczne. Struktury danych. Literatura. A. V. Aho, J.E. Hopcroft,

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich

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

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

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

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

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie

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

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

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

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 1,2,3. 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 1,2,3 B. Woźna-Szcześniak (UJD) Algorytmy

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

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

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

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques KARTA KURSU Nazwa Nazwa w j. ang. Algorytmy, struktury danych i techniki programowania Algorithms, Data Structures and Programming Techniques Kod Punktacja ECTS* 3 Koordynator dr Paweł Pasteczka Zespół

Bardziej szczegółowo

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili

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 i struktury danych.

Algorytmy i struktury danych. Algorytmy i struktury danych. Wykład 4 Krzysztof M. Ocetkiewicz Krzysztof.Ocetkiewicz@eti.pg.gda.pl Katedra Algorytmów i Modelowania Systemów, WETI, PG Problem plecakowy mamy plecak o określonej pojemności

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

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 i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Treści programowe. Złożoność obliczeniowa algorytmu na przykładach. dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak

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

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 Algorytm 1. Termin algorytm jest używany w informatyce

Bardziej szczegółowo

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

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

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty

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

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

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

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI J.NAWROCKI, M. ANTCZAK, H. ĆWIEK, W. FROHMBERG, A. HOFFA, M. KIERZYNKA, S.WĄSIK ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI ZAD. 1. Narysowad graf nieskierowany. Zmodyfikowad go w taki sposób, aby stał

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

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

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj Techniki konstruowania algorytmów Metoda dziel i zwyciężaj Technika dziel i zwyciężaj Aby rozwiązać problem techniką dziel i zwyciężaj musi on wykazywać własność podstruktury rozwiązanie problemu można

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

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

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE D: PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE I. Strategia zachłanna II. Problem przetasowań w genomie III. Sortowanie przez odwrócenia IV. Algorytmy przybliżone V. Algorytm zachłanny

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

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

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ. Gramatyki grafowe Def. Nieskierowany NL-graf (etykietowane wierzchołki) jest czwórką g = (V, E, Σ, ϕ), gdzie: V niepusty zbiór wierzchołków, E V V zbiór krawędzi, Σ - skończony, niepusty alfabet etykiet

Bardziej szczegółowo

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację

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

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

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2 Algorytmy grafowe 2 Andrzej Jastrz bski Akademia ETI Minimalne drzewo spinaj ce Drzewem nazywamy spójny graf nie posiadaj cy cyklu. Liczba wierzchoªków drzewa jest o jeden wi ksza od liczby jego kraw dzi.

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

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda Segmentacja obrazów cyfrowych Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp autor: Łukasz Chlebda 1 Segmentacja obrazów cyfrowych - temat pracy Temat pracy: Aplikacja do segmentacji

Bardziej szczegółowo

Układy równań liniowych

Układy równań liniowych Układy równań liniowych Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW 1. wykład z algebry liniowej Warszawa, październik 2015 Mirosław Sobolewski (UW) Warszawa, wrzesień 2015 1 / 1

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

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

Zadania z egzaminów z Algorytmiki

Zadania z egzaminów z Algorytmiki 1 Najkrótsze ścieżki Zadania z egzaminów z Algorytmiki Zadanie 1 Dany jest spójny graf nieskierowany G = (V, E) z wagami na krawędziach w : E N oraz cztery wyróżnione wierzchołki a, b, c, d. Należy wybrać

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

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 9: Programowanie

Bardziej szczegółowo

Grafy i sieci w informatyce - opis przedmiotu

Grafy i sieci w informatyce - opis przedmiotu Grafy i sieci w informatyce - opis przedmiotu Informacje ogólne Nazwa przedmiotu Grafy i sieci w informatyce Kod przedmiotu 11.9-WI-INFD-GiSwI Wydział Kierunek Wydział Informatyki, Elektrotechniki i Automatyki

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

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe Algorytmy sortujące sortowanie kubełkowe, sortowanie grzebieniowe Sortowanie kubełkowe (bucket sort) Jest to jeden z najbardziej popularnych algorytmów sortowania. Został wynaleziony w 1956 r. przez E.J.

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona

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

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

Projektowanie i analiza algorytmów

Projektowanie i analiza algorytmów POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Projektowanie i analiza algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład

Bardziej szczegółowo

Przykłady problemów optymalizacyjnych

Przykłady problemów optymalizacyjnych Przykłady problemów optymalizacyjnych NAJKRÓTSZA ŚCIEŻKA W zadanym grafie G = (V, A) wyznacz najkrótsza ścieżkę od wierzchołka s do wierzchołka t. 2 7 5 5 3 9 5 s 8 3 1 t 2 2 5 5 1 5 4 Przykłady problemów

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

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

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

zajęcia 3. Marcin Andrychowicz, Tomasz Kulczyński,

zajęcia 3. Marcin Andrychowicz, Tomasz Kulczyński, zajęcia 3. Marcin Andrychowicz, Tomasz Kulczyński, Błażej Osiński Dane Metoda pozwalajaca sortować w czasie liniowym Ciag liczb z zakresu O, 1,..., M 5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5 Zliczamy wystapienia

Bardziej szczegółowo

Schemat programowania dynamicznego (ang. dynamic programming)

Schemat 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ółowo