7. Teoria drzew - spinanie i przeszukiwanie

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

Download "7. Teoria drzew - spinanie i przeszukiwanie"

Transkrypt

1 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 zima 2016/ / 46

2 1 Drzewa spinające 2 Drzewa binarne i przeszukiwania rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

3 Przypomnienie definicji Las Las to graf prosty, acykliczny. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

4 Przypomnienie definicji Las Las to graf prosty, acykliczny. Drzewo Drzewo to graf prosty, spójny, acykliczny (czyli spójny las). Wierzchołki drzewa nazywamy węzłami. Podgraf spójny drzewa nazywamy poddrzewem. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

5 Przypomnienie definicji Las Las to graf prosty, acykliczny. Drzewo Drzewo to graf prosty, spójny, acykliczny (czyli spójny las). Wierzchołki drzewa nazywamy węzłami. Podgraf spójny drzewa nazywamy poddrzewem. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

6 Charakteryzacja drzew Charakteryzacja drzew Dla grafu T = (V, E) następujące warunki są równoważne: 1. T jest drzewem. 2. T nie zawiera cykli i ma V 1 krawędzi. 3. T jest spójny i ma V 1 krawędzi (czyli nie da się zmniejszyć liczby krawędzi, by drzewo nadal było spójne). 4. T jest spójny i każda jego krawędź jest mostem. 5. Dowolne dwa wierzchołki grafu są połączone dokładnie jedną drogą prostą. 6. T nie zawiera cykli, lecz dodanie dowolnej nowej krawędzi tworzy dokładnie jeden cykl. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

7 Motywacja Motywacja badań drzew: rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

8 Motywacja Motywacja badań drzew: Przechowywanie informacji, umożliwiające szybki dostęp do każdego poziomu struktury. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

9 Motywacja Motywacja badań drzew: Przechowywanie informacji, umożliwiające szybki dostęp do każdego poziomu struktury. Unikanie redundancji. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

10 Motywacja Motywacja badań drzew: Przechowywanie informacji, umożliwiające szybki dostęp do każdego poziomu struktury. Unikanie redundancji. Opis zjawisk związanych z hierarchią (starszeństwa, zwierzchnictwa, katalogów, sekwencji czasowej). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

11 Drzewo spinające Drzewo spinające Drzewem spinającym (rozpinającym) grafu G nazywamy podgraf G zawierający wszystkie jego wierzchołki i będący drzewem. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

12 Drzewo spinające Drzewo spinające Drzewem spinającym (rozpinającym) grafu G nazywamy podgraf G zawierający wszystkie jego wierzchołki i będący drzewem. Łatwo zauważyć, że drzewo spinające jest minimalnym (ze względu na zawieranie zbioru krawędzi) podgrafem spójnym łączącym wszystkie wierzchołki grafu G. Dlatego wyznaczanie drzew spinających jest przydatne, gdy wierzchołki grafu symbolizują cele, jakie chcemy osiągnąć. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

13 Drzewo spinające - przykład Przykładowe drzewo spinające w grafie Petersena: Tu na czerwono. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

14 Drzewo spinające - przykład Przykładowe drzewo spinające w grafie Petersena: Tu na czerwono. A tu bez reszty grafu. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

15 Drzewo spinające - istnienie O istnieniu drzewa spinającego Każdy skończony graf ma drzewo spinające wtedy i tylko wtedy, gdy jest spójny. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

16 Drzewo spinające - istnienie O istnieniu drzewa spinającego Każdy skończony graf ma drzewo spinające wtedy i tylko wtedy, gdy jest spójny. Oczywiście, zazwyczaj takie drzewo nie jest jedyne. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

17 Drzewo spinające - istnienie O istnieniu drzewa spinającego Każdy skończony graf ma drzewo spinające wtedy i tylko wtedy, gdy jest spójny. Oczywiście, zazwyczaj takie drzewo nie jest jedyne. Algorytm znajdowania takiego drzewa, jeśli nie wymagamy nic więcej, jest tak prosty, jak tylko można sobie wymarzyć. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

18 Algorytm wyznaczania drzewa spinającego Algorytm wyznaczania drzewa spinającego Dane: Graf spójny skończony G = (V (G), E(G)), v - wierzchołek grafu spójnego G. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

19 Algorytm wyznaczania drzewa spinającego Algorytm wyznaczania drzewa spinającego Dane: Graf spójny skończony G = (V (G), E(G)), v - wierzchołek grafu spójnego G. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Niech V := {v}, E :=. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

20 Algorytm wyznaczania drzewa spinającego Algorytm wyznaczania drzewa spinającego Dane: Graf spójny skończony G = (V (G), E(G)), v - wierzchołek grafu spójnego G. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Niech V := {v}, E :=. II. Dopóki istnieją w grafie G krawędzie łączące wierzchołki ze zbioru V z wierzchołkami, które nie należą do V : wybierz krawędź uw łączącą wierzchołek u V z wierzchołkiem w / V, dołącz w do V i dołącz uw do E. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

