Author: Gian-Carlo Pascutto
Date: 10:40:07 02/20/00
Go up one level in this thread
On February 20, 2000 at 08:41:12, Alessandro Damiani wrote: >> >>I did find a flaw in my implementation of the algorithm though. When counting >>the conspiracy depth, the actual node does should not count as an alternative. >>In my implementation it does. Am I correct to assume the effect of this is >>minimal as it's just that one move that is counted too much ? Having it this >>way allows for a lot cleaner coding... >> > >Let's look at an example. We use the same nodes I used before: node A is at ply >3, and node X is at ply 8. The line from the root to X is (m(i), 1<=i<9). > >At node A m(3) is the move being searched. Therefore at node X you have to >calculate the conspiracy depth of A by looking at the (quiescence) scores of >all siblings of m(3). The score of m(3) does not take part in the calculation! > >We have to implement ABC correctly, before we are able to improve it. >Everything else doesn't make sense. Hmm yes, but if you count the moves from the variation itself it's easy to correct for this in the S function, because you know you have always counted one move too many. >I think your "max-options" and the ABC-parameter "maxoptions" are the same. Indeed. Little typo when transcribing the code. >You forgot the sign: > > v = max(v, -ABC(...)) > >But I think the error was only in this post and not in your code. Right? > >You forgot to increase alpha: > > alpha = max (alpha, v) Both errors are not in the actual code. [snip] >>I hope someone can make sense of this. I'm especially uncertain if the >>MaxDepth and MinDepth procedures are correct. Is it right that they are >>identical to the minimax versions ? > >In the negamax notation there is no distinction between min- and max-player. >Therefore MinDepth() is no more used, and the scores are from the max-player's >point of view: > >proc terminate (node, alpha, beta, dmax, dmin, maxOptions, minOptions) : bool; >begin > v:= eval(); > if v>=beta and MaxDepth(beta, maxOptions)>=dmax then > return true > end; > if v<=alpha and MaxDepth(-alpha, minOptions)>=dmin then > return true > end; > if v>alpha and v<beta and MaxDepth(v, maxOptions)>=dmax and MaxDepth(-v, >minOptions)>=dmin then > return true > end; > return false >end Thanks a lot for your feedback. ABC still isn't working as it should be for me, but I don't know whether that's the fault of the algorithm, my implementation of it or just plain bugs in my chessprogram's code that surface because of the different search. Anway, I guess it's no for ABC for now, but maybe I'll try it again later on. Too bad it's so hard to get feedback about, because I really think it is a very powerful algorithm. -- GCP
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.