Author: Alessandro Damiani
Date: 14:35:50 02/20/00
Go up one level in this thread
On February 20, 2000 at 13:40:07, Gian-Carlo Pascutto wrote: >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. You have to figure out if its score is > v-margin or <= v-margin, since the score of the move is not always > v-margin! Sometimes you count one too many and sometimes the opposite. I think the implementation I am doing in my thoughts is straight forward and doesn't need such a correction. But sometimes my thoughts take on the shape of a pizza... :-) > >>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. Before I start to implement ABC I have to make my kingsafety evaluation work well. I think next week-end it will be the case. I will share my experience with ABC here. > >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. > We both think the same about ABC! :-) I think ABC is more powerful than Singular Extensions, because the latter method cannot be applied in every node of the tree, while it is the case for ABC's mesure of forcedness. Although the cost is too high near the horizon (without doing some simplifications). Alessandro
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.