It costs you some time. (3) is easier to search than (4). Otherwise, there is no real advantage except for the time lost.JVMerlino wrote:In Myrddin I skip (3) above, and I couldn't begin to say if it's better or worse because honestly I never considered adding it. Am I missing something important leaving it out?hgm wrote:I think he means the interaction between PVS and LMR:
(1) Search at reduced depth with null window
(2) If (1) fails high, re-search with open window at reduced depth
(3) If (2) fails high, re-search with null window at full depth
(4) if (3) fails high, re-search with open window at full depth
jm
variable reductions
Moderators: hgm, Rebel, chrisw
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: variable reductions
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: variable reductions
For me it was the opposite (omitting the null-window research scored worse on my cluster testing). If the reduced search fails high, it is faster to search with normal depth but using null-window. Most of the time, this fails low and we forget the process, the reduced depth just hid something that the deeper search sees.jdart wrote:I don't do this. If the reduced search fails high, it is re-searched with both reduction removed and with an upper bound of beta.bob wrote: That's not the "effect" I am concerned about. I am concerned with a later move failing high at the root (on the reduced search). Then failing high again on the non-reduced search. Then coming back with a LOWER score on the final re-search where beta has been relaxed.
Every time I have tested a two-stage re-search strategy it has scored worse, even though it seems like a plausible idea.
--Jon
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: variable reductions
For the record, LMR at root works, and is effective. If it is good at ply=2, why not at ply=1? Ply=1 also has "lousy moves" near the end of the list.tpetzke wrote:I don't do LMR at the root. I just do a scout search for the moves beyond the first. If it fails high, I research with an open window and only if it still increases alpha, it is a new best move.
Thomas...
-
- Posts: 27808
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: variable reductions
I guess it depends a lot on how stable your search is. That taking away the reduction will cause the score to change is normal, but that opening the window will turn the fail high into a fail low can be pretty unlikely if your search is quite stable.
-
- Posts: 3232
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: variable reductions
Complety agree. I never understood why people always want to treat the root node differently. I use the same search function for all kinds of nodes, and view the root node like any other PV node.bob wrote:For the record, LMR at root works, and is effective. If it is good at ply=2, why not at ply=1? Ply=1 also has "lousy moves" near the end of the list.tpetzke wrote:I don't do LMR at the root. I just do a scout search for the moves beyond the first. If it fails high, I research with an open window and only if it still increases alpha, it is a new best move.
Thomas...
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: variable reductions
In the root node you certainly don't have a fail high or fail low so you have exact values for all moves unless there is a check mate. But if you use LMR at the root the values are computed at different levels.lucasart wrote:Complety agree. I never understood why people always want to treat the root node differently. I use the same search function for all kinds of nodes, and view the root node like any other PV node.bob wrote:For the record, LMR at root works, and is effective. If it is good at ply=2, why not at ply=1? Ply=1 also has "lousy moves" near the end of the list.tpetzke wrote:I don't do LMR at the root. I just do a scout search for the moves beyond the first. If it fails high, I research with an open window and only if it still increases alpha, it is a new best move.
Thomas...
At the root they do aspiration search. I don't know it that gives profit.
Futility pruning and null move makes no sense in the root node.
-
- Posts: 27808
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: variable reductions
Most moves at the root actually do fail low, as they cannot beat the first move, which increased alpha to its score. So they won't have exact scores. They will only have upper bounds.
And yes, these upper bounds will be computed at different levels, when you use LMR. That is precisely why you do it. Silly moves do not deserve as much effort as plausible moves, because the chances that such a search will turn up anything that will avert the fail low are very, very low. So searching them is mostly a waste of time. Time that then is deducted from searching the plausible moves.
And yes, these upper bounds will be computed at different levels, when you use LMR. That is precisely why you do it. Silly moves do not deserve as much effort as plausible moves, because the chances that such a search will turn up anything that will avert the fail low are very, very low. So searching them is mostly a waste of time. Time that then is deducted from searching the plausible moves.
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: variable reductions
Ok I forgot at the root you start with a lower bound -infinity but after the first move that has already changed.
Perhaps doing only minimax or aspiration search at the root is too costly but you get the best move ordering.
Perhaps doing only minimax or aspiration search at the root is too costly but you get the best move ordering.
-
- Posts: 27808
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: variable reductions
But it is only relevant to have the best ordering in order to save time on the later moves. Not saving time to get a better ordering is throwing away the baby with the bathwater...
-
- Posts: 686
- Joined: Thu Mar 03, 2011 4:57 pm
- Location: Germany
Re: variable reductions
So far I had it out because I don't know how good my root move list is ordered. There might be lousy moves at the end of the list, so might be good moves. In the inner nodes I have killers and counter moves and history to order the quiet moves a bit. I don't have that at the root.For the record, LMR at root works, and is effective. If it is good at ply=2, why not at ply=1? Ply=1 also has "lousy moves" near the end of the list.
I do the usual stuff for the captures and also moves that were best once are maintained at the top spots. They might become good again. But beyond that the list is more or less in the order the moves were generated.
So I have no reason to believe that move 20 in the list is any better than move 30, so why reduce move 30 but not 20.
In the past I maintained fail high counters for each root move and ordered the list with them but it was not really worth the effort. So I removed it.