41
Sztuczna Inteligencja w programowaniu gier KrzysztofŚlot 2014 Sztuczna inteligencja w programowaniu gier Krzysztof Ślot Algorytmy przeszukiwania przestrzeni rozwiązań

Sztuczna inteligencja w programowaniu gier - kslot.iis.p ...kslot.iis.p.lodz.pl/Gry/Search.pdf · Przeszukiwanie na oślep – algorytm Dijkstry • Problem –Zróżnicowany koszt

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