Author: Christophe Theron
Date: 17:00:04 07/30/04
Go up one level in this thread
On July 29, 2004 at 19:25:37, Ricardo Gibert wrote: >On July 29, 2004 at 19:22:44, Ricardo Gibert wrote: > >>On July 29, 2004 at 17:34:11, Christophe Theron wrote: >> >>>On July 29, 2004 at 14:07:10, Robert Hyatt wrote: >>> >>>>On July 29, 2004 at 06:26:52, Gian-Carlo Pascutto wrote: >>>> >>>>>http://arxiv.org/ftp/cs/papers/0406/0406038.pdf >>>>> >>>>>I stumbled onto this when doing a search for Axon. >>>>>Not seen it mentioned here yet. >>>>> >>>>>They also have a paper about hashing out which I can't >>>>>download. >>>>> >>>>>-- >>>>>GCP >>>> >>>> >>>>Doesn't strike me as particularly interesting. IE it almost seems that they >>>>don't realize that most programs store positions in a repetition list as 64 bit >>>>Zobrist integers... >>> >>> >>> >>>Actually I think it might be interesting. >>> >>>Recently, when I was rewriting the core of the Chess Tiger engine, I realized >>>that I could get even more speed by not computing the hash keys during the >>>quiescence search for example. >>> >>>In my case, it would have meant some more changes in the engine and the way I do >>>QSearch. But for some programs, it could be interesting. >>> >>>The problem then is how do you check for repetitions? >>> >>>If you allow checks and escape from checks in your QSearch, and if you actually >>>extend them in some way, you have to detect repetitions. >>> >>>So a lightweight, hash key free, repetitions detector is a must in this case. >>> >>>It could also be interesting for people who want to write a very small chess >>>program for portable units. >>> >>>But I think there is a better method than the one given in the paper. I would >>>use an array of integers, one per piece on the board. The array starts filled >>>with 0. Every time a piece is moved I would add the move vector to the integer >>>in the array. >>> >>>A repetition is detected when all the array is filled with 0 (nul vectors). It >>>is possible to use a "master vector" that receives all the individual vectors >>>after every move. One has to check the whole array only when the master vector >>>is nul, otherwise there cannot be a repetition. >> >>Maybe I've misunderstood, but this seems to me to be a method of testing whether >>the current position is a repetition of one particular previous position rather >>than whether the current position is a repetition of any one of the entire set >>of previous positions. I don't see how it can be made to work. > >Actually, I do now see how it can be made to work, but it would be far too >inefficient. You start from the current position (what I call the current position is any position you reach at the end of your search) and work your way backwards until you either find an irreversible move or detect a repetition. It is more efficient than the way described in the paper, and in the case where you do not compute a hash key in the QSearch it could be a very efficient method of detecting draws by repetition. Maybe there is a better one, I don't know. Christophe > >> >>> >>>This method also works backwards (from the current move back to the last >>>irreversible move), but avoids any search in the concatenation list. >>> >>>It should be significantly faster than their method. >>> >>>Now I should write a paper. :) >>> >>> >>> >>> Christophe
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.