Wykład 7 i 8. Przeszukiwanie z adwersarzem. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

Podobne dokumenty
Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze

SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW

Algorytmy dla gier dwuosobowych

Podstawy sztucznej inteligencji

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie!

Teoria gier. Wykład7,31III2010,str.1. Gry dzielimy

Wstęp do Sztucznej Inteligencji

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Sztuczna Inteligencja i Systemy Doradcze

Wyznaczanie strategii w grach

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Heurystyki. Strategie poszukiwań

9.9 Algorytmy przeglądu

Mixed-UCT: Zastosowanie metod symulacyjnych do poszukiwania równowagi Stackelberga w grach wielokrokowych

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Partition Search i gry z niezupełną informacją

Tworzenie gier na urządzenia mobilne

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD III: Problemy agenta

TEORIA GIER DEFINICJA (VON NEUMANN, MORGENSTERN) GRA. jednostek (graczy) znajdujących się w sytuacji konfliktowej (konflikt interesów),w

Gry. wykład 5. dr inż. Joanna Kołodziejczyk. Zakład Sztucznej Inteligencji ISZiMM. ESI - wykład 5 p. 1

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Sztuczna inteligencja w programowaniu gier

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

Porządek symetryczny: right(x)

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Adam Meissner. SZTUCZNA INTELIGENCJA Gry dwuosobowe

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Uczenie ze wzmocnieniem

Wprowadzenie do Sztucznej Inteligencji

Teoria gier. prof. UŚ dr hab. Mariusz Boryczka. Wykład 4 - Gry o sumie zero. Instytut Informatyki Uniwersytetu Śląskiego

Teoria gier. wstęp Teoria gier Zdzisław Dzedzej 1

3.2 Wykorzystanie drzew do generowania pytań

Problem 1 prec f max. Algorytm Lawlera dla problemu 1 prec f max. 1 procesor. n zadań T 1,..., T n (ich zbiór oznaczamy przez T )

Alfa-beta Ulepszenie minimax Liczba wierzchołk ow w drzewie gry. maksymalnie wd. minimalnie wbd/2c + wdd/2e Algorytmy przeszukiwania drzewa gry 5

Rozwiązywanie problemów metodą przeszukiwania

Algorytmy z powrotami. Algorytm minimax

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

SZTUCZNA INTELIGENCJA

Wykład2,24II2010,str.1 Przeszukiwanie przestrzeni stanów powtórka

Wykład 6. Drzewa poszukiwań binarnych (BST)

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

SZTUCZNA INTELIGENCJA

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Rozpoznawanie twarzy metodą PCA Michał Bereta 1. Testowanie statystycznej istotności różnic między jakością klasyfikatorów

Planowanie drogi robota, algorytm A*

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Przykładowe B+ drzewo

Heurystyczne metody przeszukiwania

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

MODELOWANIE RZECZYWISTOŚCI

Metody przeszukiwania

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Technologie informacyjne Wykład VII-IX

Wysokość drzewa Głębokość węzła

Drzewa poszukiwań binarnych

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Wstęp do programowania

Kognitywne podejście do gry w szachy kontynuacja prac

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Ogólne wiadomości o grafach

Wykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch

Programowanie deklaratywne

Podstawy Sztucznej Inteligencji (PSZT)

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Sztuczna Inteligencja Projekt

TEORIA GRAFÓW I SIECI

Zastosowanie sztucznej inteligencji w testowaniu oprogramowania

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Uniwersytet Warszawski Teoria gier dr Olga Kiuila LEKCJA 3

PRZEWODNIK PO PRZEDMIOCIE

Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb

Projekt 4: Programowanie w logice

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Algorytm FIREFLY. Michał Romanowicz Piotr Wasilewski

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Teoria gier. dr Przemysław Juszczuk. Wykład 2 - Gry o sumie zero. Instytut Informatyki Uniwersytetu Śląskiego

MAGICIAN. czyli General Game Playing w praktyce. General Game Playing

Metody Kompilacji Wykład 3

