Arimaa Forum (
Arimaa >> Bot Development >> bot_eliminator
(Message started by: elescondite on Oct 3rd, 2014, 7:16pm)

Title: bot_eliminator
Post by elescondite on Oct 3rd, 2014, 7:16pm
Hi everyone,

I just wanted to take a moment to let everyone know about the bot I have been working on over the past year, called bot_eliminator.  I actually named it that because one of my ultimate objectives is to completely eliminate the evaluation of significant parts of the negamax tree during the iterative deepening process.  I've actually toyed with that as I've played games against other bots on the website.  Overall I would say eliminating moves definitely strengthens the bot, but it is also very tricky, since sometimes it can result in obvious oversights.  At the moment I haven't been utilizing move elimination, though I intend to revisit that at some point.

At the moment I am attempting to evolve my evaluation function using neural networks.  I have no idea how effective this will actually prove to be.  I wanted to attempt something like this in part because I'm too lazy to actually improve my play personally… I'm really just a mediocre player.  :-) I actually like the game, and I want to commend Omar on developing a very interesting game with great insight into the nature of human versus machine intelligence.  From working on this project, I can see that you have a great insight into the heart of the problem with machine intelligence.  Congratulations on building a very interesting game with a strong community supporting it.  I'm impressed!  Unfortunately, there are only so many hours in the day, and just not enough of them for me to dedicate much playing time to improve my game personally.  Besides, the whole point of the exercise is to train computers to think, right?  :-)

Anyway, I am currently training a set of neural networks that take piece inputs, along with computed data I provide like whether a piece is frozen, adjacent to a stronger opposing piece (but not frozen), some trap information, etc.  The purists for strong AI would object, since I'm providing analysis to the system rather than allowing it to learn for itself.  I would agree, but ultimately the amount of evolution needed for a system to learn that information on its own is likely prohibitive.  As it stands, my neural networks have a combined ~1900 weights that have to be trained.  Since this problem is pretty obviously nonlinear, the training time to get a perfect function, even this small, would take eons.  I'm hoping that I can find a solution that will be adequate in less time than that…

Note that if you look at the games played by bot_eliminator, you will see that it has played quite a few.  These were all done with a handwritten evaluation function written by me, with very little tuning.  I played the games to iron out issues with my code, and generally gain experience with operating a bot and playing in the game room with a bot.  I want to compliment the development community with the various Python scripts provided.  They made connecting to the game room simple, and they made the training process for me much simpler, since I could use as a starting point for my bot training script.  I am very impressed with everything that is available.

I did want to ask about the bots on the website that are available for everyone to play.  Where are they hosted, and I was curious about the processor power running them?  Obviously it doesn't matter for the fixed depth bots, but for the bots that use time controls, the processor speed can be important.  I would sometimes wonder when I had my bot playing one of those.  For reference, all of the games bot_eliminator played on the website were running on my development machine, which is a 2011 MacBook Pro i7 2.5 GHz.  The bot is currently training on a quad core Q9650 3 GHz running under CentOS 7.0.  I will use that machine at some point to play some test games on the website, if the neural network actually produces something that resembles intelligence.  I would also be willing to host bot_eliminator at some point when it is ready.  Perhaps someone who knows about that can inform me about getting listed on the site.

Well, I honestly don't expect to have a strong bot by the time the next tournament begins in January, but I'm hoping to enter anyway.  Perhaps I should change the name to bot_eliminated… :-)

I look forward to discussing and sharing ideas with many of you in the future.  I must say that I am extremely impressed with the development work that has already been done.  The existing top bots are extremely advanced and very impressive.

… But the bots can do better than 2-7 against the humans, I just know it!  Bring on the singularity!  :-)

I will say in advance that it is nice to meet you all.


Title: Re: bot_eliminator
Post by lightvector on Oct 3rd, 2014, 11:20pm
Hi Lance. Thanks for sharing and introducing yourself. It's always great to see more activity in Arimaa, particularly among new bot developers.

All of the Arimaa bots directly startable and playable on the site, that is, all of the ones with a year in their name and with the various suffixes "P1", "P2", "Blitz", ..., are hosted on the Arimaa server itself (I'm not sure what the machine specs of the server are) and are versions of the bots that have competed in the past in the CC. Probably the most straightfoward way to be listed as well is to enter your bot in the next CC, although maybe you could contact and work something out with Omar directly if you had something substantially different in mind.

Any bots other than those are generally run directly by developers, the same way you've been testing your bot. If you're interested in having your bot play against humans, just leave it in a loop connecting to the gameroom to open a game for people to join. Particularly if it's new and plays interestingly, people will occasionally play it.

Title: Re: bot_eliminator
Post by Fritzlein on Oct 4th, 2014, 1:12pm
To put the motivations in perspective: Omar considers it a privilege to be able to host bots that have been written by various developers.  To get this privilege, Omar wrote it into the rules of the annual Computer Championship that if you enter your bot, you have to let him host it thereafter for everyone to play.  I think developers in general don't mind giving this right to Omar in exchange for a chance to win prizes and glory; perhaps aaaa is an exception.

It sounds like for you the motivations are reversed, i.e. you would like Omar to host your bot on the server, and you aren't expecting any prizes or glory.  But the upshot is the same: if you enter the Computer Championship, your bot at different time controls will be made available for everyone to play, and you and Omar and everyone will be happy.  :)

Title: Re: bot_eliminator
Post by elescondite on Oct 5th, 2014, 11:39pm
It would definitely be an honor to have a bot hosted on the website, especially if the bot was good… What good does it do to spend all the time and effort developing a bot if nobody plays it?

My bot isn't really ready for prime time yet, so I'm not in any rush to have a bot hosted at the moment.  I do like the idea of just having my bot hang out in the gameroom once I get to the point where I would like to see how it does against human competition.  I will certainly give that a try when the time comes.

In the meantime, my fingers are crossed that this whole neural network idea will pan out.  I'm really not sure, but the only way to know is to try.  It worked pretty well for Blondie24, but checkers is far less complicated positionally than Arimaa.  I have some other training ideas that they didn't use for Blondie24, but we'll see how much time I have to try everything out.

Thanks for the information.

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