Arimaa Forum (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi)
Arimaa >> Bot Development >> Adopt Fairy for the 2007 Computer Championship
(Message started by: Fritzlein on Dec 4th, 2006, 5:29pm)

Title: Adopt Fairy for the 2007 Computer Championship
Post by Fritzlein on Dec 4th, 2006, 5:29pm
The December 1 deadline for registering for the Computer Championship has passed, and unic has not registered to compete with Fairy.  This is a shame for the Arimaa community, because Fairy would make an interesting addition to the bot ecosystem.

Given that unic publicly released a version of Fairy, we have the wonderful opportunity for someone to "adopt" Fairy for the Computer Championship.  It requires only
* enabling Fairy to play through the bot interface (already done?)
* adding an option for hardware-independent play, either by limiting depth or by limiting nodes
* statically compiling Fairy on Linux

I am not competent to undertake this task myself, but I appeal to the programmers out there for someone who is not otherwise entering a bot to adopt poor Fairy.  Not only will that give us an extra benchmark internal to the Computer Championship, it will also give us new variety for the Bot Ladder next year.  The infusion of something new would be especially welcome if we don't get new versions of Loc, Gnobot, Aami-ra, and Bomb.  (JDB seems to be the only one who will for sure have something new.)

Stanley, pardon me for singling you out, but since you plan to have a bot of your own soon, this might be a particularly useful experience for you, so you know what you need to know for next year.  Are you interested?

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 4th, 2006, 6:50pm
I'm interested enough to at least look at the code to see if it's doable with my skills.  Where do I get the code to look at it?  And how long would I have, given that Dec. 1st is already past?



Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by Fritzlein on Dec 4th, 2006, 10:48pm
There's a link to Fairy here http://arimaa.com/arimaa/download/ under Arimaa Sample C Bots.  You would have until December 31, so there is still plenty of time.  If you e-mail Omar, he can give you an account on the Linux machine so you can start work.  (Of course Omar has to approve of this scheme, but I think he will.)

This might be an optimized order of donating to the community: first get another bot into the ladder for us to bash, and only then propose more bot-bashing challenges.  ;-)

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 6th, 2006, 1:14am
I played with fairy tonight.  (Under the name bot_Faerie)

At first, I was amazed at how easy it was to set up the perl scripts, compile Fairy, and run it.   Easy enough that I was starting to fantasize about writing my own eval and entering my own bot instead of a ported fairy.

Unfortunately, every time I've run the actual Fairy code, something has gone dramatically wrong.  At first, it was timing out without generating a move.  I figured out with 90% certainty that this was because it was running out of memory on my home server.  (which at present only has 256MB).

So then I ran it on my webhost, which has plenty of memory.   But in the middle of its first search, it produced a blank move.  Not sure what happened, maybe my hosting provider killed it for using too much CPU?  

The output looked like this:

=== 75/ 8.5/10     12     26284     10716   0.08  me7w|ed3s:Ra2n
   80........     12     26286     10716   0.08  me7w|ed3s:Ra2n
=== 80/ 9.1/10     12    152250     59956   0.35  me7w|ed3s:Ra2n
   85........     12    152252     59956   0.35  me7w|ed3s:Ra2n
=== 85/ 9.4/10     12    173586     60978   0.37  me7w|ed3s:Ra2n
   90........     -8   1420688    385699   2.46  me7w ed3s Rh2n Rh3n Rh4n Rh5n Rh6s hh7s ed2n ed3e|
   90........      5   8580519   2465200  14.48  cf7e me7e Ee6s Ee5e Ra2n Rh2n hh7s ed3s ed2n Mc2e|
   90........     20  11306142   3358291  19.57  hh7s hh6s Ra2n Ra3n Rh2n Rg1n hh5s hh4w hg4w|
my move is
Gameserver: Bad Move: no steps taken m=[]
got signal USR1
 about to clean up
leaving the game

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 6th, 2006, 1:23am

on 12/04/06 at 17:29:44, Fritzlein wrote:
The December 1 deadline for registering for the Computer Championship has passed,


Just curious ... if the deadline has passed, how would one go about entering a new bot?  Re-reading your post I'm wondering if this plan is a non-starter because it would require Omar to violate his own rules.


Quote:
* enabling Fairy to play through the bot interface (already done?)
* statically compiling Fairy on Linux


Both are done, or are easily done.


Quote:
* adding an option for hardware-independent play, either by limiting depth or by limiting nodes


The fairy archive includes three versions.  One has the nice search and eval used by the full version of fairy (and uses time-aware limits) and one which has a naive eval but uses ply limits.   Combining the two limitation functions into one version and switching them with a command line option would be a matter of a couple hours at most, I think.

