1 / 22

Umjetna inteligencija - konstrukcija generatora poteza "Deep Red 2009" igre Dama

Ljetna škola znanosti u Višnjanu S 3 2009. Umjetna inteligencija - konstrukcija generatora poteza "Deep Red 2009" igre Dama. Sudionici: Una Pale Niko Simić Matko Zurak. Voditelji: Nino Antulov-Fantulin, Vedran Ivanac Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu. Sadržaj.

kiona
Télécharger la présentation

Umjetna inteligencija - konstrukcija generatora poteza "Deep Red 2009" igre Dama

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. Ljetna škola znanosti u Višnjanu S3 2009 Umjetna inteligencija - konstrukcija generatora poteza "Deep Red 2009" igre Dama Sudionici: Una Pale Niko Simić Matko Zurak Voditelji:Nino Antulov-Fantulin, Vedran IvanacFakultet elektrotehnike i računarstva Sveučilište u Zagrebu

  2. Sadržaj • C++ i objektno orijentirana paradigma • Objektni model • Minimax algoritam • AlphaBeta podrezivanje • Generator poteza • Heuristika • Analiza • Zaključak

  3. C++ i objektno orijentirana paradigma • C++ - viši programski jezik • izrada našeg projekta (igra Dama) • objektno orijentiran jezik ( povezanost s OOP) • objektni pogled na svijet prati čovjekov prirodni način razmišljanja – sve je objekt • svaki objekt ima atribute(svojstva) i ponašanje • klasa je predložak za stvaranje objekta

  4. C++ i objektno orijentirana paradigma • apstrakcija • nasljeđivanje(eng.inheritance) • enkapsulacija (eng. encapsulation) • polimorfizam (eng. polymorphism)

  5. Dama • Igra se na ploči dimenzija 8 x 8 • Pravila jednostavna ...

  6. Objektni model • game • upravlja igrom • evaluator • provjerava stanje ploče • pobjeda, neriješeno ili remi • player • traži od generatora sljedeći potez • move • sadržava podatke o potezu • board • postavlja izgled ploče • pomiče i briše figurice • provjerava i odigrava poteze

  7. Inteligencija OM • heuristika • stanjima ploče pridodaje realne vrijednosti • vrijednost određuje povoljnost stanja • generator • sami ga osmišljamo –AI Deep Generator • primjenjuje MIN-MAX algoritam na vrijednosti dobivene heuristikom • odabire najpovoljniji potez

  8. Minimax algoritam • Minimax algoritam • Temelji se na pretraživanju dijela prostora stanja • Omogućava računalu da donese odluku o idućem potezu procjenom budućih stanja • Pretpostavlja se da protivnik igra bez pogreške • Stablo se generira za svaki potez računala (zbog nepredvidivosti protivnika) • Za procjenu krajnjih stanja (listova) se koristi heuristička funkcija

  9. alfa i beta podrezivanje • tehnika koja se koristi da bi se ubrzao program • smanjuje broj stanja koja je potrebno pretražiti • ako igrač pretražujući stablo otkrije da potez B kojeg trenutno istražuje ne može biti ni u kojem slučaju bolji od poteza A kojeg je prethodno istražio • alfa – podrezivanje dvije dubine ispod max čvora • beta -podrezivanje dvije dubine ispod min čvora

  10. 1 0 - max X 1 X2 1 - min X1 m >= beta 1 2 2 - max X11 X12 X21 X22 3 X122 X123 X111 X112 X121 X211 X212 X221 X222 0 1 2

  11. 1 0 - max X -3 1 m <= alfa X2 1 - min X1 1 2 -3 2 - max X22 X11 X12 X21 3 X122 X123 X221 X222 X111 X112 X121 X211 X212 0 1 2 -3 -5

  12. AIDeepRedGenerator • generator poteza u igri Dama • konstruiran i funkcionalan • uz heuristiku glavni dio umjetne inteligencije • generira sljedeći potez računala te izabire optimalan

  13. NextMove(color, board,alpha,beta,maxdepth) { m = alpha; depth = 0; evalValue = Evaluate(board); if ( evalValue == EVALUATOR_GAME_NO_WIN ){ MustDoMoves = GenerateMustDoMoves(board); for each move in MustDoMoves{ boardChild = board->PlayMove(move); childValue = ABMinMaxOdd( board, m, beta,depth++,maxdepth) m = max( m,childValue ); OptimalMove = optimal( move, OptimalMove ); } if (MustDoMoves is emtpy){ Moves = GenerateMoves(board); for each move in Moves{ boardChild = board->PlayMove(move); childValue = ABMinMaxOdd( board, m, beta,depth++,maxdepth) m = max( m,childValue ); OptimalMove = optimal( move, OptimalMove ); } } return OptimalMove; } }

  14. Heuristika • Glavni dio generatora poteza • Određuje vrijednost stanja ploče • Lošija od čovjeka • Problem lokalnih maksimuma

  15. Heuristika

  16. Analiza

  17. Analiza

  18. Zaključci • koristili smo objektno orijentiranu paradigmu za izgradnju sustava igre dama • implementirali smo min-max algoritam, alfa-beta podrezivanje • izgradili generator poteza u C++ • dizajnirali i implementirali heuristiku • izvršili proces učenja parametara heurističkih funkcija

  19. Reference [1] Demistificirani C++, Boris Motik, Julijan Šribar [2] Vizualizator min-max algoritma, http://wolfey.110mb.com/GameVisual/launch.php?agent=2 [3] Predavanje “Pretraživanje prostora stanja” , kolegij “Umjetna Inteligencija”, Fakultet elektrotehnike i računarstva,prof.dr.sc. Bojana Dalbelo Bašić [4] Predavanje “Alfa-beta podrezivanje”, Goran Pogačić, kolegij “Umjetna Inteligencija”, Fakultet elektrotehnike i računarstva,prof.dr.sc. Bojana Dalbelo Bašić [5] Predavanje “Igranje igara pretraživanjem stabla”, Nino Antulov-Fantulin, kolegij “Umjetna Inteligencija”, Fakultet elektrotehnike i računarstva,prof.dr.sc. Bojana Dalbelo Bašić

  20. AI Deep Red Turnir • Ivan Sudić vs. AI Deep Red 2009 • AI Deep Red pobijedio !

  21. Hvala na pozornosti! Pitanja?

More Related