Arimaa Forum (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi)
Arimaa >> Bot Development >> Parameter tunning on eval function
(Message started by: nbarriga on Oct 6th, 2005, 10:51pm)

Title: Parameter tunning on eval function
Post by nbarriga on Oct 6th, 2005, 10:51pm
Hi, i just wanted to know how are you tunning the parameters on your evaluation function. (hand tuned, TD(0), TD(Lambda), TDLeaf(Lambda), etc)

And also, is everybody using linear eval functions or is somebody messing with neural networks or other predictors?

And finally, do you use only 1 eval function, or multiple ones, that are automatically changed based on some characteristic of the game( human or bot oponnet, opponent agresiveness, specific eval function for each known oponent, etc)

Sorry for all the questions, but the more i think about my bot, more questions i have :)

Title: Re: Parameter tunning on eval function
Post by PMertens on Oct 6th, 2005, 11:12pm
My virtual (not yet existing) bot is planning to use multiple evals based on opponent and situation.

It should for example be a rather easy task to beat bomb with one of the well known and no-brainer anti-bomb tactics (mainly E-H derivates)
Loc can easily be beaten by sacrifizing anything to blockade its phant (it will time out then)
Clueless has a rather bad trap-control and tends to suicide pieces if given the chance.
Gnobot has a bad goal-protection and often overlooks even a simple goal.

In addition the eval might be much lighter if only relevant things are considered - and more importantly more precise.
Example: rabbit pulling is great, but not needed if you go for immobilization.

Apart from that I am desperatly trying to find a efficient way to recognize a position (I do not have a 64MBit Prozessor with 10 GogolBit Main Memory :-( )
Until then my bot stays virtual :-)

Title: Re: Parameter tunning on eval function
Post by 99of9 on Oct 7th, 2005, 1:13am
Gnbot uses a hand tuned non-linear eval.  I basically picked a bunch of features I would look for to gain advantage in a game, and made up an equation for each which I thought represented it fairly well.  (eg one of the the elephant -> camel interactions falls off as 1/distance).

Title: Re: Parameter tunning on eval function
Post by Fritzlein on Oct 7th, 2005, 9:54pm
Correct me if I am wrong, but I believe all the bots so far are hand-tuned, including bot_haizhi.  Haizhi then implemented TD(lambda) but it resulted in zero improvement in playing strength.  My (totally unexpert) guess as to why TD(lambda) failed for bot_haizhi is that there were way too many features.  If you aren't going to use your Arimaa knowledge to hand-tune your features, at least use your Arimaa knowledge to sharply limit the number of features available for the bot to self-tune, so it doesn't waste eternity tweaking hundreds of not-very-relevant parameters.

Title: Re: Parameter tunning on eval function
Post by nbarriga on Oct 8th, 2005, 12:52am
Currently bot_weiser's eval funtion has 45 parameters, and i plan to go to about 100. Each feature i add makes the eval function slower, so i have to find a balance between eval function quality and search depth, because i don't think i'll have time to work much on the search algorithm before this year championship.

Title: Re: Parameter tunning on eval function
Post by fotland on Jan 23rd, 2006, 1:26am
bomb is hand-tuned with about 400 constants.  Most of the evaluation is linear, with values looked up in tables and summed.

Piece values are constant, except for rabbits, whose value depends on the number of remaining rabbits.



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