| # Help ## Hladový a horolezecký algoritmus |

## Teorie

Tyto metody prohledávání stavového prostoru patří do informovaných (heuristických) metod. Používají pro výběr nejvhodnějšího vrcholu k expanzi různé heuristické informace, které napomáhají rychlejšímu nalezení řešení.
f(n)=g(n)+h(n)
kde
g(n)je cena cesty z počátečního stavu do uzlu n,
h(n) je odhadovaná cena cesty z uzlu n do cílového uzlu.
Funkce h(n) je heuristická funkce a čím je přesnější tím menší se prohledává stavový prostor.

#### Hladový algoritmus (Greedy algorithm)

U hladového algoritmu se ohodnocují uzly pouze heuristickou funkcí h(n) tj. odhadovaná cena z daného uzlu do uzlu koncového. Ke generování dalšího uzlu z aktuálního se použije uzel s nejnižší heuristickou funkcí (vzdáleností). Znamená to vlastně „v danou chvíli ber to nejlepší řešení a dostaneš se na celkově nejlepší řešení“.

#### Horoezecký algoritmus (Hill-climbing algorithm)

Podobně jako hladový algoritmus používá i tento algoritmus k ohodnocení uzlu heuristickou funkci h(n). Heuristická funkce, zde ohodnocuje spíše „kvalitu řešení“, než vzdálenost od cílového řešení. Poté čím lepší řešení ohodnocovaný uzel představuje, tím vyšší je mu přiřazena hodnota a algoritmus vybírá ke generování uzel s nejvyšším ohodnocením.

## Ovládání programu

Oba algoritmy jsou ukázány na příkladu řešení problému obchodního cestujícího. (Problém obchodního cestujícího spočívá v nalezení nejkratší obchodní cesty mezi několika městy a navrácení zpět do výchozího města. Tedy nalezení minimálního kostry daného grafu.)
Modul nabízí dvě možnosti generování měst. Generování určitého počtu náhodně rozmístěných měst, nebo generování pomocí zadávání měst (souřadnic) uživatelem.
Po skončení generování měst je spočtena vzdálenost mezi městy, poté pomocí tlačitek optimalizace je problém obchodního cestujícího řešen pomocí obou algoritmů. K jednotlivým řešením se lze vrátit a je tak přehlědně ukázán rozdíl mezi oběma algoritmy.