Graf je matematická abstrakce reálného systému libovolné povahy, jehož objekty mají párové vazby. Graf jako matematický objekt je sbírka dvou množin – množiny samotných objektů, nazývané množina vrcholů , a množiny jejich párových spojení, nazývané množina hran. Prvek množiny okrajů je dvojice prvků množiny vrcholů.
Grafy jsou široce používány v moderní vědě a technice. Používají se jak v přírodních vědách (fyzika a chemie), tak ve společenských vědách (například sociologie), ale největšího rozsahu se využití grafů dostalo v informatice a síťových technologiích.
Jako nejjednodušší příklad ze života můžeme uvést letový diagram určité letecké společnosti, který je modelován grafem, kde vrcholy grafu jsou města a okraje jsou lety spojující dvojice měst. Strom adresářů v počítači je také graf: jednotky, složky a soubory jsou vrcholy a okraje zobrazují vnoření souborů a složek do složek a jednotek [1] . Struktura Wikipedie je modelována pomocí orientovaného grafu , ve kterém jsou články vrcholy grafu a hypertextové odkazy jsou oblouky ( tematická mapa ).
Grafy jsou hlavním předmětem studia v teorii grafů .
Systémy skutečné přírody modelované pomocí grafů jsou velmi rozmanité, proto existují různé typy grafů. Nejjednodušší abstrakcí systémů s prvky, které mají párová spojení, je jednoduchý graf .
Definice. Jednoduchý graf je sbírka dvou množin – neprázdná množina a množina neuspořádaných dvojic různých prvků množiny . Množina se nazývá množina vrcholů , množina se nazývá množina hran
,to znamená, že množina se skládá ze 2-prvkových podmnožin množiny .
Související pojmy
Teorie grafů nemá ustálenou terminologii. Některé publikace proto mohou používat jiné termíny než ty, které jsou uvedeny níže.
Typicky je graf znázorněn jako diagram : vrcholy - body, hrany - čáry.
Pseudograf je sbírka dvou množin – neprázdná množina a množina neuspořádaných dvojic prvků množiny .
Prvek je povolen v sadě hran pseudografu .
Jinými slovy, pokud prvky množiny E mohou být smyčky, pak se graf nazývá pseudograf [2] .
Multigraf je sbírka dvou množin – neprázdná množina a multimnožina neuspořádaných dvojic různých prvků množiny .
Jinými slovy, pokud ne množina, ale rodina, tedy pokud obsahuje stejné prvky, pak se takové prvky nazývají vícenásobné hrany a graf se nazývá multigraf [2] .
Pseudomultigraf je sbírka dvou množin – neprázdná množina a vícenásobná množina neuspořádaných dvojic prvků množiny .
Jinými slovy, pokud rodina obsahuje stejné prvky (více hran) a může obsahovat smyčky, pak se graf nazývá pseudo-multigraf [2] .
Orientovaný graf (digraph) ( angl. directional graph nebo dirgaph ) je množina dvou množin - neprázdná množina a množina oblouků nebo uspořádaných dvojic různých prvků množiny
.společně se dvěma displeji
,kde mapování přiřadí každému oblouku jeho počáteční vrchol (začátek oblouku) a mapování přiřadí každému oblouku jeho koncový vrchol (konec oblouku) . Říká se, že oblouk vede od do
Smíšený graf je soubor tří množin – neprázdná množina vrcholů a množina oblouků nebo uspořádaných dvojic různých prvků množiny a množina hran neuspořádaných dvojic různých prvků množiny.
.společně se dvěma displeji
Orientované a neorientované grafy jsou speciální případy smíšených grafů.
Graf se nazývá izomorfní vůči grafu , pokud existuje bijekce z množiny vrcholů grafu do množiny vrcholů grafu , která má následující vlastnost: pokud má graf hranu od vrcholu k vrcholu , pak graf musí mít hranu od vertexu k vertexu a naopak - pokud má graf hranu od vertexu k vertexu , tak graf musí mít hranu od vertexu k vertexu . V případě orientovaného grafu musí tato bijekce také zachovat orientaci hrany. V případě váženého grafu musí bijekce zachovat i váhu hrany.
Trasa v grafu je konečná posloupnost vrcholů, ve které je každý vrchol (kromě posledního) spojen s dalším vrcholem v posloupnosti hranou. Řetěz je cesta bez opakujících se hran. Jednoduchá cesta je cesta bez opakujících se vrcholů (což znamená, že v jednoduché cestě nejsou žádné opakující se hrany).
Orientovaná trasa (nebo cesta ) v digrafu je konečná posloupnost vrcholů a oblouků, ve kterých každý prvek souvisí s předchozím a následujícím.
Cyklus je řetězec, ve kterém se první a poslední vrcholy shodují. V tomto případě je délka cesty (nebo cyklu) počtem jejích základních hran . Všimněte si, že pokud jsou vrcholy a konce nějaké hrany, pak podle této definice je posloupnost cyklus. Aby se předešlo takovým "degenerovaným" případům, jsou zavedeny následující pojmy.
Cesta (nebo cyklus) se nazývá jednoduchá , pokud se hrany v ní neopakují; elementární , pokud je jednoduchý a vrcholy v něm se neopakují (s výjimkou počátečního a koncového v případě cyklu).
Nejjednodušší vlastnosti cest a cyklů:
Binární relace na vrcholové množině grafu, daná jako "existuje cesta od do ", je relací ekvivalence , a proto rozděluje tuto množinu do tříd ekvivalence, nazývaných spojené komponenty grafu. Pokud má graf právě jednu spojenou složku, pak je graf souvislý. Na připojené komponentě můžeme zavést pojem vzdálenosti mezi vrcholy jako minimální délku cesty spojující tyto vrcholy.
Jakýkoli maximální souvislý podgraf grafu se nazývá souvislá složka (nebo jednoduše složka) grafu . Slovo „maximum“ znamená maximum s ohledem na zahrnutí, to znamená, že není obsaženo v připojeném podgrafu s velkým počtem prvků.
Hrana v grafu se nazývá můstek , pokud její odstranění zvyšuje počet komponent.
Graf se jmenuje:
Stává se také:
Jednoduchý graf je jednorozměrný jednoduchý komplex .
Abstraktněji lze graf definovat jako triple , kde a jsou nějaké množiny ( vrcholů a hran , v tomto pořadí) a je incidenční funkcí (nebo incidentorem ), která přiřazuje každé hraně (uspořádané nebo neuspořádané) dvojici vrcholů a od (jeho konce ). Konkrétní případy tohoto konceptu jsou:
Tabulka, kde sloupce i řádky odpovídají vrcholům grafu. V každé buňce této matice je zapsáno číslo, které určuje přítomnost spojení z horního řádku do horního sloupce (nebo naopak).
Toto je nejpohodlnější způsob znázornění hustých grafů.
Nevýhodou jsou paměťové nároky, které jsou přímo úměrné druhé mocnině počtu vrcholů.
Tabulka, kde řádky odpovídají vrcholům grafu a sloupce odpovídají spojnicím (hranám) grafu. V buňce matice na průsečíku řádku se sloupcem se zapíše následující:
jeden v případě, že spojení „opustí“ horní část , -1, pokud spojení „vstoupí“ do vrcholu, 0 ve všech ostatních případech (tj. pokud je spojení smyčkou nebo spojení není incidentní ve vrcholu)Tato metoda je poměrně prostorná (velikost je úměrná ) pro ukládání, takže se používá velmi zřídka, ve speciálních případech (například pro rychlé nalezení cyklů v grafu).
Seznam, kde každý vrchol grafu odpovídá řetězci, který ukládá seznam sousedních vrcholů. Taková datová struktura není tabulkou v obvyklém smyslu, ale je „seznamem seznamů“.
Velikost paměti: .
Toto je nejpohodlnější způsob, jak reprezentovat řídké grafy, stejně jako při implementaci základních algoritmů procházení grafů do šířky nebo hloubky, kdy potřebujete rychle získat „sousedy“ aktuálně zobrazeného vrcholu.
Seznam, kde každá hrana grafu odpovídá řetězci, který obsahuje dva vrcholy spadající do hrany.
Velikost paměti: .
Jedná se o nejkompaktnější způsob znázornění grafů, takže se často používá pro externí úložiště nebo výměnu dat.
K popisu grafů, které jsou vhodné pro strojové zpracování a zároveň vhodné pro lidské vnímání, se používá několik standardizovaných jazyků, včetně:
Byla vyvinuta řada komerčních programů pro vytváření grafů, například vytváření grafů je základem softwarových balíků aplikací ILOG (od roku 2009 ve vlastnictví IBM Corporation ), mimo jiné - GoView, Lassalle AddFlow, LEDA (existuje bezplatná edice ).
K dispozici je také bezplatný grafický program igraph a bezplatná knihovna s názvem Boost .
Vizualizační programyK vizualizaci grafů se používají následující softwarové nástroje :