830 likes | 932 Views
Szybkie przeszukiwanie , kontrola i mieszanie strategii. w systemie GGP. Mgr inż . Maciej Świechowski P rof. d r hab. Jacek Mańdziuk. Garry Kasparov – Deep Blue [1997]. Deep Blue. W swoich czasach potężny superkomputer , uzbrojony w program do gry w szachy
E N D
Szybkieprzeszukiwanie, kontrolai mieszaniestrategii wsystemie GGP Mgrinż. MaciejŚwiechowski Prof. dr hab. JacekMańdziuk
Deep Blue W swoichczasachpotężnysuperkomputer, uzbrojony w program do gry w szachy • Program napisany w C Przeszukiwał 200 000 000 pozycjinasekundę Pokonałurzędującegomistrzaświata
Deep Blue W swoichczasachpotężnysuperkomputer, uzbrojony w program do gry w szachy • Program napisany w C Przeszukiwał 200 000 000 pozycjinasekundę Pokonałurzędującegomistrzaświata Ale niepotrafiłgraćnawet w kółko i krzyżyk!
General Game Playing Idea tworzeniaprogramówzdolnych do grania w dowolne, nieznanesobiewcześniejgry. • bezinterwencjiczłowieka AI poleganapodejmowaniuracjonalnychdecyzjiprzyograniczeniachczasowych i zasobowych [Russel and Wefald, 1992]
General Game Playing Motywacja: • Przeniesienieodpowiedzialnościanalizygry z programistynakomputerowegogracza • Naturalnąkonsekwencjątego jest fakt, żesam program powinienużywaćalgorytmów AI, a nieagorytmówrozwiązywaniadanejgry: • Abstrakcyjnerozumowanie • Nauka • Reprezentacjawiedzy • Planowanie • … • Powrót do ideistworzeniaprawdziwejsztucznejinteligencji
General Game Playing Turniej (GGP) zaproponowanynaUniwersytecieStanforda: http://games.stanford.edu/ Rozgrywany od 2005 roku Każdyuczestnikudostępniagracza Komunikacjapo HTTP Rozgrywkękontrolujetzw. GameMaster
General Game Playing GameMaster • Przesyłaopisgrykażdemu z graczy • Monitorujelimityczasowe • Informujeuczestników o wykonanychakcjachprzezinnych • Analizujelegalnośćzgłaszanychakcji Limityczasowe • StartClock: czasnawstępnąanalizę • MoveClock: czasnawykonanieakcji
Klasadostępnychgier (GDL-I) skończone deterministyczne synchroniczne TAK NIE
Model gry (GDL-I) S – zestaw ‘stanów’ gry r1, ..., rn– nazwyról w n-osobowejgrze I1, ..., In - zestaw n akcji, jedenzestawdlakażdegogracza a1, ..., an – zestawlegalnychakcji, ai ⊆ Iix S funkcjauaktualnieniastanów I1 x ... x In x S → S s1 – stanpoczątkowy,element należący do S g1, ..., gn – para [cel,wypłata], gi ⊆ S x [0...100] t –stankońcowy (terminalny) Reprezentacjaexplicitewszystkichmożliwychstanów i akcjipraktycznieniemożliwa. Np. w szachach jest około 1030możliwychstanów.
Game Definition Language (GDL) Językopisugry • Umożliwiabardziejzwartyopisreguł • OpartynaDatalogu • Datalog to podzbiórProloga • Logikapierwszegorzędu • Wyróżnionesłowakluczowe • Wyróżnionanotacjadlazmiennych, funkcji, relacji, operatorówlogicznych • Negacja i rekurencjamożliwa z ograniczeniami
Słowakluczowe w GDL role(r) init(p) true(p) does(r, a) legal (r, a) next(p) goal(r, v [0…100]) terminal distinct(v,w)
(<= (line ?x) (row ?m ?x)) (<= (line ?x) (column ?m ?x)) (<= (line ?x) (diagonal ?x)) (<= open (true (cell ?m ?n b))) ... (<= (goal xplayer 100) (line x)) (<= (goal xplayer 50) (not (line x)) (not (line o)) (not open)) (<= (goal xplayer 0) (line o)) (<= (goal oplayer 100) (line o)) ... (<= terminal (line x)) (<= terminal (line o)) (<= terminal (not open)) (role white) (role black) (init (cell 1 1 b)) (init (cell 1 2 b)) ... (init (cell 3 3 b)) (init (control xplayer)) (<= (next (cell ?m ?n x)) (does xplayer (mark ?m ?n)) (true (cell ?m ?n b))) (<= (next (cell ?m ?n b)) (does ?w (mark ?j ?k)) (true (cell ?m ?n b)) (or (distinct ?m ?j) (distinct ?n ?k))) ... (<= (legal white (mark ?x ?y)) (true (cell ?x ?y b))) (<= (legal black (mark ?x ?y)) (true (cell ?x ?y b))) ... (<= (row ?m ?x) (true (cell ?m 1 ?x)) (true (cell ?m 2 ?x)) (true (cell ?m 3 ?x))) ...
Zwycięzcyturniejów GGP 2005: ClunePlayer 2006: FluxPlayer 2007, 2008: CadiaPlayer 2009, 2010: Ary 2011: TurboTurtle W latach 2007-2011 wygrywałypodejściaopartenasymulacjachMonteCarlo + tzw. metoda UCT
Drzewogry Cel: znaleźćścieżkę z korzenia (stanupoczątkowego) do liściawygrywającego.
Trendy w GGP Pełnedrzewogry • tylkodlagier o małejgłębokości i małymbranching factor Drzewo min-max z funkcjąewaluacyjną • Wykorzystującąpredefiniowaneelementytypowedlakonkretnejklasygier • Automatyczniegenerowaną DrzewobudowanesymulacjamiMonteCarlo + UCT MonteCarlo + UCT + funkcjaoceny
Min-Max Podstawowy problem: • Jakskonstruowaćsilną, adekwatną i uniwersalnąfunkcjęewaluacyjną? W systemachgrających w konkretnegrymetoda jest szerokostosowana. Funkcjaewaluacyjnawymyślona jest przezczłowieka i zakodowana w programie.
Min-Max Dalszeproblemy: • Małagłębokośćprzeszukiwaniadrzewawynikająca z deklaratywnegosposobupodaniadanych w GDL • wyznaczaniekolejnychstanówwymagauruchomieniaintepreteraregułlogicznych (np. Prologa). • specjalizowanepod konkretnegrysystemykładądużynacisknaefektywnąreprezentacjędanychumożliwiającabardzoszybkieobliczenia
Min-Max Dalszeproblemy: • Gry w GGP niemusząbyć o sumiezerowej • Możebyćdowolnailośćgraczy • Graczeniemuszązesobąkonkurować – w opisie GDL nie ma jawniepodanejinformacjiczynależyrywalizowaćczykooperować Praktyczneuproszczenie: algorytmparanoidalny
Min-Max Dalszeproblemy: • Od 2007 wygrywałyrozwiązaniawykorzystująceinnąmetodę. Chociaż w niektórychgrachużytychpodczasturniejów GGP, FluxPlayerwygrywał z CadiaPlayer.
Silna i uniwersalnafunkcjaewaluacyjna W jakisposóbjąskonstruować? • Wprowadzeniepredefiniowanychelementównp. planszy, figur to ograniczenieuniwersalności. Grymogąnieposiadaćzałożonychelementówlubużywaćich w niekonwencjonalnysposób. • W pełniautomatyczniegenerowana – problem stworzeniasilnejfunkcji.
Silna i uniwersalnafunkcjaewaluacyjna Ile czasuprzeznaczyćnakonstrukcjęfunkcji? • StartClock – intuicyjniewłaściwyczasnagenerowaniefunkcji • MoveClock – dylematczypoprawiaćfunkcjęczyprzeznaczyćwięcejczasunaeksploracjęobecnejpozycji? • Kosztowne: trzebarozegraćpełnągrę, abyuzyskaćpierwsząinformacjęzwrotną od systemu(czydobrzegraliśmy)
Silna i uniwersalnafunkcjaewaluacyjna Przykład – poprzedniepodejściebazującenazliczaniupewnychelementów: Iterative-Deepening Search Drzewobazującenakoncepcji min-max Checkers: wynik* 67-5-8 na 80 gierprzeciwko UCT Bomberman: wynik* 17-7-56 na 80 gierprzeciwko UCT
Obliczaniespełnieniawarunku goal PrzykłADfunkcji ewaluacyjnej
Rozwinięciewarunku goal goal(x, 100) <= line(x) ;; goal(nazwagracza, wartość[0,100]) line(p) <= row(P) OR column(P) OR diagonal(P) row(p) <= (true(cell(1,y,p)) true(cell(2,y,p)) true(3,y,p))) column(p) <= (true(cell(x,1,p)) true(cell(x,2,p)) true(cell(x,3,p))) diagonal(p) = (true(cell(1,1,p)) true(cell(2,2,p)) true(cell(3,3,p))) diagonal(p) = (true(cell(3,1,p)) true(cell(2,2,p)) true(cell(1,3,p)))
Rozwinięciewarunku goal does(x, mark(1,2)) – spełnienie 2 faktów does(x, mark(1,1)) – spełnienie 3 faktów does(x, mark(2,2)) – spełnienie 4 faktów
Rozwinięciewarunku goal Ocenastanu, która jest w 100% prawidłowa, zdefiniowana jest tylkoprzezwarunek goal! W każdyminnymprzypadkumożemybazowaćnajwyżejnaprzypuszczeniach Spróbujmyobliczyć w jakimstopniuspełniony jest danywarunekgoal Wybórruchu, którymaksymalniezwiększaspełnienie goal – sposóbnagre; dobra strategia w grzetypukółko i krzyżyk.
Rozwinięciewarunku goal Wygrana/przegranagraimplikujemaksymalnespełnieniektóregoś z warunkówgoal Jednakże: • niekażdazawiera element stopniowego, monotonicznegopowiększaniast. sp. goal • niedlakażdejgryzachłannastrategiaprzynosiefekty (przykład: Farmers) [poświęcenia, inwestycje, omijanieprzeszkód]
Symulacje Monte-Carlo Pewnośćpoprawnejocenytylko w stanieterminalnym Przeprowadźmylosowąsymulacjegry do końca Przeszukujemydrzewogry w głąb Po zakończeniu symulacji dodajemy N węzłów, zwykle N = 1 [Bjornsson, Finnsson - CadiaPlayer] Niemamyuniwersalnejheurystyki, więcweźmyśredniewartości goal z zakończonych symulacji
Algorytm UCT Zasadabalansumiędzyeksploracjąnowychścieżek a wykorzystaniemnajlepszych do tejpory. Dladanejroli (gracza): a – akcja s – bieżącystan Q(s,a) – uśrednionyosiągniętywynikgryprzywykonaniuakcjia w stanies N(s) – liczbadotychczasowychodwiedzinstanus N(s,a) – liczbadotychczasowychwyborówakcjia w stanies
Dlaczegoniesurowe MC + UCT? Dążenie do pełnegodrzewagry • Brakmechanizmuuogólnianiawiedzy Niewykorzystanieinformacjizawartych w regułachgieropisanych w GDL Tendencje do nadmiernieoptymistycznejgry, jeśliniedostatecznailość symulacji [Bjornsson, Finnsson - CadiaPlayer] Chęćpostawieniakrokunaprzód!
MC + UCT + FunkcjaEwaluacyjna? W fazie MC: • całkowitezastąpieniefazy (z zadanymprawdopodobieństwem) • zakończenie symulacji przedosiągnięciemkońcagry W fazie UCT: • jakowstępneposortowanieruchównigdyniewypróbowanych • Jakostartowyszacunekruchów z wagąodpowiadającąnsymulacjom
Założeniawyjściowe (6) Bazowanie nawypłatachosiąganych w terminalnychstanachgry • to stabilnypunkt zaczepienia w GGP Przeprowadzanie symulacji również w trakcierozgrywki, abydostosowywaćocenę do bieżącejsytuacji (takjak MC + UCT) Redukcja kosztownychobliczeńwyznaczaniastanów w miaręmożliwości
Założeniawyjściowe (6) Chociażczęściowewykorzystaniezasadgry Umożliwieniestosowaniaróżnorodnychstrategiigry • analizującdotychczasoweturnieje GGP: graczeróżnieradząsobie w zależności od konkretnychgier Mechanizmnauki w postacidynamicznejocenystosowanychstrategii
Rozwiązanie Guided Monte-Carlo • nowepodejściewgmojejwiedzy W obrębieznanejczęscidrzewagry: • stosujemymetodę UCT W obrębienieznanejczęscidrzewa: • zamiastgraćlosowo, eksplorujemyzgodnie z określonąpolitykągry
Guided Monte-Carlo Prowadzącsymulację MC musimyznaćkonsekwencjewykonywachakcji a) Pobierzlegalneakcje w danymstanie b) Zasymulujnastępnystandlakażdejakcji c) Wybierzakcjeprowadzącą do najlepszegostanu zgodniezestosowanąpolitykągry Obserwacja Precyzjny interpreter reguł (np. Prolog) niezbędny jest wyłączniedlapunktówaorazc.
Guided Monte-Carlo Prowadzącsymulację MC musimyznaćkonsekwencjewykonywachakcji a) Pobierzlegalneakcje w danymstanie b) Zasymulujnastępnystandlakażdejakcji c) Wybierzakcjeprowadzącą do najlepszegostanu zgodniezestosowanąpolitykągry Tam gdziemożemyunikamyciężkiegoProloga
Minimalizacjaobliczeń Abyprzewidziećrezultatruchuwystarczyodpowiedź z pewnymprawdopodobieństwem • Jeśliznacznie to przyspieszyobliczenia • P > 0.5 dałobyjużsensownerezultaty • Ponieważpowykonaniuakcjisymulacja jest kontynuowanamożnajużdokładniezweryfikowaćczyprzewidywaniesięzakończyłosukcesem i ewentualniezrobićtzw. rollback
Minimalizacjaobliczeń Dlaczego to ma sens? Ponieważwybórakcjipodczas symulacji MC to jeszczeniewiążacywybórakcji do zagrania • Zagranaakcjabędziewynikiemdalszejoceny Pozostawieniepewnegomarginesulosowościmożemiećnawetkorzystnywpływnaeksplorację
ARCHITEKTURA SYSTEMU codENAME: NAPOLEON
Stworzony system: Napoleon Drzewogry(UCT + Guided Monte-Carlo) Dwiepolitykigry: • FGE: zachłannezwiększaniespełnialnościgoal • Random (polityka – sposóbprowadzenia symulacji MC) Mechanizmdynamicznejocenypolityk Dwiewersjeintepreterareguł: • dokładny – Prolog • probabilistyczny ; szybki; - C++
Zoptymalizowany interpreter : 1. zastępującyprologa w C++ 2. Heurystycznezastąpieniereguły next 3. Uproszczonewyznaczaniespełnienia goal Prolog • Kontroler • Nadzorujebudowędrzewa • Nadzorujeocenępolityk • Nadzorujerozgrywkę Drzewogry Polityka A : FGE (określasposóbprowadzeniasymulacji) Polityka B : Random (określasposóbprowadzeniasymulacji)
Budowadrzewa – głównyalgorytm System przechowujedrzewogry. Nowewęzłydodawanesą w kolejnychiteracjach. Każdaiteracjazaczynasię od fazyUCT, którejzadaniem jest wyznaczyćwęzeł do kontynuacji. Na początkukażdapolitykagryotrzymujepo10 symulacji do przeprowadzenia. • są to symulacjewstępne • dopieropoichwykonaniuwłączany jest mechanizmkontrolistrategii
Wyznacznajlepszywęzeł do kontynuacjigry, korzystając z formuły UCT Istniejezaplanowanadlasymulacjipolityka? N Uruchommodułplanowaniapolitykdlakolejnychsymulacji T PrzeprowadźsymulacjęMonteCarlozgodnie z pobranąpolitykągry Modułplanowaniapolitykwyznaczapolitykidla N kolejnychsymulacjinp. N=5: PolicyA: FGE PolicyA: FGE PolicyB: Random PolicyA: FGE PolicyB: Random Dodaj 2 pierwszewęzły do drzewai uaktualnijwartości (ilośćwizyt, średniwynik) Usuńwpispolityki z planera