Welcome, Guest. Please Login or Register.
Nov 24th, 2024, 10:25am

Home Home Help Help Search Search Members Members Login Login Register Register
Arimaa Forum « search tree techniques »


   Arimaa Forum
   Arimaa
   Bot Development
(Moderator: supersamu)
   search tree techniques
« Previous topic | Next topic »
Pages: 1 2 3  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print
   Author  Topic: search tree techniques  (Read 4536 times)
Swynndla
Forum Guru
*****



Arimaa player #1821

   


Posts: 235
search tree techniques
« on: May 20th, 2006, 8:01pm »
Quote Quote Modify Modify

I'm wondering which bots use pruning or other similar techniques, and which don't.
 
All I know so far is:
- Gnobot 2005 & 2006 doesn't prune at all.
- Clueless has a rabbit-only search extension?
- Fairy (at the moment only) looks deeper at interesting moves, and shallower at bad moves.
 
What does bomb use?
 
Do any of these bots use alpha-beta pruning?
IP Logged
99of9
Forum Guru
*****




Gnobby's creator (player #314)

  toby_hudson  


Gender: male
Posts: 1413
Re: search tree techniques
« Reply #1 on: May 21st, 2006, 12:18am »
Quote Quote Modify Modify

on May 20th, 2006, 8:01pm, Swynndla wrote:
Do any of these bots use alpha-beta pruning?

I expect all of them do.  It is so standard that I don't even call it pruning!
IP Logged
Swynndla
Forum Guru
*****



Arimaa player #1821

   


Posts: 235
Re: search tree techniques
« Reply #2 on: May 21st, 2006, 5:40am »
Quote Quote Modify Modify

Ohhhhhhhhhhhhhhh gotcha ... so Gnobot 2005 & 06 uses alpha-beta, but doesn't use any real pruning, nor any extensions right?
IP Logged
unic
Forum Guru
*****



Arimaa player #1878

   


Gender: male
Posts: 63
Re: search tree techniques
« Reply #3 on: May 21st, 2006, 3:14pm »
Quote Quote Modify Modify

Fairy uses alpha-beta (of course), or to be more specific, nega-scout with aspiration windows at the root.
 
I've been running tests on the looking shallower at bad moves lately - cutting search depth by 1 ply, half a ply, or not at all, makes no discernible change in playing strength.  So, I'll probably remove that part (as if it makes no difference in strength, I'd rather go with the simplest version.  Cutting search depth by 2 ply made it noticeably weaker.
 
Bomb must use various techniques - probably both some pruning (or looking shallower at sequences) and extensions - setup a position in the downloadable bomb, hit Analyze, and look at its output - it gives depth as for example 9 (6-16) - so 9 depth, but real depth varying between 6 and 16.
IP Logged
unic
Forum Guru
*****



Arimaa player #1878

   


Gender: male
Posts: 63
Re: search tree techniques
« Reply #4 on: May 21st, 2006, 3:15pm »
Quote Quote Modify Modify

on May 21st, 2006, 12:18am, 99of9 wrote:

I expect all of them do.  It is so standard that I don't even call it pruning!

I'd agree!  Thing is, alpha-beta never changes the value of the root node... it never prunes parts of the search tree that might matter.  
 
Pruning, to me, generally refers to 'unsafe' pruning - which might (or might not) theoretically change the value of the root node.
IP Logged
Swynndla
Forum Guru
*****



Arimaa player #1821

   


Posts: 235
Re: search tree techniques
« Reply #5 on: May 21st, 2006, 4:00pm »
Quote Quote Modify Modify

Ahh thanks for explaining all this to me (a newbie to games programming).
 
I'm reading up on alpha-beta ... very interesting.
 
So why is bomb so strong? ... I can't believe that it's because it has better evaluation, because clueless P1 seems to be stronger than bomb P1 ... so does this mean that it comes down to bombCC having better search tree pruning techniques than cluelessCC??
IP Logged
Fritzlein
Forum Guru
*****



Arimaa player #706

   
Email

Gender: male
Posts: 5928
Re: search tree techniques
« Reply #6 on: May 21st, 2006, 6:35pm »
Quote Quote Modify Modify

on May 21st, 2006, 4:00pm, Swynndla wrote:
So why is bomb so strong?

In human strategy terms, Bomb is so strong because it understands trap control better than any other bot.  It fights to gain control of a trap with more precision than other bots, and when it is doomed to lose control it gives up and cuts its losses sooner than other bots.  Bomb isn't perfect at trap control by any means, but it is noticably the best of the bots.
 
In computer science terms, Fotland said that Bomb does "quiescence search".  I don't understand how that is possible.  In chess, quiescence search means (I think) deepening the search only with capturing and checking moves.  But in Arimaa a capture move can take the full four steps, so how can Bomb look at only capture moves without generating a lot of unwanted moves?  Alternatively, if the unwanted moves are in there even temporarily, why isn't quiescence search prohibitively expensive?
 
Apparently Fotland has found a way of looking at it that eludes everyone else to this day, at least a year and a half after he shared with everyone that he somehow manages to do quiescence search.  I don't know nothing about coding, but from where I stand, it looks like Fotland is some kind of wizard.
« Last Edit: May 21st, 2006, 6:44pm by Fritzlein » IP Logged

seanick
Forum Guru
*****



SeaNICK

    seanick
Email

Gender: male
Posts: 97
Re: search tree techniques
« Reply #7 on: Jun 16th, 2006, 2:59am »
Quote Quote Modify Modify

I don't know what quiescence search is, or for that matter most of the ideas that are discussed here. yet.
but just in case anyone didnt already find this I thought I would mention it .. the thread at  
http://arimaa.com/arimaa/forum/cgi/YaBB.cgi?board=devTalk;action=display ;num=1073334799  
has a summary of what Fotland claims bomb has. Does he not plan on working on it anymore?  
it's too bad if that is the case. Would he be willing to sell the code? That time he spent writing it, at least 3  
solid months of 40 hour weeks.  
 
I am sure that I am not the first to consider that way more very well developed code has been lost
due to improper archiving, people leaving companies, companies going out of business,  
getting acquired, or the source being deleted by the new lab tech who didn't know what was on the drive that he  
had just formatted, etc.  
 
I suppose human knowledge continues to evolve and many systems continue to work without the source even existing  
anymore, but once we reach a certain point, if anything major breaks, life will become like that in Asimov's Nightfall.  
 
Anyway. Bomb is pretty good.  
So who is going to write the next logical successor? True AI with the additional ability to speak fluent arimaa  
notation, predict human oversight and accomodate server overload natively? :)
IP Logged
chessandgo
Forum Guru
*****



