Two questions

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

jd1
Posts: 269
Joined: Wed Oct 24, 2012 2:07 am

Re: Two questions

Post by jd1 »

lucasart wrote:
jd1 wrote: Actually I am little confused - is there a difference between consecutive and recursive null-moves?
Null move search is recursive. However, I recommend you put an arbitrary limitation to it: prevent consecutive null moves. For example:
- OK: white plays a null move (depth=d), black plays a real move (depth=d-R), white plays a null move (depth=d-R-1), etc.
- not OK: white plays a null move (depth=d), black plays a null move (depth=d-R), etc.

I've never tried Vincent Diepeveen's double null move method, but somehow I'm very skeptical about it...
Thanks, that makes sense. Now we'll see whether it works in testing :) Toga currently has no limitation on consecutive null-moves since the eval >= beta term was removed and the tempo bonus added to eval.

Jerry
User avatar
hgm
Posts: 27796
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Two questions

Post by hgm »

jd1 wrote:- not OK: white plays a null move (depth=d), black plays a null move (depth=d-R), etc.
In micro-Max I search any number of null moves in a row, and it does not seem to hurt it significantly. (It does this because the null-move search doubles as check test, and it can be important to know whether you are in check even when eval < beta, because you could be stalemated and beta could be < 0.) With multiple null moves the reductions pile up, so although it might be a waste of time, it is hard to believe that it could ever be a significant waste of time.

In Shokidoki, which has a tempo bonus, I use the condition eval - BONUS >= beta.
ZirconiumX
Posts: 1334
Joined: Sun Jul 17, 2011 11:14 am

Re: Two questions

Post by ZirconiumX »

lucasart wrote:I've never tried Vincent Diepeveen's double null move method, but somehow I'm very skeptical about it...
Double null move is a method of detecting zugzwang. It relies on the null-move observation breaking down.

Say we do a single null-move (what you do) - in a zugzwang position you return a fail-high.

In a double null-move, you do them, and the last one fails high. Since we take the negative score of the null move the initial null-move fails low, and we continue searching normally. It's theoretically sound.

Matthew:out
Some believe in the almighty dollar.

I believe in the almighty printf statement.
jd1
Posts: 269
Joined: Wed Oct 24, 2012 2:07 am

Re: Two questions

Post by jd1 »

hgm wrote: In micro-Max I search any number of null moves in a row, and it does not seem to hurt it significantly. With multiple null moves the reductions pile up, so although it might be a waste of time, it is hard to believe that it could ever be a significant waste of time.
Thta's how Toga does it currently - any number of null moves in a row. Changing always seems to lose elo, however.

Jerry
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Two questions

Post by bob »

jd1 wrote:
hgm wrote: In micro-Max I search any number of null moves in a row, and it does not seem to hurt it significantly. With multiple null moves the reductions pile up, so although it might be a waste of time, it is hard to believe that it could ever be a significant waste of time.
Thta's how Toga does it currently - any number of null moves in a row. Changing always seems to lose elo, however.

Jerry
I'll make this a subject of a test run. To be clear, in Crafty, when I do a null-move search I always call search with a flag that says "no null next ply only". That needs to be changed. Anything else you do that is interesting? Such as letting nulls go deep into the endgame rather than turning them off when zugzwang becomes more common (Vincent D uses the second null to refute the first and supposedly avoid zugzwang problems. Never has worked for me, but I will give this a try, just to see if it is a positive, negative, or equal type of thing....
jd1
Posts: 269
Joined: Wed Oct 24, 2012 2:07 am

Re: Two questions

Post by jd1 »

bob wrote:
jd1 wrote:
hgm wrote: In micro-Max I search any number of null moves in a row, and it does not seem to hurt it significantly. With multiple null moves the reductions pile up, so although it might be a waste of time, it is hard to believe that it could ever be a significant waste of time.
Thta's how Toga does it currently - any number of null moves in a row. Changing always seems to lose elo, however.

