Moderator: Andres Valverde
Dann: So I suspect you already have a method that reduces depth for positions that look less interesting
Uri: your english is not very good
Reinhard Scharnagl wrote:Hi Dann and Uri,Dann: So I suspect you already have a method that reduces depth for positions that look less interesting
indeed, that is where the name Smirf comes from. http://www.chessbox.de/Compu/schachsmirf_e.htmlUri: your english is not very good
Well, it try to explain myself in English but not always I am successfull with that, sorry.
There is a private test suite, which is put into an evaluating routine for every possible move from that position.
The experience has been, that the performance then was nearly the same. And - as you already have prosumed - I have got the impression doing test games for the result to produce slightly weaker moves.
Not at all there could be noticed by me an effect of reaching some plies more in depth.
So I concluded, that both approaches are concurring and not supplying each other. Therefore I asked for the conditions and demands concering the to be optimized search tree, which (besides of avoiding zugzwang positions) probably have to be fullfilled to make the nullmove heuristic work.
After those frustrating experiments I have deleted that small Nullmove chapter from Smirf's tree search and decided to follow alone that genuine approach.
Reinhard.
Note that most programs including movei have only exact score for the best move
If I understand correctly you claim that you do not search deeper when you add null move pruning
It seems illogical because you should be able to search deeper when you add pruning even if it is wrong pruning.
My experience is that null move usually works well in the middle game without special conditions.
Reinhard Scharnagl wrote:I tried two versions: one cutting one extra ply, the other cutting two extra plies. But the targeted pruning effect could not be seen.
Reinhard Scharnagl wrote:The logically explanation for this effect (so I conclude) is that there are nearly no prunings left for be cut off by the Nullmove heuristic. Or in other words: the genuine Smirf approach already has produced a very well pruned tree.
How does that reduction work?
/*
// Null Move pruning
if ( !GetPlySchach() && anz > 3
&& beta > -MATTWERT && beta < MATTWERT
) {
TZug zg;
zg.FullMove = 0;
DoMove(zg);
// bleibt der Gegner unter der beta-Schwelle?
value = -Bewerte(-beta, 1-beta, tiefe-2);
ReMove();
// ggf. Pruning
if (value >= beta) {
// Remis-Wert nicht ?ndern
if (value)
value = beta;
pL->E.minVal = value;
goto _EndeAktiv;
}
}
*/
a) because of that chapter is nearly pruning nothing, that estimations might be obsolete that moment for Smirf;Alessandro: check to avoid consecutive null moves
that is correct. But I already have had problems to accept the idea of R=2 (which seems to be right, looking at the decreased quality of answer moves). Thus I have not tried R=3 (and for other reasons, e.g. it would cause conflicts with my quiescence search).Uri: In that case you tested only null move with R=1 or R=2
Try at least R=2 and R=3 and even R=4
BTW, are you going to play at CCT7?
Sune Fischer wrote:Hi Reinhard,
I don't think you have to avoid doing two nullmoves in a row.
I get better results allowing that, and by induction, if it works a ply N it
should also work at ply N-R.
The problem is that I may look only 4 plies backward or more than it to detect repetition because I know that repetition cannot happen after 2 plies.
Reinhard Scharnagl wrote:I am not looking back along the game line. After deciding to expand a node, it will be locked within its cache entry and unlocked when done. If I will have to decide, whether a node has to be expanded, I will see when it might be locked already. That is the moment to answer with a zero evaluation.
Return to Programming and Technical Discussions
Users browsing this forum: No registered users and 10 guests