Futility pruning, Ext futility pruning and Limited Razoring.

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Edsel Apostol
Posts: 803
Joined: Mon Jul 17, 2006 5:53 am
Full name: Edsel Apostol

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by Edsel Apostol »

bob wrote:
jesper_nielsen wrote:Hi again!

Even bigger gain with even lower margins.

Code: Select all

400, 600, 1000 =>   0 Elo
200, 300, 500  => +19 Elo
100, 150, 250  => +41 Elo
A very surprising result, to me at least.

Kind regards,
Jesper
Shouldn't be surprising. If you had looked at Crafty, you would find this:

125
125
300
300

(I do this in the last 4 plies, not just last 3). And I can tell you those numbers were _not_ randomly chosen. :)
Latest Crafty is somewhat strong here in my tests and is around twice faster NPS wise than TL, though it doesn't show some PV sometimes.

Is this new futility implementation the reason for a big boost in Crafty's strength?

By the way, I'm pruning up to depth 9 in TL. My implementation is somewhat untuned due to lack of testing but I think it has great potential.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by bob »

Edsel Apostol wrote:
bob wrote:
jesper_nielsen wrote:Hi again!

Even bigger gain with even lower margins.

Code: Select all

400, 600, 1000 =>   0 Elo
200, 300, 500  => +19 Elo
100, 150, 250  => +41 Elo
A very surprising result, to me at least.

Kind regards,
Jesper
Shouldn't be surprising. If you had looked at Crafty, you would find this:

125
125
300
300

(I do this in the last 4 plies, not just last 3). And I can tell you those numbers were _not_ randomly chosen. :)
Latest Crafty is somewhat strong here in my tests and is around twice faster NPS wise than TL, though it doesn't show some PV sometimes.

Is this new futility implementation the reason for a big boost in Crafty's strength?

By the way, I'm pruning up to depth 9 in TL. My implementation is somewhat untuned due to lack of testing but I think it has great potential.
I believe the new enhanced futility pruning is worth about 12 Elo over the last version. The change to null-move suggested by Cleveland was another 5-10. It was really an evolutionary process, not anything revolutionary. The new time overflow was also a significant boost...
metax
Posts: 344
Joined: Wed Sep 23, 2009 5:56 pm
Location: Germany

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by metax »

bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by jwes »

metax wrote:
bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
Not doing null-move when the depth remaining is 1.
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by Michael Sherwin »

jwes wrote:
metax wrote:
bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
Not doing null-move when the depth remaining is 1.
Just one more example of something that I have posted about years ago, that has been in RomiChess for years and that has been migrated to Crafty and other engins. And everyone else gets the credit for it.

I posted that history tables were useless for move ordering shortly after RomiChess was first released. Later they were dropped from Crafty.

I posted that IID is of no benefit. Later it was removed from Crafty.

I posted way before Bob that LMR as done in Fruit did not add to Fruits strength. I was pooh poohed.

There were a few other things that made it into Crafty or was dropped from Crafty sometimes years after I had posted about them. If I had the time I would go back through all my post and catalog them.

I posted many times that various ideas were left in engines just because they did not seem to hurt. Much later Bob post the same conclusion.

Yet Bob posted once at the old winboard site that he did not believe that there was any possibility that there was anything of value that he could learn from me concerning chess programming. :roll:

But that is just how the world works!
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
adieguez

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by adieguez »

Michael Sherwin wrote:
jwes wrote:
metax wrote:
bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
Not doing null-move when the depth remaining is 1.
Just one more example of something that I have posted about years ago, that has been in RomiChess for years and that has been migrated to Crafty and other engins....
That's not a good example, using nullmove at depth one was probably very special to crafty. One of the things I would expect to not do in a first implementation withuout even looking at anyone sugestions.
metax
Posts: 344
Joined: Wed Sep 23, 2009 5:56 pm
Location: Germany

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by metax »

jwes wrote:Not doing null-move when the depth remaining is 1.
In ChessMind I never did null-move at pre-frontier nodes from the beginning on...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by bob »

Michael Sherwin wrote:
jwes wrote:
metax wrote:
bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
Not doing null-move when the depth remaining is 1.
Just one more example of something that I have posted about years ago, that has been in RomiChess for years and that has been migrated to Crafty and other engins. And everyone else gets the credit for it.

I posted that history tables were useless for move ordering shortly after RomiChess was first released. Later they were dropped from Crafty.

History for _ordering_ has gone from Crafty since a 20.x version which is 3-4 years old at least. It was _not_ bad or useless. The effect was minimal and in cleaning up the code, we slightly modified killers and hashing and found we could do without it.

