Przeszukiwanie grafów

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

Download "Przeszukiwanie grafów"

Transkrypt

1 TEORIA GRAFÓW I SIECI - ROZDZIAŁV Przeszukiwanie grafów Wiedza o istnieniu interesujacego nas obiektu (np. drzewa spinajacego) jest w praktycznych zastosowaniach mało przydatna. Na ogółpotrzebujemy informacji o sposobie znalezienia tego obiektu, czyli potrzebujemy odpowiedniego algorytmu. Jednak algorytm, którego czas działania wynosi 1000 lat, jest umiarkowanie przydatny. Potrzebne sa więc metody pozwalajace stwierdzić, który ze znanych algorytmów jest szybszy, a przynajmniej takie które pozwalaja ocenić, czy algorytm jest wystarczajaco szybki dla naszych potrzeb. Interesuje nas zatem czas działania algorytmu. Jest on oczywiście zależny od rozmiaru danych wejściowych. Jednak nawet przy tym samym rozmiarze danych, czas pracy algorytmu może być znaczaco różny. Nas będzie interesować pesymistyczny czas działania, czyli najdłuższy możliwy czas działania dla danych wejściowych określonego rozmiaru. Będziemy przy tym zakładać, że wprowadzamy dane jednego typu, czyli rozmiar danych wejściowych można określić jedna liczba n (w ogólnym przypadku rozważania sa podobne). W praktyce nie będziemy wyznaczać dokładnego czasu T (n), a jedynie będziemy szukać dobrego oszacowania górnego. Obliczenie czasu działania algorytmu polega na zsumowaniu czasu działania wszystkich prostych (elementarnych) instrukcji, takich jak przypisanie wartości (i := i + 1), porównanie (if a > 0 then... ), czy wywołanie procedury. Algorytm zawiera pewna liczbę instrukcji prostych, przy czym niektóre z nich sa wykonywane wielokrotnie w pętli. Czasy poszczególnych instrukcji prostych, zwane też ich kosztami, oznaczmy przez c 1,..., c k. Zastępujac koszty poszczególnych instrukcji największym z nich c = max {c 1,..., c k } dostajemy oszacowanie czasu T (n) pewna funkcja f(n), której współczynniki zależa od c. Rozważmy przykładowo algorytm znajdowania maksimum n liczb. Dane wejściowe stanowi tablica a = [a[1],,..., a[n]]. Maksimum(a) % koszt krotność x := a[1] % c 1 1 for i := 2 to n do % c 2 n 1 if a[i] > x then % c 3 n 1 x := a[i] % c 1 n 1 max := x % c 4 1 Z powyższej (uproszczonej) analizy algorytmu wynika, że pesymistyczny czas jego działania można oszacować następujaco: T (n) = c 1 + (n 1) c 2 + (n 1) c 3 + (n 1) c 1 + c 3 c + (n 1) c + (n 1) c + (n 1) c + c = 3cn c, czyli czas działania jest ograniczony z góry przez funkcję f (n) = 3cn c. 1

2 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 2 Zauważmy, że problemy z czasem działania algorytmu moga się pojawić przy dużym rozmiarze danych wejściowych. Oznacza to, że interesujace sa dla nas nie tyle konkretne wartości ograniczajacej funkcji f (n), co zachowanie przy n, czyli jej własności asymptotyczne. Badanie własności asyptotycznych funkcji f będzie polegało na porównaniu jej z pewna funkcja g > 0, której własności sa nam znane. Pojawia się pytanie, jak porównać asymptotyczne własności funkcji f oraz g. Polega to, mówiac w uproszczeniu, na zbadaniu granicy A = lim n f (n) g (n). Jeżeli A jest liczba dodatnia, to uważamy, że funkcje te sa "asymptotycznie podobne", jeżeli A = 0, to f jest "asymptotycznie mniejsza", zaś jeśli A =, to f jest "asymptotycznie większa" niż g. Przyjmujac np. g (n) = n, w rozważanym przykładzie dostajemy f (n) lim n g (n) = 3c (0, ), czyli f i g sa "asymptotycznie podobne". Takie podejście pozwala na uproszczenie rozważań przez pominięcie w rozważaniach kosztu c, który nie wpływa na asymptotyczne własności funkcji. Dokładniej, przyjmujemy c = 1, co sprawia, że funkcja f (n) szacuje ilość instrukcji prostych w algorytmie, czyli złożoność obliczeniowa algorytmu. W ostatnim przykładzie mamy f (n) = 3cn c = 3n 1. Sprowadziliśmy rozważania dotyczace czasu działania algorytmu do badania jego (pesymistycznej, asymptotycznej) złożoności obliczeniowej. Zdefiniujemy teraz formalnie pojęcia pozwalajace opisać złożoność obliczeniowa algorytmu. Dla k N oznaczmy N k = {n N; n k} i załóżmy, że f, g : N k R +. Mówimy, że funkcja g (n) jest asymptotycznym ograniczeniem górnym funkcji f (n) lub że f (n) jest rzędu co najwyżej g (n) jeżeli lim sup n f (n) g (n) <. Zbiór takich funkcji f (n), dla których g (n) jest asymptotycznym ograniczeniem górnym oznaczamy O (g (n)). Zamiast pisać f (n) O (g (n)) będziemy, zgodnie z przyjętymi zwyczajami, pisać f (n) = O (g (n)). Przyjęte oznaczenia nazywamy notacja O (wielkie O). Ćwiczenie 1. Pokazać, że f (n) = O (g (n)) c>0 n0 N n n0 f (n) cg (n). Funkcja g (n) pełni w podanej definicji rolę wzorca, do którego porównujemy funkcję f (n). Dlatego jako g (n) będziemy przyjmować na ogółfunkcje: 1 (stała), ln n, n, 2 n oraz iloczyny tych funkcji. Przykładowo, funkcję f (n) nazywamy ograniczona wielomianowo jeśli f (n) = O ( n k) dla pewnej liczby naturalnej k. Ćwiczenie 2. Pokazać, że dla dowolnych funkcji f, g, h : N k R +

