Loading AI tools
struktura matematyczna opisująca zbiór obiektów z połączeniami niektórych par Z Wikipedii, wolnej encyklopedii
Graf – podstawowy obiekt rozważań teorii grafów[1][2] , struktura matematyczna służąca do przedstawiania i badania relacji między obiektami[3][4] . W uproszczeniu graf to zbiór wierzchołków, które mogą być połączone krawędziami w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków[5].
Wierzchołki grafu mogą być numerowane i czasem stanowią reprezentację jakichś obiektów, natomiast krawędzie mogą wówczas obrazować relacje między takimi obiektami[6]. Wierzchołki należące do krawędzi nazywane są jej końcami[7]. Krawędzie mogą mieć wyznaczony kierunek, a graf zawierający takie krawędzie nazywany jest grafem skierowanym[8] lub orgrafem[9]. Krawędź grafu może posiadać wagę, to znaczy przypisaną liczbę, która określa na przykład odległość między wierzchołkami (jeśli np. graf jest reprezentacją połączeń między miastami)[10]. W grafie skierowanym wagi mogą być zależne od kierunku przechodzenia przez krawędź (np. jeśli graf reprezentuje trud poruszania się po jakimś terenie, to droga pod górkę będzie miała przypisaną większą wagę niż z górki)[11].
Za pierwszego teoretyka i badacza grafów uważa się[12] szwajcarskiego matematyka i fizyka Leonarda Eulera, który rozstrzygnął zagadnienie mostów królewieckich. Pierwsze użycie określenia „graf” przypisywane jest Jamesowi Josephowi Sylvesterowi – matematykowi angielskiego pochodzenia[13].
Za najstarszy przykład zastosowania grafów w rozwiązaniu zadanego problemu uznaje się[12] zagadnienie mostów królewieckich, opis którego opublikował w 1736 roku Leonhard Euler[15]:
Grafy mogą służyć do praktycznych zastosowań (także z pomocą komputerów)[16] w wielu różnorodnych problemach[8][17], np.: sieć dróg z wierzchołkami reprezentującymi skrzyżowania i krawędziami przedstawiającymi ulice[8], sieć pomieszczeń i korytarzy w budynkach[18], dzięki czemu możliwe jest komputerowe wynajdywanie najlepszej drogi ze swojego obecnego położenia do pożądanego celu. Algorytmy grafowe stanowią istotną część programów obsługujących urządzenia GPS[19]. System sztucznej inteligencji w niektórych grach komputerowych musi odszukać dla sterowanych przez program postaci najlepszą drogę, która pozwoli zaatakować przeciwnika. Zagadnienie to może być rozwiązane w oparciu o własności grafów[20]. Przedstawienie w formie grafów sieci komputerowych pozwala na stworzenie oprogramowania usprawniającego trasowanie w Internecie. W dużych organizacjach realizację zlecanych przez klientów zadań można przedstawić w postaci grafów, dzięki czemu możliwe jest zwiększenie wydajności: wierzchołki mogą reprezentować pracowników, a krawędzie grafu – przepływ zadań[21]. Za pomocą związanych z grafami pojęć można opisywać też m.in. rysunki obwodów, schematy blokowe, ponieważ przedstawiają one połączenia lub relacje, zachodzące między różnymi fragmentami wykresu[8].
Drzewa grafowe przydatne są w praktycznej reprezentacji różnego rodzaju hierarchii[22]. Mistrzostwa sportowe czy drzewo genealogiczne mogą być w przejrzysty sposób opisane przez drzewa binarne[19]. Do tworzenia kodów Huffmana można wykorzystać drzewa binarne z wagami[23]. Idea działania danego niedeterministycznego automatu skończonego może być w przejrzysty sposób pokazana przez odpowiedni graf[24].
Wzrasta również znaczenie i wykorzystanie teorii grafów w dziedzinach takich, jak chemia, lingwistyka, geografia, architektura i inne[16].
Różni autorzy stosują bardzo odmienne sposoby definiowania i oznaczania elementów grafu[7][27].
Jedną z definicji grafu jest: graf (nieskierowany) składa się z dwóch zbiorów: oraz przy czym jest niepustym zbiorem, którego elementy nazywane są wierzchołkami, a jest rodziną dwuelementowych podzbiorów zbioru wierzchołków zwanych krawędziami[28]: Definicja ta nie wymaga, by i były skończone. W praktyce rozważa się także grafy o nieskończonej liczbie wierzchołków – wtedy liczba krawędzi może być zarówno skończona, jak i nieskończona[7].
Graf skierowany lub inaczej digraf[8] składa się z dwóch zbiorów – niepustego zbioru wierzchołków oraz rodziny par uporządkowanych elementów zbioru zwanych krawędziami lub łukami grafu skierowanego. Kolejność wierzchołków w parze wyznacza kierunek krawędzi – w przypadku pary łuk biegnie z wierzchołka do wierzchołka [29]. Podobnie, jak w przypadku grafu nieskierowanego, definicja ta ma sens zarówno wtedy, gdy zbiory lub są skończone, jak i nieskończone[30].
Graf mieszany to uporządkowana trójka grafu gdzie zbiory są zdefiniowane jak wyżej, czyli zawiera jednocześnie krawędzie skierowane i nieskierowane[31].
Przez zdefiniowanie funkcji z lub w pewien zbiór można przypisać krawędziom lub wierzchołkom etykiety, służące do przechowywania dodatkowych informacji[32]. Etykiety liczbowe są często nazywane wagami[33], a graf grafem z wagami (grafem z ważeniem, grafem ważonym).
W grafie ważonym krawędziowo zbiór tworzący graf jest rozszerzony o funkcję taką, że dla każdej krawędzi jest wagą danej krawędzi[11].
Grafem ważonym wierzchołkowo nazywa się graf w którym jest funkcją przypisującą każdemu wierzchołkowi pewną liczbę naturalną nazywaną wagą wierzchołka. Graf taki oznacza się przez (lub po prostu a to, że jest ważony wynika z kontekstu), natomiast wagę wierzchołka oznacza się przez [34].
W wielu zastosowaniach podstawowe definicje grafów nie są wystarczające, dlatego wprowadza się pewne modyfikacje[7]. Na przykład aby wprowadzić pętlę, czyli krawędź, której oba końce są tym samym wierzchołkiem, w definicji grafu nieskierowanego należy dopuścić zbiory jednoelementowe [27] albo użyć dwuelementowego multizbioru W grafie skierowanym pętla jest naturalnie reprezentowana przez parę [7].
Czasami potrzebna jest możliwość połączenia dwóch wierzchołków przy pomocy więcej niż jednej krawędzi (w przypadku grafu skierowanego chodzi o łuki o takim samym zwrocie). Graf, który na to pozwala, nazywany jest multigrafem[35]. Uzyskuje się go np. przez zdefiniowanie lub jako multizbioru[7].
Graf może być też określony jako niepusty zbiór wierzchołków i dana na nim relacja binarna taka, że dla dowolnych wierzchołków i zachodzi wtedy i tylko wtedy, gdy istnieje krawędź łącząca i [30]. Dla grafów nieskierowanych relacja ta jest symetryczna[36] .
Graf nieskierowany można też definiować[7] jako trójkę gdzie jest niepustym zbiorem, którego elementy nazywają się wierzchołkami, jest rodziną dwuelementowych podzbiorów zbioru wierzchołków zwanych krawędziami: a jest funkcją ze zbioru w zbiór wszystkich podzbiorów jedno- lub dwuelementowych zbioru Wówczas jeżeli jest krawędzią grafu, to kończy się ona wierzchołkami gdy i jest pętlą wierzchołka gdy
Graf skierowany określa się też jako trójkę gdzie zbiory i są zdefiniowane analogicznie do grafów nieskierowanych a jest funkcją ze zbioru krawędzi w zbiór uporządkowanych par (kwadrat kartezjański, czyli iloczyn kartezjański zbioru ze sobą) wierzchołków – Jeśli jest krawędzią grafu oraz to nazywane jest początkiem krawędzi a – końcem krawędzi i mówi się, że biegnie od do [30].
Formalne definicje grafu nie wymagają, by zbiory krawędzi czy wierzchołków były skończone, jednak w literaturze źródłowej zazwyczaj przyjmuje się uproszczenie, że zbiory oraz są skończone[30][38].
W przypadku nieskończonego zbioru wierzchołków przy skończonej ilości krawędzi otrzymuje się graf o nieskończonej ilości wierzchołków izolowanych. W przypadku skończonej ilości wierzchołków i nieskończonej ilości krawędzi otrzyma się graf o nieskończonej ilości pętli lub krawędzi wielokrotnych. W obu przypadkach są to grafy skończone. Graf nieskończony składa się z nieskończonego zbioru wierzchołków oraz nieskończonej rodziny krawędzi grafu. Gdy zarówno jak i są przeliczalne, graf nazywa się grafem przeliczalnym. Wiele pojęć z zakresu własności grafów (np. ścieżka[37], planarność, spójność[38]) można z powodzeniem rozszerzyć na grafy nieskończone. Do grafów nieskończonych należą m.in.:
Jeśli nazwać węzłami elementy niepustego zbioru to dla każdej pary węzłów zachodzi jeśli są elementami iloczynu kartezjańskiego (są wtedy nierozróżnialne). Gdy są elementami zbioru wtedy wprowadza się między nimi rozróżnienie. Dodatkowo niech będzie zbiorem, który może być pusty, a którego elementy nazywane będą połączeniami. Abstrakcyjny graf (ukierunkowany lub nieukierunkowany) jest zadany strukturą matematyczną ze zbiorami węzłów połączeń oraz odwzorowaniem incydentnym zdefiniowanym pomiędzy połączeniami oraz parami nierozróżnialnych węzłów lub rozróżnialnych [39] .
Dla każdego grafu istnieje nieskończenie wiele[40] przedstawiających go rysunków[41] , gdyż klasyczne definicje grafów nie uwzględniają pojęć z zakresu geometrii, takich jak miara kątów, długości odcinków itp[40]. Czasami jednak rozważane są w przypadku grafów własności stricte geometryczne (współrzędne geometryczne wierzchołków, tylko proste krawędzie, zmieszczenie się w pewnej przestrzeni itp.)[40][42]. Grafy, rozpatrywane jako figury w przestrzeni (w której są one „zanurzone” i która nadaje im cechy charakterystyczne dla danej przestrzeni), nazywa się grafami geometrycznymi[40][43]. Nadanie grafom właściwości geometrycznych może odbyć się, na przykład, poprzez wprowadzenie długości krawędzi jako spełniającej postulaty metryki dwuargumentowej funkcji ze zbioru krawędzi grafu w zbiór dodatnich liczb rzeczywistych[44].