Jerry
I'll make this a subject of a test run. To be clear, in Crafty, when I do a null-move search I always call search with a flag that says "no null next ply only". That needs to be changed. Anything else you do that is interesting? Such as letting nulls go deep into the endgame rather than turning them off when zugzwang becomes more common (Vincent D uses the second null to refute the first and supposedly avoid zugzwang problems. Never has worked for me, but I will give this a try, just to see if it is a positive, negative, or equal type of thing....
Thanks! It will be very interesting to see the results. I turn off null-move when entering a king and pawn endgame.

Jerry
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Two questions

Post by bob »

jd1 wrote:
bob wrote:
jd1 wrote:
hgm wrote: In micro-Max I search any number of null moves in a row, and it does not seem to hurt it significantly. With multiple null moves the reductions pile up, so although it might be a waste of time, it is hard to believe that it could ever be a significant waste of time.
Thta's how Toga does it currently - any number of null moves in a row. Changing always seems to lose elo, however.

Jerry
I'll make this a subject of a test run. To be clear, in Crafty, when I do a null-move search I always call search with a flag that says "no null next ply only". That needs to be changed. Anything else you do that is interesting? Such as letting nulls go deep into the endgame rather than turning them off when zugzwang becomes more common (Vincent D uses the second null to refute the first and supposedly avoid zugzwang problems. Never has worked for me, but I will give this a try, just to see if it is a positive, negative, or equal type of thing....
Thanks! It will be very interesting to see the results. I turn off null-move when entering a king and pawn endgame.

Jerry
I'll do that. Might take a day or two as I have some other test queued up at the moment...
op12no2
Posts: 490
Joined: Tue Feb 04, 2014 12:25 pm
Full name: Colin Jenkins

Re: Two questions

Post by op12no2 »

bob wrote:
jd1 wrote:
bob wrote:
jd1 wrote:
hgm wrote: In micro-Max I search any number of null moves in a row, and it does not seem to hurt it significantly. With multiple null moves the reductions pile up, so although it might be a waste of time, it is hard to believe that it could ever be a significant waste of time.
Thta's how Toga does it currently - any number of null moves in a row. Changing always seems to lose elo, however.

Jerry
I'll make this a subject of a test run. To be clear, in Crafty, when I do a null-move search I always call search with a flag that says "no null next ply only". That needs to be changed. Anything else you do that is interesting? Such as letting nulls go deep into the endgame rather than turning them off when zugzwang becomes more common (Vincent D uses the second null to refute the first and supposedly avoid zugzwang problems. Never has worked for me, but I will give this a try, just to see if it is a positive, negative, or equal type of thing....
Thanks! It will be very interesting to see the results. I turn off null-move when entering a king and pawn endgame.

Jerry
I'll do that. Might take a day or two as I have some other test queued up at the moment...
It's been a long test :) Do you remember the results?

I was looking at the Fruit 2.1 code today because I'm convinced I have a search problem (newish engine developer here) and could not figure out how it (Fruit) was preventing successive null moves, but this thread made me realise it's implicit in eval() > beta. But, if you remove that, a la Toga, then it's going to just rip through to a QSearch - how can that be useful...?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Two questions

Post by bob »

jd1 wrote:Hi,

Just a couple of quick questions, firstly, should IID be done at non-PV nodes (in particular Cut-Nodes)? If so, how much elo was this worth for you?

Secondly, is recursive null-move (i.e. the null-move search tries a second null-move) ok or not?

Thanks a lot!
Jerry
You have to be more specific about null-move. Most everybody uses recursive null move, but almost everybody excludes two consecutive null-moves. There is a difference. The classic definition of recursive null move simply says that you can have more than one null-move in a single path, but not two consecutive null-moves.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Two questions

Post by Sven »

bob wrote:
jd1 wrote:Hi,

Just a couple of quick questions, firstly, should IID be done at non-PV nodes (in particular Cut-Nodes)? If so, how much elo was this worth for you?

Secondly, is recursive null-move (i.e. the null-move search tries a second null-move) ok or not?

Thanks a lot!
Jerry
You have to be more specific about null-move. Most everybody uses recursive null move, but almost everybody excludes two consecutive null-moves. There is a difference. The classic definition of recursive null move simply says that you can have more than one null-move in a single path, but not two consecutive null-moves.
You have probably missed Colin's post that reactivated a 2 years old thread by asking a question to you.