3 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 3 (1) f (n) = O (f (n)). (2) Jeżeli f (n) = O (g (n)) i g (n) = O (h (n)), to f (n) = O (h (n)). Ćwiczenie 3. Znale zć funkcje takie, że (1) f (n) = O (g (n)) oraz g (n) O (f (n)) (czyli g (n) / O (f (n))). (2) f (n) O (g (n)) oraz g (n) O (f (n)). (3) f (n) = O (g (n)), g (n) = O (f (n)) oraz f g. Ćwiczenie 4. W zbiorze funkcji z N k w R + możemy wprowadzíc relację przyjmujac Jakie własno sci ma relacja? f g f (n) = O (g (n)). Ćwiczenie 5. Udowodníc, że dla dowolnej liczby a > 0 ln a n lim n n = lim n a n 2 = 0. n Ćwiczenie 6. Sprawdzíc prawdziwo sć warunków 1) n = O (n 3 ) ; 10) ln 5 n = O ( n) ; 19) 2 n + 3 n = O (3 n ) ; 2) n 2 = O (n 3 ) ; 11) ln n 5 = O (ln n) ; 20) n2 n = O (3 n ) ; 3) n 3 = O (n 2 ) ; 12) ln 5 n = O (ln n) ; 21) 5 n = O (n!) ; 4) n 3 = O (5n 3 + 4n 2 + 3n + 2) ; 13) ln n = O (log 2 n) ; 22) n! = O (5 n ) ; 5) 5n 3 + 4n 2 + 3n + 2 = O (n 3 ) ; 14) ln n = O (log 10 n) ; 23) ln 2 n = O (n) ; 6) n + n = O (n) ; 15) ln n = O (ln ln n) ; 24) ln n! = O (n) ; 7) n n = O (n) ; 16) n 5 = O (2 n ) ; 25) ln n! = O (n ln n) ; 8) n = O (ln n) ; 17) 2 n = O (n 5 ) ; 26) ln n! = O (n 2 ) ; 9) ln n = O ( n) ; 18) 4 n = O (2 n + 3 n ) ; 27) n n = O (n!). Oprócz notacji O stosowane sa również inne sposoby porównywania funkcji. Wspomnimy o jeszcze jednym zwanym notacja Θ (wielkie theta). Mówimy, że funkcja g (n) jest asymptotycznie dokładnym oszacowaniem funkcji f (n) lub że f (n) jest rzędu g (n) jeżeli 0 < lim inf n Piszemy wtedy f (n) = Θ (g (n)). f (n) g (n) lim sup n f (n) g (n) <. Ćwiczenie 7. Udowodníc, że dla dowolnych funkcji f, g, h : N k R + (1) f (n) = Θ (g (n)) f (n) = O (g (n)) g (n) = O (f (n)). (2) f (n) = Θ (f (n)). (3) f (n) = Θ (g (n)) g (n) = Θ (f (n)). (4) Jeżeli f (n) = Θ (g (n)) i g (n) = Θ (h (n)), to f (n) = Θ (h (n)). Ćwiczenie 8. Sprawdzíc prawdziwo sć warunków z ćwiczenia 6, po zastapieniu notacji O notacja Θ.

4 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 4 Uwaga 1. Definicje dotyczace porównywania funkcji można bez żadnych zmian sformułować dla funkcji okre slonych na półprostej (a, ), a > 0 zamiast na zbiorze N k (jedynie dla większej czytelno sci warto zmienna n zastapíc przez x). Uwaga 2. Zapisujac złożono sć obliczeniowa algorytmu upraszcza się zapis przez opuszczenie symbolu mocy zbioru, tzn. pisze się np. O (V 2 ) i O (V ln V ) zamiast O ( V 2) i O ( V ln V ). Zanim przejdziemy do omawiania konkretnych algorytmów, zwróćmy jeszcze uwagę na istotny problem występujacy gdy próbujemy ocenić złożoność obliczeniow a algorytmu napisanego w pseudokodzie. Problem polega na tym, że czasem nie da się ustalić, czy dana instrukcję możemy potraktować jako elementarna, czy też do jej wykonania potrzeba większej ilości instrukcji elementarnych. Przykładowo instrukcja przypisania odwołuj aca się do elementu tablicy może być potraktowana jako elementarna, gdyż możemy się odwołać bezpośrednio do dowolnego elementu tablicy. Jeżeli jednak dane sa zorganizowane nie w postaci tablicy, ale listy, to odwołanie do elementu listy wymaga odwołania się do wszystkich go poprzedzajacych. Tak więc analogiczna instrukcja przypisania wymaga większej ilości instrukcji elementarnych. Przykład ten pokazuje, że na ogółzłożoność obliczeniowa możemy policzyć dla konkretnej implementacji algorytmu, a nie dla samego algorytmu. Z tego też względu w naszym wykładzie będziemy ograniczać się do podawania informacji o złożoności obliczeniowej jaka można uzyskać implementujac dany algorytm. Nie będziemy raczej badać tego samodzielnie. W twierdzeniu?? udowodniliśmy, że każdy graf spójny ma drzewo spinajace. Dowód nie podawałjednak sposobu znalezienia takiego drzewa. Omówimy teraz algorytm znajdujacy drzewo spinajace grafu spójnego. Warunki z twierdzenia?? sugeruja dwa sposoby rozwiazania tego problemu: Usuwamy kolejne krawędzie dbajac o zachowanie spójności, tak długo jak to możliwe. Startujemy od zbioru pustego i dodajemy kolejne krawędzie dbajac o zachowanie acykliczności, tak długo jak to możliwe. Okazuje się, że bardziej efektywny jest, na ogół, algorytm oparty na drugim pomyśle. Algorytm oparty na pierwszym może być szybszy dla grafu rzadkiego, tzn. takiego, w którym ilość krawędzi E G jest dużo mniejsza niż kwadrat liczby wierzchołków V G 2. Jednak dla grafów rzadkich algorytm oparty na drugim pomyśle jest wystarczajaco szybki i w konsekwencji można go stosować do dowolnych grafów spójnych. Załóżmy, że G = (E, V ) jest grafem spójnym oraz a dowolnie wybranym wierzchołkiem. Drzewo(G, a) V 0 := {a} E 0 := while V \ V 0 do Wybierz krawędź bc taka, że b V 0 i c V \ V 0 V 0 := V 0 {c} E 0 := E 0 {bc} T := (V 0, E 0 )

