Rodzaje, przechodzenie grafu

Slides:



Advertisements
Podobne prezentacje
Algorytmy – c.d. złożoność algorytmów struktury danych
Advertisements

Algorytmy – c.d. struktury danych złożoność algorytmów
Grafy spełniające nierówność Γ(G) < IR(G)
Grafy o średnicy 2 i dowolnej liczbie dominowania
Zaawansowane techniki algorytmiczne
ALGORYTMY GRAFOWE.
Dynamiczne struktury danych Listy, Kolejki, Stosy
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Kolorowanie grafów Niech G = (V, E) będzie spójnym grafem nieskierowanym bez pętli. Kolorowaniem wierzchołków grafu nazywa się przypisanie wierzchołkom.
Homologia, Rozdział I „Przegląd” Homologia, Rozdział 1.
ELEMENTY TEORII GRAFÓW
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Algorytm Dijkstry (przykład)
ALGORYTMY I STRUKTURY DANYCH
Elementarne struktury danych Piotr Prokopowicz
Ciągi de Bruijna generowanie, własności
ALGORYTMY GEOMETRYCZNE.
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 1. Grafy są wokół nas. Pojęcia wstępne.
WYKŁAD 4. Skojarzenia Skojarzenie w grafie G to niezależny zbiór krawędzi (rozłączne, bez wspólnych konców). Skojarzenie M w G traktujemy jak podgraf.
WYKŁAD 8. Siła spójności Wierzchołek v nazywamy wierzchołkiem cięcia grafu G, gdy podgraf G-v ma więcej składowych spójności niż G. Krawędź e nazywamy.
WYKŁAD 8. Siła spójności A,B – dowolne podzbiory V(G)
WYKŁAD 4. Skojarzenia Skojarzenie w grafie G to niezależny zbiór krawędzi (rozłączne, bez wspólnych konców). Skojarzenie M w G traktujemy jak podgraf G.
Dariusz Odejewski Krzysztof Wójcik
Teoretyczne podstawy informatyki
Macierz incydencji Macierzą incydencji grafu skierowanego D = (V, A), gdzie V = {1, ..., n} oraz A = {a1, ..., am}, nazywamy macierz I(D) = [aij]i=1,...,n,
Algorytmy grafowe Reprezentacja w pamięci
Analiza kosztu zamortyzowanego
Hipergrafy Hipergraf jest rozszerzeniem pojęcia grafu. Hipergraf różni się od grafu nieskierowanego tym, że każda hiperkrawędź może być incydentna do dowolnej.
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
WYKŁAD 7. Spójność i rozpięte drzewa 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.
Operacje na strukturach listowych
SKIEROWANE Marek Bil Krzysztof Fitrzyk Krzysztof Godek.
Graf - jest to zbiór wierzchołków, który na rysunku przedstawiamy za pomocą kropek oraz krawędzi łączących wierzchołki. Czasami dopuszcza się krawędzie.
Algorytmy i struktury danych
Reprezentacja grafów i operacje na grafach na przykładzie algorytmu Dijkstry i algorytmu na odnajdywanie Silnych Spójnych Składowych Temat Opracowali:
Modelowanie populacji i przepływu opinii pomiędzy aktorami sztucznej inteligencji za pomocą sieci społecznej Wojciech Toman.
Listy, stosy i kolejki..
ALGORYTM. SCHEMATY BLOKOWE. KONSTRUKCJE PROGRAMU, PODPROGRAMY, FUNKCJE
Najkrótsza ścieżka w grafie Algorytm Dijkstry
3. SPOSOBY REPREZENTACJI GRAFÓW
PODSTAWOWE WŁASNOŚCI PRZESTRZENI
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Dynamiczne struktury danych
Algorytmy i Struktury Danych
Czy pamiętasz ?.
PLANARNOŚĆ i KOLOROWANIE MAP. Problem Jaka jest minimalna liczba kolorów, za pomocą których można pokolorować obszary województw na mapie Polski tak,
Algorytmy i Struktury Danych Struktury Danych
Algorytmy i Struktury Danych Grafy
ANALIZA SKŁADNIOWA.
Algorytmy grafowe Minimalne drzewa rozpinające
Przeszukiwanie wszerz
Literatura podstawowa
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
Autor: Michał Salewski
Grafy.
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Metody Badań Operacyjnych Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Prostopadłościan i sześcian.
Działania na grafach Autor: Anna Targońska.
Algorytm Dijkstry Podano graf Zdefiniowano jego listę sąsiedztwa 1 2 3
Macierzowe systemy kodowania konstytucji cząsteczki
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Rodzaje, przechodzenie grafu Grafy Rodzaje, przechodzenie grafu

