Publius - public domain teaching engine

Discussion of chess software programming and technical issues.

Moderator: Ras

Bart Weststrate
Posts: 29
Joined: Fri Mar 18, 2016 3:34 pm

Re: Publius - public domain teaching engine

Post by Bart Weststrate »

PK wrote: Mon Oct 20, 2025 1:15 am Thanks for the kind words, Bart. I hope it takes much longer than in my previous engines to make this codebase write-only.
Pawel can you elaborate some more about this:

// Because pv-nodes don't use some pruning or
// reduction techniques, we cannot always reuse
// scores from the zero window nodes. Despite the
// same nominal depth, they represent more shallow,
// less precise search.
if (!isPv || (score > alpha && score < beta) ) {
if (!isRoot && !isExcluded)
return score;

I'm not sure if i get the concept. On !isPV (beta = alfa+1) nodes you can take any cutoff (lowerbound, upperbound, exact) and if PVnode you can only take the exact cutoff? Thanks in advance.
PK
Posts: 912
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: Publius - public domain teaching engine

Post by PK »

On !isPV (beta = alfa+1) nodes you can take any cutoff (lowerbound, upperbound, exact) and if PVnode you can only take the exact cutoff?
Precisely. In the pv-nodes Publius switchess off many pruning techniques and uses smaller late move reduction. This means I sannot seriously assume that the same nominal depth from different node type actually means the same depth.
Bart Weststrate
Posts: 29
Joined: Fri Mar 18, 2016 3:34 pm

Re: Publius - public domain teaching engine

Post by Bart Weststrate »

Thanks Pawel.
Bart Weststrate
Posts: 29
Joined: Fri Mar 18, 2016 3:34 pm

Re: Publius - public domain teaching engine

Post by Bart Weststrate »

Pawel, the more i think about is the more i think this doesn't make sense. Did you test this actually?
Or is this about a sudden structure in the Publius flow why you should do this?
Bart Weststrate
Posts: 29
Joined: Fri Mar 18, 2016 3:34 pm

Re: Publius - public domain teaching engine

Post by Bart Weststrate »

Actually it seems to be correct. After some serieus tests.
User avatar
hgm
Posts: 28413
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Publius - public domain teaching engine

Post by hgm »

PK wrote: Fri Oct 24, 2025 1:18 am
On !isPV (beta = alfa+1) nodes you can take any cutoff (lowerbound, upperbound, exact) and if PVnode you can only take the exact cutoff?
Precisely. In the pv-nodes Publius switchess off many pruning techniques and uses smaller late move reduction. This means I sannot seriously assume that the same nominal depth from different node type actually means the same depth.
I think this is all due to a design flaw considering the encoding of depth. In a modern search, with many reductions and extensions, the depth parameter has lost its original meaning of the number of ply to search, but has become a quality measure. So if non-PV nodes are of lower quality than PV nodes, the logical solution would be to control and record that through a somewhat lower value of the depth parameter, using fractional plies. E.g. the non-PV daughters of a PV node with d=10 could get d=8.5 instead of d=9 (which would be reserved for the PV daughter), if they were not further reduced in the node itself.

Then probing could happen in the usual way, and lead to cutoffs even for out-of-window probes that have sufficient quality (i.e. sufficiently large d).