5 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 5 Graf G Drzewo spinajace T Drzewo spinajace T Twierdzenie 1. Wynikiem działania procedury Drzewo jest drzewo spinajace T grafu spójnego G. Jeżeli nie zaznaczymy inaczej, sfor- Dowód. Udowodnimy kolejno kilka prostych faktów. mułowania będa dotyczyć dowolnej iteracji. (1) Końce krawędzi z E 0 należa do V 0 (czyli (V 0, E 0 ) jest grafem). Dla E 0 = jest to oczywiste. Własność (1) jest niezmiennikiem pętli, bo koniec krawędzi dodawanej do E 0 jest dodawany do V 0. (2) Jeżeli V \ V 0, to wybór krawędzi bc jest możliwy. Wystarczy wziać dowolny wierzchołek z V \ V 0 i poł aczyć go ścieżka z a (spójność). Na podstawie własności?? ścieżka ta zawiera szukana krawędź. (3) Procedura zatrzyma się. Wynika to ze skończoności V. (4) Własność "(V 0, E 0 ) jest drzewem" jest niezmiennikiem pętli. Spójność (V 0, E 0 ) jest niezmiennikiem pętli, bo dodawany wierzchołek jest poł aczony krawędzi a z wierzchołkiem należacym do V 0. Ponieważ w każdej iteracji dodajemy tyle samo wierzchołków co krawędzi, więc niezmiennikiem pętli jest także warunek Teza wynika zatem z twierdzenia??. E 0 = V 0 1. (5) Po wyjściu z pętli, (V 0, E 0 ) jest drzewem spinajacym G. Przed wejściem do pętli graf (V 0, E 0 ) = ({a}, ) jest drzewem. Z (4) wnioskujemy więc, że po wyjściu (V 0, E 0 ) jest również drzewem. Ponieważ mamy wtedy V 0 = V, więc jest to drzewo spinajace.

6 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 6 Dla grafu niespójnego pocedura Drzewo nie działa, bo po wyczerpaniu wszystkich wierzchołków ze składowej G a nie jest możliwy wybór kolejnej krawędzi bc. Jeśli jednak w pętli while warunek zastapimy warunkiem V \ V 0 istnieje krawędź bc taka, że b V 0 i c V \ V 0, to dostaniemy algorytm znajdujacy drzewo spinajace składowej G a. Ćwiczenie 9. Napisać algorytm znajdujacy drzewo spinajace grafu spójnego metoda usuwania z grafu kolejnych krawędzi i udowodníc poprawno sć działania. Problem znajdowania drzewa spinajacego grafu jest jednym z wielu, gdzie mamy do czynienia z przeszukiwaniem grafu, czyli przechodzeniem przez wszystkie wierzchołki. Przyjrzyjmy się algorytmowi Drzewo. Wykonywany w pętli wybór krawędzi nie jest jednoznaczny. Można więc wyobrazić sobie różne sposoby wybierania kolejnej krawędzi. Szukanie krawędzi polega na sprawdzeniu, czy już wybrane wierzchołki można poł aczyć krawędzi a z jeszcze niewybranymi. Istotna jest zatem kolejno sć w jakiej przegladamy wierzchołki już wybrane. Zmieniajac kolejność dostaniemy różne algorytmy przeszukiwania grafu. Dwa najważniejsze to przeszukiwanie wszerz i przeszukiwanie w gł ab. Procedura przeszukiwania rozpoczyna się od wyróżnionego wierzchołka, który nazywamy korzeniem drzewa. Przeszukiwanie wszerz (BFS - breadth first search). Przeszukujac wszerz szukamy najpierw sasiadów korzenia. Wierzchołki te tworza pierwszy poziom. Następnie szukamy sasiadów wierzchołków pierwszego poziomu (wśród jeszcze niewybranych). Wierzchołki pierwszego poziomu przegł adamy w kolejności w jakiej były wybierane. Znalezione wierzchołki tworza drugi poziom. Operacje wyszukiwania powtarzamy na kolejnych poziomach, dopóki nie znajdziemy wszystkich wierzchołków. Poniższy przykład pokazuje drzewo przeszukiwania wszerz, czyli drzewo spinajace T B uzyskane z wykorzystaniem przeszukiwania wszerz. Korzeniem jest wierzchołek a, zaś sasi- adów wybieramy w kolejności alfabetycznej. Kolejność wybierania krawędzi jest oznaczona liczbami. Graf G Drzewo przeszukiwania wszerz T B

7 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 7 Przeszukiwanie w gł ab (DFS - depth first search). Zaczynamy przeszukiwanie od korzenia i szukamy sasiada ostatnio odwiedzonego wierzchołka. Jeżeli nie znajdziemy, to cofamy się do poprzednio odwiedzonego i szukamy sasiada dla niego. Używajac przeszukiwania w gł ab, znajdziemy drzewo spinajace T D grafu z poprzedniego przykładu. Jest ono nazywane drzewem przeszukiwania w gł ab. Tak jak poprzednio, sasiadów wybieramy w kolejności alfabetycznej i numerujemy krawędzie w kolejności znajdowania. Graf G Drzewo przeszukiwania w gł ab T D Ćwiczenie 10. Załóżmy, że graf G jest reprezentowany w postaci macierzy sasiedztwa. (1) Zmodyfikować (uszczegółowíc) algorytm Drzewo tak by wynikiem było drzewo przeszukiwania wszerz. (2) Zmodyfikować algorytm tak by wynikiem było drzewo przeszukiwania w gł ab. (3) Oszacować złożono sć obliczeniowa utworzonych algorytmów. Przeszukujac graf wyróżniliśmy jeden wierzchołek (poczatek przeszukiwania). W wyniku tego dostaliśmy drzewo majace pewna strukturę. Drzewem z wyróżnionym korzeniem (drzewem ukorzenionym) nazywamy parę (T, r), gdzie T jest drzewem, zaś r wyróżnionym wierzchołkiem, nazywanym korzeniem drzewa. Dowolny wierzchołek drzewa można poł aczyć z korzeniem dokładnie jedna ścieżka prosta. Długość tej ścieżki nazywamy numerem poziomu wierzchołka. Zbiór wszystkich wierzchołków o numerze poziomu równym n nazywamy n- tym poziomem drzewa. Największy numer poziomu wierzchołka nazywamy wysokości a drzewa. Jeżeli wierzchołek b leży na ścieżce prostej z korzenia do wierzchołka c b to mówimy, że c jest potomkiem b. Jeżeli b jest przedostatnim wierzchołkiem na tej ścieżce, to wierzchołek c nazywamy synem (dzieckiem, następnikiem) b, zaś wierzchołek b ojcem (rodzicem, poprzednikiem) c. Podgraf T b złożony z b, wszystkich jego potomków oraz krawędzi ł aczacych te wierzchołki jest drzewem. Parę (T b, b) nazywamy poddrzewem o korzeniu b. Liśćmi w drzewie ukorzenionym nazywamy wszystkie wierzchołki stopnia 1,