Zadanie 1: Piętnastka

Matematyka bankowa 1 1 wykład

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

MODELOWANIE RZECZYWISTOŚCI

Elementy kognitywistyki II:

Uczenie ze wzmocnieniem

Skowrońska-Szmer. Instytut Organizacji i Zarządzania Politechniki Wrocławskiej Zakład Zarządzania Jakością r.

Zaawansowane metody numeryczne

Transkrypt:

(4g) Wykład 7 i 8 w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach P. Kobylański Wprowadzenie do Sztucznej Inteligencji 177 / 226

(4g) gry optymalne decyzje w grach algorytm minimax alfa-beta cięcia gry stochastyczne gry z niepełną informacją przegląd grających programów komputerowych P. Kobylański Wprowadzenie do Sztucznej Inteligencji 178 / 226

(4g) Gry środowisko wieloagentowe, w którym trzeba brać pod uwagę działania innych agentów działania innych agentów są nieprzewidywalne konflikt interesów teoria gier: gry deterministyczne,turowe,dla dwóch graczy,z sumą zerową, zpełną informacją sztuczna inteligencja: środowisko deterministyczne i w pełni obserwowalne, dwaj agenci działają na zmianę, funkcje użyteczności agentów równe ale przeciwne P. Kobylański Wprowadzenie do Sztucznej Inteligencji 179 / 226

(4g) Gry: sformułowanie problemu Gra to problem przeszukiwania, w którym: S 0 to stan początkowy PLAYER(s) definiuje, który gracz wykonuje ruch w stanie s ACTIONS(s) zwraca jakie ruchy są dopuszczalne w stanie s RESULT(s, a) model przejścia, który definiuje rezultat ruchu TERMINAL-TEST(s) test zakończenia, który zachodzi jeśli gra kończy się w stanie s (stany końcowe to te, które spełniają test zakończenia) UTILITY(s, p) funkcja użyteczności (celu albo wypłaty) definiuje końcową wartość numeryczną w stanie końcowym s dla gracza p (np. wszachach0przegrana,1wygrana, 1 2 remis) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 180 / 226

(4g) Gry: drzewo gry MA () MIN (O) MA () O O O... MIN (O) O O O............... TERMINAL Utility O O O O OO O O O O 1 0 +1... P. Kobylański Wprowadzenie do Sztucznej Inteligencji 181 / 226

(4g) Optymalne decyzje w grach w problemie przeszukiwania rozwiązaniem jest sekwencja akcji prowadzących do stanu końcowego przeszukiwanie z adwersarzem wymaga uwzględnienia działań przeciwnika optymalna decyzja jest strategią najlepszych reakcji na ruchy przeciwnika poszukiwanie strategii jest analogiczne do przeglądu drzewa AND-OR (węzeł OR odpowiada decyzji gracza a AND decyzji przeciwnika) przy poszukiwaniu strategii zakłada się nieomylność przeciwnika dla danego drzewa gry, optymalna strategia jest zdeterminowana wartością minimax obliczoną dla każdego z węzłów drzewa P. Kobylański Wprowadzenie do Sztucznej Inteligencji 182 / 226

(4g) Optymalne decyzje w grach Niech UTILITY(s) =UTILITY(s, PLAYER(s)). Wówczas MINIMA(s) = 8 < : UTILITY(s) max a2actions(s) MINIMA(RESULT(s, a)) min a2actions(s) MINIMA(RESULT(s, a)) gdy TERMINAL-TEST(s) gdy PLAYER(s) =MA gdy PLAYER(s) =MIN P. Kobylański Wprowadzenie do Sztucznej Inteligencji 183 / 226

(4g) Optymalne decyzje w grach Drzewo gry z węzłami 4 gracza MA i węzłami 5 gracza MIN: MA 3 A a 1 a 2 a 3 MIN 3 B 2 C 2 D b 1 b 2 b 3 c 1 c 2 c 3 d 1 d 2 d 3 3 12 8 2 4 6 14 5 2 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 184 / 226

