1 / 83

Szybkie przeszukiwanie , kontrola i mieszanie strategii

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

andra
Download Presentation

Szybkie przeszukiwanie , kontrola i mieszanie strategii

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Szybkieprzeszukiwanie, kontrolai mieszaniestrategii wsystemie GGP Mgrinż. MaciejŚwiechowski Prof. dr hab. JacekMańdziuk

  2. Garry Kasparov – Deep Blue [1997]

  3. 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

  4. 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!

  5. General Game Playing Idea tworzeniaprogramówzdolnych do grania w dowolne, nieznanesobiewcześniejgry. • bezinterwencjiczłowieka AI poleganapodejmowaniuracjonalnychdecyzjiprzyograniczeniachczasowych i zasobowych [Russel and Wefald, 1992]

  6. 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

  7. General Game Playing Turniej (GGP) zaproponowanynaUniwersytecieStanforda: http://games.stanford.edu/ Rozgrywany od 2005 roku Każdyuczestnikudostępniagracza Komunikacjapo HTTP Rozgrywkękontrolujetzw. GameMaster

  8. General Game Playing GameMaster • Przesyłaopisgrykażdemu z graczy • Monitorujelimityczasowe • Informujeuczestników o wykonanychakcjachprzezinnych • Analizujelegalnośćzgłaszanychakcji Limityczasowe • StartClock: czasnawstępnąanalizę • MoveClock: czasnawykonanieakcji

  9. Klasadostępnychgier (GDL-I) skończone deterministyczne synchroniczne TAK NIE

  10. 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.

  11. Model gry (GDL-I)

  12. 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

  13. 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)

  14. (<= (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))) ...

  15. 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

  16. Jakdziałagracz GGP?

  17. Drzewogry Cel: znaleźćścieżkę z korzenia (stanupoczątkowego) do liściawygrywającego.

  18. 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

  19. DlaczegonieMiN-MAX?

  20. 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.

  21. 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

  22. 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

  23. Min-Max Dalszeproblemy: • Od 2007 wygrywałyrozwiązaniawykorzystująceinnąmetodę. Chociaż w niektórychgrachużytychpodczasturniejów GGP, FluxPlayerwygrywał z CadiaPlayer.

  24. 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.

  25. 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)

  26. 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

  27. Obliczaniespełnieniawarunku goal PrzykłADfunkcji ewaluacyjnej

  28. 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)))

  29. 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

  30. 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.

  31. 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]

  32. SYMULACJE Monte-CARLOUCT

  33. 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

  34. 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

  35. Drzewo UCT

  36. 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!

  37. 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

  38. ZałoŻENIA WYJŚCIOWE

  39. 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

  40. 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

  41. 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

  42. 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.

  43. 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

  44. 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

  45. Minimalizacjaobliczeń Dlaczego to ma sens? Ponieważwybórakcjipodczas symulacji MC to jeszczeniewiążacywybórakcji do zagrania • Zagranaakcjabędziewynikiemdalszejoceny Pozostawieniepewnegomarginesulosowościmożemiećnawetkorzystnywpływnaeksplorację

  46. ARCHITEKTURA SYSTEMU codENAME: NAPOLEON

  47. 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++

  48. 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)

  49. 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

  50. 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

More Related