There's a significant risk here of making the tree blow up so that you know you are in trouble, but can do nothing about it. Suppose you use your idea and search the PV and reduce the rest. Which will let you reach a significant depth. Then the PV drops, and now when you start searching for a best move, all your stuff is worthless for ordering. hash table entries are too shallow to use outright. You searched those trees to a reduced depth. Etc. I am still convinced that searching the PV deeper, just because it is the PV, is wrong.Uri Blass wrote:I know that is not always correctmetax wrote:I don't like this idea very much. Suppose you have a position with some good quiet positional moves and a tactical shot leadiung to immediate win. In the first iterations, one of the positional moves is the best, so it is a PV. In the next iterations a pretty accurate score for it is calculated. Then it is left to chance in which iteration you will find the tactical shot. For example, if depth 12 is needed to find the move:Uri Blass wrote:From my experience in correspondence games
I have many examples when rybka changed her mind after hours but in most of them it was only afrer the score of the pv move went down
something like:
1.xx 1.02/20
1.xx 0.94/21
1.yy 1.04/21
This suggest the following idea to add stability:
Every time that the score of the pv move does not go down in a new iteration reduce the depth of other root moves by one ply.
It means that in the first iteration when the score does not go down you can practically skip the rest of the moves becaue of hash tables.
Example:
Suppose you have the following scores
1.e4 0.10/11
1.e4 0.06/12(score went down so you search 1.d4 and other moves also to depth 12 and suppose you find nothing better than 1.e4)
1.e4 0.07/13
score did not go down
other moves are searched only to depth 12 so they are pruned based on hash tables.
When you get depth 14 you may have
1.e4 0.07/14
again score did not go down but now you cannot prune based on hash so you search other moves to depth 13
If a move fail high at depth 13 you make a research to depth 14 and only if it also fail high at depth 14 you change the main choice.
Uri
1. Positional (+0.20/10)
1. Positional (+0.25/11)
1. Positional (+0.31/12)
1. Positional (+0.38/13)
1. Tactical (+4.48/13)
The assumption 'if I don't get a lower score, the PV is probably the best move' is not fulfilled in tactical positions!
Every reduction can be wrong in part of the cases.
The point is that it may be more important in games to find better positional moves and not to find tactical wins.
The program may go one ply deeper so the score goes down and it may be enough for it to find a better positional move.
Uri
LMR is doing enough of this already...