(4g) Optymalne decyzje w grach Example (Gra osaczony w języku Prolog) 2 3 1 4 win(, G, Y) :- select((, Y), G, G1), \+win(y, G1, _).?- win(1, [(1,2),(1,3),(2,3),(3,4),(4,1),(4,2)], ). = 3 ; false. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 185 / 226

(4g) Optymalne decyzje w grach Example (Gra NIM w języku Prolog) Ze stosu kamieni należy wziąć 1, 2 lub 3 kamienie. Przegrywa kto weźmie ostatni kamień. nim(n, I) :- result(n, I, N1), N1 > 0, \+ nim(n1, _). result(n, I, N1) :- between(1, 3, I), N1 is N-I, N1 >= 0.?- nim(15, ). = 2 ; false.?- nim(13, ). false. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 186 / 226

(4g) Optymalne decyzje w grach Example (Szkic programu w języku Prolog) Dwa wzajemnie rekurencyjne predykaty wyznaczające strategię w grze bez remisu: primus(state, none) :- winner(state, primus). primus(state, Action) :- result(state, Action, NewState), \+ secundus(newstate, _). secundus(state, none) :- winner(state, secundus). secundus(state, Action) :- result(state, Action, NewState), \+ primus(newstate, _). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 187 / 226

(4g) Algorytm minimax algorytm minimax oblicza decyzję minimax dla danego stanu algorytm rekurencyjnie oblicza wartości minimax dla każdego następnika bezpośrednio implementując równanie definiujące wartość MINIMA(s) jeśli głębokością drzewa gry jest m iwkażdymniekońcowymstanie jest b dopuszczalnych ruchów, to czasowa złożoność algorytmu minimax jest O(b m ),natomiastzłożonośćpamięciowajesto(bm) gdy generuje się wszystkie ruchy na raz lub O(m) jeśli generuje się kolejno po jednym ruchu dla rzeczywistych gier algorytm minimax jest niepraktyczny z powodu złożoności P. Kobylański Wprowadzenie do Sztucznej Inteligencji 188 / 226

(4g) Algorytm minimax function MINIMA-DECISION(state) returns an action return arg max a2actions(state) MIN-VALUE(RESULT(state, a)) function MA-VALUE(state) returns autilityvalue if TERMINAL-TEST(state) then return UTILITY(state) v 1 for each a in ACTIONS(state) do v MA(v, MIN-VALUE(RESULT(state, a))) return v function MIN-VALUE(state) returns autilityvalue if TERMINAL-TEST(state) then return UTILITY(state) v 1 for each a in ACTIONS(state) do v MIN(v, MA-VALUE(RESULT(state, a))) return v P. Kobylański Wprowadzenie do Sztucznej Inteligencji 189 / 226

(4g) Algorytm minimax Przykładowe obliczenia w grze dla wielu graczy z wektorami ocen: to move A (1, 2, 6) B (1, 2, 6) (1, 5, 2) C (1, 2, 6) (6, 1, 2) (1, 5, 2) (5, 4, 5) A (1, 2, 6) (4, 2, 3) (6, 1, 2) (7, 4,1) (5,1,1) (1, 5, 2) (7, 7,1) (5, 4, 5) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 190 / 226

(4g) Alfa-beta cięcia do prostego algorytmu minimax dodano oszacowania wartości optymalnej decyzji na podstawie dotychczas znalezionych faktycznych wartości UTILITY jeśli górne oszacowanie węzła jest gorsze niż dolne oszacowanie jego rodzica, to nie kontynuuje się analizy kolejnych następników tego węzła P. Kobylański Wprowadzenie do Sztucznej Inteligencji 191 / 226

(4g) Alfa-beta cięcia (a) [, + ] A (b) [, + ] A [, 3] B [, 3] B 3 3 12 (c) [3, + ] A (d) [3, + ] A [3, 3] B [3, 3] B [, 2] C 3 12 8 3 12 8 2 (e) [3, 14] A (f) [3, 3] A [3, 3] [, 2] [, 14] B C D [3, 3] [, 2] [2, 2] B C D 3 12 8 2 14 3 12 8 2 14 5 2 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 192 / 226

