What if the TT knew the number of moves

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

MOBMAT
Posts: 385
Joined: Sat Feb 04, 2017 11:57 pm
Location: USA

What if the TT knew the number of moves

Post by MOBMAT »

If the TT could return the number of legal moves for EXACT/ALPHA positions, what could that information be used for?
What comes to mind is if we know there is only one move available, but not sure what to do with it.
Ideas?

Code: Select all

NumberOfMoves = 0
get next move ()
   {
   if !legal()
      continue
   increment NumberOfMoves
   // do stuff
   }
if NumberOfMoves = 0, return mate or draw
// if we make it all the way through to here
// we have tried every move....
if we have a best move
   store TT (EXACT, NumberOfMoves)
else
   store TT(ALPHA, NumberOfMoves)
i7-6700K @ 4.00Ghz 32Gb, Win 10 Home, EGTBs on PCI SSD
Benchmark: Stockfish15.1 NNUE x64 bmi2 (nps): 1277K
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: What if the TT knew the number of moves

Post by Dann Corbit »

I think the number is mostly superfluous, since you are probably going to generate the moves anyway.

It can have other uses as well, besides knowing if something is a singular move.

If you have {for instance} only 5 possible legal moves, you should prune less.

If you have {for instance} 150 possible legal moves, you can prune more.

If you do have a singular move, many engines make than an extension to search deeper.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: What if the TT knew the number of moves

Post by syzygy »

MOBMAT wrote: Fri Jun 15, 2018 3:27 am If the TT could return the number of legal moves for EXACT/ALPHA positions, what could that information be used for?
What comes to mind is if we know there is only one move available, but not sure what to do with it.
Ideas?
My first engine set a bit in a position's TT entry if the search had figured out there was only one legal move. That bit was then used to trigger an extension the next time the position was encountered.