8 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 8 oprócz korzenia. Drzewo z wyróżnionym korzeniem przedstawiamy graficznie rysujac korzeń na górze, a dzieci niżej niż rodziców. Drzewo przeszukiwania w gł ab z ostatniego przykładu może być traktowane jako drzewo z wyróżnionym korzeniem a. Dla drzewa ukorzenionego (T D, a) mamy: ojciec g: c, synowie g: f, h, potomkowie g: f, e, i, j, h, l, k, 0. poziom drzewa: a, 3. poziom drzewa: d, g, wysokość drzewa: 6, liście: d, e, j, k, poddrzewo (T g, g):. Własność 1. Jeżeli (T, r) jest drzewem ukorzenionym, to (1) Korzeń r nie ma ojca. (2) Dowolny wierzchołek różny od korzenia ma dokładnie jednego ojca. Dowód. Jedyna ścieżka prosta z r do r jest ścieżka trywialna. Nie istnieje więc przedostatni wierzchołek na tej ścieżce, czyli r nie ma ojca. Niech b będzie wierzchołkiem różnym od korzenia. Istnieje dokładnie jedna ścieżka prosta z r do b. Ponieważ b r, więc jest ona nietrywialna. Ojciec b jest zatem wyznaczony jednoznacznie jako przedostatni wierzchołek na tej ścieżce. Własność 2. Jeżeli wierzchołki a, b drzewa ukorzenionego (T, r) sa poł aczone krawędzi a, to a jest ojcem b albo b jest ojcem a. Dowód. Ponieważ T jest grafem acyklicznym, więc a b. Zatem przynajmniej jeden z rozważanych wierzchołków jest różny od r. Możemy przyjać, że b r. Ze spójności T wynika, że istnieje ścieżka prosta d = r... b. Rozważmy przypadki. (1) a nie należy do d. Wtedy a nie jest ojcem b. Ponadto r... ba jest ścieżka prosta, czyli b jest ojcem a. (2) a jest przedostatnim wierzchołkiem w d, czyli d = r... ab. Wówczas a jest ojcem b. Ponieważ podścieżka r... a nie zawiera b, więc b nie jest ojcem a. (3) a należy do d, ale nie jest przedostatnim wierzchołkiem w d, czyli d = r... a... b. Dodajac do ścieżki prostej a... b (długości > 1) krawędź ba dostajemy cykl a... ba,

9 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 9 wbrew acykliczności T. Wynika stad, że ten przypadek nie może zachodzić. Z (1)-(3) wnioskujemy tezę. Ćwiczenie 11. Pokazać, że w nietrywialnym drzewie ukorzenionym líscie sa jedynymi wierzchołkami, które nie maja synów. Ćwiczenie 12. (1) W drzewie (T B, a) z przedostatniego przykładu powtórzyć obliczenia, które zrobilísmy dla drzewa (T D, a). (2) Traktuj ac T B i T D jako drzewa wolne, utworzyć (narysować) drzewa ukorzenione (T B, f) i (T D, f). Powtórzyć obliczenia wykonane dla (T D, a) i (T B, a). (3) Dla grafu G utworzyć drzewo przeszukiwania wszerz (T 1, f) i drzewo przeszukiwania w gł ab (T 2, f). Powtórzyć obliczenia wykonane dla (T D, a) i (T B, a). Ćwiczenie 13. W poniższym grafie (1) Znale zć drzewo spinajace T B przeszukujac graf wszerz oraz drzewo spinajace T D przeszukujac graf w gł ab. Przeszukiwanie rozpocz ać od wierzchołka a, wierzchołki wybierać w kolejno sci alfabetycznej. (2) Narysować drzewa ukorzenione (T B, a) i (T D, a). Wyznaczyć: líscie, trzeci poziom, wysoko sć drzewa, synów wierzchołka e, potomków wierzchołka d (narysować poddrzewo o korzeniu d). (3) Powtórzyć (1) i (2) zastępujac wierzchołek a wierzchołkiem h. Zauważmy, że przeszukujac graf omówionymi metodami (wszerz, w gł ab), mamy dowolność w wybieraniu sasiada danego wierzchołka (w przykładach i ćwiczeniach robiliśmy to alfabetycznie). Dokonujac wyboru wprowadzamy, de facto, pewien porzadek w zbiorze dzieci

