









































Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
Szczegółowe opracowanie: Grafowy model danych
Typologia: Prezentacje
1 / 49
Ta strona nie jest widoczna w podglądzie
Nie przegap ważnych części!
Podstawowe poj Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/ ęcia
ą^ o długości 1 lub więcej, która zaczyna się^ i kończy w tym samym wierzcho
łku. Długość^ cyklu jest długością^ drogi. Cykl jest prosty (ang. simple) je
żeli^ żaden wierzchołek (oprócz pierwszego) nie pojawia się^ więcej ni
Jeżeli istnieje cykl nieprosty zawieraj
ący wierzchołek^ ν,^ to można znaleźć prosty cykl który zawiera^ ν.^ Jeżeli graf posiada jeden lub wi
ęcej cykli to mówimy ze jest grafem cyklicznym (ang. cyclic). Je
śli cykle nie występują^ to, graf określa się^ mianem acyklicznego (ang. acyclic).
za pomocą grafu skierowanego, zwanego grafem wywo
łań. Jego wierzchołki stanowią^ funkcje, a krawędź^ P -> Q istnieje wówczas, gdy funkcja P wywo
łuje funkcje Q. Istnienie cyklu w grafie implikuje występowanie w algorytmie rekurencji. Rekurencja w której funkcja wywo
łuje samą^ siebie nazywamy bezpoś
rednią^ (ang. direct). Czasem mamy do czynienia z rekurencja po
średnia (ang. indirect) która reprezentuje cykl o długości wi
ększej niż^ 1. np. P -> Q -> R -> P^ Graf wywołań^ dla algorytmu^ sortowania przez scalanie^ rekurencja^ bezpośrednia
Pewne pojęcia z teorii grafów Teoria grafów^ jest dziedziną^ Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/
żnych wierzchołków nosi nazwę^ grafu peł
nego (ang. complete^ graph). Graf pe
łny o n
Liczba krawędzi w nieskierowanym
grafie Kn^ wynosi n(n-1)/2, w skierowanym (^2) grafie Kn wynosi n.
10 Sposoby implementacji grafów Istnieją dwie standardowe metody reprezentacji grafów Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/
. Pierwsza z nich,
ąc, podobna do implementacji relacji binarnych. Druga,
(ang. adjacency^ matrices), to nowy sposób reprezentowania relacji binarnych, który jest bardziej odpowiedni dla relacji w przypadku których liczba istniej
ących par stanowi znaczącą^ część^ całkowitej liczby par, jakie mog
łyby teoretycznie
Wierzchołki są^ ponumerowane kolejnymi liczbami całkowitymi 0,1,....., MAX-1 lub oznaczone za pomocą^ innego adekwatnego typu wyliczeniowego (używamy poni
żej typu NODE jako synonimy typu wyliczeniowego). Wówczas można skorzysta
ć z podejścia opartego na wektorze w
łasnym. typedef^ struct^ *CELL LIST; struct^ CELL {^ NODE nodeName;^ LIST^ next; } LIST successors[MAX] Element successors[u] zawiera wska
źnik do listy jednokierunkowej wszystkich bezpośrednich następników wierzcho
łka u. Następniki mogą^ występować
w dowolnej kolejności na liście jednokierunkowej.
11
ły posortowane wg. kolejności, ale następniki mogą występować w dowolnej kolejności na odpowiedniej liście sąsiedztwa.
Porównanie macierzy s Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/ ąsiedztwa z listami sąsiedztwa. Macierze sąsiedztwa są preferowanym sposobem reprezentacji grafów wówczas, gdygrafy są gęste (ang. dense), to znaczy, kiedy liczba krawędzi jest bliska maksymalnej możliwej ich liczby. Dla grafy skierowanego o n wierzcho
łkach maksymalna liczba krawędzi wynosi n
reprezentacja oparta na listach są
siedztwa może pozwolić^ zaoszczędzi
ć^ pamięć. Istotne różnice miedzy przedstawionymi reprezentacjami grafów s
ą^ widoczne
Wyszukiwanie krawędzi^ Macierz s
ąsiedztwa^ Obie Znajdowanie następników^ Obie
Lista sąsiedztwa Znajdowanie poprzedników^ Macierz s
ąsiedztwa^ Obie Preferowany sposób reprezentacji:
Spójna składowa grafu nieskierowanego Każdy graf nieskierowany^ można podzieli Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/ ć^ na jedna lub większą^ liczbę
components). Każda spójna składowa to taki zbiór wierzcho
łków,^ że dla każdych dwóch z tych wierzchołków istnieje^ łącząca je^ ście
żka. Jeżeli^ graf składa się^ z jednej spójnej
to jest graf spójny
Algorytm wyznaczania spójnych sk Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/
ładowych
żadnej jego krawędzi Każdy wierzchołek stanowi odrębną^ spójn
ą^ składową^.
ładowe grafu Gi^ po rozpatrzeniu pierwszych i krawędzi, a obecnie rozpatrujemy (i+1) krawędź^ {u,v}.^ (a) jeżeli krawędź^ {u,v} należy do jednej spójnej składowej to nic się^ nie zmienia^ (b) jeżeli do dwóch różnych, to^ łą
czymy te dwie spójne składowe w jedną.
Struktura danych dla^ wyznaczania spójnych sk Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/
ładowych Biorąc pod uwagę^ przedstawiony algorytm, musimy zapewni
ć^ szybką wykonywalność^ następujących operacji.^ (1) gdy jest określony wierzchoł
ek to znajdź^ jego bieżącą spójną składową (2) połącz dwie spójne składowe w jedną Zaskakująco dobre wyniki daje ustawienie wierzcho
łków każdej składowej w strukturze drzewiastej, gdzie spójna sk
ładowa jest reprezentowana przez korzeń.^ (a) aby wykonać^ operacje (1) nale
ży przejść^ do korzenia (b) aby wykonać operacje (2) wystarczy korzeń^ jednej składowej określić jako potomka korzenia składowej drugiej. Przyjmiemy zasadę ze korzeń drzewa o mniejszej wysokości czynimy potomkiem. Przy takiej konstrukcji czas wykonania instrukcji (1) jest O(log(n)), czas wykonania instrukcji (2) jest O(1). Wyznaczenie wszystkich spójnych składowych to O(m log(n)) gdzie m=liczba kraw
ędzi, n=liczba wierzchołków.
Znajdowanie minimalnego drzewa rozpinajProf. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/
ącego Istnieje wiele algorytmów. Jeden z nich to algorytm Kruskala, który stanowiproste rozszerzenie algorytmu znajdowania spójnych sk
ładowych. Wymagane zmiany to:^ (1) należy rozpatrywać^ krawędzie w kolejno
ści zgodnej z rosnącą wartością^ ich etykiet.^ (2) należy dołączyć^ krawędź^ do drzewa rozpinaj
ącego tylko w takim wypadku gdy jej końce należą^ do dwóch ró
żnych spójnych składowych