I posted that IID is of no benefit. Later it was removed from Crafty.
Again, it is not of "no benefit". It just adds some quirks to hashing that I wanted to get rid of, rather than working around them. There are circimstances where it is pretty good.

I posted way before Bob that LMR as done in Fruit did not add to Fruits strength. I was pooh poohed.

There you are wrong. LMR in fruit _does_ work. But the history part of it is completely ineffective.

There were a few other things that made it into Crafty or was dropped from Crafty sometimes years after I had posted about them. If I had the time I would go back through all my post and catalog them.

I posted many times that various ideas were left in engines just because they did not seem to hurt. Much later Bob post the same conclusion.

Yet Bob posted once at the old winboard site that he did not believe that there was any possibility that there was anything of value that he could learn from me concerning chess programming. :roll:
Please try again, and provide the _exact_ quote. I believe I commented about RomiChess, where you were going on and on about how it would _eventually_ use its learning to beat crafty. It never did, because that type of learning is simply flawed.

But that is just how the world works!
Somewhat "ego-centric" today, are we???
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by bob »

adieguez wrote:
Michael Sherwin wrote:
jwes wrote:
metax wrote:
bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
Not doing null-move when the depth remaining is 1.
Just one more example of something that I have posted about years ago, that has been in RomiChess for years and that has been migrated to Crafty and other engins....
That's not a good example, using nullmove at depth one was probably very special to crafty. One of the things I would expect to not do in a first implementation withuout even looking at anyone sugestions.
It was beneficial until I added checks into the q-search. Both Bruce Moreland and I had experimented with this back around 1996 or so, but when this was suggested recently and I re-tested, it made a difference in speed without sacrificing anything.
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Futility pruning, Ext futility pruning and Limited Razor

Post by Michael Sherwin »

bob wrote:
Michael Sherwin wrote:
jwes wrote:
metax wrote:
bob wrote:The change to null-move suggested by Cleveland was another 5-10.
Which change?
Not doing null-move when the depth remaining is 1.
Just one more example of something that I have posted about years ago, that has been in RomiChess for years and that has been migrated to Crafty and other engins. And everyone else gets the credit for it.

I posted that history tables were useless for move ordering shortly after RomiChess was first released. Later they were dropped from Crafty.

History for _ordering_ has gone from Crafty since a 20.x version which is 3-4 years old at least. It was _not_ bad or useless. The effect was minimal and in cleaning up the code, we slightly modified killers and hashing and found we could do without it.

*****************************
RomiChess is older than 3-4 years.
*****************************

I posted that IID is of no benefit. Later it was removed from Crafty.
Again, it is not of "no benefit". It just adds some quirks to hashing that I wanted to get rid of, rather than working around them. There are circimstances where it is pretty good.

*************************************************************
There are circumstances when generating a random move to play may be pretty good. But, until you work around the problems of IID and the hash, and then cluster test it, there is no acceptable proof that it is of any use.
*************************************************************

I posted way before Bob that LMR as done in Fruit did not add to Fruits strength. I was pooh poohed.

There you are wrong. LMR in fruit _does_ work. But the history part of it is completely ineffective.

*************************************************************
I removed LMR from Fruit 2.1 and it did not loose any strength in my test.
*************************************************************

There were a few other things that made it into Crafty or was dropped from Crafty sometimes years after I had posted about them. If I had the time I would go back through all my post and catalog them.

I posted many times that various ideas were left in engines just because they did not seem to hurt. Much later Bob post the same conclusion.

Yet Bob posted once at the old winboard site that he did not believe that there was any possibility that there was anything of value that he could learn from me concerning chess programming. :roll:
Please try again, and provide the _exact_ quote. I believe I commented about RomiChess, where you were going on and on about how it would _eventually_ use its learning to beat crafty. It never did, because that type of learning is simply flawed.

*************************************************************
Well I am not going to bother, but we were not talking about learning at that time. My comment to you was something like, 'no wonder Crafty is falling out from among the top engines since you are not willing to explore
the ideas from new open source engines. So, there is not possibly anything you could learn from me or any other new guy on the block.
************************************************************
************************************************************
For what my learning was intended for--human/engine sparring--it is not flawed. It works perfectly!
***********************************************************

But that is just how the world works!
Somewhat "ego-centric" today, are we???

************************************************************
Not really. Just frustrated and wondering why I bother when all my ideas are crap.
***********************************************************
Going on vacation now.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through