10 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 10 poszczególnych wierzchołków, który graficznie oddajemy rysujac dziecko wybrane wcześniej na lewo od wybranego później. Oznacza to, że otrzymane w ten sposób drzewo ukorzenione ma dodatkowa strukturę. Zanim ja formalnie opiszemy zauważmy, że dla zbioru skończonego, ustawienie jego elementów w ciag skończony (ponumerowanie) jest równoznaczne ze zdefiniowanie w nim relacji liniowego porzadku. Drzewo z wyróżnionym korzeniem nazywamy uporzadkowanym, jeżeli dla dowolnego wierzchołka, zbiór jego dzieci jest liniowo uporzadkowany (o ile jest niepusty). Jak wcześniej wspomnieliśmy, drzewa spinajace otrzymane w wyniku działania algorytmu Drzewo można traktować jako uporzadkowane drzewa z wyróżnionym korzeniem. Porzadek w zbiorze dzieci danego wierzchołka jest określony przez kolejność wyboru. Przykładowo w rozpatrywanych wyżej drzewach przeszukiwania wszerz i przeszukiwania w gł ab byłto porzadek alfabetyczny. Zagadnienie przeszukiwania grafu jest zwiazne z problemem porzadkowania wierzchołków grafu, tj. ustawiania ich w ciag. Graf spójny i jego drzewo spinajace maja te same wierzchołki. Porzadkowanie wierzchołków grafu spójnego sprowadza się więc do porzadkowania wierzchołków jego drzewa spinajacego. Dwa podstawowe sposoby porzadkowania wierzchołków: prefiksowy (preorder) i postfiksowy (postorder) wykorzystuja drzewo przeszukiwania w gł ab. Opis procedury porzadkujacej wierzchołki drzewa można jednak sformułować dla dowolnego uporzadkowanego drzewa z wyróżnionym korzeniem. Załóżmy, że mamy uporzadkowane drzewo z wyróżnionym korzeniem (T, r). Ustawimy wierzchołki tego drzewa w ciag. W tym celu tworzymy zamknięta ścieżkę o poczatku r według następujacych reguł: Jeżeli bieżacy wierzchołek ma nieodwiedzone jeszcze dzieci, to idziemy (dodajemy krawędź) do pierwszego nieodwiedzonego dziecka (zgodnie z porzadkiem w zbiorze dzieci). Jeżeli bieżacy wierzchołek nie ma nieodwiedzonych dzieci, to cofamy się (dodajemy krawędź) do ostatnio odwiedzonego wierzchołka. Procedurę kończymy, jeśli po osiagnięciu korzenia okaże się, że wszystkie jego dzieci były już odwiedzone. Można sprawdzić, że w wyniku opisanej wyżej procedury powstaje ścieżka zamknięta zawierajaca wszystkie wierzchołki drzewa T. Niektóre wierzchołki występuja tam wielokrotnie. Naturalne sa dwa sposoby uporzadkowania wierzchołków (ustawienia w ciag). Porzadek prefiksowy (preorder) Wierzchołek wstawiamy do ciagu przy pierwszym pojawieniu się na ścieżce. Porzadek postfiksowy (postorder) Wierzchołek wstawiamy do ciagu przy ostatnim pojawieniu się na ścieżce.

11 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 11 Dla rozpatrywanego wcześniej drzewa przeszukiwania w gł ab mamy Porzadek preorder: a, b, c, d, g, f, e, i, j, h, l, k. Porzadek postorder: d, e, j, i, f, k, l, h, g, c, b, a. W uporzadkowaniu prefiksowym rodzice sa umieszczeni w ciagu przed dziećmi, a w postfiksowym - po dzieciach. Ćwiczenie 14. Traktuj ac drzewa ukorzenione z ćwiczeń 12 i 13 jako drzewa uporzadkowane (kolejno sć dzieci alfabetyczna), uporzadkować ich wierzchołki w porzadku prefiksowym i postfiksowym. Aby uzyskać algorytm porzadkowania wierzchołków grafu spójnego musimy poł aczyć algorytm tworzenia drzewa przeszukiwania w gł ab (algorytm Drzewo w wersji z ćwiczenia 10) z metoda opisana powyżej. Ćwiczenie 15. Napisać algorytmy porzadkowania wierzchołków grafu spójnego w porzadku preorder i w porzadku postorder (użyć pseudokodu lub jakiegokolwiek języka programowania). Drzewo ukorzenione, w którym każdy wierzchołek ma co najwyżej dwóch synów nazywamy drzewem binarnym. Jeżeli dla pewnej liczby naturalnej m, każdy wierzchołek ma co najwyżej m synów, to drzewo nazywamy m-arnym. Drzewa binarne odgrywaja szczególnie duża rolę w zastosowaniach. Uporzadkowane drzewa binarne sa definiowane w specyficzny sposób. Dla ustalonego wierzchołka a, zbiór jego dzieci ma 1 lub 2 elementy (o ile jest niepusty). Zamiast wprowadzać liniowy porzadek w tym zbiorze, jego elementom przypisujemy wartości 0 lub 1 (w sposób różnowartościowy). Dziecko, któremu przypisano wartość 0 nazywamy dzieckiem lewym, zaś wartość 1 - dzieckiem prawym. Oznacza to, że poniższe rysunki reprezentuja różne uporzadkowania drzewa binarnego o korzeniu r.

12 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 12 Dla drzew binarnych można wprowadzić jeszcze jedna metodę porzadkowania wierzchołków. Porzadek infiksowy (inorder). Wierzchołek wstawiamy do ciagu między lewym a prawym dzieckiem. Dla grafów z ostatniego rysunku mamy: lewy graf: c, a, d, r, e, b, prawy graf: c, a, d, r, b, e. Wróćmy do definicji drzewa z wyróżnionym korzeniem. Zauważmy, że traktujac ojca jako poczatek, a syna jako koniec krawędzi, przekształcamy drzewo ukorzenione (T, r) w graf skierowany T. Dokładniej definiujemy T przyjmujac V T = V T oraz E T = {(a, b) ; a, b V T a jest ojcem b}. Otrzymany w ten sposób graf skierowany nazywamy drzewem skierowanym z wyróżnionym korzeniem. (T, r) T Wierzchołek a grafu skierowanego nazywamy źródłem tego grafu jeśli indeg (a) = 0, natomiast ujściem jeśli outdeg (a) = 0. Z własności 1 wynika natychmiast, że w drzewie ukorzenionionym skierowanym T, korzeń jest jedynym źródłem. W dalszej części wykładu przyda się kryterium pozwalajace rozstrzygnać czy graf skierowany jest drzewem ukorzenionym. Twierdzenie 2. Graf skierowany G jest drzewem skierowanym z korzeniem r wtedy i tylko wtedy, gdy jego szkielet G N jest spójny oraz (1) indeg (r) = 0 i indeg (a) = 1 dla a r. Dowód. Załóżmy, że graf skierowany G jest drzewem skierowanym generowanym przez drzewo ukorzenione (T, r). Z definicji drzewa skierowanego oraz szkieletu wynika, że V T = V G = V GN. Z własności 2 wnioskujemy, że jeśli (a, b) E G, to (b, a) / E G i w konsekwencji szkielet G N nie ma krawędzi wielokrotnych. Korzystajac ponownie z własności 2, dla dowolnych wierzchołków a, b mamy {a, b} E GN (a, b) E G (b, a) E G b jest ojcem a w T a jest ojcem b w T {a, b} E T.

