When does a cut-node became an all-node?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: When does a cut-node became an all-node?

Post by Karlo Bala »

CUT node call ALL node

Code: Select all

novel_deepness = deepness - 2 + stretches - (4 + BSR (4 + sch));
	      if &#40;novel_deepness <= 1&#41;
		itog = -white_qsearching &#40;1 - notch, 0&#41;;
	      else if &#40;novel_deepness <= 7&#41;
		itog = -white_slide &#40;1 - notch, novel_deepness&#41;;
	      else
		itog = -white_all &#40;1 - notch, novel_deepness&#41;;
ALL node call CUT node

Code: Select all

novel_deepness = deepness - 2 + stretches - BSR &#40;1 + sch&#41;;
	      if &#40;novel_deepness <= 1&#41;
		itog = -white_qsearching &#40;1 - notch, 0&#41;;
	      else if &#40;novel_deepness <= 7&#41;
		itog = -white_slide &#40;1 - notch, novel_deepness&#41;;
	      else
		itog = -white_cut &#40;1 - notch, novel_deepness&#41;;
Best Regards,
Karlo Balla Jr.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: When does a cut-node became an all-node?

Post by Daniel Shawul »

Oh I see what you mean. So when a CUT node calls an ALL node it actually reduces more. Well I am astounded by this! It just doesn't make sense to me to reduce more at nodes where you expect fail highs. Maybe it tested well so I don't know their reason. Also when you expect fail high, you should delay reductions until you search enough moves to prove otherwise. For parallel search clearly you have to avoid CUT nodes ; LMR reductions and pruning usually follow the same line.
Do you also believe this is the right thing to do ? Why is everyone queit anyway ? :)
Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: When does a cut-node became an all-node?

Post by Karlo Bala »

Daniel Shawul wrote:Oh I see what you mean. So when a CUT node calls an ALL node it actually reduces more. Well I am astounded by this! It just doesn't make sense to me to reduce more at nodes where you expect fail highs. Maybe it tested well so I don't know their reason. Also when you expect fail high, you should delay reductions until you search enough moves to prove otherwise. For parallel search clearly you have to avoid CUT nodes ; LMR reductions and pruning usually follow the same line.
Do you also believe this is the right thing to do ? Why is everyone queit anyway ? :)
I see it this way...
If the first move fail, then if there is a good move the search will find it with a low depth. If there is no good move, you don't want to spend to much time on that node. I think it is a nice way to skip cut moves that are barely good, and find strong cut moves. It will pay of with bigger depths.
Best Regards,
Karlo Balla Jr.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: When does a cut-node became an all-node?

Post by Daniel Shawul »

I see it this way...
If the first move fail, then if there is a good move the search will find it with a low depth. If there is no good move, you don't want to spend to much time on that node. I think it is a nice way to skip cut moves that are barely good, and find strong cut moves. It will pay of with bigger depths.
I understand what you are saying but the motive for LMR is different. From chess wiki:

Code: Select all

Late Move Reductions &#40;LMR&#41;, or its version known as History Pruning and History Reductions &#91;1&#93; , save search by reducing moves that are ordered closer to the end of likely fail-low nodes &#40;ALL nodes &#58; my addition&#41;. Typically, most schemes search the first few moves &#40;say 3-4&#41; at full depth, then if no move fails high, many of the remaining moves are reduced in search depth. 
Now I don't argue that reducing more at CUT nodes (fail high nodes) do not have any benefits but it clearly is against the idea of LMR as stated above. I am sure many would do LMR with CUT/ALL nodes like I did it not like Rybka/Ipoo do it. So the Ippo way is more of an exception than the rule IMHO. It would be good to hear from others that do reductions differently at CUT and ALL nodes differently about their motives.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: When does a cut-node became an all-node?

Post by diep »

Daniel Shawul wrote:
I see it this way...
If the first move fail, then if there is a good move the search will find it with a low depth. If there is no good move, you don't want to spend to much time on that node. I think it is a nice way to skip cut moves that are barely good, and find strong cut moves. It will pay of with bigger depths.
I understand what you are saying but the motive for LMR is different. From chess wiki:

Code: Select all

Late Move Reductions &#40;LMR&#41;, or its version known as History Pruning and History Reductions &#91;1&#93; , save search by reducing moves that are ordered closer to the end of likely fail-low nodes &#40;ALL nodes &#58; my addition&#41;. Typically, most schemes search the first few moves &#40;say 3-4&#41; at full depth, then if no move fails high, many of the remaining moves are reduced in search depth. 
Now I don't argue that reducing more at CUT nodes (fail high nodes) do not have any benefits but it clearly is against the idea of LMR as stated above. I am sure many would do LMR with CUT/ALL nodes like I did it not like Rybka/Ipoo do it. So the Ippo way is more of an exception than the rule IMHO. It would be good to hear from others that do reductions differently at CUT and ALL nodes differently about their motives.
though it's trivial to limit/allow more at cutnodes with LMR, the first to say so if i remind well was me around 2005. I'm sure though it's a trivial idea. Interesting that it nowadays made it into wiki. Note that i'm no longer doing that. What i do nowadays is more similar to what Sune Fischer started doing in Frenzee, if he's still around that is.

The 2 ply reduction schemes are of course attractive to experiment with nowadays, yet i'll wait some to seriously do attempts there and improve other things first :)