Teória grafov

$G = (V, E)$ ... množina vrcholov a hrán

$|V| = n$

$|E| = m$

vrcholy ... susedné hrana+vrchol ... incidentné

multihrany, slučka

sled, ťah, cesta

stupeň vrchola

cesta ... postupnosť vrcholov a hrán

cena hrany
orientovanosť
súvislosť
počet komponentov (súvislosti)
zápis grafu u,v sú susedné zoznam susedov
matica susednosti $O(1)$ $O(n)$
množina vrcholov a hrán $O(m)$ $O(m)$
zoznam susedov $O(\deg_G v)$ .
matica incidencie $O(m)$ $O(m+n.\deg_G v)$

Prehľadávanie grafu

počet komponentov ... prehľadávanie z každého vrcholu (ktorý ešte nebol navštívený)

Najkratšia cesta

image.png

image.png

image.png

image.png

image.png

https://www.redblobgames.com/pathfinding/a-star/introduction.html

Niektoré políčka nemá zmysel prechádzať, lebo z nich ešte potrebujeme minimálne dosť veľa krokov do cieľa (ak by nebola žiadna prekážka) ...

Ako preferovať políčka smerom k cieľovému?

Ako spočítame minimálnu vzdialenosť, ak máme dané súradnice?

$[r_S, s_S] \rightarrow [r_C, s_C]$, napr. $[4, 2] \rightarrow [6, 8]$

$ |r_S-r_C|+|s_S-s_C| = 2+6 = 8$

Môžeme to použiť ako heuristiku, teda odhad celkovej vzdialenosti ... v prioritnom rade si budeme usporiadavať podľa odhadovanej vzdialenosti

image.png

Kostra grafu Spanning tree