+ h(n - MEiL - Politechnika Warszawska

Transkrypt

+ h(n - MEiL - Politechnika Warszawska
POLITECHNIKA WARSZAWSKA
WYDZIAŁ MECHANICZNY ENERGETYKI I LOTNICTWA
MEL
WPROWADZENIE
DO SZTUCZNEJ INTELIGENCJI
NS 586
Dr inż. Franciszek Dul
© F.A. Dul 2013
4. OSIĄGANIE CELU POPRZEZ
POSZUKIWANIA INFORMOWANE
© F.A. Dul 2013
Poszukiwania informowane
Pokażemy, w jaki sposób agent może
osiągnąć zamierzony cel dużo bardziej
efektywnie poprzez poszukiwania
wykorzystujące dodatkową wiedzę
na temat zadania.
© F.A. Dul 2013
4.1. Poszukiwania informowane
Poszukiwania nieinformowane stanowią formę rozwiązywania
zadania “na oślep”.
Podstawowym algorytmem strategii nieinformowanych był
algorytm przeszukiwania drzewa (niezbyt efektywny).
Istotną poprawę efektywności można uzyskać wykorzystując
dodatkową informację o zadaniu.
Strategie poszukiwania wykorzystujące dodatkowe
informacje o zadaniu nazywa się informowanymi.
Idea: dodatkowa informacja może posłużyć do najkorzystniejszego uporządkowania węzłów przed ich rozwinięciem.
© F.A. Dul 2013
4.1. Poszukiwania informowane
Poszukiwanie informowane
Zasada poszukiwania informowanego:
wybór węzła do rozwinięcia uzależnia się od funkcji szacującej f(n)
Idea: funkcja szacująca ocenia koszt osiągnięcia celu
wybiera się węzeł który jest najlepszy (wg. funkcji szacującej)
Implementacja: brzeg drzewa jest listą uporządkowaną
malejąco według wartości funkcji szacującej odległość od
celu.
Funkcje szacujące definiuje się zwykle w oparciu
o odpowiednią heurezę.
Zasadę powyższą realizują algorytmy:
• najpierw najlepszy (best-first).
• najpierw najlepszy agresywny (greedy best-first).
• algorytm A*
© F.A. Dul 2013
4.1. Poszukiwania informowane
Algorytm „najpierw najlepszy agresywny”
Algorytm rozwija węzeł który leży najbliżej celu.
Funkcja szacująca
f(n) = h(n)
gdzie h(n) - oszacowanie kosztu z n do celu.
Funkcja h(n) nie jest częścią oryginalnego sformułowania
zadania!
Funkcja h(n) musi być określona na podstawie informacji
dodatkowych, najczęściej heurystycznych.
© F.A. Dul 2013
4.1. Poszukiwania informowane
Przykład - poszukiwanie najkrótszej drogi
Odległość do
Bukaresztu w linii
prostej
h(Neamt)=234
h(n) = oszacowanie kosztu z miasta n do celu - Bukaresztu,
np. oszacowanie odległości w linii prostej z n do Bukaresztu
© F.A. Dul 2013
4.1. Poszukiwania informowane
Przykład - poszukiwanie najkrótszej drogi
Cel został osiągnięty!
Rozwiązanie nie jest jednak optymalne por. {Arad, Sibiu, Rimnicu Vilcea, Pitesti}
© F.A. Dul 2013
4.1. Poszukiwania informowane
Własności algorytmu „ najpierw najlepszy agresywny”
• Zupełność
Nie, mogą powstać zapętlenia,
np. Iasi
Neamt
Iasi
Neamt ...
• Czas
O(bm), ale dobra heurystyka może
go znacznie zmniejszyć
• Pamięć
O(bm) (przechowywanie wszystkich
węzłów w pamięci)
• Optymalność Nie
© F.A. Dul 2013
4.1. Poszukiwania informowane
Algorytm A* (A-star)
Najlepsza wersja algorytmu najpierw najlepszy (best-first)
Funkcja szacująca
f(n) = g(n) + h(n)
g(n) - koszt ścieżki od startu do osiągnięcia n,
h(n) - oszacowanie kosztu od n do osiągnięcia celu,
f(n) - oszacowanie koszt ścieżki od startu przez n do
osiągnięcia celu.
Idea: rozwijać ścieżkę która jest najtańsza wg. f(n).
Do oszacowania h(n) algorytm A* używa heurystyki.
Przykład: h(n) nigdy nie jest większa od odległości drogowej
z n do celu.
© F.A. Dul 2013
4.1. Poszukiwania informowane
Przykład - poszukiwanie najkrótszej drogi
© F.A. Dul 2013
4.1. Poszukiwania informowane
Własności algorytmu A*
Tak, chyba że istnieje nieskończenie wiele
celów o tym samym koszcie.
• Czas
Wykładniczy
• Pamięć
Wykładnicza (przechowywanie
wszystkich węzłów w pamięci)
• Optymalność Tak
• Zupełność
Największym problemem algorytmu A* jest pamięć.
Istnieją liczne modyfikacje A* ograniczające pamięć i
zachowujące zupełność oraz optymalność.
Algorytm A* jest jednym z najpopularniejszych algorytmów
poszukiwań informowanych.
© F.A. Dul 2013
4.2. Heurystyki
Funkcje szacujące definiuje się zwykle w oparciu o heurezę
[heureza] “reguła kciuka”, uproszczenie, odgadnięcie
prawidłowości redukujące koszt rozwiązania problemu
w przypadkach, gdy jest on trudny lub niezrozumiały...
Znalezienie dobrej heurystyki jest zasadniczym warunkiem
efektywności algorytmów informowanych.
Aby algorytm poszukiwań informowanych był optymalny, do
utworzenia funkcji h(n) należy użyć heurystyki dopuszczalnej
lub zgodnej.
© F.A. Dul 2013
4.2. Heurystyki
Heurystyka dopuszczalna
Heurystyka jest dopuszczalna, jeżeli nigdy nie przeszacowuje
kosztu osiągnięcia celu,tj.:
1. h(n) ≤ h*(n), h*(n) - rzeczywisty koszt osiągnięcia celu z n,
2. h(n) ≥ 0, zatem h(G) = 0 dla każdego celu G.
Heurystyka dopuszczalna musi być więc optymistyczna.
Heurystyka zgodna
Heurystyka h(n) jest zgodna jeżeli dla
każdego węzła n każdy następnik n’
generowany przez działanie a spełnia
nierówność trójkąta
h(n) ≤ c(n,a,n’) + h(n’)
Twierdzenie Jeżeli h(n) jest dopuszczalna lub
zgodna, to algorytm A* wykorzystujące taką
heurystykę jest optymalny.
© F.A. Dul 2013
4.2. Heurystyki
Heurystyki zgodne
Przykład - gra w osiem kostek
Przykładowe heurystyki:
• h1(n) = liczba źle ustawionych kostek,
• h2(n) = całkowita odległość manhattańska (tj. suma
przesunięć do pozycji docelowej wszystkich
kostek bez uwzględnienia blokowania przez
inne kostki)
Dla początkowej konfiguracji kostek mamy:
• h1(S) = 8 (wszystkie kostki są źle ustawione),
• h2(S) = 3+1+2+2+2+3+3+2 = 18
© F.A. Dul 2013
4.2. Heurystyki
Heurystyki dominujące
Jeżeli dwie heurystyki dopuszczalne, h1(n) i h2(n) spełniają
zależność
h*(n) ≥ h2(n) ≥ h1(n) dla każdego węzła n,
to heurystyka h2 dominuje nad h1.
Heurystyka dominująca jest bardziej efektywna.
© F.A. Dul 2013
4.2. Heurystyki
Jak wymyślić dobrą heurystykę dopuszczalną?
Nie ma ogólnych i zarazem skutecznych reguł wymyślania
dobrych heurystyk dla szerokiej klasy zagadnień...
… ale można podać wskazówki ułatwiające ich tworzenie.
Heurystyka dopuszczalna może być czasami uzyskana przez
rozluźnienie ograniczeń zadania wyjściowego, gdyż…
… koszt rozwiązania zadania rozluźnionego nie jest większy
niż koszt rozwiązania zadania wyjściowego.
Przykłady dla gry w osiem kostek:
• jeżeli kostki mogły by poruszać się w dowolny sposób,
to h1(n) (liczba źle ustawionych kostek) określa najtańsze
rozwiązanie;
• jeżeli kostki mogły by przemieszczać się do pól sąsiednich
nawet gdy są one zajęte, to h2(n) (odległość manhattańska)
określa najtańsze rozwiązanie.
Heurystyki można tworzyć na podstawie zebranych
doświadczeń i zastosowanie algorytmu uczącego.
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Istnieje klasa zadań, w których droga dojścia do celu nie jest
istotna - cel jest jednocześnie rozwiązaniem.
Przykład: rozmieszczenie na szachownicy ośmiu królowych
w taki sposób, aby wzajemnie się nie atakowały.
Zadania takie można rozwiązywać przy
pomocy algorytmów poszukiwań
lokalnych.
Stan - rozmieszczenie na szachownicy
ośmiu królowych, np. [8,6,4,2,7,5,3,1].
Poszukiwania lokalne polegają na kolejnych
zmianach stanu na takie, które są “lepsze” mniej królowych się szachuje np.
[1,6,2,5,7,4,8,3]. Szachują się 5 i 8.
Po wykonaniu sekwencji zmian stanu
powinniśmy uzyskać jakiś stan docelowy.
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Cechy algorytmów poszukiwań lokalnych:
• nie potrzebują wielkiej pamięci;
• pozwalają rozwiązywać zadania o bardzo dużym
wymiarze stanu.
Algorytmy poszukiwań lokalnych są blisko związane
z algorytmami optymalizacji.
Do algorytmów poszukiwań lokalnych zalicza się:
•
•
•
•
algorytm najszybszego wzrostu („hill-climbing”),
algorytm symulowanego wyżarzania,
algorytm wiązki lokalnej („local beam”),
algorytmy genetyczne.
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Algorytm najszybszego wzrostu „hill-climbing”
Idea: zmiana stanu powinna najlepiej poprawić jakość stanu.
Zmiany stanu są dobierane tak, aby funkcja celu osiągnęła
największą wartość w otoczeniu stanu aktualnego.
Problem: algorytm może znajdywać maksima lokalne funkcji
celu.
Wersja stochastyczna - losowy wybór pomiędzy kierunkami
wspinaczki.
Restart losowy pozwala uniknąć maksimum lokalnego.
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Przykład - zadanie ośmiu królowych na szachownicy
Zmiana stanu - przestawienie pojedynczej królowej na inne
pole w tej samej kolumnie szachownicy.
Heurystyka h(n): liczba par królowych które atakują się
wzajemnie.
Stan dla którego h(n) = 17
oraz stany następne dla
których h(n) przyjmują
wartości mniejsze.
Minimum lokalne h(n) = 1
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Algorytm symulowanego wyżarzania
Pomysł zaczerpnięty z… metalurgii. Opiera się na technice
wyżarzania metalu.
Idea: dopuszczenie “złych” zmian stanu
w celu ominięcia maksimów lokalnych.
Pozwala to “przeskoczyć na następny
pagórek” i w ten sposób uniknąć
minimum lokalnego.
Złe zmiany stanu muszą być coraz mniejsze i zachodzić
coraz rzadziej.
Jeżeli temperatura maleje dostatecznie wolno, to algorytm
symulowanego wyżarzania znajduje maksimum globalne.
Zastosowania: opracowanie topologii układów VLSI,
planowanie rozkładu lotów, itp.
Algorytm poszukiwania wiązką „local beam”
Idea: operowanie na zbiorze stanów.
Ta idea – użycie zbioru stanów – prowadzi prosto do …
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Algorytmy genetyczne
Idea: naśladowanie natury poprzez dobór naturalny najlepiej
przystosowanych “osobników” – rozwiązań zadania.
Algorytm genetyczny to algorytm wiązkowy uzupełniony
rekombinacją genetyczną.
• Algorytm operuje na zbiorze k stanów (populacji).
• Stan jest reprezentowany przez łańcuch (gen) utworzony
z liter alfabetu skończonego (często alfabet jest binarny:
0 i 1)
• Funkcja szacująca (funkcja dopasowania) - większe
wartości odpowiadają stanom “lepiej dostosowanym”.
• Start ze zbiorem k stanów wygenerowanych losowo.
• Stan potomny jest generowany przez kombinację dwóch
stanów rodzicielskich.
• Nowa generacja stanów uzyskiwana jest za pomocą
selekcji, krzyżowania i mutacji.
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Algorytmy genetyczne
Przykład dla zadania ośmiu królowych na szachownicy
• „Gen”: wektor położeń królowych w kolumnach, np.
• Funkcja dopasowania: liczba nie atakujących się
par królowych (min. = 0, max = 8 × 7/2 = 28), np.
24/(24+23+20+11) = 31% - najlepszy osobnik,
Losowane
częściej
Odpada
Populacja
Funkcja
początkowa dopasowania
Selekcja
Krzyżowanie
Mutacje
© F.A. Dul 2013
4.3. Algorytmy poszukiwań lokalnych
Metody AI inspirowane biologią
Algorytmy genetyczne stanowią (istotne) ulepszenie zwykłych
metod poszukiwań.
Są one przykładem metod inspirowanych biologią.
Istnieją ogólniejsze metody AI inspirowane biologią:
- strategie ewolucyjne,
- uogólnienie algorytmów genetycznych z osobnikami „ciągłymi”
a nie dyskretnymi.
- programowanie ewolucyjne,
- używa gatunków a nie osobników. Można je tylko (nieznacznie)
mutować (gatunki się nie krzyżują).
- programowanie genetyczne,
- populacja programów-osobników w której poszukuje się
programu „najlepiej przystosowanego” do rozwiązania zadania.
© F.A. Dul 2013
Podsumowanie
• Algorytm A* rozwija węzły z najmniejszą wartością kosztu
całkowitego f(n) = g(n) + h(n).
• Algorytm A* jest zupełny i optymalny jeżeli h(n) jest
dopuszczalna lub zgodna.
• Efektywność algorytmów informowanych zależy od jakości
heurystyk.
• Dobra heurystyka może być często uzyskana poprzez
rozluźnienie ograniczeń zadania.
• Metody poszukiwań lokalnych (np. hill climbing) wykorzystują
tylko pojedyncze stany, nie wymagają więc dużej pamięci.
• Algorytm stochastyczny symulowanego wyżarzania pozwala
wyznaczać rozwiązanie globalne „uciekając” z minimów
lokalnych.
• Algorytmy genetyczne do wyznaczania kierunków
poszukiwań używają mechanizmów genetycznych:
krzyżowania, mutacji i selekcji.
© F.A. Dul 2013