Heurystyczne przeszukiwanie Heurystyczne przeszukiwanie
przestrzeni stan przestrzeni stan ów ó w
Wyk Wykł ład 4 ad 4 Studia In
Studia Inż żynierskie ynierskie
©AM©AM
Realizacja przeszukiwania heurystycznego Realizacja przeszukiwania heurystycznego
•• Systemy eksperckieSystemy eksperckie –
– Gdy problem nie posiada dokłGdy problem nie posiada dokładnego rozwiadnego rozwiąązania ze zania ze wzglęwzględu na swojdu na swojąącharakterystykcharakterystykęę::
**niejednoznacznośćniejednoznacznośćzadania (jaki jest cel, któzadania (jaki jest cel, który mamy ry mamy osi
osiąągngnąćąć?)?)
**nieprecyzyjne lub niepewne dane (błęnieprecyzyjne lub niepewne dane (błędy w danych)dy w danych)
*
*brak wszystkich niezbębrak wszystkich niezbędnych danych (niepednych danych (niepełłne dane)ne dane)
•
• Algorytmy przeszukiwania z Algorytmy przeszukiwania z numerycznnumerycznąą funkcjąfunkcją oceny oceny stanu
stanu –
– Gdy istniejąGdy istniejądokłdokładne rozwiadne rozwiąązania, ale wymagania zania, ale wymagania zasobowe (pami
zasobowe (pamięćęć, czas) s, czas) sąązbyt duzbyt dużże (kombinatoryczna e (kombinatoryczna eksplozja stan
eksplozja stanóów w problemach rzeczywistych!)w w problemach rzeczywistych!)
Podstawowe poj
©Podstawowe poję ęcia teorii graf cia teorii grafó ó w w przeszukiwania
przeszukiwania
•• KorzeKorzeńńgrafugrafu Stan, od kt
Stan, od któórego zaczynamy przeszukiwanie grafu (drzewa) rego zaczynamy przeszukiwanie grafu (drzewa) –– począpoczątkowy stan problemu (instancja problemu)tkowy stan problemu (instancja problemu)
•
• WierzchołWierzchołek koek końcowy (terminalny)ńcowy (terminalny) Stan, kt
Stan, któóry ma okrery ma okreśślonlonąąwartowartośćśćocenyocenyz punktu widzenia z punktu widzenia wyniku danego zadania (np. pora
wyniku danego zadania (np. porażżka, zwycika, zwycięęstwo, remis w stwo, remis w grze)
grze)
•• LiśćLiść
Dowolny stan w grafie, w kt
Dowolny stan w grafie, w któórym zatrzymujemy proces rym zatrzymujemy proces przeszukiwania i przypisujemy mu
przeszukiwania i przypisujemy mu ocenocenęęheurystycznheurystycznąą
•• WierzchołWierzchołek ek „„wewnwewnęętrznytrzny””
KażKażdy inny stan, ktdy inny stan, któórego rego wartowartośćśćocenyocenyzależzależy od jego y od jego poprzednik
poprzedników lub nastów lub nastęępnikpnikóóww
©AM©AM
Podstawowe poj
Podstawowe poję ęcia teorii graf cia teorii grafó ó w w przeszukiwania c.d.
przeszukiwania c.d.
•• GłęGłębokobokośćść przeszukiwania (aktualna)przeszukiwania (aktualna) Liczba przej
Liczba przejśćśćstanóstanów (ruchw (ruchóów) od korzenia grafu do stanu w) od korzenia grafu do stanu aktualnego
aktualnego
•• BranchingBranchingfactorfactor
Średnia liczba nastŚrednia liczba nastęępnikpnikóów stanu (w stanu (śśrr. liczba ruchó. liczba ruchów w stanie)w w stanie)
•• Drzewa przeszukiwania/DAGDrzewa przeszukiwania/DAG Wi
Więększokszośćść grafgrafóów przeszukiwania to DAG (acykliczne grafy w przeszukiwania to DAG (acykliczne grafy skierowane), cz
skierowane), częśćęśćz nich to drzewaz nich to drzewa
G
Głęłębokobokośćść przeszukiwania przeszukiwania
Stan ko
Stan końńcowycowy Ocena heurystyczna (liśćOcena heurystyczna (liść)) StanStan Wierzcho
Wierzchołłek ek
„wewn„wewnęętrznytrzny””
©AM©AM
Heurystyczne przeszukiwanie Heurystyczne przeszukiwanie
•
• PołąPołączenie czenie wiedzy przedmiotowejwiedzy przedmiotowejdotycządotyczącej danego zadania i cej danego zadania i metod przeszukiwania
metod przeszukiwaniadla efektywnego poszukiwania dla efektywnego poszukiwania rozwi
rozwiąązaniazania
•• Stosowane w celu ograniczenieStosowane w celu ograniczeniekombinatorycznej eksplozji kombinatorycznej eksplozji stanóstanów w grafie przeszukiwaniaw w grafie przeszukiwania
•• Nie gwarantuje znalezienia rozwiąNie gwarantuje znalezienia rozwiązania, pozwala jednak zania, pozwala jednak wybiera
wybieraććlub lub odrzucaodrzucaććpewne stany, okreśpewne stany, określajlająąc tym samym c tym samym dalsze kierunki przeszukiwania
dalsze kierunki przeszukiwania
©
Rola heurystyki w przeszukiwaniu Rola heurystyki w przeszukiwaniu
•• ZwięZwiększa niepewnoksza niepewnośćśćotrzymania wyniku w procesie konstrukcji otrzymania wyniku w procesie konstrukcji rozwi
rozwiąązania ze wzglzania ze wzglęędu na wykorzystywanie du na wykorzystywanie „„nieformalnejnieformalnej”” wiedzy przedmiotowej (zasady, regu
wiedzy przedmiotowej (zasady, regułły, intuicje itp.), kty, intuicje itp.), któórej rej słsłusznousznośćść/u/użżytecznoytecznośćśćnie do konie do końńca jest znanaca jest znana
•• Pozwala w naturalny sposóPozwala w naturalny sposób wykorzystywab wykorzystywaććinformacje informacje niepewne i nieprecyzyjne, kt
niepewne i nieprecyzyjne, któóre czre częęsto towarzyszsto towarzysząąprzetwarzaniu przetwarzaniu danych pochodz
danych pochodząących ze cych ze śświata rzeczywistegowiata rzeczywistego
•
• Poprawia efektywnośćPoprawia efektywnośćalgorytmu poszukiwania rozwiąalgorytmu poszukiwania rozwiązania zania danego problemu bezpo
danego problemu bezpośśrednio (przez wskazywanie najlepszych rednio (przez wskazywanie najlepszych kierunk
kierunkóów przeszukiwania) lub pow przeszukiwania) lub pośrednio (przez eliminowanie średnio (przez eliminowanie najmniej obiecuj
najmniej obiecująących kierunkcych kierunkóów)w)
©AM©AM
Gdzie stosujemy przeszukiwanie Gdzie stosujemy przeszukiwanie
heurystyczne?
heurystyczne?
•• Problemy jednoosobowe (np.zagadki logiczne: Problemy jednoosobowe (np.zagadki logiczne:
arytmografy, labirynty, itp.) arytmografy, labirynty, itp.)
•• Problemy optymalizacji (np. nawigacja robota Problemy optymalizacji (np. nawigacja robota -- znajdowanie najkr
znajdowanie najkróótszej tszej śściecieżżki, szeregowanie itd.)ki, szeregowanie itd.)
•• Gry dwuosoboweGry dwuosobowe
•• Systemy dowodzenia twierdzeSystemy dowodzenia twierdzeńń
Rozmiary przestrzeni:
Rozmiary przestrzeni:
Pe Pełłna na --9!9!
Symetria i powt
Symetria i powtóórzenia rzenia --12 12 7!7!
Heurystyka
Heurystyka --4.5 4.5 99
©AM©AM
Algorytmy przeszukiwania heurystycznego Algorytmy przeszukiwania heurystycznego
•• Problemy jednoosoboweProblemy jednoosobowe –– Algorytm wspinaczkowyAlgorytm wspinaczkowy –
– Algorytm Algorytm Best-Best-firstfirst--searchsearch –
– Algorytm AAlgorytm A** –
– Algorytm IDAAlgorytm IDA**
•• Gry dwuosoboweGry dwuosobowe –– Algorytm Algorytm min-min-maxmax –– Algorytm Algorytm alfaalfa-beta-beta
©
Skł Sk ładowe algorytm adowe algorytmó ó w przeszukiwania w przeszukiwania heurystycznego
heurystycznego
•
• Reprezentacja stanu przestrzeni (silnie zaleReprezentacja stanu przestrzeni (silnie zależna od żna od zastosowania)
zastosowania)
–– Stany startowe (począStany startowe (początkowe, inicjujtkowe, inicjująące)ce) –– Stany końStany końcowe (terminalne)cowe (terminalne)
•
• Generator nastęGenerator następnikpnikóów stanu (zbiw stanu (zbióór dopuszczalnych r dopuszczalnych operator
operatoróów/akcji/ruchw/akcji/ruchóów)w)
•• Procedura przeszukiwaniaProcedura przeszukiwania
–– Mechanizm wyboru nastęMechanizm wyboru następnego wierzchopnego wierzchołka w grafiełka w grafie –– Mechanizm nawrotóMechanizm nawrotóww
–
– Mechanizmy wykrywania cykliMechanizmy wykrywania cykli
•
• Funkcja heurystycznej oceny stanuFunkcja heurystycznej oceny stanu
©AM©AM
Algorytm wspinaczkowy (ang.
Algorytm wspinaczkowy (ang. hill climbing) hill climbing )
procedure
procedurehill_climbing(hill_climbing(initial_stateinitial_state)) begin
begin
current_node
current_node= initial_state= initial_state;; nextnext= [];= [];
ififcurrent_nodecurrent_node==goal goal thenthenreturn(success);return(success);
while
whiletruetruedodo begin
begin
generate all children of
generate all children of current_nodecurrent_node;; if
ifany of children is a goal state thenany of children is a goal state thenreturn(success);return(success);
assign
assign heuristicheuristicvaluevalueto each child state;to each child state;
set
set nextnextto a lowest-to a lowest-valued child of valued child of current_nodecurrent_node;; if
ifvalue of nextvalue of next>>value of value of current_nodecurrent_nodethenthen return(success);
return(success); % % stop! stop! --no improvementsno improvements set current_nodeset current_nodeto to nextnext;;
endend; ; % while% while end.end.
B-B-55 C-C-55 D-D-66 E
E FF GG HH II JJ
KK LL MM NN OO PP QQ RR
S
S TT UU
©AM©AM
Algorytm wspinaczkowy
Algorytm wspinaczkowy - - przykł przyk ład ad
A-A-66
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 GG HH II JJ
KK LL MM NN OO PP QQ RR
S
S TT UU
©
Algorytm wspinaczkowy
Algorytm wspinaczkowy - - przykł przyk ład ad
A-A-66
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
K-K-66 L-L-33 MM NN OO PP QQ RR
S
S TT UU
©AM©AM
Algorytm wspinaczkowy
Algorytm wspinaczkowy - - przykł przyk ład ad
A-A-66
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
K-K-66 L-L-33 MM NN OO PP QQ RR
S
S TT--22 UU
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
K-K-66 L-L-33 MM NN OO PP QQ RR
S
S TT--22 UU
koniec!
koniec!
©AM©AM
Algorytm wspinaczkowy: charakterystyka Algorytm wspinaczkowy: charakterystyka
Cechy szczeg Cechy szczegóólnelne
•• Ocena heurystyczna stanu z reguOcena heurystyczna stanu z regułły traktowana jako koszty traktowana jako koszt
•• MaMałłe wymagania pamięe wymagania pamięciowe (brak historii!)ciowe (brak historii!)
•
• Brak mechanizmu nawrotBrak mechanizmu nawrotóóww
•
• NieoptymalnyNieoptymalny
WadyWady
•• Lokalne ekstrema funkcjiLokalne ekstrema funkcji
•• PlateauxPlateaux--brak postębrak postępu w przeszukiwaniupu w przeszukiwaniu
•• Grzbiety funkcji Grzbiety funkcji ––powolny postępowolny postęp w przeszukiwaniup w przeszukiwaniu
?
?
©
Algorytm wspinaczkowy: metody poprawy Algorytm wspinaczkowy: metody poprawy
•• Nawroty do poprzednich stanNawroty do poprzednich stanóów i prw i próóba wykorzystania ba wykorzystania innych, niemal r
innych, niemal róównie dobrych, nastwnie dobrych, nastęępnikpnikóów jak ten w jak ten pierwotnie wybrany (trzeba zarezerwowa
pierwotnie wybrany (trzeba zarezerwowaććdodatkowądodatkową pamipamięćęć!)!)
•• Wykonywanie "duWykonywanie "dużżych skokych skokóów" tzn. wybieranie operatorw" tzn. wybieranie operatoróów, w, ktktóóre wprowadzajre wprowadzająąogromne zmiany stanu problemu lub, jeśogromne zmiany stanu problemu lub, jeśli li brak takowych, wykonywanie kilku drobnych krok
brak takowych, wykonywanie kilku drobnych krokóów "pod w "pod rzrząąd" w jednym wybranym kierunku przestrzeni stand" w jednym wybranym kierunku przestrzeni stanóóww
•• Wykonywanie kilku krokWykonywanie kilku krokóów w rw w róóżżnych kierunkach, ale bez nych kierunkach, ale bez sprawdzania warto
sprawdzania wartośści osici osiąąganych stanganych stanóóww
•
• RRóóżżne punkty startowe (stany poczne punkty startowe (stany począątkowe) algorytmutkowe) algorytmu
©AM©AM
Algorytm
Algorytm best- best -first first -search - search (zachł (zach łanny) anny)
procedure
procedurebbestest_first_search(_first_search(initial_stateinitial_state)) begin
begin open
open= [= [initial_stateinitial_state];];
closed closed= [];= [];
while
whileopenopen[] [] dodo begin
begin
remove the leftmost state from
remove the leftmost state from openopen, call it , call it XX;; if
ifXXis goal state is goal state thenthenreturn(success);return(success);
generate all children of generate all children of XX;; put
put XXon closedon closed;;
eliminate any children of
eliminate any children of XXalready on either openalready on either openor closedor closed,, as this will cause loops in the search;
as this will cause loops in the search;
assign
assign heuristic valueheuristic valueto the child state;to the child state;
add the child state to add the child state to openopen;; re
re--order states on order states on openopenaccording to heuristic merit (according to heuristic merit (lowerlowervalues first);values first);
endend
BB CC DD E
E FF GG HH II JJ
NN OO PP QQ RR S
S
Closed Closed
UU KK LL MM
TT
B-B-55
Ocena stanu Ocena stanu
©AM©AM
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E FF GG HH II JJ
NN OO PP QQ RR S
S
OpenOpen
Closed Closed
UU KK LL MM
TT
B-B-55
Ocena stanu Ocena stanu
©
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
NN OO PP QQ RR S
S
OpenOpen
Closed Closed
UU KK LL MM
TT
B-B-55
Ocena stanu Ocena stanu
©AM©AM
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
NN OO PP QQ RR S
S
OpenOpen
Closed Closed
UU K-K-66 L-L-33 MM
TT
B-B-55
Ocena stanu Ocena stanu
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
NN OO PP QQ RR S
S
Closed Closed
UU K-K-66 L-L-33 MM
T-T-22
B-B-55
Ocena stanu Ocena stanu
©AM©AM
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
NN OO PP QQ RR S
S
OpenOpen
Closed Closed
UU K-K-66 L-L-33 MM
T-T-22
B-B-55
Ocena stanu Ocena stanu
©
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
NN OO PP QQ RR S
S
OpenOpen
Closed Closed
UU K-K-66 L-L-33 M-M-44
T-T-22
B-B-55
Ocena stanu Ocena stanu
©AM©AM
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 GG HH II JJ
NN OO PP QQ RR S
S
OpenOpen
Closed Closed
UU K-K-66 L-L-33 M-M-44
T-T-22
B-B-55
Ocena stanu Ocena stanu
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 G-G-44 HH--33 II JJ
NN OO PP QQ RR S
S
Closed Closed
UU K-K-66 L-L-33 M-M-44
T-T-22
B-B-55
Ocena stanu Ocena stanu
©AM©AM
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 G-G-44 HH--33 II JJ
NN O-O-22 P-P-33 QQ RR S
S
OpenOpen
Closed Closed
UU K-K-66 L-L-33 M-M-44
T-T-22
B-B-55
Ocena stanu Ocena stanu
©
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 G-G-44 HH--33 II JJ
NN O-O-22 P-P-33 QQ RR S
S
OpenOpen
Closed Closed
UU K-K-66 L-L-33 M-M-44
T-T-22
B-B-55
Ocena stanu Ocena stanu
©AM©AM
Algorytm
Algorytm Best Best -first - first search search - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 F-F-44 G-G-44 HH--33 II JJ
NN O-O-22 P-P-33 QQ RR S
S
OpenOpen
Closed Closed
U-U-11 K-K-66 L-L-33 M-M-44
T-T-22
B-B-55
Ocena stanu Ocena stanu
•• Historia ruchHistoria ruchóów w ––wykrywanie cykli wykrywanie cykli ––lista OPEN i CLOSEDlista OPEN i CLOSED
•• „„WielokierunkoweWielokierunkowe””przeszukiwanie przestrzeniprzeszukiwanie przestrzeni
•
• Im lepsza ocena heurystyczna stanIm lepsza ocena heurystyczna stanóów, tym mniejszy obszar w, tym mniejszy obszar przeszukiwania
przeszukiwania
WadyWady
•• DuDużże wymagania pamie wymagania pamięęciowe (zciowe (złłoożżonoonośćśćpamiępamięciowa ciowa O(bO(bdd)), , bb––branchingbranchingfactorfactor, , dd––głęgłębokobokośćść przeszukiwania)przeszukiwania)
•• Nieoptymalny (w ogNieoptymalny (w ogóólnym przypadku, ale...)lnym przypadku, ale...)
©AM©AM
Algorytm
Algorytm Best Best -fist - fist- -search search - - przykł przyk ład ad
2 8 1 6 7
3 4 5
2 8 1 6 7 3 4 5
2 8 1 7 6
3 4 5
2 8 1 6 7 5 3 4
2 8 6 1 7 3 4 5
2 8 1 7 6 3 4 5
2 8 1 4 7 6 3 5 2
1 8 7 6 3 4 5
2 8 1 6 7 5 3 4
8 2 6 1 7 3 4 5
8 2 1 7 6 3 4 5
2 8 1 4 7 6 3 5 2
1 8 7 6 3 4 5
2 8 1 7 5
3 6 4 2 8
6 1 7
3 4 5
2 8 7 1 6 3 4 5
2 8 1 4 7 6 3 5 2 3
1 8 7 6 4 5
2 8 1 6 7 5 3 4
8 2 6 1 7 3 4 5 2 6 8 1 7 3 4 5
2 8 6 4 1 7 3 5
2 8 6 7 1
3 4 5 8 2 1 7 6 3 4 5
2 1 4 7 6 8 3 5 1 2
8 7 6 3 4 5 2 8 7 1 6
3 4 5
2 8 1 4 7
3 5 6 2 3
1 8 7 6 4 5
2 8 1 7 5 3 6 4 2 1 8 7 5 3 6 4
2 8 1 5 7
3 6 4
2 1 6 7 5 8 3 4
8 3 2 64
8 6 2
3 4
2 6 8 3 4
2 3 6 84
2 8 6 4 3
2 8 6 4 3 5
2 8 6 7 3 4
2 8 6 7 3 4
8 3 2 1 4
8 1 2
3 4
2 8 7
3 4
2 8 7 1 3 4
1 2 7 8 3 4
1 2 8
3 4 celcel Ocena heurystyczna Ocena heurystyczna: liczba : liczba p
płłytek (elementytek (elementóów) poza w) poza swoim po
swoim połłoożżeniem eniem docelowym docelowym
©
Ocena heurystyczna
Ocena heurystyczna – – jaka? jaka?
2 8 1 7 6
3 4 5 2 8
1 6 7 7
3 4 5
2 8 1 6 7 5
3 4
55 33 55
PrPróóba 1:ba 1: Liczba pLiczba płłytek poza pozycjami ytek poza pozycjami docelowymi
docelowymi Wada:
Wada: Nie uwzglNie uwzglęędnia dnia „„jak dalekojak daleko””jest każjest każda da ppłłytka od miejsca docelowegoytka od miejsca docelowego
Pr
Próóba 2:ba 2: Suma Suma „„odlegodległłoośścici””wszystkich płwszystkich płytek od ytek od miejsca docelowego
miejsca docelowego Wada:
Wada:Ignoruje fakt (podobnie jak poprzednia Ignoruje fakt (podobnie jak poprzednia heurystyka),
heurystyka), żże prosta zamiana miejscami dwe prosta zamiana miejscami dwóóch ch p
płłytek to wiytek to więęcej nicej niżżdwa ruchydwa ruchy
PrPróóba 3:ba 3: Liczba Liczba „„odwrodwróóconychconych””par ppar płłytek ytek pomno
pomnożżona przez maona przez małły wspóy współłczynnik (np. 2)czynnik (np. 2) Wada:
Wada:Nie uwzglęNie uwzględnia sekwencji ruchdnia sekwencji ruchóóww
66 44 66
00 00 00
Proponowana heurystyczna ocena Proponowana heurystyczna ocena
©AM©AM
Funkcja oceny heurystycznej
Funkcja oceny heurystycznej - - definicja definicja
Funkcj
Funkcjąą oceny heurystycznej nazywamy funkcjęoceny heurystycznej nazywamy funkcję rzeczywistąrzeczywistą okreokreślonślonąą na zbiorze wierzchona zbiorze wierzchołkłkóów grafu przestrzeni stanw grafu przestrzeni stanóów w postaci:
postaci:
f(f(nn) = ) = gg((nn) + ) + hh((nn)),, gdzie:
gdzie:
g(g(nn)) jest aktualnąjest aktualną dłdługougośćść śściecieżżki od stanu ki od stanu nn do stanudo stanu pocz
począątkowego,tkowego,
h(h(nn)) jest heurystycznym oszacowaniem odległjest heurystycznym oszacowaniem odległoośści odci od stanu
stanu nndo celu.do celu.
7 6 5
2 1 8 7 6
3 4 5
2 8 1 4 7 6
3
5 2 8
1 7 6
3 4 5
2 1 8 7 6
3 4 5
2 3 1 8 7 6
4 5 2 8
7 1 6
3 4 5 8
2 1 7 6
3 4 5
1 2 8 7 6
3 4 5 1 2
8 2 7 6
3 4 5
1 2 7 8 2 6
3 4 5 ff((cc) =4) =4
Stan Stan hh f(f(hh) =6) =6
Stan Stan ff
f(f(ff) =5) =5 Stan Stan gg f(f(gg) =6) =6 Stan
Stan ee f(f(ee) =5) =5
Stan Stan ii f f((ii) =7) =7
Stan Stan jj f f((jj) =5) =5
Stan Stan kk f f((kk) =7) =7
Stan Stan ll f f((ll) =5) =5
Stan Stan mm f f((mm) =5) =5
Stan Stan nn f(f(nn) =7) =7 celcel
g(n) = 2 g(n) = 2
g(n) = 3 g(n) = 3
g(n) = 4 g(n) = 4
g(n) = 5 g(n) = 5 ff((nn) = ) = gg((nn) + ) + hh((nn),),
gdzie:
gdzie: gg((nn) rzeczywista ) rzeczywista odleg
odległłoośćśćod startu do stanu od startu do stanu nn,, h
h((nn) liczba p) liczba płłytek (elementytek (elementóów) w) poza swoim po
poza swoim połłoożżeniem eniem docelowym
docelowym
©AM©AM
Funkcja oceny heurystycznej a algorytm Funkcja oceny heurystycznej a algorytm
Best Best - - first first - - search search
Niech dany b
Niech dany bęędzie algorytm dzie algorytm BestBest--firstfirst--searchsearch z ocenz ocenąą heurystyczn
heurystycznąąpostaci:postaci:
f
f((nn) = ) = gg((nn) + h) + h((nn)),,
•• jejeżżeli dla kaeli dla każżdego stanu dego stanu gg(n(n) = 0) = 0to otrzymujemy tzw. to otrzymujemy tzw.
przeszukiwanie zach
przeszukiwanie zachłłanne anne (brak gwarancji znalezienia (brak gwarancji znalezienia optymalnego rozwi
optymalnego rozwiąązania)zania)
•• jejeżżeli dla kaeli dla każżdego stanu dego stanu hh(n(n) = 0) = 0i gi g((nn) = ) = depthdepth((nn))to to mamy
mamy przeszukiwanie wszerz przeszukiwanie wszerz (mo(możżliwe znalezienie liwe znalezienie optymalnego rozwi
optymalnego rozwiąązania)zania)
©
Algorytm A
Algorytm A - - definicja definicja
Rozwa
Rozważżmy funkcjmy funkcjęęoceny:oceny:
f
f((nn) = ) = gg((nn) + ) + hh((nn)) gdzie:
gdzie:
nn jest dowolnym stanem odwiedzonym w czasie jest dowolnym stanem odwiedzonym w czasie przeszukiwania,
przeszukiwania, g
g((nn))00 jest kosztem osiąjest kosztem osiągnignięęcia stanu cia stanu nnod począod początku tku przeszukiwania,
przeszukiwania,
h(h(nn) ) 00jest heurystycznym oszacowaniem kosztu przejśjest heurystycznym oszacowaniem kosztu przejścia od cia od stanu
stanu nndo celu.do celu.
JeżJeżeli ta ocena (w peeli ta ocena (w pełnej postaci) jest realizowana łnej postaci) jest realizowana łąłącznie z cznie z algorytmem
algorytmem bestbest-first-first--searchsearch, to rezultat nazywa si, to rezultat nazywa sięęalgorytmem Aalgorytmem A.. Algorytm ten ze wzgl
Algorytm ten ze wzglęędu na warunki wyjadu na warunki wyjaśśnione dalej nie jest w nione dalej nie jest w praktyce stosowany.
praktyce stosowany.
©AM©AM
Algorytm BFS z og
Algorytm BFS z ogó ó lną ln ą funkcją funkcj ą (1) (1)
procedure
procedureAstar_search(initial_state)Astar_search(initial_state) begin
begin open
open= [initial_state];= [initial_state];
closed closed= [];= [];
while
whileopenopen[] do[] do begin
begin
remove the next state from
remove the next state from openopen, call it , call it XX;; if
if XXis a goal state then return(solution path that led to is a goal state then return(solution path that led to XX););
process
process XX, generating all its children;, generating all its children;
for
foreach child of Xeach child of Xdodo casecase
the child is not already on
the child is not already on openopennnor or closedclosed:: ...
...
the child is already on the child is already on openopen:: ...
...
the child is already on the child is already on closedclosed:: ...
...
end
end; ; %case%case put
put XXon on closedclosed;; re
re--order states on order states on openopenaccording to heuristic merit (loweraccording to heuristic merit (lowervalues first);values first);
end
end; ; % while% while return(failure);
return(failure); % open is exhausted% open is exhausted
end end;;
the child is already on the child is already on openopen:: begin
begin if
ifthe child was reached along shorter path than the state currentthe child was reached along shorter path than the state currently on ly on openopenthenthen give the state on
give the state on openopenthis shorter path value;this shorter path value;
end end;;
the child is already on the child is already on closedclosed:: begin
begin if
ifthe child was reached along shorter path than the state currentthe child was reached along shorter path than the state currently on ly on closedclosedthenthen begin
begin
give the state on
give the state on closedclosedthis shorter path value;this shorter path value;
move the state from
move the state from closedclosedto opento open;; endend
end end;; end
end; ; %case%case ......
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
1010 1010 1212
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
13 13
10
10 1212
13 13
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
4 4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
13
13 1313
1212
13
13 1111
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
13
13 1313
1212
13 13
1212 1313
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
13
13 1313 1313 1717
1212 1313 1717
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
13
13 1313 1313 1717
13 13
1717
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
4 4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
1717
13
13 1717
13 13
13 13
1717
1414
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
1717
13
13 1717
1515 1313
1717
12 12
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
1717
13
13 1717
1515 1313
1717
12 12
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
1717
13
13 1717
1515 1313
1717
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
4 4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 22
11 11 11
11 11
1717 1717
1717
1515 1313
1717
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu
©AM©AM
Algorytm A
Algorytm A - - przykł przyk ład ad
AA
B-B-55 C-C-55 D-D-66 E
E--44 FF--44 G-G-44 HH--33 I-I-55 J-J-44
N-N-33 O-O-22 PP--22 Q-Q-44 RR--22 S
S--11
OpenOpen
Closed Closed
UU--00 KK--22 LL--22 MM--22
TT--11
55 5 5 66 4
4
66
4
4 44 33 66 77
3 3 11
4
4 55 22 33 11
11 11 11
11 11
1717 1717
1717
1515
13 13
1717
prawie koniec ; prawie koniec ;--))
66 koszt koszt operacji operacji
BB--55
Ocena stanu Ocena stanu