Od inżyniera do menedżera. Tajniki lidera zespołów technicznych
−30%41,30 zł
Algorytmy. Ilustrowany przewodnik
54,90 zł
Unix i Linux. Przewodnik administratora systemów. Wydanie V
179,00 zł
Linux. Profesjonalne administrowanie systemem. Wydanie II
149,00 zł
Praktyka czyni mistrza. Wzorce, inspiracje i praktyki rzemieślników programowania
39,90 zł

Graf

Minimalne drzewo rozpinające, przykład Graf prosty (po lewej) i drzewo (po prawej)
Graf, 4 wierzchołki Graf pełny z wagami
Graf skierowany Graf skierowany z wagami

Graf – struktura składająca się ze zbioru wierzchołków oraz zbioru krawędzi. Grafy mają szerokie zastosowanie w informatyce, można za ich pomocą przedstawić wiele zagadnień.

Wyróżniamy grafy nieskierowane oraz grafy skierowane. W grafie nieskierowanym relacja sąsiedztwa jest symetryczna, tzn. krawędź łączy wierzchołki „w obie strony”. W grafie skierowanym krawędzie są „jednokierunkowe”. Krawędź grafu skierowanego zazwyczaj jest określana jako łuk.

Graf ważony (inaczej graf z wagami) to taki graf, w którym każdej krawędzi przypisana jest pewna wartość liczbowa. Wartość ta może oznaczać np. długość krawędzi lub jej przepustowość.

Wybrane pojęcia związane z teorią grafów

  • Trasa – ciąg kolejnych krawędzi, za pomocą którego możemy przejść z jednego wierzchołka grafu do innego (lub wrócić do tego samego).
  • Ścieżka – trasa, w której każda krawędź występuje co najwyżej raz (mogą natomiast powtarzać się wierzchołki).
  • Droga (ścieżka prosta) – trasa, w której każdy wierzchołek występuje co najwyżej raz. Wyjątkiem jest wierzchołek końcowy, który może być wierzchołkiem początkowym – taka ścieżka to cykl.
  • Pętla – krawędź prowadząca z wierzchołka do niego samego.
  • Krawędź wielokrotna – kilka krawędzi łączących tę samą parę wierzchołków.
  • Graf prosty – graf nie zawierający żadnych pętli ani krawędzi wielokrotnych.
  • Graf spójny – graf, w którym można wyznaczyć ścieżkę między każdą parą wierzchołków.
  • Graf pełny – graf prosty, w którym każda para wierzchołków jest bezpośrednio połączona krawędzią.
  • Drzewo – graf spójny nie mający żadnych cykli (taki, w którym między każdą parą wierzchołków można wyznaczyć dokładnie jedną ścieżkę).

Reprezentacja w pamięci komputera

W pamięci komputera grafy zazwyczaj są przechowywane w postaci list lub macierzy sąsiedztwa. W przypadku list sąsiedztwa każdemu wierzchołkowi przyporządkowana jest lista wierzchołków z nim sąsiadujących. W przypadku macierzy sąsiedztwa w pamięci przechowywana jest macierz, w której każdy wiersz i każda kolumna odpowiada innemu wierzchołkowi. Liczba na przecięciu wiersza i kolumny informuje, ile krawędzi łączy daną parę wierzchołków (w przypadku grafu ważonego prostego można tam zamieścić wagę krawędzi). W przypadku grafu nieskierowanego macierz jest symetryczna.

Bibliografia

  1. R.J. Wilson, Wprowadzenie do teorii grafów, Wydawnictwo Naukowe PWN, Warszawa 2012.
Ocena: 0 Tak Nie
Liczba głosów: 0.

Dodano: 6 grudnia 2017 10:31, ostatnia edycja: 9 czerwca 2018 20:30.

Zobacz też

Algorytm Floyda-Warshalla – algorytm służący do wyznaczania najkrótszych ścieżek pomiędzy każdą parą wierzchołków w grafie. Jest to algorytm oparty na programowaniu dynamicznym. Algorytm ma złożoność czasową O(n3) i złożoność pamięciową O(n2), gdzie n jest liczbą wierzchołków.

Algorytm dopuszcza krawędzie o ujemnych wagach, o ile nie tworzą ujemnych cykli. Algorytm może być również wykorzystywany do wyszukiwania ujemnych cykli w grafie.

→ Czytaj całość

Ten artykuł opisuje algorytm rozwiązujący problem wydawania reszty oparty na programowaniu dynamicznym. Algorytm ten daje gwarancję znalezienia rozwiązania optymalnego.

Istnieje również pewna modyfikacja tego algorytmu, która została opisana w osobnym artykule.

→ Czytaj całość

Algorytm memetyczny – algorytm będący połączeniem algorytmu genetycznego i metod lokalnej optymalizacji. Czasami określany również jako hybrydowy algorytm ewolucyjny.

→ Czytaj całość
Polityka prywatnościKontakt