Szukanie heurystyczne I, dokumenty, mechanika i biomechanika


Sztuczna Inteligencja
Szukanie heurystyczne I

Szukanie heurystyczne

Metody szukania heurystycznego

Definicja Funkcji Heurystycznej

0x08 graphic

0x08 graphic

Najpierw najlepszy (BestFS)

BestFS - przykład

0x08 graphic

BFS1: szukanie zachłanne

BestFS1: przykład GS z szukaniem trasy

0x08 graphic

Odległości od Bukaresztu miast na mapie Rumunii; hSLD(n) = odległości w linii powietrznej do miasta n.

BestFS1: szukanie trasy - graf

0x08 graphic

Szukanie zachłanne najkrótszej drogi do Bukaresztu.
Wartość funkcji heurystycznej h(n) - tu odległości mierzonej w linii prostej od Bukaresztu - podana jest w węzłach.

BestFS1: GS, własności

UCS - stałe koszty

UCS, Uniform Cost Search - szukanie przy stałych kosztach.

Rozwijaj węzły o najniższym koszcie; jeśli koszt przekroczy próg cofnij się i idź inną drogą.

Jeśli koszt wszystkich węzłów jest jednakowy to zwykłemu BS.

Przykład: koszty są po lewej stronie.

0x08 graphic

Programowanie dynamiczne.

Jeśli najlepsza droga do celu G przechodzi przez pośredni węzeł P to najlepsza droga od startu S do P połączona z najlepszą drogą z P do G daje optymalne rozwiązanie.
Wniosek: szukając najlepszej drogi do celu wystarczy rozpatrywać tylko najkrótszą drogę do P (ale trzeba znać P).

Bardzo przydatna technika.

BestFS2: szukanie A*

BestFS2: algorytm A*

0x08 graphic
0x08 graphic

Własności:

Ćwiczenie: udowodnić optymalność A*

Dlaczego A* jest optymalne?

o - optymalna droga z A do Z.

a i b - ścieżki z A do Z rozgałęziające się w węźle C.
Niech ścieżka a będzie częścią drogi optymalnej o a ścieżka b nie.

L(C,Z) - zaniżone koszty dojścia z C do Z.

Załóżmy, że A* wybierze ścieżkę b, czyli koszty będą
||A - C||a+L(C,Z) > ||A - C||b +L(C,Z)

Niech D będzie miastem poprzedzającym Z na drodze b;
wtedy L(D,Z)b = ||D - Z||b, czyli ||A - D||b+ L(D,Z)b= ||A - Z||b

Ale ||A - Z||b > ||A - Z||o bo b nie jest optymalne.

||A - C||a+ L(C,Z) Ⴃ ||A - Z||o bo a należy do o a L(C,Z) Ⴃ ||C-Z||o

||A - C||a+ L(C,Z) < ||A - D||b + L(D,Z)b= ||A - Z||b

więc A* zawsze wybierze a.

IDA*, czyli A* iteracyjnie pogłębiane.

Podobny do IDDF

Wady: powtarza część ścieżek, ale i tak końcowe szukanie zajmuje najwięcej czasu.

Zalety: niewielka pamięć, jak DS, tylko szybsze.

Heurystyki dla 8-ki

Przykład A* dla 8-ki

0x08 graphic
Przestrzeń stanów utworzona w czasie heurystycznego
szukania 8-ki.

f(n) = g(n) + h(n)

g(n) = odległość od startu
do stanu n.

h(n) = liczba elementów na złym
miejscu.

Przykłady pytań

4

0x01 graphic

Węzeł A ma 3 potomków.

h(s1)=0.8, h(s2)=2.0, h(s3)=1.6

Wartości = koszty utworzenia węzła;

najtaniej jest utworzyć węzeł s1 i ten z punktu widzenia danej heurystyki jest najlepszym kandydatem.

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka