7. Teoria drzew - spinanie i przeszukiwanie

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

Ł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

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

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

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

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

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

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

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

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

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

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

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

Matematyczne Podstawy Informatyki

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

Bardziej szczegółowo

Algorytmy 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

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

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

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

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

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

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

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

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

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

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

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

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

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym

Bardziej szczegółowo

Abstrakcyjne struktury danych - stos, lista, drzewo

Abstrakcyjne struktury danych - stos, lista, drzewo Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Kolorowanie wierzchołków grafu

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

Bardziej szczegółowo

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

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

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

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

Bardziej szczegółowo

Wyszukiwanie binarne

Wyszukiwanie binarne Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

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

Bardziej szczegółowo

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

Metody Programowania

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

Bardziej szczegółowo

Podstawy Informatyki. Metody dostępu do danych

Podstawy Informatyki. Metody dostępu do danych Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie

Bardziej szczegółowo

Wykład 7. Algorytmy grafowe

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np. Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

Drzewo binarne BST. LABORKA Piotr Ciskowski Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego

Bardziej szczegółowo

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

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

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27 Piotr Sankowski - p. 1/27 przypomnienie czas O(log 2 n), jak to zrobić w czasie O(log n), jak to zrobić w pesymistycznym czasie O(log n) (szkic). - p. 2/27 Operacje na dynamicznych drzewach: parent(v)

Bardziej szczegółowo

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak: Sortowanie stogowe Drzewo binarne Binary Tree Dotychczas operowaliśmy na prostych strukturach danych, takich jak tablice. W tablicy elementy ułożone są zgodnie z ich numeracją, czyli indeksami. Jeśli za

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych 1 Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych Alexander Denisjuk Prywatna Wyższa Szkoła Zawodowa w Giżycku

Bardziej szczegółowo

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

JAO - lematy o pompowaniu dla jezykow bezkontekstowy JAO - lematy o pompowaniu dla jezykow bezkontekstowych Postać normalna Chomsky ego Gramatyka G ze zbiorem nieterminali N i zbiorem terminali T jest w postaci normalnej Chomsky ego wtw gdy każda produkcja

Bardziej szczegółowo

E ' E G nazywamy krawędziowym zbiorem

E ' E G nazywamy krawędziowym zbiorem Niech G będzie grafem spójnym. Wierzchołek x nazywamy rozcinającym, jeśli G\{x} jest niespójny. Niech G będzie grafem spójnym. V ' V G nazywamy zbiorem rozcinającym jeśli G\V' jest niespójny Niech G będzie

Bardziej szczegółowo

Metody uporządkowania

Metody uporządkowania Metody uporządkowania W trakcie faktoryzacji macierzy rzadkiej ilość zapełnień istotnie zależy od sposobu numeracji równań. Powstaje problem odnalezienia takiej numeracji, przy której ilość zapełnień będzie

Bardziej szczegółowo

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

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

Bardziej szczegółowo

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 9 PRZESZUKIWANIE GRAFÓW Z

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 7 część I 2 Modele danych: zbiory Podstawowe definicje Operacje na zbiorach Prawa algebraiczne Struktury

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

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

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

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

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

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

Bardziej szczegółowo

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