fractal null move

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

fractal null move

Post by PK »

a day after publishing new hopeless/clericus I stumbled upon a couple of possible improvements.

after a couple of beers I tried to create new parameters for a late move reduction, to do some statistics and so on... it appears that LMR works best directly after a null move, where it is least likely to spoil something. the gain in node count was about 15%.

the explanation is simple - when a null move fails, the second player usually uses some sort of axe (capture, check, killer move) than subtle positional carving. so it's perfectly safe to reduce non-checking moves placed, say, in the bottom half of the move list. this way one effectively gets R = 2,5 (hence the name)

now I use a very crude approximation (an example doesn't contain information about the rest of extensions / reductionc )

MakeMove( Current );

if ( lastMoveWasNull )
and ( not inCheck )
and ( Current.ListLocation > 16 )
then NewDepth := NewDepth - PLY
else NewDepth := OldDepth;

Temp := Search( -Beta, -Alfa, NewDepth );

UnmakeMove( Current );

and that's all - no researching, no sophisticated conditions that may be needed elsewhere. what do You think about it?

pawel koziol
www.koziol.home.pl/clericus
Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: fractal null move

Post by Karlo Bala »

Hi :)
I'm not expert for LMR like Tord, but I'll try to say something.
I think that you push to many lines past horizon. LMR idea is not to reduce moves that are easily refuted by NULL move, but moves that are not dangerous and are not refuted by NULL move.
Best Regards,
Karlo Balla Jr.
brianr
Posts: 536
Joined: Thu Mar 09, 2006 3:01 pm

Re: fractal null move

Post by brianr »

Perhaps you meant "factional" null move, which has been around for years.

Fractals are something else entirely

http://en.wikipedia.org/wiki/Fractals


PS In the list of constraints, it looks like there must be more than 16 moves. This is often not the case. Instead, I would suggest testing the "other way": looking for potential moves to reduce after the first N moves have been tried.
PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: fractal null move

Post by PK »

well, I think that given the specific properties of a position after the opponent has made a null move (you played something supposed to be normal and he yells out: your position sucks so much that I don't need to do anything) LMR is safer than anywhere else. that's the whole point of my post.
Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: fractal null move

Post by Karlo Bala »

Yes, I know what you trying to say, but....
You don't know if NULL move is going to fail or not. In other words, you search some moves by doing NULL move with depth - 1 - R, and other moves with DEPTH - 1 - R - 1. Reducing so much in search depth could push lot of tactics past horizon. You can always prune more by increasing R in NULL move, but real problem is to find proper way to reduce moves that can't be pruned by NULL move.
Best Regards,
Karlo Balla Jr.
Tony

Re: fractal null move

Post by Tony »

Karlo Bala wrote:Yes, I know what you trying to say, but....
You don't know if NULL move is going to fail or not. In other words, you search some moves by doing NULL move with depth - 1 - R, and other moves with DEPTH - 1 - R - 1. Reducing so much in search depth could push lot of tactics past horizon. You can always prune more by increasing R in NULL move, but real problem is to find proper way to reduce moves that can't be pruned by NULL move.
Probably Pawel uses the Fruit method, only nullmoving when eval>beta. If so, chances that a non-capture,non-check (lmr candidates) can refute the nullmove are pretty low.

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

Re: fractal null move

Post by Karlo Bala »

If eval is much higher than beta (2-3 pawn, piece or more) then it is safe to look only tactical moves after NULL move, because quiet moves is not going to refute NULL move. If eval is close to beta (+/- pawn/4), then I think it is not safe to reduce to much positional moves after NULL move, because there is lot of chance that some of them will change eval of whole line.
Best Regards,
Karlo Balla Jr.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: fractal null move

Post by diep »

hi, Had seen you post this first in Polish mailing list,
seems trying to translate that posting was not really needed.

Whatever you say, i see it as that you are doing R=3 in many cases,
not R=2.5

So why not directly throw away LMR and use R=3 everywhere?

Vincent
PK wrote:a day after publishing new hopeless/clericus I stumbled upon a couple of possible improvements.

after a couple of beers I tried to create new parameters for a late move reduction, to do some statistics and so on... it appears that LMR works best directly after a null move, where it is least likely to spoil something. the gain in node count was about 15%.

the explanation is simple - when a null move fails, the second player usually uses some sort of axe (capture, check, killer move) than subtle positional carving. so it's perfectly safe to reduce non-checking moves placed, say, in the bottom half of the move list. this way one effectively gets R = 2,5 (hence the name)

now I use a very crude approximation (an example doesn't contain information about the rest of extensions / reductionc )

MakeMove( Current );

if ( lastMoveWasNull )
and ( not inCheck )
and ( Current.ListLocation > 16 )
then NewDepth := NewDepth - PLY
else NewDepth := OldDepth;

Temp := Search( -Beta, -Alfa, NewDepth );

UnmakeMove( Current );

and that's all - no researching, no sophisticated conditions that may be needed elsewhere. what do You think about it?

pawel koziol
www.koziol.home.pl/clericus
PK
Posts: 893
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: fractal null move

Post by PK »

good to hear that Polish mailing list is vieved by You!

actually I'm doing adaptative null move as well, so my "fractal dimension" is 2.5 or 3.5. Additional LMR is done only once on the path.

This may sound very speculative, but I am yet to find a position where program plays a different move because of that. null move search changes don't seem too critical.

If I find a position where it's not the case, I'll modify this technique or scrap it entirely.
Mangar

Re: fractal null move

Post by Mangar »

Hi Pawel,

I wonder why you gain that much nodes simply by reducing the moves searched after move 16 by depth = 1. It seems unlogic as those nodes shouldn´t need much nodes to search. Their depth allready have been reduced by 2 or 3 (nullmove), they are not in pv or any other cases where no nullmoves are done, they should be easily to refute ...


If you gain a measurable amount of nodes by reducing them I thing you have a bug or you tests are bad. Remember that by testing only a small amount of positions there is allways a huge random effect by search instabilities or ordering effects.

My advice: do not ask for opigions but make a valid statistic. Count the amount of false reductions at any node but nodes after nullmove and count then after a nullmove. Then calulate and compare the error rate.

I don´t think that it will be different than any position having the same poperties (that you test before making a nullmove).

Greeings Volker