Grafy podstawowe definicje Grafem nazywamy strukturę G=(V,E) składającą się ze skończonego i niepustego zbioru wierzchołków V i zbioru krawędzi E. Krawędź od wierzchołków u do v oznaczamy jako (u,v). Drogą od wierzchołka v1 do vj nazywamy sekwencję krawędzi: (v1,v2), (v2,v3),…, (vn-1,vn) Dwa wierzchołki vi i vj nazywamy sąsiędnimi, jeżeli w zbiorze D istnieje krawędź (vi,vj). Taką krawędź nazywamy incydentną do wierzchołków vi, vj. Stopniem wierzchołka v deg(v) – nazywamy liczbę krawędzi do niego incydentnych. Jeśli deg(v)=0 to jest to wierzchołek izolowany.

Rodzaje grafów: Grafy proste graf pełny – każdy wierzchołek jest połączony krawędzią z każdym wierzchołkiem

Rodzaje grafów: Grafy złożone Multigraf – dwa wierzchołki mogą być połączone kilkoma krawędziami Pseudograf – pojawiają się pętle czyli krawędzie wychodzące z i wchodzące do tego samego wierzchołka

Rodzaje grafów: Grafy złożone Graf skierowany – krawędzie, zwane też łukami, spełniają warunek (u,v)≠(v,u) 5 2 4 6 1 Graf ważony – gdy krawędziom zostają przyporządkowane liczby – wagi

Reprezentacja grafów A B C D E Graf A B C D E B C D A D A C Lista sąsiedztwa

Reprezentacja grafów A B C D E A B C D E 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 Macierz sąsiedztwa AB AC AD CD A B C D E 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 Macierz incydencji

Przechodzenie w głąb funkcja dfs() for wszystkie wierzcholki Visited[v]:=false; Ustaw wskaźnik current[v] na pierwszy wierzchołek na liście L[v] Odwiedz(p); visited[p]=true; If current[p] nie puste Stos pusty; push(stos,p); while stos jest niepusty v=wierzcholek(stos); niech w będzie wierzchołkiem wskazywanym przez current[v] przesuń wskaźnik current[v] do następnego wierzchołka na liście L if current[v]=pusty pop(stos); if not visited[w] odwiedz(w) visited[w]=true; if current[w] różne od nil then push(stos,w)

Przechodzenie grafów – wszerz funkcja bfs() for wszystkie wierzcholki Visited[v]:=false; Ustaw wskaźnik current[v] na pierwszy wierzchołek na liście L[v] Odwiedz(p); visited[p]=true; If current[p] nie puste Kolejka pusta; enqueue(koljka,p); while stos jest niepusty v=początek(kolejka); niech w będzie wierzchołkiem wskazywanym przez current[v] przesuń wskaźnik current[v] do następnego wierzchołka na liście L if current[v]=pusty dequeue(kolejka); if not visited[w] odwiedz(w) visited[w]=true; if current[w] różne od nil then enqueue(kolejka,w)

Bibliografia A. Drozdek, „C++. Algorytmy i struktury danych”, Helion, Gliwice 2004; L. Banachowski, K. Diks, W. Rytter, „Algorytmy i struktury danych”, WNT, Warszawa1996;