21 Algorytm wyznaczania drzewa spinającego Algorytm wyznaczania drzewa spinającego Dane: Graf spójny skończony G = (V (G), E(G)), v - wierzchołek grafu spójnego G. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Niech V := {v}, E :=. II. Dopóki istnieją w grafie G krawędzie łączące wierzchołki ze zbioru V z wierzchołkami, które nie należą do V : wybierz krawędź uw łączącą wierzchołek u V z wierzchołkiem w / V, dołącz w do V i dołącz uw do E. Rezultat: E to zbiór krawędzi drzewa spinającego grafu G. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

22 Uwagi na temat algorytmu wyznaczania drzewa spinającego rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

23 Uwagi na temat algorytmu wyznaczania drzewa spinającego Algorytm działa wyjątkowo prosto - startujemy z dowolnego wierzchołka i dokładamy kolejne krawędzie, łącząc już stworzoną część nowego grafu z kolejnymi wierzchołkami, które nie zostały jeszcze podłączone do naszego drzewa, aż nie pozostanie ani jeden niepołączony wierzchołek lub skończą się krawędzie łączące wierzchołki połączone z niepołączonymi. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

24 Uwagi na temat algorytmu wyznaczania drzewa spinającego Algorytm działa wyjątkowo prosto - startujemy z dowolnego wierzchołka i dokładamy kolejne krawędzie, łącząc już stworzoną część nowego grafu z kolejnymi wierzchołkami, które nie zostały jeszcze podłączone do naszego drzewa, aż nie pozostanie ani jeden niepołączony wierzchołek lub skończą się krawędzie łączące wierzchołki połączone z niepołączonymi. Tego algorytmu można też użyć do badania, czy graf jest spójny. Jeśli algorytm skończy działanie i zbiór V nie zawiera wszystkich wierzchołków G, to G jest niespójny. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

25 Uwagi na temat algorytmu wyznaczania drzewa spinającego Algorytm działa wyjątkowo prosto - startujemy z dowolnego wierzchołka i dokładamy kolejne krawędzie, łącząc już stworzoną część nowego grafu z kolejnymi wierzchołkami, które nie zostały jeszcze podłączone do naszego drzewa, aż nie pozostanie ani jeden niepołączony wierzchołek lub skończą się krawędzie łączące wierzchołki połączone z niepołączonymi. Tego algorytmu można też użyć do badania, czy graf jest spójny. Jeśli algorytm skończy działanie i zbiór V nie zawiera wszystkich wierzchołków G, to G jest niespójny. Czas działania tego algorytmu to O( V (G) + E(G) ). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

26 Przykłady zastosowań wyznaczania drzewa spinającego rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

27 Przykłady zastosowań wyznaczania drzewa spinającego Wyznaczanie minimalnej koniecznej struktury (np. minimalnej sieci wodociągowej docierającej do wszystkich domów w miejscowości). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

28 Przykłady zastosowań wyznaczania drzewa spinającego Wyznaczanie minimalnej koniecznej struktury (np. minimalnej sieci wodociągowej docierającej do wszystkich domów w miejscowości). Broadcasting - wyznaczenie dozwolonych ścieżek po których sygnał ma iść od nadajnika do odbiorców, tak, by nie docierał do nich kilkukrotnie (unikanie redundancji). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

29 Minimalne drzewo spinające Drzewa spinające są przydatne, ale by zoptymalizować ich użyteczność, czasem potrzeba czegoś więcej. Na przykład, rozważając konieczną do zaopatrzenia wszystkich domów w miejscowości sieć wodociągową, możemy zażądać, by była ona jak najkrótsza (w sensie całkowitej długości rur). Wtedy poszukujemy tzw. minimalnego drzewa spinającego. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

30 Minimalne drzewo spinające Drzewa spinające są przydatne, ale by zoptymalizować ich użyteczność, czasem potrzeba czegoś więcej. Na przykład, rozważając konieczną do zaopatrzenia wszystkich domów w miejscowości sieć wodociągową, możemy zażądać, by była ona jak najkrótsza (w sensie całkowitej długości rur). Wtedy poszukujemy tzw. minimalnego drzewa spinającego. Minimalne drzewo spinające W grafie G z wagami minimalnym drzewem spinającym nazywamy takie drzewo, które jest spinające i jego waga (czyli suma wag jego krawędzi) jest nie większa niż waga jakiegokolwiek innego drzewa spinającego w tym samym grafie. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

31 Minimalne drzewo spinające Drzewa spinające są przydatne, ale by zoptymalizować ich użyteczność, czasem potrzeba czegoś więcej. Na przykład, rozważając konieczną do zaopatrzenia wszystkich domów w miejscowości sieć wodociągową, możemy zażądać, by była ona jak najkrótsza (w sensie całkowitej długości rur). Wtedy poszukujemy tzw. minimalnego drzewa spinającego. Minimalne drzewo spinające W grafie G z wagami minimalnym drzewem spinającym nazywamy takie drzewo, które jest spinające i jego waga (czyli suma wag jego krawędzi) jest nie większa niż waga jakiegokolwiek innego drzewa spinającego w tym samym grafie. Na szczęście, również wyznaczanie minimalnych drzew spinających jest dość proste. Działają tutaj dwa algorytmy zachłanne: algorytm Kruskala i algorytm Prima. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

