+ 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