Przeszukiwanie przestrzeni rozwiązań
-
Upload
aleksander-pohl -
Category
Documents
-
view
2.868 -
download
3
description
Transcript of Przeszukiwanie przestrzeni rozwiązań
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)
◮ przeszukiwanie wszerz◮ przeszukiwanie heurystyczne
◮ A*◮ IDA*◮ RBFS◮ BEAM
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 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
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
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
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
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
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
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
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
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
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
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
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)
◮ 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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