32 Algorytm Kruskala Algorytm Kruskala Dane: G - skończony graf spójny z wagami, którego krawędzie są uporządkowane wg wzrastających wag e 1,..., e n, n = E(G). Zmienne: E - zbiór krawędzi. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

33 Algorytm Kruskala Algorytm Kruskala Dane: G - skończony graf spójny z wagami, którego krawędzie są uporządkowane wg wzrastających wag e 1,..., e n, n = E(G). Zmienne: E - zbiór krawędzi. I. Podstaw E :=. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

34 Algorytm Kruskala Algorytm Kruskala Dane: G - skończony graf spójny z wagami, którego krawędzie są uporządkowane wg wzrastających wag e 1,..., e n, n = E(G). Zmienne: E - zbiór krawędzi. I. Podstaw E :=. II. Dla j = 1 do n wykonuj: jeśli graf E {e j } jest acykliczny, dołącz e j do E. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

35 Algorytm Kruskala Algorytm Kruskala Dane: G - skończony graf spójny z wagami, którego krawędzie są uporządkowane wg wzrastających wag e 1,..., e n, n = E(G). Zmienne: E - zbiór krawędzi. I. Podstaw E :=. II. Dla j = 1 do n wykonuj: jeśli graf E {e j } jest acykliczny, dołącz e j do E. Rezultat: E to zbiór krawędzi minimalnego drzewa spinającego G. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

36 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

37 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

38 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

39 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

40 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

41 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

42 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

43 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, CD, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

44 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, CD, BC, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

45 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, CD, BC, CE, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

46 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, CD, BC, CE, CF, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

47 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, CD, BC, CE, CF, EF, rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

48 Algorytm Kruskala - przykład Należy znaleźć minimalne drzewo spinające w grafie powyżej za pomocą algorytmu Kruskala. Przygotowanie do algorytmu wymaga wypisania krawędzi w kolejności wzrastających wag (jeśli wagi dwu krawędzi są równe, to ich kolejność jest dowolna). W tym przypadku to uporządkowanie może wyglądać np. tak: BD, AC, BE, AB, AD, CD, BC, CE, CF, EF, DF. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

49 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

50 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Działanie algorytmu zapisujemy w takiej tabelce: Nr kroku wybrana krawędź krawędzie odrzucone przed wyborem 1?? 2?? Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

51 Algorytm Kruskala - przykład Dołączenie pierwszych 4 krawędzi: BD,AC,BE,AB nie sprawia żadnych problemów. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

52 Algorytm Kruskala - przykład Dołączenie pierwszych 4 krawędzi: BD,AC,BE,AB nie sprawia żadnych problemów. Nr kroku wybrana krawędź krawędzie odrzucone przed wyborem 1 BD - 2 AC - 3 BE - 4 AB - rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

53 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

54 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Nie możemy teraz dołączyć krawędzu AD, gdyż stworzyłoby to cykl ABDA. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

55 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Nie możemy teraz dołączyć krawędzu AD, gdyż stworzyłoby to cykl ABDA. Krawędź CD również odpada (cykl ACDBA), Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

56 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Nie możemy teraz dołączyć krawędzu AD, gdyż stworzyłoby to cykl ABDA. Krawędź CD również odpada (cykl ACDBA), podobnie BC (cykl ABCA), Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

57 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Nie możemy teraz dołączyć krawędzu AD, gdyż stworzyłoby to cykl ABDA. Krawędź CD również odpada (cykl ACDBA), podobnie BC (cykl ABCA), CE tworzy cykl ACEBA. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

58 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Nie możemy teraz dołączyć krawędzu AD, gdyż stworzyłoby to cykl ABDA. Krawędź CD również odpada (cykl ACDBA), podobnie BC (cykl ABCA), CE tworzy cykl ACEBA. Dopiero krawędź CF pasuje. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

59 Algorytm Kruskala - przykład Kolejność krawędzi: BD,AC,BE,AB,AD,CD,BC,CE,CF,EF,DF. Nie możemy teraz dołączyć krawędzu AD, gdyż stworzyłoby to cykl ABDA. Krawędź CD również odpada (cykl ACDBA), podobnie BC (cykl ABCA), CE tworzy cykl ACEBA. Dopiero krawędź CF pasuje. Jednocześnie, dołączenie tej krawędzi powoduje, że wszystkie wierzchołki grafu są połączone, więc otrzymaliśmy nasze drzewo spinające (dołączenie dowolnej z następnych krawędzi musiałoby stworzyć cykl). Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

60 Algorytm Kruskala - przykład Działanie algorytmu opisuje tabelka: rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

61 Algorytm Kruskala - przykład Działanie algorytmu opisuje tabelka: Nr kroku wybrana krawędź krawędzie odrzucone przed wyborem 1 BD - 2 AC - 3 BE - 4 AB - 5 CF AD,CD,BC,CE Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

62 Algorytm Kruskala - przykład Wynikiem algorytmu jest powyższe minimalne drzewo spinające. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

63 Algorytm Kruskala - przykład Wynikiem algorytmu jest powyższe minimalne drzewo spinające. Waga tego drzewa wynosi 13 (suma wag krawędzi). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