13 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 13 Oznacza to, że G N = T, czyli graf G N jest spójny. Warunek (1) wynika z własności 1, bo { 0 ; a = r indeg (a) = {x; (x, a) E G } = {x; x jest ojcem a w T } = 1 ; a r. Załóżmy, że G jest grafem skierowanym o spójnym szkielecie spełniaj acym (1). Lematu o uściskach dłoni dla grafów skierowanych mamy E GN = E G = a V G indeg a = a r 1 = V G 1 = V GN 1. Wobec spójności G N, z twierdzenia?? wynika, że G N jest drzewem. Aby zakończyć dowód wystarczy pokazać, że drzewo ukorzenione (G N, r) generuje graf skierowany G, tzn. (2) (a, b) E G a jest ojcem b w (G N, r). Udowodnimy najpierw, że (3) jeżeli a jest ojcem b w (G N, r), to (a, b) E G. Przypuśćmy nie wprost, że tak nie jest, tzn. istnieja wierzchołki a, b takie, że a jest ojcem b oraz (a, b) / E G. Wśród wszystkich par wierzchołków o tej własności wybierzmy a 0, b 0, dla których a 0 leży na poziomie o najmniejszym możliwym numerze k. Z założenia dostajemy (a 0, b 0 ) / E G, {a 0, b 0 } E GN i w konsekwencji (b 0, a 0 ) E G. Z Rozpatrzmy przypadki k = 0, tzn. a 0 = r. Wtedy (b 0, r) E G, co jest sprzeczne z założeniem indeg (r) = 0. k > 0. Wtedy a 0 ma na poziomie k 1 ojca c. Z minimalności k wynika, że (c, a 0 ) E G.

14 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 14 Ponieważ a 0 jest ojcem b 0, więc b 0 leży na poziomie k+1, czyli c b 0. Stad indeg a 0 2 > 1, co jest sprzeczne z założeniem. Otrzymane sprzeczności dowodza implikacji (3). Udowodnimy teraz implikację przeciwna: (4) jeżeli (a, b) E G, to a jest ojcem b w (G N, r). Załóżmy, że (a, b) E G i przypuśćmy nie wprost, że a nie jest ojcem b. Ponieważ {a, b} E GN, więc na podstawie własności 2, b jest ojcem a. Zatem z (3) wynika, że (b, a) E G i w konsekwencji wierzchołki a i b sa w grafie nieskierowanym G N poł aczone dwiema krawędziami. Jest to sprzeczne z acyklicznościa G N. Otrzymana sprzeczność dowodzi (4). Z (3) i (4) wynika (2), co kończy dowód twierdzenia. Niech (T, r) będzie drzewem z wyróżnionym korzeniem. Z własności 1 wynika, że r nie ma poprzednika (ojca), natomiast wszystkie wierzchołki a r maja dokładnie jednego poprzednika (ojca). Możemy więc na V T zdefiniować funkcję przyjmujac: { poprzednik a gdy a r, p (a) = gdy a = r. Funkcję p nazywamy wektorem poprzedników drzewa ukorzenionego (T, r) i często zapisujemy w postaci [p (a)] a VT. Jeśli wierzchołki drzewa T ustawimy w ciag V T = {x 1, x 2,..., x n }, to funkcja p jest wyznaczona przez wektor [p (x 1 ), p (x 2 ),..., p (x n )] i możemy ja z tym wektorem utożsamiać. Jeżeli (T, r) jest drzewem ukorzenionym, to w T możemy wprowadzić strukurę grafu skierowanego. Definicję wektora poprzedników stosuje się również w tym przypadku, tzn. dla skierowanych drzew z wyróżnionym korzeniem. Sytuacja taka jest nawet łatwiejsza do opisania bo mamy wtedy p (b) = a (a, b) E T. Zauważmy jeszcze, że przy ustalonym zbiorze wierzchołków V, wektor poprzedników p drzewa (skierowanego) T z korzeniem r jednoznacznie określa to drzewo. Korzeń r jest bowiem jedynym elementem zbioru {a V ; p (a) = } oraz E T = {(a, b) ; (a, b) E T } = {(a, b) ; p (b) = a V } = {(p (b), b) ; p (b) }, czyli zbiór krawędzi E T można wyznaczyć znajac funkcję p. Oczywiście, podobna zależność zachodzi też dla drzew ukorzenionych nieskierowanych. Wektor poprzedników stanowi zatem reprezentację analityczna drzewa ukorzenionego. Reprezentacja ta jest wygodniejsza niż rozważane wcześniej macierze sasiedztwa i incydencji, listy sasiedztw, czy kody Prüfera. Co więcej, również drzewo wolne można zapisać za pomoca wektora poprzedników. W tym celu wystarczy wyróżnić jakikolwiek wierzchołek jako korzeń.

15 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 15 Ćwiczenie 16. Znale zć wektor poprzedników dla następujacych drzew ukorzenionych (kolejno sć wierzchołków alfabetyczna) 1) 2) 3) 4) 5) Ćwiczenie 17. Wyznaczczyć drzewo ukorzenione (T, r) o zbiorze wierzchołków V = {1,..., n} oraz wektorze poprzedników p. (1) p = [4, 4, 6, 6,, 5]. (2) p = [, 1, 1, 1, 2, 2, 4, 4, 7, 9]. (3) p = [, 1, 2, 3, 3, 3, 1, 7, 7, 9, 9, 1]. (4) p = [7, 9, 7, 11, 10, 10,, 1, 1, 7, 10, 9]. (5) p = [2, 3, 13, 6, 6, 12, 10, 10, 10, 11, 12, 13, 14, ]. Ćwiczenie 18. Znale zć wektory poprzedników drzew z ćwiczenia?? przyjmujac r = 2 oraz r = 5 (kolejno sć wierzchołków rosnaca). Niech a będzie ustalonym wierzchołkiem drzewa ukorzenionego (T, r) (nieskierowanego). W T istnieje dokładnie jedna ścieżka prosta z a do r. Znajac wektor poprzedników p, możemy łatwo tę ścieżkę wyznaczyć. Ma on postać: a p (a) p (p (a))... Można to zapisać przy pomocy następujacego algorytmu. Path(p, a) x := a d := a while p (x) do d := d {x, p (x)} p (x) x := p (x) % bieżacy wierzchołek % zbudowana ścieżka

