7-men Syzygy attempt

Discussion of chess software programming and technical issues.

Moderators: hgm, chrisw, Rebel

jdart
Posts: 4379
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: 7-men Syzygy attempt

Post by jdart »

I am having some trouble with this code in https://github.com/syzygy1/Cfish/blob/m ... /tbprobe.c, around line 1744:

Code: Select all

    if (   v == 1
        && pos_checkers()
        && generate_legal(pos, (pos->st-1)->endMoves) == (pos->st-1)->endMoves)
      best = 1;
It is not really clear to me what this is doing.

--Jon
niklasf
Posts: 42
Joined: Sat May 16, 2015 11:41 pm

Re: 7-men Syzygy attempt

Post by niklasf »

jdart
Posts: 4379
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: 7-men Syzygy attempt

Post by jdart »

Got it, thanks.

--Jon
jdart
Posts: 4379
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: 7-men Syzygy attempt

Post by jdart »

I have gotten the Frankenstein merge of Cfish into Fathom to compile and am starting to do some testing.

One thing I notice is that Cfish (and I presume Stockfish) have an interface that generates a rank and score for all moves for root probes.

I am not quite clear what the purpose of this is. It looks like to me that if searching Cfish just searches the highest-rank move(s).

Fathom doesn't exactly do this: it returns WDL and DTZ values for each move.

--Jon
noobpwnftw
Posts: 694
Joined: Sun Nov 08, 2015 11:10 pm
Full name: Bojun Guo

Re: 7-men Syzygy attempt

Post by noobpwnftw »

I am not quite clear what the purpose of this is.
I believe that is used to filter known worse moves at root given WDL information.
syzygy
Posts: 5654
Joined: Tue Feb 28, 2012 11:56 pm

Re: 7-men Syzygy attempt

Post by syzygy »

noobpwnftw wrote: Thu Apr 11, 2019 8:39 pm
I am not quite clear what the purpose of this is.
I believe that is used to filter known worse moves at root given WDL information.
Cfish and Stockfish rank moves if only WDL is available but also if WDL+DTZ is available. The WDL+DTZ ranking is obviously more accurate.

The reason for ranking is that SF does not want to simply play the move that minimizes DTZ (because that can lead to very strange play).

Before ranking was implemented, SF would filter out root moves that according to WDL/WDL+DTZ are "worse" than the best root move (in the sense of risking to lose half a point or more). The problem with this is that it breaks both multipv=N > 1 (if fewer than N moves remain after filtering) and searchmoves (if none of the optimal moves are among the specified moves).

Ranking scores each move on the basis of WDL/WDL+DTZ information and then sorts the moves according to their score/rank. SF's search uses this information as follows: If multipv=N and there are K>=N top-ranked moves, then the search will be limited to those K moves. If K<N, the search will first produce K lines from those K moves, then do a multipv=N-K search on the remaining moves.
konsolas
Posts: 182
Joined: Sun Jun 12, 2016 5:44 pm
Location: London
Full name: Vincent

Re: 7-men Syzygy attempt

Post by konsolas »

Is there a specification for the file format used by Syzygy which could be used to independently write probing code?
brianr
Posts: 539
Joined: Thu Mar 09, 2006 3:01 pm
Full name: Brian Richardson

Re: 7-men Syzygy attempt

Post by brianr »

konsolas wrote: Fri Apr 12, 2019 1:03 pm Is there a specification for the file format used by Syzygy which could be used to independently write probing code?
Yup. Right here:
https://github.com/syzygy1/tb
konsolas
Posts: 182
Joined: Sun Jun 12, 2016 5:44 pm
Location: London
Full name: Vincent

Re: 7-men Syzygy attempt

Post by konsolas »

brianr wrote: Fri Apr 12, 2019 3:20 pm
konsolas wrote: Fri Apr 12, 2019 1:03 pm Is there a specification for the file format used by Syzygy which could be used to independently write probing code?
Yup. Right here:
https://github.com/syzygy1/tb
I appreciate the effort, but there is no specification for the file format there, especially not for 7-man tablebases as the probing code given on that page does not support them.