64 Algorytm Kruskala - uwagi rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

65 Algorytm Kruskala - uwagi Algorytm Kruskala działa poprawnie, nawet jeśli graf G ma pętle i krawędzie wielokrotne. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

66 Algorytm Kruskala - uwagi Algorytm Kruskala działa poprawnie, nawet jeśli graf G ma pętle i krawędzie wielokrotne. Nie trzeba nawet zakładać spójności - jednak wtedy znajdziemy nie drzewo, a las spinający. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

67 Algorytm Kruskala - uwagi Algorytm Kruskala działa poprawnie, nawet jeśli graf G ma pętle i krawędzie wielokrotne. Nie trzeba nawet zakładać spójności - jednak wtedy znajdziemy nie drzewo, a las spinający. Wadą tego algorytmu jest to, że przed jego zastosowaniem musimy jakoś uporządkować krawędzie według wzrastających wag. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

68 Algorytm Kruskala - uwagi Algorytm Kruskala działa poprawnie, nawet jeśli graf G ma pętle i krawędzie wielokrotne. Nie trzeba nawet zakładać spójności - jednak wtedy znajdziemy nie drzewo, a las spinający. Wadą tego algorytmu jest to, że przed jego zastosowaniem musimy jakoś uporządkować krawędzie według wzrastających wag. Jednakże, nawet razem z tym uporządkowaniem, algorytm Kruskala zajmuje tylko O( E(G) log E(G) ) czasu. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

69 Algorytm Kruskala - uwagi Algorytm Kruskala działa poprawnie, nawet jeśli graf G ma pętle i krawędzie wielokrotne. Nie trzeba nawet zakładać spójności - jednak wtedy znajdziemy nie drzewo, a las spinający. Wadą tego algorytmu jest to, że przed jego zastosowaniem musimy jakoś uporządkować krawędzie według wzrastających wag. Jednakże, nawet razem z tym uporządkowaniem, algorytm Kruskala zajmuje tylko O( E(G) log E(G) ) czasu. Problemem może być jedynie sytuacja, gdy na początku tego uporządkowania krawędzi nie da się uzyskać (np. dane o wagach uzyskujemy w miarę tworzenia się naszego drzewa). W takiej sytuacji lepiej zastosować algorytm Prima. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

70 Algorytm Prima Algorytm Prima Dane: G - skończony graf spójny z wagami. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

71 Algorytm Prima Algorytm Prima Dane: G - skończony graf spójny z wagami. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Podstaw E :=. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

72 Algorytm Prima Algorytm Prima Dane: G - skończony graf spójny z wagami. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Podstaw E :=. II. Wybierz w - dowolny wierzchołek ze zbioru V (G) i niech V := {w}. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

73 Algorytm Prima Algorytm Prima Dane: G - skończony graf spójny z wagami. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Podstaw E :=. II. Wybierz w - dowolny wierzchołek ze zbioru V (G) i niech V := {w}. III. Dopóki V V (G) wykonuj: wybierz w zbiorze E(G) krawędź uv o najmniejszej możliwej wadze, taką, że u V i v V (G) \ V, a następnie dołącz krawędź uv do zbioru E i wierzchołek v do zbioru V. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

74 Algorytm Prima Algorytm Prima Dane: G - skończony graf spójny z wagami. Zmienne: E - zbiór krawędzi, V - zbiór wierzchołków. I. Podstaw E :=. II. Wybierz w - dowolny wierzchołek ze zbioru V (G) i niech V := {w}. III. Dopóki V V (G) wykonuj: wybierz w zbiorze E(G) krawędź uv o najmniejszej możliwej wadze, taką, że u V i v V (G) \ V, a następnie dołącz krawędź uv do zbioru E i wierzchołek v do zbioru V. Rezultat: E to zbiór krawędzi minimalnego drzewa spinającego G. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

75 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

76 Algorytm Prima - przykład Będziemy wybierać krawędzie do drzewa, zaczynając od wierzchołka A. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

77 Algorytm Prima - przykład Będziemy wybierać krawędzie do drzewa, zaczynając od wierzchołka A. Kolejne kroki algorytmu zapisujemy w takiej tabeli: Nr etapu wybór krawędzi alternatywne, dozwolone wybory 1?? 2?? Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

78 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

79 Algorytm Prima - przykład V = {A}. Możliwe połączenia między V, a V (G) \ V to AB, AC i AD. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

80 Algorytm Prima - przykład V = {A}. Możliwe połączenia między V, a V (G) \ V to AB, AC i AD. Z nich, najmniejszą wagę ma AC, więc dołączamy AC do drzewa, a C do zbioru V. Nr etapu wybór krawędzi alternatywne, dozwolone wybory 1 AC - Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

81 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

82 Algorytm Prima - przykład V = {A, C}. Możliwe połączenia między V, a V (G) \ V to AB, AD, CB, CD, CE, CF. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

83 Algorytm Prima - przykład V = {A, C}. Możliwe połączenia między V, a V (G) \ V to AB, AD, CB, CD, CE, CF. Z nich, najmniejsze wagi mają AB, AD i CD. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

