Upload
nguyennga
View
223
Download
0
Embed Size (px)
Citation preview
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Sztuczna
inteligencja w
programowaniu gier
Krzysztof Ślot
Algorytmy przeszukiwania
przestrzeni rozwiązań
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Wprowadzenie
Ogólna charakterystyka zagadnienia
Cel przeszukiwania: znaleźć element będący rozwiązaniem problemu
Przykładowe zadania przeszukiwania
Planowanie trasy (nawigacja), logistyka: zbiór tras (działań) jest
skończony, cel to wybór najlepszej trasy (sekwencji działań)
Gry: zbiór scenariuszy jest skończony, cel to wybór najlepszego
Dopasowywanie danych (rozpoznawanie): skończony zbiór hipotez
Hipotezy rozważane w procedurze są znane (możliwe do generacji)
Rozwiązanie to akcja (stan) lub sekwencja akcji
Genomika – poszukiwanie sekwencji nukleotydów kodujących konkretne
białko: skończony zbiór sekwencji
Rozwiązanie na pewno istnieje
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Misjonarze i kanibale
Sformułowanie zadania
Cel: przewieźć grupę misjonarzy i
kanibali na drugi brzeg rzeki
Operacje: transfery dwuosobową łodzią
Ograniczenia: liczba kanibali nie może
przekroczyć liczby misjonarzy; łódź nie
płynie sama
Stan początkowy: 3M, 3K – lewy brzeg
Start
M
K
Stan docelowy: 3M, 3K – prawy brzeg
Cel M
K
Oczekiwany wynik analizy: sekwencja operacji
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
#ML #KL #MP #KP Ł
3 3 0 0 L
2 2 1 1 P
3 2 0 1 L
3 0 0 3 P
3 1 0 2 L
1 1 2 2 P
2 2 1 1 L
0 2 3 1 P
0 3 3 0 L
0 1 3 2 P
0 2 3 1 L
0 0 3 3 P
P(1,1)
L(1,0)
P(0,2)
L(0,1)
P(2,0)
P(1,1)
P(2,0)
P(0,1)
P(0,2)
P(0,1)
P(0,2)
Misjonarze i kanibale
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Terminologia
• Stan
– Elementarny składnik dziedziny problemu
– Przykłady: sekwencja przystanków planowanej drogi, zbiór parametrów
kontrolowanego procesu, stan gry
• Akcja
– Operacja, której wynikiem może być zmiana stanu
S
S S
xxxS stanys )(1
So )(2
So
)( xxx
yyy So akcje
• Rozwiązywanie problemu
– Poszukiwanie stanu spełniającego predefiniowane kryterium (pożądany
efekt terapii, sekwencja nukleotydów, sekwencja przystanków)
Przestrzeń poszukiwań
Przejścia między stanami
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Ekspansja węzła (stanu) – określenie następników danego węzła
Bieżący stan : (gorączka, wysoki poziom glukozy) S S
Stany
następne
: (gorączka, norma) : (norma, poziom niski)
SS
SS : (norma, norma)
SS
Akcje podaj L1 1o 2o3o
1o 2o : podaj L2 : podaj L3 3o
Q = { , , , , }
• Q – zbiór stanów czekających na ekspansję
S
S SS S
S S SS S S
Terminologia
Drzewo
Stan początlowy
Węzły końcowe
(liście)
Gałęzie
• Drzewo poszukiwań: graficzna reprezentacja procesu przeszukiwania
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Podstawa algorytmów przeszukiwania:
Znalezienie systematycznej strategii ekspansji węzłów,
zapewniającej osiągnięcie celu
• Oczekiwane właściwości metody przeszukiwania:
– Maksymalizacja szybkości procedury
– Minimalizacja wymaganych zasobów
– Zapewnienie pewności uzyskania rozwiązania (optymalnego)
• Złożoność obliczeniowa procesu przeszukiwania: koszt znalezienia
rozwiązania + koszt wdrożenia znalezionej sekwencji (akcji)
• Skala trudności – funkcja dostępnej wiedzy o problemie
(istnienie przesłanek pozwalających ukierunkować procedurę)
Metodologia przeszukiwania
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Algorytm przeszukiwania
START
Wynik? STOP
Wybór stanu
początkowego
Testuj bieżący węzeł Sprawdzenie kryterium
zakończenia
Ekspansja bieżącego węzła Wykonanie wszystkich
akcji możliwych dla
rozważanego węzła
Ogólna metodologia postępowania
Wszystkie ?
Wybór następnego węzła do
ekspansji
Strategia
przeszukiwania
TAK
TAK
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Kanibale i misjonarze
• Rozwiązywanie: powtarzanie kroków
– Sprawdzenie osiągnięcia celu (A)
– Ekspansja węzłą(B)
– Sprawdzenie spełnienia ograniczeń i dodanie węzła do zbioru Q (C)
S0 = (3,3,0,0,0)
S1 = (3,2,0,1,1)
P(0,1)
P(0,2) P(1,0) P(2,0)
P(1,1) B
C #ML>#KL, #ML=0 ok
A (3,3,0,0,0) <> (0,0,3,3,1) Nie jest rozwiązaniem
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Kryterium wyboru strategii
Dostępność informacji pozwalającej na ukierunkowanie procesu
przeszukiwania
Strategie
przeszukiwania
Bez dodatkowej
informacji (ślepe)
Nie istnieją żadne przesłanki pozwalające
ukierunkować proces poszukiwań
Z informacją
(heurystyczne)
Istnieją informacje pozwalające na ocenę
spodziewanych korzyści
• Wybór węzła podlegającego ekspansji
– Metody ślepe: jedyne kryterium to kompletność (nie pominąć rozwiązania)
– Metody heurytyczne: skupić się na najlepiej rokujących elementach
Metodologie przeszukiwania
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Różnice między strategiami: reguła ekspansji
W jakiej kolejności dokonywać ekspansji węzłów ze zbioru Q,?
Q = { , , , , }
S SS
SS S S
S S S
Przeszukiwanie
na oślep
Q = { , , , , } S S
S S S
1 2 4 5 3
Q = { , , , , } S S
S S S
4 5 2 1 3
Przeszukiwanie na oślep
Warstwowe (poziome)
BFS
Ekspansja najdłużej oczekującego
węzła
Q - kolejka
Wgłębne (pionowe)
DFS
Ekspansja najpóźniej dodanego
węzła
Q - stos
SSSSS SSSSS
S
S
S
SSS
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przeszukiwanie na oślep
Q={1}
2 3 4
Q={2,3,4}
2 3 4
Q={3,4,5,6} 5 6
Q - kolejka Q - stos
Q={1}
2 3 4
Q={7,6,5,3,2} 5 6 7
Q={4,3,2}
2 3 4
2 3 4
Q={4,5,6,7,8} 5 6 7 8
2 3 4
Q={10,9,8,6,5,3,2}
5 6 7
8 9 10
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Cel Start
BFS
Drzewo poszukiwań
Kolejność
ekspansji
W,N,E,S
(4,0)
(3,0) (4,1) (5,0)
Q = …
1
1
1
(2,0) (3,1) (4,2) (5,1) (6,0)
2
2
2
2
2
• Przykład
– Cel: znalezienie najkrótszej drogi między dwoma punktami mapy
– Dany punkt startowy i końcowy
– Znana mapa (przeszkody)
Przeszukiwanie warstwowe
Przeszkoda
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
11
11 10 11 11
11 10 9 11 10 11
10 9 8 11 10 9 10 11
9 8 7 11 10 9 8 9 10
8 7 6 10 9 8 7 8 9
7 6 5 6 7 8
6 5 4 3 2 3 4 5 6 7
5 4 3 2 1 2 3 4 5 6
4 3 2 1 1 2 3 4 5
11
11 10 11 11
11 10 9 11 10 11
10 9 8 11 10 9 10 11
9 8 7 11 10 9 8 9 10
8 7 6 10 9 8 7 8 9
7 6 5 6 7 8
6 5 4 3 2 3 4 5 6 7
5 4 3 2 1 2 3 4 5 6
4 3 2 1 1 2 3 4 5 Ścieżka
• Fazy algorytmu
– Ekspansja kolejnych węzłów (‘fala’) aż do znalezienia rozwiązania
– Rekonstrukcja ścieżki: powrót od rozwiązania do startu najkrótszą drogą
Przeszukiwanie warstwowe
Kolejność ekspansji
węzłów: W,N,E,S
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Kolejność ekspansji
węzłów: E, S, W, N
Ścieżka
Śiceżka została znaleziona
Ścieżka nie jest optymalna
(najkrótsza)
• Alternatywna strategia rozwiązania: DFS
– Węzły podlegają ekspansji według kolejności pojawiania się (stos)
– Rekonstrukcja ścieżki: tak jak w strategii poziomej
Przeszukiwanie wgłębne
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Kryteria porównawcze strategii
– Kompletność (Czy jest gwarancja znalezienia rozwiązania?)
– Optymalność (czy znajdziemy rozwiązanie najlepsze?)
– Złożoność obliczeniowa (jak długo będzie trwało znalezienie
rozwiązania?)
– Zasoby niezbędne dla realizacji algorytmu
Właściwości metod przeszukiwania na oślep
• Kompletność
– BFS: rozwiązanie będzie znalezione
– DFS: będzie znalezione (uwaga: konieczne monitorowanie listy
odwiedzonych węzłów, by uniknąć nieskończonych pętli)
• Optymalność
– BFS optymalna jeśli koszt przejścia między węzłami jest nieujemny
– DFS: zwykle nieoptymalna (znalezione pierwsze z brzegu rozwiązanie)
Obydwie strategie pozwolą rozwiązać wspomniane problemy, np.
misjonarze-kanibale, poszukiwanie ścieżki itd..
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Porównanie BFS i DFS
b: współczynnik rozgałęzienia –
średnia liczba ‘potomków’
każdego węzła
1 b
1
d
2
d – głębokość drzewa
• Złożoność obliczeniowa
– Czas: funkcją głebokości drzewa (d) i współczynnika rozgałęzienia (b)
• Przykładowe oszacowania
– Problem akwizytora: 4 poł./miasto (b), 11 miast (d) 6232510 10)10(44 o
18636530 10)10(44 o– Kolorowanie map: 4 kolory (b), 30 regionów (d)
• Złożoność obliczeniowa może być gigantyczna
– Konieczne posiadanie listy odwiedzonych węzłów (usuwanie powtórzeń –
unikanie relacji wykładniczej)
– Mimo to, złożoność pozostanie ogromna (kombinacje - silnia)
o = 1 + b1 + b2 +
b3 + … + bd
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Zasoby
– Funkcja głebokości drzewa (d) i współczynnika rozgałęzienia (b)
Porównanie BFS i DFS
dbm
BFS
Konieczne pamiętanie wszystkich
węzłów czekających na
ekspansję (na danym poziomie)
DFS
Konieczne pamiętanie węzłów na
analizowanej ścieżce
db m
1020 104 m
Gigantyczne zasoby:
b=4, d=20
Wymaganie: 10 GB
80204 m
Niewielkie zasoby: b=4, d=20
Wymaganie: 80 B
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
BFS DFS
Kompletność
Optymalność
Złożoność
Zasoby
+ +
+
+
-
-
-
-
Porównanie BFS i DFS
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Pogłębianie iteracyjne
Szukaj
d=1
Rozwiązanie? STOP
d = d + 1
d=1
Właściwości metody
- Kompletna
- Optymalna
- Ogromna złożoność obliczeniowa
- Małe wymagania co do zasobów
d=2
Kombinacje strategii przeszukiwania
• Uzasadnienie strategii
– Wzajemna kompensacja metod: BFS (wymagane ogromne zasoby) i
DFS (nieoptymalność)
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przeszukiwanie na oślep – algorytm Dijkstry
• Problem
– Zróżnicowany koszt odwiedzin węzła
– BFS, DFS nie biorą pod uwagę atrybutów węzła
• Idea modyfikacji
– Wybór węzłów do ekspansji na podstawie ich wkładu w całkowity koszt
przejścia (wybór minimalnej wartości)
– Śledzenie historii procesu : rejestracja zakumulowanego kosztu
Woda, koszt np. 10
Las, koszt np. 4
Początek
Cel
Zwykły teren, koszt np. 1
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm Dijkstry
BFS
Długość ścieżki:30 Koszt ścieżki:57
Koszt poszukiwań: 255
DFS
Długość ścieżki:120
Koszt ścieżki:324
Koszt poszukiwań: 150
Dijkstra
Długość ścieżki: 30
Koszt ścieżki: 39
Koszt poszukiwań: 252
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Stosowanie:
Problemy, w których istnieją przesłanki pozwalające na
ukierunkowanie procesu przeszukiwania
• Założenia:
Możliwe sformułowanie heurystyki (zasady/miary, pozwalającej na
ocenę jakości wyboru kierunku dalszych poszukiwań)
• Ekspansja węzłów w algorytmach heurystycznych
Wybieraj do ekspansji najlepiej rokujące węzły (tzn. takie, które
mają dają ekstremum wartości przyjętego kryterium oceny)
Przeszukiwanie heurystyczne
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Zasada wyboru węzła do ekspansji: zwycięzca
Q = { , , , , }
S SS
SS S S
S S S
Przeszukiwanie
heurystyczne
Wybór najlepiej
rokujących hipotez
Q = { , , , , } S SS S S
-1 2.1 0.4 7.5 1.3
Kandydaci
1 Ekspansja zwycięzcy
Przeszukiwanie heurystyczne
• Funkcja kryterialna: heurystyka
– Odzwierciedla intuicyjną ocenę sytuacji
– Musi być konstruowana indywidualnie dla danego zadania
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Przykład: układanka
5 7 2
1 8 6
3 4
1 2 3
4 5 6
7 8
Przykładowe przejścia między stanami
5 7 2
1 8 6
3 4
Si = [ 5 7 2 1 8 6 3 x 4 ]
Stany
Akcje
Przesuń x: N, S, E, W, jeśli to możliwe
[5,7,2,1,8,6,3,x,4}, {1,2,3,4,5,6,7,8,x}…
5 7 2
1 8 6
3 4
Si+1 = [ 5 7 2 1 8 6 x 3 4 ]
E
5 7 2
1
8
6
3 4
Si+1 = [ 5 7 2 1 x 6 3 8 4 ]
S
Przeszukiwanie heurystyczne
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przykładowe drzewo poszukiwań 5 7 2
1 8 6
3 4
Si = [ 5 7 2 1 8 6 3 x 4 ]
[ 5 7 2 1 8 6 x 3 4 ] [ 5 7 2 1 x 6 3 8 4 ] [ 5 7 2 1 8 6 3 4 x ]
[572x86134] [5728613x4] [572x16384] [57216x384] [5x2176384] [5x2176384] [5x2176384]
Rozwiązanie zadania przy użyciu metody przeszukiwania na
oślep jest nierealne (zbyt złożone obliczeniowo)
Współczynnik rozfgałęzienia d to w przybliżeniu 3
Maksymalna głębokość drzewa: N = 9! = 362880
Szacunkowa złożoność obliczeniowa - dN = 3362880
Przykład - układanka
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Możliwa heurystyka dla problemu 5 7 2
1 8 6
3 4
Odległość blokowa
9
1
**
2,1
t
ttttSS jjiif
Skumulowana odległość kostek od ich położeń docelowych
Drzewo poszukiwań
Si = [ 5 7 2 1 8 6 3 x 4 ]
[ 5 7 2 1 8 6 x 3 4 ]
f = 2+3+1+1+1+0+2+3+3=16
[ 5 7 2 1 x 6 3 8 4 ]
f = 2+3+1+1+2+0+4+0+3=16
[ 5 7 2 1 8 6 3 4 x ]
f = 2+3+1+1+1+0+4+2+0=14
Układanka – wykorzystanie heurystyki
• Typowa efektywność – średnio nie więcej niż 40 kroków
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Sztandarowa aplikacja: planowanie drogi
Znajdź optymalną drogę między A i B,(załóżmy, że dana jest mapa cyfrowa
o d=1000 węzłach ze średnim współczynnikiem rozgałęzienia b=3)
• Sprawdzenie rozwiązywalności problemu
– Przeszukiwanie na oślep
– Ekspansja węzłów musi być heurystyczna
50050021000 1033 o
Czas od Wielkiego Wybuchu –
około . 4x1018 sekund
Przeszukiwanie heurystyczne
• Zalety przeszukiwania heurystycznego
– Możliwe radykalne zmniejszenie złożoności obliczeniowej
– Możliwe radykalne zmniejszenie wymaganych zasobów
• Wady metodologii
– Heurystyka nie daje 100% pewności: możliwe fiasko szybkich
poszukiwań
– Nie ma uniwersalnej heurystyki: musi być określana indywidualnie
– Rozwiązanie może nie być optymalne
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przeszukiwanie zachłanne (greedy search)
• Heurystyka przeszukiwania zachłannego
– Szacowana odległość do celu (jak w układance)
Greedy search
Długość ścieżki: 30
Koszt ścieżki:30
Koszt poszukiwań: 30
BFS
Długość ścieżki: 30
Koszt ścieżki:30
Koszt poszukiwań: 180
DFS
Długość ścieżki: 54
Koszt ścieżki: 54
Koszt poszukiwań: 183
Dijkstra
Długość ścieżki: 30
Koszt ścieżki:30
Koszt poszukiwań: 180
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm A* (A-star)
• Podstawowa strategia heurystyczna
– Połączenie metod poszukiwania zachłannego (ukierunkowanie
poszukiwań) i algorytmu Dijkstry (karanie nadmiernie skomplikowanej
lub kosztownej ścieżki eksploracji)
– Koszt całkowity: koszt dotychczasowy + estymata dystansu do celu
Greedy search
Długość ścieżki: 34
Koszt ścieżki: 34
Koszt poszukiwań: 41
A*
Długość ścieżki: 30
Koszt ścieżki:30
Koszt poszukiwań: 83
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm A* (A-star)
• Proporcje między składnikami heurystycznym i zakumulowanym
– Przyśpieszenie poszukiwań – zwiększenie roli heurystyki
KZHKC KC – koszt całkowity, H – heurystyka, KZ – koszt zakumulowany
)/(11 hw Przykładowa wartość współczynnika (w+h – odległość L1 do celu)
Długość ścieżki: 62
Koszt poszukiwań: 123 01.1Długość ścieżki: 62
Koszt poszukiwań: 835 1
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
t=1 t=3 t=27
t=58 t=83 Długość ścieżki: 30
Koszt ścieżki: 39
Koszt poszukiwań: 92
Algorytm A*
• Przeszukiwanie w warunkach zróżnicowanego kosztu węzłów
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Dijkstra
Długość ścieżki: 30
Koszt ścieżki: 39
Koszt poszukiwań: 176
Greedy search
Długość ścieżki: 30
Koszt ścieżki: 57
Koszt poszukiwań: 30
A*
Długość ścieżki: 30
Koszt ścieżki:39
Koszt poszukiwań: 92
Algorytm A*
• Optymalny koszt ścieżki
– Przeszukiwanie
zachłanne bezużyteczne
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
• Gra: powtarzanie dwóch faz (ruch mój – ruch przeciwnika)
• Zasada algorytmu: maksymalizacja własnej korzyści połączona z
minimalizacją korzyści przeciwnika: algorytmy MINI-MAX
• Cel: znalezienie sekwencji ruchów prowadzących do zwycięstwa
• Ilościowa ocena bieżącego stanu gry (heurystyka) zależy od reguł
gry, pomysłowości i intuicji. Utworzenie dobrego opisu ilościowego
to element różnicujący rozwiązania.
Przeszukiwanie heurystyczne: gry
• „Korzyść” to ilościowa ocena stanu gry po wykonaniu ruchu
(ruchów)
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm MiniMax
• Cel: znalezienie najlepszego ruchu w danym stanie gry
– Naprzemienne ruchy gracza G i przeciwnika P
– Maksymalizacja korzyści G w jego ruchu, minimalizacja w ruchu P
– Korzyść: ilościowa miara opisująca stan gry
Stany gry
Ruch P
Ruch G
Ruch P
Ruch G
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm MiniMax
• Heurystyka
– Wartość określana po ‘k’ symulowanych naprzemiennych posunięciach
– Musi być określona indywidualnie dla gry
21
• Przebieg typowego algorytmu
– Przeszukuj pionowo na głębokość 2k, oceń stan gry
21 18 21 18 13
81
21 8 13 18
81
MAX
18
MIN
18
MIN
13
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm MiniMax
• Reguła wyboru ruchu
– Maksymalna korzyść, uwzględniająca wszystkie ocenione w procesie
analizy sekwencje możliwych wariantów naprzemiennych ruchów
– Ruch dokonywany na poziomie bieżącego węzła
– Analiza dokonywana do głębokości 2k
Ruch P
Ruch G
Ruch P
Ruch G
21 18 13 18 23 61 30 12 6 31 11 11
11 18 13 23 30 12 6 4 21 12 14 48 16 21 5 9 12
18 23 12 21 48 21 12
18 12 12
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Algorytm MiniMax
• Problem
– Liczba przewidywanych ruchów zależy od złożoności zadania
– Złożoność to O(b2k), gdzie współczynnik rozgałęzienia (b) może być
duży: szachy – ok. 40)
• Rozwiązanie
– Przycinanie drzewa poszukiwań (alfa-beta pruning)
• Idea metody
– Rezygnacja z eksploracji gałęzi, które na pewno prowadzą do gorszych
rezultatów
– Problem: jak to oszacować?
222 10440 L
Przykład: szachy – b wynosi ok. 40
k=1 444 10440 Lk=2
726126 10210240 Lk=3
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przycinanie drzewa
21 21 18 21 18 13
MIN
18 21 18 13
• Poziom MIN (faza ‘beta’)
– Jeżeli nowo określany koszt węzła poziomu jest mniejszy niż istniejący,
dalsza ekspansja tego węzła jest zbędna (bo i tak spośród wartości
tego poziomu zostanie wybrana wartość największa)
18?,13min,,18max kk
21 18 13
18 13
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przycinanie drzewa
• Poziom MAX (faza ‘alfa’)
– Jeżeli nowo określany koszt węzła poziomu jest większy niż istniejący,
dalsza ekspansja tego węzła jest zbędna (bo i tak spośród wartości
węzłów tego poziomu zostanie wybrana wartość najmniejsza)
18,,18min ,?23max kk
23 61 12 6 11 11
11 23 12 6 4 21 14 21 5 9 12
23 12 21 14 21 12
12 12
21 18 13
18 13
18
12,,,12min ,?14max,,?21max lklk
18
Artificial Intelligence Krzysztof Ślot, 2009 Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014
Przycinanie drzewa
• Wymagany stopień eksploracji dla rozważanego drzewa
23 61 12 6 11 11
11 23 12 6 4 21 5 9 12
23 12 21 12
12 12
21 18 13
18 13
18
18
• Formalizacja metody
– Wprowadzanie współczynników alfa i beta skojarzonych z węzłami,
określających przedziały, w których powinny zawierać się koszty dla
nowo ocenianych węzłów