Graf je základní matematická struktura, která se používá k modelování relací (vztahů - např. býti rodičem) mezi objekty. Grafy se využívají v mnoha oblastech informatiky, například při hledání nejkratších cest, plánování, závislostech mezi úlohami, v počítačových a sociálních sítích a dalších oblastech.

Definice Grafu

Graf je definován jako uspořádaná dvojice množin:

kde:

  • je konečná množina vrcholů (angl. vertices, někdy také nodes),
  • je množina hran (angl. edges), které reprezentují spojení mezi vrcholy.
    • Zápis znamená, že se jedná o dvojice vrcholů (mezi kterými je ta hrana), kdy platí, že oba vrcholy jsou z množiny všech vrocholů

Podgraf grafu je graf = (, ) takový, že a

Symbol

Symbol se využívá ve významu býti podmnožinou. Tedy například čteme jako A je podmnožinou B. Zároveň může platit, že .

Orientovanost grafu

Graf může být:

  • Neorientovaný – hrany nemají směr, tedy spojení mezi vrcholy je vzájemné.
    • Například: dálnice
  • Orientovaný – hrany mají směr, což znamená, že spojení z do neznamená existenci spojení spojení z do .
    • Například: jednosměrná silnice

Stupeň vrcholu deg(V)

Stupeň vrcholu (anglicky degree of a vertex) udává, kolik hran je s daným vrcholem přímo spojeno. U orientovaných grafů se stupeň vrcholů dělí na vstupní stupeň (kolik hran vstupuje) a výstupní stupeň (kolik hran vystupuje).

Cesta v grafu

Cesta (angl. path) v grafu je posloupnost vrcholů , taková, že mezi každými dvěma po sobě jdoucími vrcholy existuje hrana.

  • V neorientovaném grafu je důležité, že mezi vrcholy existuje spojení, bez ohledu na směr.
  • V orientovaném grafu musí cesta respektovat směr hran.

Souvislost grafu

Neorientovaný graf je souvislý, pokud pro každé dva různé vrcholy a existuje cesta, která je spojuje.

U orientovaných grafů se rozlišuje:

  • Silně souvislý graf – mezi každými dvěma vrcholy existuje cesta v obou směrech.
  • Slabě souvislý graf – po ignorování orientace hran je graf souvislý.

Komponenta souvislosti

Komponenta souvislosti je maximální podmnožina vrcholů grafu, které jsou navzájem spojeny cestami.

A dále platí:

  • V každé komponentě existuje cesta mezi libovolnými dvěma vrcholy.
  • Graf může být složen z více komponent souvislosti.

Cykličnost grafu

Graf obsahuje cyklus, pokud v něm existuje cesta, která začíná a končí ve stejném vrcholu, přičemž ostatní vrcholy na cestě se neopakují.

Dle toho lze grafy dělit na:

  • Acyklické grafy – neobsahují žádný cyklus.
  • Cyklické grafy – obsahuje alespoň jeden cyklus.

Ohodnocený graf

Ohodnocený graf (také vážený graf) má každé hraně přiřazenu hodnotu, tzv. váhu (angl. weight).

A dále platí:

  • Váha může reprezentovat např. délku, cenu, kapacitu, čas.
  • Používá se při algoritmech jako je Dijkstra, Kruskal atd.
  • Ohodnocení může být kladné, nulové nebo záporné

Reprezentace grafů v paměti

Grafy mohou být v paměti uloženy různými způsoby. Více informací lze nalézt na stránce Reprezentace grafů.