Page 1 of 1

What if the TT knew the number of moves

Posted: Fri Jun 15, 2018 3:27 am
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)

Re: What if the TT knew the number of moves

Posted: Fri Jun 15, 2018 4:32 am
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.

Re: What if the TT knew the number of moves

Posted: Fri Jun 15, 2018 12:48 pm
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.