84 Algorytm Prima - przykład V = {A, C}. Możliwe połączenia między V, a V (G) \ V to AB, AD, CB, CD, CE, CF. Z nich, najmniejsze wagi mają AB, AD i CD. Wybieramy dowolną z nich (np. CD) dołączając ją do drzewa, drugi jej koniec (czyli D) dołączamy do V, a pozostałe z tych krawędzi zaznaczamy w tabelce jako alternatywne, dozwolone wybory. Nr etapu wybór krawędzi alternatywne, dozwolone wybory 2 CD AB,AD Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

85 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

86 Algorytm Prima - przykład V = {A, C, D}. Możliwe połączenia między V, a V (G) \ V to wszystkie czarne krawędzie powyższego grafu poza AD, BE i EF. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

87 Algorytm Prima - przykład V = {A, C, D}. Możliwe połączenia między V, a V (G) \ V to wszystkie czarne krawędzie powyższego grafu poza AD, BE i EF. Z nich, najmniejszą wagę ma BD, więc dołączamy BD do drzewa, a B do zbioru V. Nr etapu wybór krawędzi alternatywne, dozwolone wybory 3 BD - rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

88 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

89 Algorytm Prima - przykład V = {A, B, C, D}. Możliwe połączenia między V, a V (G) \ V to BE, CE, CF i DF. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

90 Algorytm Prima - przykład V = {A, B, C, D}. Możliwe połączenia między V, a V (G) \ V to BE, CE, CF i DF. Z nich, najmniejszą wagę ma BE, więc dołączamy BE do drzewa, a E do zbioru V. Nr etapu wybór krawędzi alternatywne, dozwolone wybory 4 BE - Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

91 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

92 Algorytm Prima - przykład V = {A, B, C, D, E}. Możliwe połączenia między V, a V (G) \ V to CF i DF. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

93 Algorytm Prima - przykład V = {A, B, C, D, E}. Możliwe połączenia między V, a V (G) \ V to CF i DF. Z nich, najmniejszą wagę ma CF, więc dołączamy CF do drzewa, a F do zbioru V. Nr etapu wybór krawędzi alternatywne, dozwolone wybory 5 CF - Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

94 Algorytm Prima - przykład Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

95 Algorytm Prima - przykład V = {A, B, C, D, E, F } = V (G), więc algorytm się kończy. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

96 Algorytm Prima - przykład V = {A, B, C, D, E, F } = V (G), więc algorytm się kończy. Działanie algorytmu Prima opisuje tabela: Nr etapu wybór krawędzi alternatywne, dozwolone wybory 1 AC - 2 CD AB, AD 3 BD - 4 BE - 5 CF - rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

97 Algorytm Prima - przykład Wynikiem algorytmu jest powyższe minimalne drzewo spinające. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

98 Algorytm Prima - przykład Wynikiem algorytmu jest powyższe minimalne drzewo spinające. Waga tego drzewa wynosi 13 (suma wag krawędzi). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

99 Algorytm Prima - przykład Wynikiem algorytmu jest powyższe minimalne drzewo spinające. Waga tego drzewa wynosi 13 (suma wag krawędzi). Warto zauważyć, że minimalne drzewo spinające, które otrzymaliśmy za pomocą algorytmu Prima jest inne niż otrzymane za pomocą algorytmu Kruskala. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

100 Algorytm Prima - przykład Wynikiem algorytmu jest powyższe minimalne drzewo spinające. Waga tego drzewa wynosi 13 (suma wag krawędzi). Warto zauważyć, że minimalne drzewo spinające, które otrzymaliśmy za pomocą algorytmu Prima jest inne niż otrzymane za pomocą algorytmu Kruskala. Jednakże ich waga jest taka sama (obydwa są minimalne). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

101 Algorytm Prima - uwagi rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

102 Algorytm Prima - uwagi Złożoność obliczeniowa algorytmu Prima to O( V (G) 2 ). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

103 Algorytm Prima - uwagi Złożoność obliczeniowa algorytmu Prima to O( V (G) 2 ). Pętle i krawędzie wielokrotne nie przeszkadzają w działaniu tego algorytmu. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

104 Algorytm Prima - uwagi Złożoność obliczeniowa algorytmu Prima to O( V (G) 2 ). Pętle i krawędzie wielokrotne nie przeszkadzają w działaniu tego algorytmu. Jeśli graf jest niespójny i chcemy otrzymać na końcu spinający las (czyli po jednym drzewie spinającym na każdą składową), to musimy algorytm nieco zmodyfikować (ćwiczenie). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

105 Drzewo z wyróżnionym korzeniem Drzewo z wyróżnionym korzeniem Drzewo z wyróżnionym korzeniem jest to drzewo z wyróżnionym jednym wierzchołkiem, nazywanym korzeniem. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

106 Drzewo z wyróżnionym korzeniem Drzewo z wyróżnionym korzeniem Drzewo z wyróżnionym korzeniem jest to drzewo z wyróżnionym jednym wierzchołkiem, nazywanym korzeniem. Tradycyjnie, drzewa z wyróżnionym korzeniem rysuje się tak, by korzeń był na samej górze. Czasem interpretuje się je jako grafy skierowane ze strzałkami skierowanymi w dół. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