However, I'll wait to put more time into this until we hear from Omar whether he would actually break the rules and allow a late entry.


Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 6th, 2006, 1:58am
I found another 256MB module sitting around that happened to fit my server.   It didn't help much; even with a half gig, memory again filled up in just a couple of seconds whereupon processing ground to a halt, and the bot timed out.

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by Janzert on Dec 6th, 2006, 2:27am
Hmm, I don't see a requirement that the registration be done by December 1. Just that the Linux account would be made available then.

The first deadline I see for the bot developer is that they have the bot on the server by December 31. Which would seem to presuppose that they register before then. :)

Janzert

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by 99of9 on Dec 6th, 2006, 5:32am
Can't you just change the maximum size of the hash tables to suit your 512 Mb memory?  (I haven't looked at the code, but that would be pretty easy for most bots.)

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by arimaa_master on Dec 6th, 2006, 7:26am
I think 99of9 is right. There is variable telling to fairy to use 512 MB memory or something similar. On my home computer (1 GB RAM). Fairy is using 512 MB. So I guess that with less free memory then 512 MB it could be a problem to run fairy properly.

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by omar on Dec 6th, 2006, 2:21pm

on 12/06/06 at 01:23:24, IdahoEv wrote:
Just curious ... if the deadline has passed, how would one go about entering a new bot?  Re-reading your post I'm wondering if this plan is a non-starter because it would require Omar to violate his own rules.


Im not sure where the Dec 1st registration deadline came from, but that date was intended as a deadline for me to provide the bot developers with Linux accounts. The deadline for bot developers is really Dec 31st. The registration form was just to let me know who to create accounts for.

I'll setup an account for bot_Faerie and send you the login info.


Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 6th, 2006, 6:34pm
Okay, I have it working with apparent success on my local machine, with the hashtable limited in size to 480MB.

I've contacted Omar about some problems with the provided linux account, but in the meantime I'll start in on the challenge of providing a fixed-performance limit to Faerie.

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 6th, 2006, 9:33pm
The fixed-search-depth implementation is done.   I just finished game 43955 (http://www.arimaa.com/arimaa/games/jsShowGame.cgi?gid=43955&s=w) against a P1 implementation, and am in the middle of a game against P2.

(Though it looks like this P2 run is going to timeout for memory problems again; I pushed the memory usage too close to my available 512MB.)

In any case, full and fixed-performance implementations of Faerie nee Fairy are ready to go for the 2007 CC.


Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by Fritzlein on Dec 6th, 2006, 10:38pm

on 12/06/06 at 21:33:32, IdahoEv wrote:
In any case, full and fixed-performance implementations of Faerie nee Fairy are ready to go for the 2007 CC.

Awesome, thanks IdahoEv.  Do you think it can beat an unimproved Gnobot?  I remember unic's bot_Fairy was beating Gnobot in test games, but they weren't running on the same hardware.

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 7th, 2006, 9:22pm

on 12/06/06 at 22:38:49, Fritzlein wrote:
Awesome, thanks IdahoEv.  


Well, hold your enthusiasm.   As yet I haven't been able to produce a hybrid version with both depth and time limits.   Everything I've tried is producing bad moves under some circumstances, resulting in server error and subsequent bot timeout.

The truth is I only have a the barest understanding of how unic's search code works, so I'm very much grasping around in the dark.   (And I'm not at all comfortable in vintage-style C code, having become very much a clean-OOP Java and PHP man the last few years).

It's been a very frustrating day.  :(

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by Fritzlein on Dec 8th, 2006, 1:14pm

on 12/07/06 at 21:22:09, IdahoEv wrote:
It's been a very frustrating day.  :(
On the plus side, you have made me very happy I called for a programmer to volunteer, rather than attempting to do it myself.  ;-)  But seriously, if it were no hassle at all, Omar could just do it himself and have another bot in the ladder in a snap.  If you manage to get this figured out, it will be a true service to the Arimaa community.

Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 13th, 2006, 3:55pm
By the way, if anyone else was thinking about working on this, don't let the fact that I started in on it hold you back.   I'm pretty badly stuck trying to produce the hybrid time/depth limit version for the bot ladder, and I'm very behind on my real work with only five days to go before I leave to travel for the holidays.


Title: Re: Adopt Fairy for the 2007 Computer Championship
Post by IdahoEv on Dec 13th, 2006, 9:03pm
I may have just cracked the really hard nut that was holding me up.

Now I have to deal with some timing stuff.  unic never implemented actually checking what its time parameters were; Fairy just assumes it has a constant 120 seconds for each turn.   Since that would prevent the implementation of Faerie_fast and Faerie_blitz, I guess I need to change it.

Hopefully it won't be as challenging as understanding the difference between his two different (incompatible and undocumented) formats for arrays of moves!



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