Wprowadzenie Przeszukiwanie wgl ˛ ab Przeszukiwanie wszerz Heurystyki Gry Postscriptum Sztuczna Inteligencja i Systemy Ekspertowe Przeszukiwanie przestrzeni rozwi ˛ aza´ n Aleksander Pohl http://apohllo.pl/dydaktyka/ai Wy˙ zsza Szkola Zarz ˛ adzania i Bankowo´ sci 26 maja 2009 Aleksander Pohl WSZiB Przeszukiwanie przestrzeni rozwi ˛ aza ´ n
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Sztuczna Inteligencja i Systemy EkspertowePrzeszukiwanie przestrzeni rozwiazan
Aleksander Pohlhttp://apohllo.pl/dydaktyka/ai
Wyzsza Szkoła Zarzadzania i Bankowosci
26 maja 2009
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Plan prezentacji
Wprowadzenie
Przeszukiwanie wgłab
Przeszukiwanie wszerz
Heurystyki
Gry
Postscriptum
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Plan prezentacji
Wprowadzenie
Przeszukiwanie wgłab
Przeszukiwanie wszerz
Heurystyki
Gry
Postscriptum
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Przestrzen stanów
◮ Graf o wezłach opisujacych sytuacje dla danego problemu◮ Rozwiazanie sprowadza sie do znalezienia sciezki
w grafie◮ Wieze hanoi◮ Problem „wilka, kozy i kapusty”◮ Problem komiwojazera (TSP)
◮ Problem okreslony jest przez:◮ Przestrzen stanów◮ Wezeł poczatkowy◮ Wezeł/Wezły koncowy/e◮ ew. koszty przejsc
◮ s(X,Y)◮ s(X,Y,Cost)
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Przykład – klocki
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Metody poszukiwania rozwiazania
◮ przeszukiwanie wgłab◮ z limitem głebokosci◮ z powiekszanym limitem głebokosci (iterative deepening)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Warianty
◮ iteratywne zwiekszanie głebokosci – iterative deepening◮ małe wymagania pamieciowe – pamietana jest tylko
aktualna sciezka od stanu wyjsciowego do stanuaktualnego
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Plan prezentacji
Wprowadzenie
Przeszukiwanie wgłab
Przeszukiwanie wszerz
Heurystyki
Gry
Postscriptum
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Przeszukiwanie wszerz
◮ Jesli głowa pierwszej sciezki jest celem, to ta sciezka jestrozwiazaniem
◮ Usun pierwsza sciezke z listy kandydatów, wytwórzwszystkie jej rozszerzenia o jeden krok, umiesc je nakoncu listy kandydatów, przeszukaj wgłab ta liste
◮ [a], [a,b], [a,c], [a,b,d] ....
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
A* – implementacja, pseudokod
function A * (start,goal)var closed := the empty setvar q := make_queue(path(start))while q is not emptyvar p := remove_first(q)var x := the last node of pif x in closed : continueif x = goal : return padd x to closedforeach y in successors(p)# sortowane po f(x) = g(x)+h(x)enqueue(q, y)return failure
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
A* – implementacja (1)
◮ expand(P,Tree,Bound,Tree1, Solved,Solution)
◮ Tree – obecne poddrzewo◮ P – sciezka od poczatku do Tree◮ Bound – obecnie najlepsza wartosc◮ Tree1 – Tree poszerzone tak by zachowac Bound◮ Solved – „yes”, „no”, „never”◮ Solution – sciezka od startu
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
A* – implementacja (2)
◮ I(N, F/G) – Lisc grafu:◮ N – stan◮ G – koszt z dojscia z Start do N,◮ F – G + h(N) (h – heurystyka)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Inne rozwiazania
◮ RBFS – recursive best-first search◮ A* – zapamietuje wszystkie wezły◮ RBFS – odrzuca te gałezie które nie sa optymalne
◮ BEAM search◮ na kazdym poziomie rozwijamy tylko m najlepszych sciezek
(m – beam)◮ niekoniecznie znajduje rozwiazanie
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Plan prezentacji
Wprowadzenie
Przeszukiwanie wgłab
Przeszukiwanie wszerz
Heurystyki
Gry
Postscriptum
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Grafy i/lub – przykład (1)
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Grafy i/lub – przykład (2)
Szukanie sciezki – rozłozenie na podproblemy◮ W grafie a-z istnieja dwa „mosty” - f,g◮ Dwa mozliwe rozwiazania – a-z przez f badz a-z przez g
◮ Znajdz sciezke a-f i f-z◮ lub◮ Znajdz sciezke a-g i g-z
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Grafy i/lub – charakterystyka (1)
◮ Dzieli problem na podproblemy◮ Wezły w grafie sa problemami, krawedzie relacjami◮ Dla wezła „LUB” (ma tylko wychodzace krawedzie
połaczone relacja „lub”) jeden z nastepników musi dacrozwiazanie
◮ Dla wezła „I” (ma tylko wychodzace krawedzie połaczonerelacja „I”) kazdy z nastepników musi dac rozwiazanie
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Grafy i/lub – charakterystyka (2)
◮ Okreslamy problem przez wezeł startowy, warunkiosiagniecia celu
◮ Wezły celu odpowiadaja „trywialnym” rozwiazaniom◮ Rozwiazanie reprezentowane jest przez drzewo◮ Cała przestrzen posiada tylko wezły LUB◮ Wezły I odpowiadaja podproblemom, połaczenie
rozwiazan podproblemów winno dac globalne rozwiazanie◮ W teorii gier – „moje ruchy” – wezły LUB,
„jego ruchy” - wezły I
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Zasada mini-max
◮ Dla gier dwuosobowych:◮ Okreslamy heurystyczna funkcje celu
◮ Im wieksza tym wieksza szansa zwyciestwa
◮ W kolejnych krokach na zmiane bierzmy minimum imaximum tej funkcji
◮ Po okreslonej głebokosci wybieramy cel maksymalizujacyfunkcje docelowa
◮ Efekt „horyzontu zdarzen”
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Mini-max – przykład
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Mini-max – pseudokod
function minimax(node, depth)if node is a terminal node or depth = 0
return the heuristic value of nodeif the adversary is to play at node
let α := +∞
foreach child of nodeα := min( α, minimax(child, depth-1))
else we are to play at nodelet α := −∞
foreach child of nodeα := max( α, minimax(child, depth-1))
return α
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Mini-max – szachy
◮ 80 półruchów, 40 ruchów ∼ 100040 pozycji◮ MinMax – szukamy Min w ruchu przeciwnika, Max w
naszym
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Algorytm alfa-beta
◮ Nie rozpatrujemy wszystkich wezłów◮ Gwarantujemy ze wartosc MAX jest nie mniejsza niz Alfa◮ Gwarantujemy ze wartosc MIN jest nie wieksza niz Beta◮ Z kazdym krokiem zwezamy przedział o nowo znalezione
wartosci
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Alfa-beta – pseudokod
function minimax(node, depth)return alphabeta(node, depth, - ∞, + ∞)
function alphabeta(node, depth, α, β)if node is a terminal node or depth = 0
return the heuristic value of nodeforeach child of node
α := max( α, -alphabeta(child, depth-1,- β, - α))
if α ≥ β
return β
return α
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum