Algoritmus místního vyhledávání je metoda pro nalezení nejlepšího řešení v blízkosti aktuálního stavu. Tato technika se často používá k upřesnění přibližných řešení opakovaným modifikováním jednotlivých komponent za účelem objevení lepších stavů.
Jak to funguje
- Inicializace: Začněte s počátečním stavem.
- Generovat sousedy: Vygenerujte sousední státy změnou součásti aktuálního stavu.
- Hodnocení: Hodnotit kvalitu sousedních států pomocí objektivní funkce.
- Select Best State: Vyberte sousední stát s nejlepší objektivní hodnotou.
- Opakujte: Opakujte kroky 2 až 4, dokud nenajdete lepší sousední stát.
Příklad: Optimalizace Fibonacci funkce
Uvažujme optimalizační problém funkce Fibonacci F(x) = F(x-1) + F(x-2) s F(0) = 0, F(1) = 1. Chceme najít hodnotu x, pro kterou F(x) je maximalizováno. Můžeme použít přístup Local Search k iterativnímu prozkoumání dále od každého kroku.
Příklad kódu v C++
V tomto příkladu používáme k optimalizaci Fibonacci funkce metodu místního vyhledávání. Iterujeme přes různé hodnoty x a vypočítáme Fibonacci hodnotu pro každé x. Když je nalezena lepší hodnota, aktualizujeme nejlepší hodnotu a jí odpovídající x.