Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

Teoretyczne podstawy informatyki, Prezentacje z Computer Science

Szczegółowe opracowanie: Grafowy model danych

Typologia: Prezentacje

2019/2020

Załadowany 26.08.2020

Irena85
Irena85 🇵🇱

4.7

(88)

302 dokumenty

1 / 49

Toggle sidebar

Ta strona nie jest widoczna w podglądzie

Nie przegap ważnych części!

bg1
1
Prof. dr hab. E. Richter-Was,
Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ 2008/2009
Wykład 9: Grafowy model danych
Teoretyczne podstawy informatyki
Graf to jest relacja binarna.
Dla grafów mamy ogromne możliwości wizualizacji jako
zbiór punktów
(zwanych wierzchołkami)
połączonych liniami lub strzałkami
(nazwanych krawędziami). Pod tym względem
graf stanowi uogólnienie
drzewiastego modelu danych
. Podobnie jak drzewa, grafy występują
w
żnych postaciach: grafów skierowanych i nieskierowanych
lub
etykietowanych i niezaetykietowanych.
Grafy są
przydatne do analizy szerokiego zakresu problemów:
obliczanie odległości, znajdowanie cykliczności w relacjach,
reprezentacji struktury programów, reprezentacji relacji binarnych,
reprezentacji automatów i układów elektronicznych.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31

Podgląd częściowego tekstu

Pobierz Teoretyczne podstawy informatyki i więcej Prezentacje w PDF z Computer Science tylko na Docsity!

Teoretyczne podstawy informatyki Wykład 9: Grafowy model danych Graf to jest relacja binarna. Dla grafów mamy ogromne moProf. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/

żliwości wizualizacji jakozbiór punktów (zwanych wierzchołkami)połączonych^ liniami lub strzałkami (nazwanych krawędziami). Pod tym względemgraf stanowi uogólnienie drzewiastego modelu danych. Podobnie jak drzewa, grafy wyst

ępują^ w

różnych postaciach: grafów skierowanych i nieskierowanych

lub

etykietowanych i niezaetykietowanych. Grafy są^ przydatne do analizy szerokiego zakresu

problemów:

obliczanie odległości, znajdowanie cykliczno

ści w relacjach,

reprezentacji struktury programów, reprezentacji relacji binarnych,reprezentacji automatów i^ układów elektronicznych.

Podstawowe poj Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/ ęcia

Graf skierowany (ang. directed graph)^ Składa się^ z następujących elementów:^ (1)^ Zbioru N wierzchołków (ang. nodes)^ (2) Relacji binarnej A na zbiorze N. Relacje A nazywa si

zbiorem krawędzi (ang. arcs) grafu skierowanego. Krawędzie stanowią^ zatem pary wierzcho

łków (u,v). N = {0,1,2,3,4} A = { (0,0), (0,1), (0,2), (1,3), (2,0), (2,1), (2,4), (3,2), (3,4), (4,1) }

Grafy cykliczne i acykliczne Cykl (ang. cycle) w grafie skierowanym jest drog^0 12 34 Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/

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

ż^ raz.^ Cykle proste:^ (0,0), (0,2,0), (1,3,2,1), (1,3,2,4,1)^ Cykl nieprosty:^ (0,2,1,3,2,0)

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

main PrintList^ MergeSort MakeList^ split Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/

Grafy wywołań Wywołania dokonywane przez zestaw funkcji można reprezentować^ merge

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/

matematyki zajmującą^ się właściwościami grafów. Grafy pełne Nieskierowany graf posiadający krawędzie pomiędzy każdą^ parą^ ró

żnych wierzchołków nosi nazwę^ grafu peł

nego (ang. complete^ graph). Graf pe

łny o n

wierzchołkach oznacza się^ przez Kn.^ n1^ n1^ n1^ n2^ n3^ n

n1^ n2 n3^ n4 KKKK 1 2 3 4

Liczba krawędzi w nieskierowanym

grafie Kn^ wynosi n(n-1)/2, w skierowanym (^2) grafie Kn wynosi n.

n1 n2^ n3 K

Grafy planarne i nieplanarne^ O grafie nieskierowanym^ mówi si Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/

n1ę że jest planarny (ang. planar) wówczas, n3 gdy istnieje możliwość rozmieszczenia jego wierzchołków na płaszczyźnie, a następnie narysowania jego krawędzi n4 jako lini ciągłych które się nie przecinają. Grafy nieplanarne (ang. nonplanar) to takie które nie posiadają reprezentacji płaskiej. n1 n2 n3 n4 K4 reprezentacja planarna

n2 n5 K5 n1^ n4 n2^ n5 n3^ n6 K3,3 najprostsze grafy nieplanarne

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,

listy sąsiedztwa^ (ang. adjacency^ lists), jest, ogólnie rzecz bior

ąc, podobna do implementacji relacji binarnych. Druga,

macierze sąsiedztwa

(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

istnieć^ w danej dziedzinie. Listy sąsiedztwa^

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

0 12 340 1 01234 Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/

Reprezentacja grafu za pomoc

ą^ list sąsiedztwa^ Listy sąsiedztwa zosta

ł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

2. Jeśligraf jest rzadki^ (ang. sparse) to

reprezentacja oparta na listach są

siedztwa może pozwolić^ zaoszczędzi

ć^ pamięć. Istotne różnice miedzy przedstawionymi reprezentacjami grafów s

ą^ widoczne

już^ przy wykonywaniu prostych operacji.^ OPERACJA^ GRAF

GESTY^ GRAF RZADKI

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ę

spójnych składowych^ (ang. connected

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

składowej to mówimy^ że jest spójny (ang. connected).^ Kahului^22 60 Lahaina^ Hana^16 Keokea

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

Chcemy określić^ spójne składowe grafu G. Przeprowadzamy rozumowanie indukcyjne.^ Podstawa:^ Graf Go zawiera jedyni wierzchołki grafu G i

żadnej jego krawędzi Każdy wierzchołek stanowi odrębną^ spójn

ą^ składową^.

Indukcja: Zakładamy,^ że znamy już^ spójne sk

ł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ą.

x u^ v^ y

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.

A^242815 C B^ D 121120 13 E F Graf nieskierowany Prof. dr hab. E. Richter-Was,Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2008/

A 28 C B^ D 121120 13 E F Drzewo rozpinające

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

A^242815 C B^ D 121120 13 E F

A^2415 C B^ D 121113 E F

Graf nieskierowany^

Minimalne drzewo rozpinające