107 Drzewo z wyróżnionym korzeniem Drzewo z wyróżnionym korzeniem Drzewo z wyróżnionym korzeniem jest to drzewo z wyróżnionym jednym wierzchołkiem, nazywanym korzeniem. Tradycyjnie, drzewa z wyróżnionym korzeniem rysuje się tak, by korzeń był na samej górze. Czasem interpretuje się je jako grafy skierowane ze strzałkami skierowanymi w dół. A jest korzeniem poniższego drzewa. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

108 Liście Liść Liść drzewa to wierzchołek stopnia 1, który nie jest wyróżniony jako korzeń. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

109 Liście Liść Liść drzewa to wierzchołek stopnia 1, który nie jest wyróżniony jako korzeń. Niebieskie wierzchołki w tym drzewie to liście. A jest korzeniem, więc choć jest stopnia 1, to nie jest liściem. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

110 Rodzice i dzieci Rodzice i dzieci Jeśli para (v, w) jest krawędzią drzewa z wyróżnionym korzeniem, to v jest rodzicem w, a w jest dzieckiem v. Ogólniej, w jest potomkiem v, jeśli w v i v jest wierzchołkiem jedynej drogi prostej z korzenia do wierzchołka w. v nazywamy wtedy przodkiem w. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

111 Rodzice i dzieci Rodzice i dzieci Jeśli para (v, w) jest krawędzią drzewa z wyróżnionym korzeniem, to v jest rodzicem w, a w jest dzieckiem v. Ogólniej, w jest potomkiem v, jeśli w v i v jest wierzchołkiem jedynej drogi prostej z korzenia do wierzchołka w. v nazywamy wtedy przodkiem w. Wszystkie wierzchołki są potomkami A, ale tylko B, C i D są jego dziećmi. D jest rodzicem G, a B jest przodkiem I. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

112 Poziom wierzchołka Poziom wierzchołka Poziomem wierzchołka v nazywamy długość jedynej drogi prostej od korzenia do v. Wysokość drzewa z wyróżnionym korzeniem to największy możliwy poziom wierzchołka tego drzewa. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

113 Poziom wierzchołka Poziom wierzchołka Poziomem wierzchołka v nazywamy długość jedynej drogi prostej od korzenia do v. Wysokość drzewa z wyróżnionym korzeniem to największy możliwy poziom wierzchołka tego drzewa. Poniższe drzewo ma wysokość 3. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

114 Poziom wierzchołka Poziom wierzchołka Poziomem wierzchołka v nazywamy długość jedynej drogi prostej od korzenia do v. Wysokość drzewa z wyróżnionym korzeniem to największy możliwy poziom wierzchołka tego drzewa. Poniższe drzewo ma wysokość 3. B, C i D są wierzchołkami poziomu 1, E,F i G - poziomu 2, a H i I - poziomu 3. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

115 Poddrzewo Drzewo po prawej jest poddrzewem drzewa po lewej o korzeniu B. Poddrzewo Poddrzewo o korzeniu v jest to drzewo T v, składające się z korzenia v, wszystkich jego potomków i wszystkich krawędzi (potencjalnie skierowanych) łączących ich. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

116 Przykłady zastosowań drzew z wyróżnionym korzeniem rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

117 Przykłady zastosowań drzew z wyróżnionym korzeniem Struktura uporządkowania katalogów, podkatalogów i plików rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

118 Przykłady zastosowań drzew z wyróżnionym korzeniem Struktura uporządkowania katalogów, podkatalogów i plików Opis jakiejkolwiek struktury hierarchicznej (np. władze uczelni) rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

119 Przykłady zastosowań drzew z wyróżnionym korzeniem Struktura uporządkowania katalogów, podkatalogów i plików Opis jakiejkolwiek struktury hierarchicznej (np. władze uczelni) Drzewo genealogiczne rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

120 Przykłady zastosowań drzew z wyróżnionym korzeniem Struktura uporządkowania katalogów, podkatalogów i plików Opis jakiejkolwiek struktury hierarchicznej (np. władze uczelni) Drzewo genealogiczne Drzewkowy zapis algorytmu postępowania (np. przepis kucharski, poradnik diagnostyczno-medyczny). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

121 Drzewo binarne Drzewo binarne Drzewo binarne jest to drzewo z wyróżnionym korzeniem, w którym każdy węzeł ma co najwyżej dwoje dzieci, wśród których wyróżniamy dzieci prawe i lewe. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

122 Drzewo binarne Drzewo binarne Drzewo binarne jest to drzewo z wyróżnionym korzeniem, w którym każdy węzeł ma co najwyżej dwoje dzieci, wśród których wyróżniamy dzieci prawe i lewe. Zielone wierzchołki to lewe dzieci swoich rodziców, a czerwone - prawe. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

123 Drzewo binarne Drzewo binarne Drzewo binarne jest to drzewo z wyróżnionym korzeniem, w którym każdy węzeł ma co najwyżej dwoje dzieci, wśród których wyróżniamy dzieci prawe i lewe. Zielone wierzchołki to lewe dzieci swoich rodziców, a czerwone - prawe. Warto zauważyć, że wierzchołek D ma tylko dziecko lewe. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