Arimaa player #1889

   


Gender: male
Posts: 1244
Re: search tree techniques
« Reply #8 on: Jun 16th, 2006, 11:48pm »
Quote Quote Modify Modify

Thanks for the link ! interesting ... still he doesn't technically explain why Bomb is so good Smiley  
 
As for the next bot ... well, we are here and he's not, so it's up to us Wink I'm giving a try, but I fear what Fotland writes in a mn takes me one hour ... Still I'm trying to implement Leo's idea of agents trying to achieve goals ... funny but interesting idea Wink
Are you trying to program one, Nick ? I've not heard about Fairy recently ... neither about Nathan's progress ...
jdb seems to have a lot of ideas to work on ... are there other people building their bot currently ?
IP Logged

99of9
Forum Guru
*****




Gnobby's creator (player #314)

  toby_hudson  


Gender: male
Posts: 1413
Re: search tree techniques
« Reply #9 on: Jun 17th, 2006, 2:54am »
Quote Quote Modify Modify

I am working on a complete eval overhaul for Gnobby, but it is still a long way off.
IP Logged
seanick
Forum Guru
*****



SeaNICK

    seanick
Email

Gender: male
Posts: 97
Re: search tree techniques
« Reply #10 on: Jun 17th, 2006, 7:25pm »
Quote Quote Modify Modify

Are there any C++ runtime libraries for linux? the ideas I had for a bot are based on my methods of writing code for windows which may or may not actually work on linux. I could do it in C but then I would not be doing my best work. the reason I want to do it in C++ is to extend some level of evaluation to each of the nodes based on type, then have a list of options generated based on those evaluations and pick them by value to process at a global level. this would allow a much deeper search I think, and based on each object's view of the board which would allow goal based evaluation to be easier too. all of this would be possible with C I am sure but it starts to be complex enough to ensure all of the requirements are considered that it really wouldn't be as attractive an option. I may kick it around a few times anyway though.  
At the moment I have a few things to learn before I am ready to begin writing my bot. so it may yet be a while for me too. Are you bored with all of the current bots already?  Tongue
IP Logged
Swynndla
Forum Guru
*****



Arimaa player #1821

   


Posts: 235
Re: search tree techniques
« Reply #11 on: Jun 19th, 2006, 4:55pm »
Quote Quote Modify Modify

There may be more specific compilers on linux, I don't know, but the standard GNU linux compiler "gcc" is designed to compile many different languages, and C++ is one of them.
 
Maybe this helps? ...
http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html
IP Logged
clauchau
Forum Guru
*****



bot Quantum Leapfrog's father

   
WWW

Gender: male
Posts: 145
Re: search tree techniques
« Reply #12 on: Jun 20th, 2006, 6:11am »
Quote Quote Modify Modify

on May 21st, 2006, 6:35pm, Fritzlein wrote:
how can Bomb look at only capture moves without generating a lot of unwanted moves?

 
It must be similar to searching for goal moves, which is hard coded in some other bots as well. I think it has to go in increasing numbers of steps and keep those numbers at a tight minimum :
 
- There are no capture possible in one step.  
 
- Captures in two steps are made of a push or a pull into an unprotected trap or a push or a pull of a lone trap-protector.
 
- Captures needing three steps are those needing a step before capturing in two steps. That step can only be about getting the pushing or pulling piece next to the pushed or pulled enemy piece, or unfreezing that pushing or pulling piece, or emptying a needed target square. I think.
 
- Captures in 4 steps... well, something a little more complicated along those lines.
 
David Fotland is an engineering wizard Smiley
IP Logged
chessandgo
Forum Guru
*****



Arimaa player #1889

   


Gender: male
Posts: 1244
Re: search tree techniques
« Reply #13 on: Jun 20th, 2006, 10:46am »
Quote Quote Modify Modify

on Jun 17th, 2006, 2:54am, 99of9 wrote:
I am working on a complete eval overhaul for Gnobby

 
Good luck !
 
Nick : .... hum .... Well I'd like so much to see another bot get past Bomb Smiley
IP Logged

seanick
Forum Guru
*****



SeaNICK

    seanick
Email

Gender: male
Posts: 97
Re: search tree techniques
« Reply #14 on: Jun 22nd, 2006, 11:44am »
Quote Quote Modify Modify

I was looking for a good book on Game AI and found some interesting sites...  
 
for one, check out this article...  
http://ai-depot.com/LogicGames/MiniMax.html
 
but that is just one step along the way, I still need more info to really understand the optimizations and extensions that need to be designed into mine.  
 
unfortunately it seems true AI wouldn't actually even be as good as a human at this game.
IP Logged
Pages: 1 2 3  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.