FAV-ZCU/KMA DMA/Otázky ke zkoušce/23. Vzdálenost a vážená vzdálenost v grafech, metrika.md

4.6 KiB

Vzdálenost vrcholů

Nechť x, y \in V(\vec{G}). Délka nejkratšího orientovaného sledu z x do y v grafu \vec{G} se nazývá vzdálenost vrcholů x a y v grafu \vec{G} a značíme ji \text{d}(x, y). Pokud v \vec{G} neexistuje sled z x do y, píšeme \text{d}(x, y) = \infty.

  • \text{d}(x, x) = 0
  • v neorientovaném grafu je vzdálenost definována jako v jeho symetrické orientaci

Věta: Nechť G je neorientovaný graf. Potom pro každé x, y, z \in V(G) platí:

  1. \text{d}(x, y) \geq 0, \quad \text{d}(x, y) = 0 \implies x = y,
    • pozitivní definitnost
  2. \text{d}(x, y) = \text{d}(y, x),
    • symetrie
  3. \text{d}(x, z) \leq \text{d}(x, y) + \text{d}(y, z).
    • trojúhelníková nerovnost
  • v orientovaných grafech neplatí 2)

Distanční matice

Distanční matice grafu \vec{G} je matice D(\vec{G}) = (d_{ij}) řádu n, definovaná předpisem d_{ij} = \text{d}(v_{i}, v_{j}), kde v_{1}, \dots, v_{n} jsou vrcholy grafu \vec{G}.

  • obsahuje délku nejkratší možné cesty mezi prvky v_{i}, v_{j}

Věta: Nechť \vec{G} je orientovaný graf, D(\vec{G}) jeho distanční matice. Pro každé i \neq j je prvek d_{ij} roven nejmenší mocnině k, pro kterou je prvek na pozici (i, j) v matici sousednosti A^k(\vec{G}) nenulový.

Poznámka: Tímto způsobem umíme nalézt distanční matici v čase \mathcal{O}(n^4).

Věta: Graf \vec{G} je acyklický, právě když existuje k \in \mathbb{N} takové, že A^k(\vec{G}) je matice samých nul.

Ohodnocené grafy

Nechť \vec{G} je orientovaný graf. Funkce w : E(\vec{G}) \to (0, \infty) se nazývá hranové ohodnocení grafu \vec{G}. Graf se zadaným ohodnocením se nazývá ohodnocený graf.

Vážená matice sousednosti

Váženou maticí sousednosti grafu \vec{G} nazveme matici W(\vec{G}) = (w_{ij}) definovanou předpisem

w_{ij} = \begin{cases} w(i, j) & \text{pokud } (i, j) \in E(\vec{G}), \\ 0 & \text{jinak.} \end{cases}

  • obsahuje ohodnocení orientovaných hran z vrcholu v_{i} do v_{j}

Poznámka: Pro neorientovaný graf G opět definujeme matici W(G) jako váženou matici sousednosti jeho symetrické orientace. Tato matice je symetrická a má nulové diagonální prvky.

$w$-délka cesty

Mějme orientovanou cestu \vec{P} \subseteq \vec{G} v \vec{G}. Číslo w(\vec{P}) = \sum_{h\in H(\vec{P})} w(h) se nazývá $w$-délkou cesty \vec{P}. Je-li \vec{P} dílky nula, klademe w(\vec{P}) = 0.

  • jedná se o sumu ohodnocení všech hran cesty

Mějme vrcholy x, y \in V(\vec{G}) a orientovanou cestu \vec{P} z x do y minimální $w$-délky.

  • Potom říkáme, že \vec{P} je minimální cesta z x do y v grafu \vec{G}.
  • Číslo w(\vec{P}) se nazývá $w$-vzdálenost vrcholů x a y v grafu \vec{G} a značí se \text{d}^w(x, y).
  • Jestliže v grafu \vec{G} neexistuje orientovaná cesta z x do y, klademe \text{d}^w(x, y) = \infty.
  • platí \text{d}^w(x, x) = 0

Poznámka: Pro neorientovaný graf G se tyto pojmy definují analogicky pro symetrickou orientaci grafu G.

$w$-distanční matice

Mějme orientovaný graf \vec{G} s vrcholy v_{1}, \dots, v_{n}. Potom matici D^w(\vec{G}) definovanou předpisem d^w_{ij} = \text{d}^w(v_{i}, v_{j}) nazveme $w$-distanční maticí grafu \vec{G}.

  • obsahuje nejkratší možnou $w$-délku cestu z vrcholu v_{i} do v_{j}

Nalezení $w$-distanční matice

  1. Matici D_{0}(\vec{G}) definujeme předpisem

    d^0_{ij} = \begin{cases} 0 & \text{pro } i = j, \\ \infty & \text{pro } i \neq j, (i, j) \notin E(\vec{G}), \\ w(i, j) & \text{pro } i \neq j, (i, j) \in E(\vec{G}). \end{cases}

  2. Definujeme nové operace

    • a \oplus b = \min(a, b),
    • a \otimes b = a + b.
  3. $k$-tou mocninou matice D_{0}(\vec{G}) při těchto operacích značíme D_{0}^{(k)}.

Věta: Nechť \vec{G} je ohodnocený orientovaný graf, nechť r je nejmenší číslo, pro které D_{0}^{(r)}(\vec{G}) = D_{0}^{(r+1)}(\vec{G}). Potom D^w(\vec{G}) = D_{0}^{(r)}(\vec{G}).

  • $w$-distanční matice je taková mocnina matice D_{0}(\vec{G}), pro kterou je o 1 vyšší mocnina této matice stejná jako původní umocněná

Poznámka: Tento postup pracuje v čase \mathcal{O}(n^4). Nejlepší známé algoritmy pracují v čase \mathcal{O}(n^3).

Poznámka: Pro neorientovaný graf G definujeme d^w(u, v) analogicky pro symetrickou orientaci grafu G.

Tvrzení: Nechť G je neorietovaný graf. Potom pro každé x, y, z \in V(G) platé

  1. d^w(x, y) \geq 0, \quad d^w(x, y) = 0 \iff x = y,
  2. d^w(x, y) = d^w(y, x),
  3. d^w(x, z) \leq d^w(x, y) + d^w(y, z).