124 Drzewo binarne - przykład Przykładem drzewa binarnego jest łatwa do przeszukiwania alfabetyczna baza danych (np. pacjentów szpitala), będąca szczególnym przypadkiem tzw. drzewa poszukiwań binarnych. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

125 Drzewo poszukiwań binarnych Drzewo poszukiwań binarnych Drzewo poszukiwań binarnych jest to drzewo binarne składające się z węzłów z uporządkowanymi etykietami (węzłów indeksowanych zbiorem uporządkowanym), w którym lewe poddrzewo każdego węzła zawiera wyłącznie węzły o etykietach nie większych niż etykieta węzła a prawe poddrzewo zawiera wyłącznie węzły o etykietach nie mniejszych niż etykieta węzła. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

126 Drzewo poszukiwań binarnych Drzewo poszukiwań binarnych Drzewo poszukiwań binarnych jest to drzewo binarne składające się z węzłów z uporządkowanymi etykietami (węzłów indeksowanych zbiorem uporządkowanym), w którym lewe poddrzewo każdego węzła zawiera wyłącznie węzły o etykietach nie większych niż etykieta węzła a prawe poddrzewo zawiera wyłącznie węzły o etykietach nie mniejszych niż etykieta węzła. W ten sposób tworzy się bazy danych, których etykiety są np. liczbami lub słowami (uporządkowanymi alfabetycznie), i które bardzo szybko można przeszukać i znaleźć dany węzeł. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

127 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

128 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. I. Podstawiamy w = v. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

129 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. I. Podstawiamy w = v. II. Porównujemy etykietę w i x. Jeśli etykiety są równe: STOP. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

130 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. I. Podstawiamy w = v. II. Porównujemy etykietę w i x. Jeśli etykiety są równe: STOP. III. Jeśli etykieta v jest większa od x, to w := lewe dziecko v i przechodzimy do kroku V. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

131 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. I. Podstawiamy w = v. II. Porównujemy etykietę w i x. Jeśli etykiety są równe: STOP. III. Jeśli etykieta v jest większa od x, to w := lewe dziecko v i przechodzimy do kroku V. IV. Jeśli etykieta v jest mniejsza od x, to w := prawe dziecko v i przechodzimy do kroku V. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

132 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. I. Podstawiamy w = v. II. Porównujemy etykietę w i x. Jeśli etykiety są równe: STOP. III. Jeśli etykieta v jest większa od x, to w := lewe dziecko v i przechodzimy do kroku V. IV. Jeśli etykieta v jest mniejsza od x, to w := prawe dziecko v i przechodzimy do kroku V. V. Wykonujemy PRZESZUKIWANIE(w,x). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

133 Drzewo poszukiwań binarnych - przeszukiwanie Przeszukiwanie drzewa poszukiwań binarnych jest rekurencyjne: PRZESZUKIWANIE(v,x) Dane: Drzewo poszukiwań binarnych z korzeniem v, x - poszukiwana wartość etykiety. Zmienne: w - węzeł. I. Podstawiamy w = v. II. Porównujemy etykietę w i x. Jeśli etykiety są równe: STOP. III. Jeśli etykieta v jest większa od x, to w := lewe dziecko v i przechodzimy do kroku V. IV. Jeśli etykieta v jest mniejsza od x, to w := prawe dziecko v i przechodzimy do kroku V. V. Wykonujemy PRZESZUKIWANIE(w,x). Rezultat: w to węzeł o etykiecie x. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

134 Przeszukiwanie - przykład Załóżmy, że za pomocą powyższego algorytmu szukamy w bazie opisanej powyższym drzewem etykiety Kowalski. rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

135 Przeszukiwanie - przykład Załóżmy, że za pomocą powyższego algorytmu szukamy w bazie opisanej powyższym drzewem etykiety Kowalski. Wykonujemy wtedy algorytm PRZESZUKIWANIE(Nowak,Kowalski). Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

136 Przeszukiwanie - przykład Nowak Kowalski, więc nie kończymy algorytmu. Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

137 Przeszukiwanie - przykład Nowak Kowalski, więc nie kończymy algorytmu. Ponieważ alfabetycznie Kowalski<Nowak, przesuwamy się do lewego dziecka Nowaka, którym jest Kowalczyk rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

138 Przeszukiwanie - przykład Nowak Kowalski, więc nie kończymy algorytmu. Ponieważ alfabetycznie Kowalski<Nowak, przesuwamy się do lewego dziecka Nowaka, którym jest Kowalczyk i odpalamy algorytm PRZESZUKIWANIE(Kowalczyk,Kowalski). rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie zima 2016/ / 46

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

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

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

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

6. Wstępne pojęcia teorii grafów

6. Wstępne pojęcia teorii grafów 6. Wstępne pojęcia teorii grafów Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 6. Wstępne pojęcia teorii grafów zima 2016/2017

Bardziej szczegół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

5c. Sieci i przepływy

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

