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.