Używając A * (lub innego algorytmu znajdowania najlepszej ścieżki), mówimy, że zastosowana heurystyka powinna być dopuszczalna , to znaczy nigdy nie powinna przeceniać faktycznej długości ścieżki rozwiązania (lub ruchów).
W jaki sposób dopuszczalna heurystyka zapewnia optymalne rozwiązanie? Najlepiej szukam intuicyjnego wyjaśnienia.
Jeśli chcesz, możesz wyjaśnić za pomocą heurystycznej odległości 8-puzzle na Manhattanie .
Odpowiedzi:
Podczas gdy odpowiedź Antona jest absolutnie idealna, postaram się udzielić alternatywnej odpowiedzi: bycie dopuszczalnym oznacza, że heurystyka nie przecenia wysiłku osiągnięcia celu, tj. dla wszystkich n w przestrzeni stanu (w 8 puzzlach oznacza to po prostu dowolną permutację płytek i aktualnie rozważany cel), gdzie h ∗ ( n ) to optymalny koszt osiągnięcia celu.h(n)≤h∗(n) n h∗(n)
Myślę, że najbardziej logiczną odpowiedzią na pytanie, dlaczego zapewnia optymalne rozwiązania, jeśli h ( n ) jest dopuszczalne, ponieważ sortuje wszystkie węzły w pozycji OTWARTE w porządku rosnącym f ( n ) = g ( n ) + h ( n ), a także , ponieważ nie zatrzymuje się podczas generowania celu, ale podczas jego rozwijania:A∗ h(n) f(n)=g(n)+h(n)
I to jest zasadniczo wszystko, co znajdziesz w oryginalnym dowodzie Nilssona i in.
Mam nadzieję że to pomoże,
źródło
Jeśli funkcja heurystyczna jest niedopuszczalna, wówczas możemy uzyskać oszacowanie, które jest większe niż faktyczny koszt ścieżki z jakiegoś węzła do węzła docelowego. Jeśli oszacowanie kosztu wyższej ścieżki znajduje się na ścieżce o najniższych kosztach (której szukamy), algorytm nie zbada go i może znaleźć inną (nie mniej kosztowną) ścieżkę do celu.
Spójrz na ten prosty przykład.
Niech i G będą odpowiednio węzłem początkowym i bramkowym . Niech h ( N ) będzie oszacowaniem długości ścieżki od węzła N do G , ∀ N na wykresie. Ponadto niech c ( N , X i ) będzie funkcją kosztu krokowego od węzła N do jego sąsiada X i , ∀ N i i = 1 .. m , gdzie mZA sol h ( N) N. sol ∀ N. c ( N, Xja) N. Xja ∀ N. ja = 1 .. m m to liczba sąsiadów (tj. funkcja, która zwraca koszt krawędzi między węzłem N a jednym z jego sąsiadów).N. N.
Niech heurystyka będzie
Ta funkcja heurystyczna jest niedopuszczalna, ponieważ h ( C ) = 4 > c ( C , G ) = 2H.
źródło