Jak generować sąsiadów w algorytmie wspinaczki górskiej?


9

Wspinaczka pod górę wydaje się być bardzo potężnym narzędziem do optymalizacji. Jednak sposób generowania „sąsiadów” rozwiązania zawsze mnie zastanawia.

Na przykład optymalizuję rozwiązanie (x1,x2),x3)). Tutajx1 jest w zasięgu (0,0,1), x2) jest w zasięgu (0,100), x3) jest w zasięgu (0,1000000). Jaki jest najlepszy sposób na generowanie „sąsiadów”? Naprawdę nie mogę tutaj wybrać „rozmiaru kroku”, ponieważ rozmiar kroku 1 jest ogromnyx1, ale bardzo niewielkie x3).

Jaki jest najlepszy ogólny sposób generowania „sąsiadów” w algorytmach wspinania się na wzgórze?

Odpowiedzi:


3

Rozwiązanie Vincenta poprowadzi cię przez pierwszą przeszkodę. Być może nadal zastanawiasz się, jak wybrać rozmiar kroku, nawet jeśli wszystkie wymiary mają ten sam zakres. W takim przypadku pomaga zrozumieć zachowanie funkcji, dzięki czemu można wybrać odpowiednią wartość. Innym sposobem jest adaptacyjne ustawienie wielkości kroku na podstawie gradientu (lekko stąpaj, jeśli funkcja bardzo się zmienia).

Ten artykuł może mieć także kilka interesujących pomysłów: na algorytmie wspinaczki z adaptacyjnym rozmiarem kroku: w kierunku algorytmu optymalizacji czarnej skrzynki bez parametrów


2

Najłatwiejszym (i najbezpieczniejszym) jest sparametryzowanie problemu, aby wszystkie parametry miały porównywalny zakres, powiedzmy [0,1].

Alternatywnie możesz użyć innego rozmiaru kroku dla każdego parametru.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.