SZTUCZNA INTELIGENCJA ALGORYTM MINIMAX Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium Biocybernetyki 30-059 Kraków, al. Mickiewicza 30, paw. C3/205 horzyk@agh.edu.pl, Google: Adrian Horzyk Adrian Horzyk
Drzewa poszukiwań oraz algorytm MINIMAX (MIN-MAX) Wywodzi się z teorii gier, w której gracze wykonują ruchy naprzemiennie. Polega na minimalizacji maksymalnej spłaty dla przeciwnika oraz maksymalizacji minimalnej spłaty przez przeciwnika. Przy założeniu, że grę kończy ruch, dla którego istnieje tylko jedna alternatywa (wygrywająca), algorytm MINIMAX pomaga znaleźć najlepsze ruchy w każdym momencie gry, jeśli rozważymy grę od końca (jej celu). Nie zawsze to jest możliwe ze względu na potencjalnie dużą ilość możliwych posunięć i ich kombinacji w kolejnych ruchach, np. w grze w szachy czy go. Algorytm zakłada, iż każdy z graczy będzie próbował w każdym ruchu zmaksymalizować swoje szanse na wygraną oraz zminimalizować szansę na przegraną, wybierające te opcje, które dają mu największe prawdopodobieństwo wygranej.
Drzewa poszukiwań oraz algorytm MINIMAX (MIN-MAX) Drzewo poszukiwań dla algorytmu MINIMAX ilustruje sposób działania, odpowiednio maksymalizując swoje i minimalizując przeciwnika szanse: W metodzie MINIMAX definiujemy stany węzłów końcowych w drzewie: +1 (węzły wygrywające), -1 (węzły prowadzące do przegranej), 0 (remis). MAX GRACZ 4 PRZECIWNIK 4 3 2 MIN GRACZ 9 8 4 4 9 8 5 3 7 2 MAX PRZECIWNIK 3 1 4 9 2 5 3 7
Drzewo poszukiwań oraz algorytm MINIMAX w grze kółko-krzyżyk Drzewo wskazuje ścieżki do wygranej lub przegranej:
Drzewo poszukiwań oraz algorytm MINIMAX w grze kółko-krzyżyk W drzewie poszukiwań może istnieć wiele ścieżek wygrywających, przegrywających i remisujących, wobec tego dokonując wyboru konkretnej strategii gry (tzn. funkcji ewaluacyjnej/kosztu oceniającej kolejne ruchy) należy wziąć pod uwagę takie ścieżki, które: Zawierają możliwie dużą ilość ścieżek wygrywających (MAX). Zawierają możliwie małą ilość ścieżek przegrywających (MIN). Zawierają ścieżki na pewno wygrywające. Nie zawierają ścieżki prowadzące do pewnej przegranej, czyli bez możliwości jej uniknięcia. Zawierają tylko ścieżki wygrywające (ew. również remisujące). Zawierają tylko ścieżki przegrywające (ew. również remisujące).
Drzewo poszukiwań dla gry kółko-krzyżyk oraz analiza MINIMAX Gracz MAX dąży do największej, a gracz MIN do najmniejszej wartości funkcji kosztu, którą należy zdefiniować dla każdej gry (strategii): Odpowiednie zdefiniowane funkcji kosztu może decydować o sukcesie lub porażce metody, gdyż to wartości wyznaczone przez nią dla poszczególnych węzłów kierują tokiem rozgrywki i ruchów gracza MAX.
Drzewa poszukiwań MINIMAX oraz metoda obcinania alfa-beta (alpha-beta pruning) Metoda obcinania alfa-beta w algorytmie MINIMAX polega na: Przeszukiwaniu takiego drzewa w celu poszukiwania najlepszego ruchu Analizie ruchów oraz ich ocenie, czy ich wykonanie da gorszy wynik od najlepszego gwarantowanego. Jeśli tak, wtedy nie prowadzimy dalszej analizy takiego poddrzewa (obcinamy je). Warcabach bierzemy pod uwagę ilość pionków oraz damek, którym przydzielamy różną ilość punktów w zależności od ich pozycji na planszy, np.: pionek przy brzegu planszy – 4 pkt pionek bliżej środka planszy – 2 pkt pionek w centrum planszy – 1 pkt damka przy brzegu planszy – 16 pkt damka w środku planszy – 6 pkt
Drzewa poszukiwań MINIMAX oraz metoda obcinania alfa-beta Metoda obcinania alfa-beta w algorytmie MINIMAX: Umożliwia tylko częściową ewaluację drzewa dla określonych wartości granicznych α β węzła, które określają najwyższą i najniższą rozważaną wartość. Skutkiem tego jest pominięcie całego poddrzewa, jeśli w węźle ocena dla ruchu przeciwnika jest odpow. wyższa niż α lub dla naszego ruchu jest niższa niż β, np. dla α = 6 i β = 1 GRACZ 4 4 PRZECIWNIK 3 2 X X X X X GRACZ 9 8 4 4 9 8 5 3 7 2 X PRZECIWNIK 3 1 4 9 2 5 3 7