Informed search algorithms
Transkrypt
Informed search algorithms
Przeszukiwania heurystyczne Metody sztucznej inteligencji Wykład 3 Na podstawie wykładu S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall, 2003, Plan Strategia „najpierw najlepszy” Zachłanna strategia „najpierw najlepszy” Strategia A* Heurystyki Algorytmy przeszukiwania lokalnego Strategia zachłannna Symulowane wyżarzanie Przeszukiwanie wiązką lokalną Przeszukiwanie „najpierw najlepszy” Idea: stosujemy funkcję oceny f(n) każdego wierzchołka Æ estymacja „potencjału" Rozwiń wierzchołek o największym „potencjale” spośród nierozwiniętych Implementacja: Wierzchołki uporządkowane w kolejce priorytetowej o malejących wartościach „potencjału” Przypadki specjalne: Zachłanna strategia „najpierw najlepszy” Strategia A* Rumunia – koszty kroku w km Zachłanna strategia „najpierw najlepszy” Funkdja ocenu f(n) = h(n) (heurystyka) = estymacja kosztu od n do celu np., hSLD(n) = odległość w linii prostej z n do Bukaresztu Zachłanna strategia „najpierw najlepszy” rozwija wierzchołek, który wydaje się być najbliżej celu Zachłanna strategia „najpierw najlepszy” - przykład Zachłanna strategia „najpierw najlepszy” - przykład Zachłanna strategia „najpierw najlepszy” - przykład Zachłanna strategia „najpierw najlepszy” - przykład Własności zachłannej strategii „najpierw najlepszy” Zupełność? Nie – może utknąć w cyklach, np., Iasi Æ Neamt Æ Iasi Æ Neamt Æ … Czas? O(bm), ale dobra heurystyka może znacząco go obniżyć Przestrzeń? O(bm) – zachowuje wszystkie wierzchołki w pamięci Optimal? Nie Strategia A* Idea: zapobiega rozwijania ścieżek, które już okazały się kosztowne Funkcja oceny f(n) = g(n) + h(n) g(n) = koszt osiągnięcia wierzchołka n h(n) = oszacowanie kosztu z n do celu f(n) = oszacowanie całkowitego kosztu od startu do celu Strategia A* - przykład Strategia A* - przykład Strategia A* - przykład Strategia A* - przykład Strategia A* - przykład Strategia A* - przykład Heurystyki dopuszczalne Heurystyka h(n) jest dopuszczalna jeżeli dla każdego wierzchołka n, h(n) ≤ h*(n), gdzie h*(n) jest prawdziwym kosztem osiagnięcia celu z wierzchołka n. Heurystyka dopuszczalna nigdy nie przeszacowuje kosztu osiagnięcia celu, tzn. jest optymistyczna Twierdzenie: Jeżeli h(n) jest dopuszczalna, to A* z przeszukiwaniem „najpierw najlepszy” jest optymalna. Heurystyka monotoniczna Heurystykę nazywamy monotomiczną jeżeli dla każdego wierzchołka n, każdy jego następnik n' generowany przez akcję a, h(n) ≤ c(n,a,n') + h(n') Jeżeli h jest monotoniczna, mamy f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') ≥ g(n) + h(n) = f(n) Twierdzenie : Jeżeli h(n) jest monotoniczna, to A* jest optimalna Własności A* Zupełność? Tak Czas? Wykladniczy Przestrzeń? Zachowuje wszystkie wierzchołki w pamięci Optimal? Tak Heurystyki dopuszczalne Przykład : Puzzle 8 elementowe h1(n) = liczba kafli nie na swoim miejscu h2(n) = całkowita odległość Manhattan (tzn., liczba pozycji od właściwych lokacji każdego z kafli) h1(S) = ? h2(S) = ? Heurystyki dopuszczalne Przykład : Puzzle 8 elementowe h1(n) = liczba kafli nie na swoim miejscu h2(n) = całkowita odległość Manhattan (tzn., liczba pozycji od właściwych lokacji każdego z kafli) h1(S) = ? 8 h2(S) = ? 3+1+2+2+2+3+3+2 = 18 Supremacja Jeżeli h2(n) ≥ h1(n) dla każdego wierzchołka n (obie heurystyki dopuszczalne), wówczas h2 dominuje h1 h2 jest lepsze dla procesu przeszukwania Typowe koszty przeszukiwań (średnia liczba rozwiniętych wierzchołków): d=12 IDS = 3,644,035 nodes = 227 nodes = 73 nodes d=24 IDS = too many nodes A*(h1) = 39,135 nodes A*(h2) = 1,641 nodes A*(h1) A*(h2) Algorytmy przeszukiwania lokalnego W wielu problemach optymalizacyjnych ścieżka dojścia do celu jest nieistotna,In many optimization problems, cel sam w sobie jest rozwiązaniem Przestrzeń stanów = zbiór „wszystkich" konfiguracji Znajdź konfigurację spełniającą ograniczenia, np., problem n hetmanów W tych przypadkach możemy użyć algorytmów przeszukiwania lokalnego Próba polepszenia jednego aktualnego stanu Przykład: n hetmanów Rozmieść n hetmanów na szachownicy n × n tak, aby nie „raziły się” wzajemnie Przeszukiwanie zachłanne „Jak wspinaczka na Everest w gęstej mgle i mając sklerozę” Przeszukiwanie zachłanne Problem: zależność od stanu początkowego, możliwość utknięcia w maksimum lokalnym Przeszukiwanie zachłanne: problem 8 hetmanów h = liczba par hetmanów wzajemnie się rażących, zarówno bezpośrednio jak i pośrednio h = 17 dla powyższego stanu Przeszukiwanie zachłanne: problem 8 hetmanów Minimum lokalne z h = 1 Przeszukiwanie wiązką lokalną Lepiej analizować k ścieżek niż jedną Inicjacja z k losowo wybranych stanów W każdej iteracji wyznaczamy wszystkich następników aktualnych k stanów Jeżeli jakikolwiek stan celu osiągnięty, stop; w przeciwnym razie wybierz k najlepszych następników jako bazowych i powtórz.