Welcome, Guest. Please Login or Register.
Nov 22nd, 2024, 9:08pm

Home Home Help Help Search Search Members Members Login Login Register Register
Arimaa Forum « What now? »


   Arimaa Forum
   Arimaa
   Bot Development
(Moderator: supersamu)
   What now?
« Previous topic | Next topic »
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print
   Author  Topic: What now?  (Read 716 times)
erict
Forum Junior Member
**



Arimaa player #3977

   


Gender: male
Posts: 7
What now?
« on: Apr 17th, 2009, 12:36pm »
Quote Quote Modify Modify

So I re-wrote the Perl Move Generator script in on this page:
http://arimaa.com/arimaa/download/
in Python (Omar do you want this? You only listed that you wanted a C/C++ version, not sure if you would consider Python).  
It wasn't easy, since the Perl script didn't use very good variable names nor very many comments.
 
My question is, what is the typical approach to developing the bot?
What me and my friend are doing right now is generating all the possible moves that the bot can make and evaluating the board states using the evaluation values in this thesis:
http://arimaa.com/arimaa/papers/HaizhiThesis/haizhiThesis.doc
However, it's very time consuming especially when we try to determine what the next player's move will be using Minimax (or one of its derivatives).
 
Should the bot have functions that look over the board to see if it can do any of the well known strategies/attacks like the one on this page?
http://en.wikibooks.org/wiki/Arimaa
IP Logged
lightvector
Forum Guru
*****



Arimaa player #2543

   


Gender: male
Posts: 197
Re: What now?
« Reply #1 on: Apr 18th, 2009, 3:14pm »
Quote Quote Modify Modify

You can do pretty much whatever you want - there are lots of approaches you can experiment with (different methods of tree search, learning features, monte carlo, heuristic pruning, etc).
 
The "standard" algorithm is basically what you seem to be doing - search down the tree, using a hand-coded evaluation function after a certain depth. It sounds like you are doing straight minimax, in which case you should look at alpha-beta pruning (a quick search online will reveal any number of explanations and pseudocode). If you want to go the "traditional" route, following that, you can try heuristic move ordering, heuristically extending or pruning various parts of the search, and so on..
 
As for higher level strategies, typically these are built in by making the evaluation recognize such situations and score them appropriately. But you might find other ways to do this.
 
Game-tree search is always very time consuming and difficult, simply because the exponential branching, and the difficulty of evaluating intermediate positions in the game. Anyways, good luck!
« Last Edit: Apr 18th, 2009, 3:19pm by lightvector » IP Logged
Janzert
Forum Guru
*****



Arimaa player #247

   


Gender: male
Posts: 1016
Re: What now?
« Reply #2 on: Apr 18th, 2009, 5:45pm »
Quote Quote Modify Modify

It sounds like you may already be past this point but if it helps you any, two different arimaa position representation/move generators in python can be found in the pyrimaa package of my custom bot interface at https://code.launchpad.net/~janzert/+junk/aei. The first and fastest (board.py) uses a bitboard representation. The other (x88board.py) uses a 0x88 board representation.
 
Janzert
IP Logged
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print

« Previous topic | Next topic »

Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.