(4g) Alfa-beta cięcia Załóżmy, że dwa nieocenione węzły będące następnikami węzła C z poprzedniego rysunku, mają wartości x i y, wówczas: MINIMA(root) = max(min(3, 12, 8), min(2, x, y), min(14, 5, 2)) = max(3, min(2, x, y), 2) = max(3, z, 2) gdzie z = min(3, z, 2) apple 2 = 3 Zatem wartość korzenia jest niezależna od ocen x i y. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 193 / 226

(4g) Alfa-beta cięcia algorytm MINIMA jest algorytmem przeszukiwania wgłąb zatem w dowolnej chwili rozpatrywane są jedynie węzły na jednej ścieżce od korzenia do danego węzła możliwe jest wycinanie całych fragmentów przeglądanego drzewa, przy czym odcinanie sterowane jest dwoma parametrami: wartość najlepszego wyboru (najwyższa) jaki znaleziono dotychczas w dowolnym rozgałęzieniu na ścieżce dla gracza MA wartość najlepszego wyboru (najniższa) jaki znaleziono dotychczas w dowolnym rozgałęzieniu na ścieżce dla gracza MIN P. Kobylański Wprowadzenie do Sztucznej Inteligencji 194 / 226

(4g) Alfa-beta cięcia Player Opponent m Player Opponent n Jeśli gracz ma lepszy wybór m w bezpośrednim lub pośrednim poprzedniku gorszego wyboru n, to wybór n nigdy nie będzie wykonywany podczas gry. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 195 / 226

(4g) Alfa-beta cięcia: algorytm function ALPHA-BETA-SEARCH(state) returns an action v MA-VALUE(state, 1, +1) return the action in ACTIONS(state) with value v function MA-VALUE(state,, ) returns autilityvalue if TERMINAL-TEST(state) then return UTILITY(state) v 1 for each a in ACTIONS(state) do v MA(v, MIN-VALUE(RESULT(state, a),, )) if v then return v MA(, v) return v function MIN-VALUE(state,, ) returns autilityvalue if TERMINAL-TEST(state) then return UTILITY(state) v +1 for each a in ACTIONS(state) do v MIN(v, MA-VALUE(RESULT(state, a),, )) if v apple then return v MIN(, v) return v P. Kobylański Wprowadzenie do Sztucznej Inteligencji 196 / 226

(4g) Alfa-beta cięcia: kolejność ruchów efektywność algorytmu w istotny sposób zależy od kolejności analizowanych ruchów w pierwszej kolejności powinno się rozpatrywać następniki, które wydają się najlepsze jeśli możliwe jest ustalenie kolejności ruchów, to liczba węzłów jakie należy zbadać zmniejsza się od O(b m ) dla algorytmu minimax do O(b m/2 ) efektywny wskaźnik rozgałęzienia zmniejsza się wówczas z b do p b (np. w szachach z 35 do około 6) kiedy następniki analizowane są w losowej kolejności, to liczba badanych węzłów wynosi O(b 3m/4 ) wszachachkolejnośćruchówmogłabybyćnastępująca:bicie, podwójne uderzenie, ruchy do przodu, ruchy do tyłu P. Kobylański Wprowadzenie do Sztucznej Inteligencji 197 / 226

(4g) Alfa-beta cięcia: kolejność ruchów "Some care must be taken in the implementation of this algorithm. In the Second Annual Computer Chess Championship (Chicago, 1971) a chess program using this algorithm discovered amateintwomovesandterminanteditssearch.afterthe opponent moved, the program began the search again, discovering first a mate in three. It immediately pruned and made the first move of this sequence, missing the possible mate on the move. It continued finding mates in more than one move until due to another bug if finally lost the game." Samuel H. Fuller; John G. Gasching; Gillogly, "Analysis of the alpha-beta pruning algorithm" (1973). Computer Science Department Paper 1701. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 198 / 226