Bardziej szczegółowo

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

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

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

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie Odpowiedzi do zadania domowego www.akademia.etrapez.pl Strona 1 Część 1: TEST 1) b 2) a 3) b 4) d 5) c 6) d 7) b 8) b 9) d 10) a Zad. 1 ODPOWIEDZI

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

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

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

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

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

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

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

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 I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu

Bardziej szczegółowo

6a. Grafy eulerowskie i hamiltonowskie

6a. Grafy eulerowskie i hamiltonowskie 6a. Grafy eulerowskie i hamiltonowskie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny6a. w Krakowie) Grafy eulerowskie i hamiltonowskie

Bardziej szczegół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

Elementy teorii grafów Elementy teorii grafów

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

Bardziej szczegółowo

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

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DRZEWA i LASY Drzewem nazywamy graf spójny nie zawierający cykli elementarnych. Lasem nazywamy graf nie zawierający cykli elementarnych. Przykłady drzew i lasów takie krawędzie są wykluczone drzewo las

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

Indukowane Reguły Decyzyjne I. Wykład 3

Indukowane Reguły Decyzyjne I. Wykład 3 Indukowane Reguły Decyzyjne I Wykład 3 IRD Wykład 3 Plan Powtórka Grafy Drzewa klasyfikacyjne Testy wstęp Klasyfikacja obiektów z wykorzystaniem drzewa Reguły decyzyjne generowane przez drzewo 2 Powtórzenie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

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

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

(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

Matematyka dyskretna - 8. Egzaminy próbne. Uwaga! Niektórych z tych zadań nie obejmuje program dla studiów zaocznych - proszę się tym nie niepokoić -

Matematyka dyskretna - 8. Egzaminy próbne. Uwaga! Niektórych z tych zadań nie obejmuje program dla studiów zaocznych - proszę się tym nie niepokoić - Matematyka dyskretna - 8. Egzaminy próbne. Uwaga! Niektórych z tych zadań nie obejmuje program dla studiów zaocznych - proszę się tym nie niepokoić - takie zadania pojawią się tylko na egzaminach dla studentów

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

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

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo

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

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie ZADANIE DOMOWE www.akademia.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź (tylko jedna jest prawdziwa). Pytanie 1 Drogę nazywamy

Bardziej szczegół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

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

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

MATEMATYKA DYSKRETNA - KOLOKWIUM 2 1 MATEMATYKA DYSKRETNA - KOLOKWIUM 2 GRUPA A RACHUNKI+KRÓTKIE WYJAŚNIENIA! NA TEJ KARTCE! KAŻDA DODATKOWA KARTKA TO MINUS 1 PUNKT! Imię i nazwisko...... Nr indeksu... 1. (3p.) Znajdź drzewo o kodzie Prufera

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Łyżwy - omówienie zadania

Łyżwy - omówienie zadania Komisja Regulaminowa XVI Olimpiady Informatycznej 1 UMK Toruń 12 luty 2009 1 Niniejsza prezentacja zawiera materiały dostarczone przez Komitet Główny Olimpiady Informatycznej. Treść zadania Wejście Wyjście

Bardziej szczegółowo

Programowanie sieciowe. Tadeusz Trzaskalik

Programowanie sieciowe. Tadeusz Trzaskalik Programowanie Tadeusz Trzaskalik 8.1. Wprowadzenie Słowa kluczowe Drzewo rozpinające Minimalne drzewo rozpinające Najkrótsza droga w sieci Wierzchołek początkowy Maksymalny przepływ w sieci Źródło Ujście

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Podstawowe pojęcia i klasy grafów Wykład 1 Grafy nieskierowane Definicja Graf nieskierowany (graf) G = (V,E) jest to uporządkowana para składająca się z niepustego skończonego zbioru wierzchołków V oraz

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Opracowanie prof. J. Domsta 1

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

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

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

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach

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

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

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

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

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

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

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

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

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

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:

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

Matematyka dyskretna - 5.Grafy.

Matematyka dyskretna - 5.Grafy. Matematyka dyskretna - 5.Grafy. W tym rozdziale zajmiemy się grafami. Są to wykresy zawierające rozmaite informacje, przedstawiające połączenia pomiędzy różnymi swoimi elementami. Algorytmy na nich oparte

Bardziej szczegół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

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

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem MODELE SIECIOWE 1. Drzewo rozpinające (spanning tree) w grafie liczącym n wierzchołków to zbiór n-1 jego krawędzi takich, że dowolne dwa wierzchołki grafu można połączyć za pomocą krawędzi należących do

Bardziej szczegółowo

Wprowadzenie do maszyny Turinga

Wprowadzenie do maszyny Turinga Wprowadzenie do maszyny Turinga Deterministyczna Maszyna Turinga (DTM) jest pewną klasą abstrakcyjnych modeli obliczeń. W tej instrukcji omówimy konkretną maszynę Turinga, którą będziemy zajmować się podczas

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest

Bardziej szczegółowo

TEORIA GRAFÓW I SIECI

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

Bardziej szczegółowo

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ). Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze

Bardziej szczegół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

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

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

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

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

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

Rekurencja. Przykład. Rozważmy ciąg

Rekurencja. Przykład. Rozważmy ciąg Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

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

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

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

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