Principal Variation Search vs. Transposition Table

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: Principal Variation Search vs. Transposition Table

Post by diep »

mvanthoor wrote: Mon Oct 26, 2020 12:49 pm Hi :)

Because of the fact that the Principal Variation can be extracted from the Transposition Table if one wanted to, I was wondering about something. If you search the PV, ply by ply ("walking the PV"), you're actually searching hash table moves. So, if I collect a PV, and ALSO have a hash table, is it still necessary to do a principal variation search if I search the hash move first?

I may be misunderstanding this, but as I understand it now, it seems "walking the PV" (and thus, principal variation search?) seems pointless if you have a hash table. I've also seen references to "walking the PV is like having a poor man's TT", but I don't know where I read that quote. If true, it would seem to confirm my suspicion.

I could use a bit of assistance in determining if PVS is still helpful even if you have a TT.
i'm using PVS in diep of course. the PVS is the way how you search with a window - has in itself nothing to do with how you obtain the variation itself.
the mainline i get from hashtable obviously. Now if you search in parallel things are complex anyway there as there is no garantuee the mainline gets perfectly out of hashtable there - especially if you search in time of opponent and reach way way deeper there with multiple cores - and then dang suddenly there you are searching your mainline again.

update strategy of hashtable plays a role. For example if you are searching mainline now with pvs say at iteration depth=6 and you are in position X not being the root with depthleft = 5.
Now from hashtable which had reached like 20 plies some moves before it has a hashtable move X.m stored as best move with depthleft=14 plies for example. Are you gonna overwrite that bestmove with clumsy information you obtained from depthleft=5?

The way to look at it is by seeing PVS as a search strategy. It doesn't say anything about how you hocus pocus your mainline out of hashtable! In Diep ijust get it out of the hashtable the mainline and if that line isn't what you would expect at this iteration depth then bad luck :)