Horolezecký algoritmus (hill climbing) odstraňuje problém enumerativních algoritmů, neprohledává všechny možné kombinace řešení, ale snaží se postupovat ve směru nejlepšího řešení, tedy podle největšího gradientu. Princip algoritmu se dá přirovnat k chování turistů, kteří se ztratili v horách a snaží se postupovat do nejnižší části údolí, protože ví, že je tam horská chata. Algoritmus pro aktuální řešení vygeneruje okolí sousedních bodů a v tomto okolí hledá nejlepší řešení, minimum nebo maximum. Poté se přesune do nejlepšího řešení a znovu opakuje hledání v okolí nové polohy. Proces se opakuje, dokud neproběhne předem daný počet iterací. Jedná se o gradientní metodu bez výpočtu gradientu.
Slovní popis horolezeckého algoritmu:
| 1. | Na začátku se zvolí náhodné přípustné řešení. |
| 2. | Pro aktuální řešení se vygenerují všechna sousední řešení, pro která se vypočtou hodnoty účelové funkce. |
| 3. | Ze sousedních řešení se zvolí nové aktuální řešení, takové, které má nejnižší (nejvyšší) hodnotu účelové funkce. |
| 4. | Dokud není proveden příslušný počet iterací, pokračuje se bodem 2. |
Základní slabinou horolezeckého algoritmu je stejně jako u jiných gradientních metod riziko uváznutí v lokálním extrému, tedy problém cyklického řešení.
Popis parametrů:
| Parametr | Popis | Doporučená hodnota |
|---|---|---|
| Specimen | Vzorové řešení | Dle účelové funkci |
| Druh sousedství | Udává jakým způsobem jsou generováni sousedé | Kříž nebo náhodně ve čtverci |
| Velikost okolí | Záleží na omezení řešené funkce | Kolem 10% rozsahu |
| Velikost kroku | Záleží na omezení řešené funkce | Menší nebo rovno velikosti okolí |
| Maximální počet sousedů | Uplatňuje se pouze při náhodné generaci sousedů | Kolem 10 |
| Počet iterací | Určuje počet kroků při kterých bude zkoumána funkce | Záleží na účelové funkci |