Przeszukiwanie przestrzeni rozwiązań
-
Upload
aleksander-pohl -
Category
Documents
-
view
2.871 -
download
3
description
Transcript of Przeszukiwanie przestrzeni rozwiązań
![Page 1: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/1.jpg)
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
![Page 2: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/2.jpg)
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
![Page 3: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/3.jpg)
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
![Page 4: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/4.jpg)
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
![Page 5: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/5.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Przykład – klocki
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 6: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/6.jpg)
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)
◮ przeszukiwanie wszerz◮ przeszukiwanie heurystyczne
◮ A*◮ IDA*◮ RBFS◮ BEAM
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 7: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/7.jpg)
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
![Page 8: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/8.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Przeszukiwanie wgłab – implementacja
◮ solve(N,[N]) :-goal(N).
◮ solve(N,[N|Sol1]):-s(N,N1),solve(N1,Sol1).
◮ [a] , [a,b], [a,b,d], [a,b,e], ..
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 9: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/9.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Wykrywanie cykli
◮ solve( Node, Solution) :-depthfirst( [], Node, Solution).
◮ depthfirst( Path, Node, [Node | Path] ) :-goal( Node).
◮ depthfirst( Path, Node, Sol) :-s( Node, Node1),not member( Node1, Path),depthfirst( [Node | Path], Node1, Sol).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 10: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/10.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Ograniczenie głebokosci
◮ depthfirst2( Node, [Node], _) :-goal( Node).
◮ depthfirst2( Node, [Node | Sol],Maxdepth) :-Maxdepth > 0, s( Node, Node1),Max1 is Maxdepth - 1,depthfirst2( Node1, Sol, Max1).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 11: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/11.jpg)
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
![Page 12: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/12.jpg)
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
![Page 13: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/13.jpg)
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
![Page 14: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/14.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (1)
◮ solve(Start, Solution) :-breadthfirst([[Start]], Solution).
◮ breadthfirst([[Node|Path] | _],[Node|Path]) :-goal(Node).
◮ breadthfirst([Path | Paths], Solution) :-extend(Path, NewPaths),conc(Paths, NewPaths, Paths1),breadthfirst(Paths1, Solution).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 15: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/15.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (2)
◮ extend( [Node | Path], NewPaths) :-bagof([NewNode, Node | Path],(s( Node, NewNode),not member( NewNode, [Node | Path] ) ),NewPaths),!.
◮ extend( Path, [] ).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 16: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/16.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja z wykorzystaniem list róznicowych
◮ solve( Start, Solution) :-breadthfirst( [ [Start] | Z] - Z,Solution).
◮ breadthfirst([[Node | Path] | _] - _ ,[Node | Path]) :-goal( Node).
◮ breadthfirst( [Path | Paths] - Z,Solution) :-extend( Path, NewPaths),conc( NewPaths, Z1, Z),Paths = Z1,breadthfirst( Paths - Z1, Solution).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 17: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/17.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Podsumowanie
Metoda Czas Pamiec Najkrótsza sciezkaWszerz bd bd TakWgłab bdmax dmax NieIteracyjne pogł. bd d TakDwukierunkowy b(d/2) b(d/2) Tak
◮ b – czynnik rozgałezienia,◮ d – długosc najkrótszego rozwiazania,◮ dmax – ograniczenie głebokosci przeszukania
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 18: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/18.jpg)
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
![Page 19: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/19.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Najpierw najlepszy (najtanszy) wezeł
◮ f (n) - „trudnosc” dla wezła n◮ najlepszy: f (T ) = mini f (Si)
◮ Sciezka od s do t :◮ g(n) – koszt s → n◮ h(n) – koszt n → t◮ f (n) = g(n) + h(n) – A*
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 20: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/20.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
A*
◮ Redukcja czynnika rozgałezienia b na b′ b′ << b◮ Zajetosc pamieci znaczna◮ Złozonosc obliczeniowa bardziej tolerowalna niz
pamieciowa◮ Jesli heurystyczny koszt jest nie mniejszy od
rzeczywistego – algorytm wykrywa rozwiazania optymalne
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 21: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/21.jpg)
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
![Page 22: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/22.jpg)
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
![Page 23: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/23.jpg)
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)
◮ t(N, F/G, Subs) – poddrzewo grafu◮ N – Korzen◮ Subs – lista pod-drzew◮ F/G - j.w. (F – najwyzsze sposród nastepników N)
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 24: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/24.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (3)◮ bestfirst( Start, Solution) :-
expand([], l(Start, 0/0), 9999, _, yes,Solution).
◮ expand(P, l(N, _), _, _, yes, [N|P]) :-goal(N).
◮ expand(P, l(N,F/G), Bound, Tree1, Solved,Sol) :-F =< Bound,(bagof(M/C, (s(N,M,C), not member(M,P) ),Succ),!, succlist(G, Succ, Ts), bestf(Ts, F1),expand(P, t(N,F1/G,Ts), Bound, Tree1,Solved, Sol); Solved = never).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 25: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/25.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (4)
◮ expand(P, t(N,F/G,[T|Ts]), Bound, Tree1,Solved, Sol) :-F =< Bound,bestf(Ts, BF), min(Bound, BF, Bound1),expand([N|P], T, Bound1, T1, Solved1, Sol),continue(P, t(N,F/G,[T1|Ts]), Bound, Tree1,Solved1, Solved, Sol).
◮ expand(_, t(_,_,[]), _, _, never, _) :- !.
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 26: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/26.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (5)
◮ expand(_, Tree, Bound, Tree, no, _) :-f(Tree, F), F > Bound.
◮ continue(_, _, _, _, yes, yes, Sol).
◮ continue(P, t(N,F/G,[T1|Ts]), Bound, Tree1,no, Solved, Sol) :-insert(T1, Ts, NTs),bestf(NTs, F1),expand(P, t(N,F1/G,NTs), Bound, Tree1,Solved, Sol).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 27: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/27.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (6)
◮ insert(T, Ts, [T | Ts]) :-f(T, F), bestf(Ts, F1), F =< F1, !.
◮ insert(T, [T1 | Ts], [T1 | Ts1]) :-insert(T, Ts, Ts1).
◮ f(l(_,F/_), F).
◮ f(t(_,F/_,_), F).
◮ bestf([T|_], F) :- f(T, F).
◮ bestf([], 9999).
◮ min(X, Y, X) :-X =< Y, !.
◮ min(X, Y, Y).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 28: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/28.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Implementacja (7)
◮ succlist(_, [], []).
◮ succlist(G0, [N/C | NCs], Ts) :-G is G0 + C,h(N, H),F is G + H,succlist(G0, NCs, Ts1),insert(l(N,F/G), Ts1, Ts).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 29: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/29.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
IDA* – iterative deepening A*
◮ Bound=f(Start)◮ Repeat
◮ Dokonaj szukania wgłab uwzgledniajac takie wezły N zef(N)<=Bound
◮ „if” cel osiagniety – koniec◮ „else”:
◮ NewBound = min{ f(N) | N wygenerowany , f(N)>Bound}◮ Bound=NewBound
◮ Until znaleziono rozwiaznie
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 30: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/30.jpg)
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
![Page 31: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/31.jpg)
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
![Page 32: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/32.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Grafy i/lub – przykład (1)
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 33: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/33.jpg)
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
![Page 34: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/34.jpg)
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
![Page 35: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/35.jpg)
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
![Page 36: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/36.jpg)
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
![Page 37: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/37.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Mini-max – przykład
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 38: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/38.jpg)
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
![Page 39: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/39.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Mini-max – implementacja (1)
◮ minimax(Pos, BestSucc, Val) :-moves(Pos, PosList), !, best(PosList,BestSucc, Val) ;staticval(Pos, Val).
◮ best([ Pos], Pos, Val) :-minimax(Pos, _, Val), !.
◮ best([Pos1 | PosList], BestPos, BestVal) :-minimax(Pos1, _, Val1),best(PosList, Pos2, Val2),betterof(Pos1, Val1, Pos2, Val2, BestPos,BestVal).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 40: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/40.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Mini-max – implementacja (2)
◮ betterof(Pos0, Val0, Pos1, Val1, Pos0,Val0) :-min_to_move(Pos0), %nastepny ruch jegoVal0 > Val1, ! ;max_to_move(Pos0), % nastepny ruch mojVal0 < Val1, !.
◮ betterof(Pos0, Val0, Pos1, Val1, Pos1,Val1).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 41: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/41.jpg)
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
![Page 42: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/42.jpg)
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
![Page 43: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/43.jpg)
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
![Page 44: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/44.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Alfa-beta – implementacja (1)
◮ alphabeta(Pos, Alpha, Beta, GoodPos, Val):-moves(Pos, PosList), !,boundedbest(PosList, Alpha, Beta, GoodPos,Val);staticval(Pos, Val).
◮ boundedbest([Pos | PosList], Alpha, Beta,GoodPos, GoodVal) :-alphabeta(Pos, Alpha, Beta, _, Val),goodenough(PosList, Alpha, Beta, Pos, Val,GoodPos, GoodVal).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 45: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/45.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Alfa-beta – implementacja (2)◮ goodenough([], _, _, Pos, Val, Pos, Val) :-
!.◮ goodenough(_, Alpha, Beta, Pos, Val, Pos,
Val) :-min_to_move(Pos), Val > Beta, ! ;max_to_move(Pos), Val < Alpha, !.
◮ goodenough(PosList, Alpha, Beta, Pos, Val,GoodPos, GoodVal) :-newbounds(Alpha, Beta, Pos, Val, NewAlpha,NewBeta),boundedbest(PosList, NewAlpha, NewBeta,Pos1, Val1),betterof(Pos, Val, Pos1, Val1, GoodPos,GoodVal).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 46: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/46.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Alfa-beta – implementacja (3)
◮ newbounds(Alpha, Beta, Pos, Val, Val, Beta):-min_to_move(Pos), Val > Alpha, !.
◮ newbounds(Alpha, Beta, Pos, Val, Alpha,Val) :-max_to_move(Pos), Val < Beta, !.
◮ newbounds(Alpha, Beta, _, _, Alpha, Beta).
◮ betterof(Pos, Val, Pos1, Val1, Pos, Val) :-min_to_move(Pos), Val > Val1, ! ;max_to_move(Pos), Val < Val1, !.
◮ betterof(_, _, Pos1, Val1, Pos1, Val1).
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 47: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/47.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Alfa-beta – podsumowanie
◮ sqrt(b) – redukcja czynnika rozgałezienia przy best-first(szachy: 30 -> 6)
◮ Ulepszenia:◮ „heuristic pruning” - usuwanie mało obiecujacyh gałezi◮ „progressive deepening”◮ ograniczenia czasowe◮ zapamietywanie ruchów posrednich
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan
![Page 48: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/48.jpg)
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
![Page 49: Przeszukiwanie przestrzeni rozwiązań](https://reader036.fdocuments.net/reader036/viewer/2022081413/547aa0f6b47959a9098b4aa2/html5/thumbnails/49.jpg)
Wprowadzenie Przeszukiwanie wgłab Przeszukiwanie wszerz Heurystyki Gry Postscriptum
Materiały zródłowe
◮ L.Sterling, E.Shapiro - „The Art Of Prolog”◮ Ivan Bratko - „Prolog – Programming For Artificial
Intelligence”◮ Slajdy zostały przygotowane za zgoda
dr. Michała Korzyckiego na podstawie jego wykładu.
Aleksander Pohl WSZiB
Przeszukiwanie przestrzeni rozwiazan