16 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 16 Wynikiem działania procedury Path jest ścieżka prosta d z wierzchołka a do korzenia r. Procedurę można też wykorzystać do szukania ścieżki prostej z korzenia do wierzchołka a (również dla drzew skierowanych). Należy jedynie zapisać wierzchołki ścieżki d w odwrotnej kolejności. Ćwiczenie 19. Znale zć scieżkę prosta z wierzchołka a do korzenia dla drzew, których wektor poprzedników jest równy p. Zakładamy, że V = {1,..., n}. (1) p = [, 1, 1, 1, 2, 2, 4, 4, 7, 9], a = 5. (2) p = [, 1, 1, 1, 2, 2, 4, 4, 7, 9], a = 10. (3) p = [, 1, 2, 3, 3, 3, 1, 7, 7, 9, 9, 1], a = 5. (4) p = [, 1, 2, 3, 3, 3, 1, 7, 7, 9, 9, 1], a = 10. (5) p = [2, 3, 13, 6, 6, 12, 10, 10, 10, 11, 12, 13, 14, ], a = 5. (6) p = [2, 3, 13, 6, 6, 12, 10, 10, 10, 11, 12, 13, 14, ], a = 10. Pojęcie wektora poprzedników można rozszerzyć na dowolne proste grafy skierowane. Załóżmy, że G = (V, E) jest prostym grafem skierowanym oraz r ustalonym wierzchołkiem. Funkcję p = [p (a)] a V taka, że p (r) = oraz dla a V \ {r} zachodzi (p (a), a) E lub p (a) = nazywamy wektorem poprzedników w G. Oznaczmy V p = {a; p (a) } {r} oraz E p = {(p (a), a) ; p (a) }. Para (V p, E p ) może, ale nie musi być podgrafem grafu G. Jeśli G p = (V p, E p ) jest podgrafem, to nazywamy go podgrafem poprzedników. Rozważmy graf skierowany G Dla r = 1 funkcje p 1 = [, 1, 2, 1, 4], p 2 = [, 1, 4, 2, ], p 3 = [, 4, 2, 2, ] sa wektorami poprzedników. Odpowiadaja im grafy poprzedników, z których dwa pierwsze sa drzewami skierowanymi o korzeniu 1, zaś trzeci jest grafem skierowanym, ale nie jest drzewem skierowanym.

17 TEORIA GRAFÓW I SIECI - ROZDZIAŁV 17 Podobnie dla r = 2 funkcja p = [,, 2, 2, ] jest wektorem poprzedników, dla którego graf poprzedników jest drzewem skierowanym o korzeniu 2. Przyjmuj ac natomiast r = 1 oraz p = [,, 2, 2, ] dostajemy wektor poprzedników taki, że V p = {1, 3, 4}, E p = {(2, 3), (2, 4)}. Para (V p, E p ) nie jest więc grafem, bo 2 / V p.

TEORIA GRAFÓW I SIECI - ROZDZIAŁIV. Drzewa. Drzewa

TEORIA GRAFÓW I SIECI - ROZDZIAŁIV. Drzewa. Drzewa TEORIA GRAFÓW I SIECI - ROZDZIAŁIV Drzewa Drzewem lub drzewem wolnym nazywamy dowolny graf spójny i acykliczny. Drzewa Ćwiczenie 1. Narysować wszystkie, z dokłado sci a do izomorfizmu, drzewa o 1, 2, 3,

Bardziej szczegółowo

Ścieżki w grafach. Grafy acykliczne i spójne

Ś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ół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

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

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

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

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i A (symbol F i oznacza ilość argumentów funkcji F i ). W rozważanych przez nas algebrach

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstę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ół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

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy 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

Graf. Definicja marca / 1

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

Bardziej szczegółowo

Ogólne wiadomości o grafach

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

Bardziej szczegółowo

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

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x 2. Wykład 2: algebry Boole a, kraty i drzewa. 2.1. Algebra Boole a. 1 Ważnym dla nas przykładem algebr są algebry Boole a, czyli algebry B = (B,,,, 0, 1) typu (2, 2, 1, 0, 0) spełniające własności: (1)

Bardziej szczegółowo

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka

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

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

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

7a. Teoria drzew - kodowanie i dekodowanie

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

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

domykanie relacji, relacja równoważności, rozkłady zbiorów

domykanie relacji, relacja równoważności, rozkłady zbiorów 1 of 8 2012-03-28 17:45 Logika i teoria mnogości/wykład 5: Para uporządkowana iloczyn kartezjański relacje domykanie relacji relacja równoważności rozkłady zbiorów From Studia Informatyczne < Logika i

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

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

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

Bardziej szczegółowo

1 Działania na zbiorach

1 Działania na zbiorach M. Beśka, Wstęp do teorii miary, rozdz. 1 1 1 Działania na zbiorach W rozdziale tym przypomnimy podstawowe działania na zbiorach koncentrując się na własnościach tych działań, które będą przydatne w dalszej

Bardziej szczegółowo

Układy równań i nierówności liniowych

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

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

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru. Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie

Bardziej szczegółowo

Wykład 2. Poprawność algorytmów

Wykład 2. Poprawność algorytmów Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm

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

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

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

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

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

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10

System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10 System BCD z κ Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna Semestr letni 2009/10 Rozważamy system BCD ze stałą typową κ i aksjomatami ω κ κ i κ ω κ. W pierwszej części tej notatki

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2014 1 / 24 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

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

Listy, kolejki, stosy

Listy, kolejki, stosy Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:

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

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV Graf skierowany (digraf) zbiór wierzchołków i zbiór krawędzi skierowanych łączących (co najwyżej jeden raz) uporządkowane pary wierzchołków. Mówimy wtedy, że krawędź łączy pierwszy wierzchołek z drugim

Bardziej szczegółowo

Instrukcje dla zawodników

Instrukcje dla zawodników Instrukcje dla zawodników Nie otwieraj arkusza z zadaniami dopóki nie zostaniesz o to poproszony. Instrukcje poniżej zostaną ci odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde zadanie

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

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

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

Bardziej szczegółowo

Algorytmy w teorii liczb

Algorytmy w teorii liczb Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Bardziej szczegółowo

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

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

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

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych Arytmetyka liczb całkowitych Wykład 1 Na początku zajmować się będziemy zbiorem liczb całkowitych Z = {0, ±1, ±2,...}. Zakładamy, że czytelnik zna relację

Bardziej szczegółowo

Przestrzenie wektorowe

Przestrzenie wektorowe Rozdział 4 Przestrzenie wektorowe Rozważania dotyczące przestrzeni wektorowych rozpoczniemy od kilku prostych przykładów. Przykład 4.1. W przestrzeni R 3 = {(x, y, z) : x, y, z R} wprowadzamy dwa działania:

Bardziej szczegółowo

Rozdział 4. Ciągi nieskończone. 4.1 Ciągi nieskończone

Rozdział 4. Ciągi nieskończone. 4.1 Ciągi nieskończone Rozdział 4 Ciągi nieskończone W rozdziale tym wprowadzimy pojęcie granicy ciągu. Dalej rozszerzymy to pojęcie na przypadek dowolnych funkcji. Jak zauważyliśmy we wstępie jest to najważniejsze pojęcie analizy

Bardziej szczegółowo

TEORIA GRAFÓW I SIECI

TEORIA GRAFÓW I SIECI TEORIA GRAFÓW I SIECI Temat nr 1: Definicja grafu. Rodzaje i części grafów dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl tel.: 261-83-95-04, p.225/100

Bardziej szczegółowo

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. 1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie

Bardziej szczegółowo

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST) Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

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

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

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

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

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, 9. ćwiczenia

Algorytmy i Struktury Danych, 9. ćwiczenia Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące

Bardziej szczegółowo

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa

Bardziej szczegółowo

Problemy Decyzyjne dla Systemów Nieskończonych

Problemy Decyzyjne dla Systemów Nieskończonych Problemy Decyzyjne dla Systemów Nieskończonych Ćwiczenia 1 17 lutego 2012 Na tych ćwiczeniach zajmiemy się pojęciem well quasi-ordering (WQO) bardzo przydatnym do analizy nieskończonych ciągów. Definicja

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

1 Układy równań liniowych

1 Układy równań liniowych II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie

Bardziej szczegółowo

Rozdział 6. Ciągłość. 6.1 Granica funkcji

Rozdział 6. Ciągłość. 6.1 Granica funkcji Rozdział 6 Ciągłość 6.1 Granica funkcji Podamy najpierw dwie definicje granicy funkcji w punkcie i pokażemy ich równoważność. Definicja Cauchy ego granicy funkcji w punkcie. Niech f : X R, gdzie X R oraz

Bardziej szczegółowo

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

Bardziej szczegółowo

ZALICZENIE WYKŁADU: 30.I.2019

ZALICZENIE WYKŁADU: 30.I.2019 MATEMATYCZNE PODSTAWY KOGNITYWISTYKI ZALICZENIE WYKŁADU: 30.I.2019 KOGNITYWISTYKA UAM, 2018 2019 Imię i nazwisko:.......... POGROMCY PTAKÓW STYMFALIJSKICH 1. [2 punkty] Podaj definicję warunku łączności

Bardziej szczegółowo

Wykłady z Matematyki Dyskretnej

Wykłady z Matematyki Dyskretnej Wykłady z Matematyki Dyskretnej dla kierunku Informatyka dr Instytut Informatyki Politechnika Krakowska Wykłady na bazie materiałów: dra hab. Andrzeja Karafiata dr hab. Joanny Kołodziej, prof. PK Grafy

Bardziej szczegółowo

F t+ := s>t. F s = F t.

F t+ := s>t. F s = F t. M. Beśka, Całka Stochastyczna, wykład 1 1 1 Wiadomości wstępne 1.1 Przestrzeń probabilistyczna z filtracją Niech (Ω, F, P ) będzie ustaloną przestrzenią probabilistyczną i niech F = {F t } t 0 będzie rodziną

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Matematyka dyskretna. Andrzej Łachwa, UJ, /10 Matematyka dyskretna Andrzej Łachwa, UJ, 2018 andrzej.lachwa@uj.edu.pl 10/10 Podziały i liczby Stirlinga Liczba Stirlinga dla cykli (często nazywana liczbą Stirlinga pierwszego rodzaju) to liczba permutacji

Bardziej szczegółowo

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

dodatkowe operacje dla kopca binarnego: typu min oraz typu max: ASD - ćwiczenia IX Kopce binarne własność porządku kopca gdzie dla każdej trójki wierzchołków kopca (X, Y, Z) porządek etykiet elem jest następujący X.elem Y.elem oraz Z.elem Y.elem w przypadku kopca typu

Bardziej szczegółowo

Drzewa podstawowe poj

Drzewa podstawowe poj Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu

Bardziej szczegółowo

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany. Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

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

Lista 4. Kamil Matuszewski 22 marca 2016

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

Bardziej szczegółowo