Conceptual question on aspiration windows

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

MonteCarlo
Posts: 188
Joined: Sun Dec 25, 2016 4:59 pm

Conceptual question on aspiration windows

Post by MonteCarlo »

I had a quick general question about aspiration windows and the improvement they provide over alpha-beta with a full window.

Does search with aspiration windows only improve over alpha-beta with a full window if move ordering for the latter is not perfect?

I've always just assumed the narrower window cut off more nodes, period, but the other day I started trying to come up with example trees where aspiration windows improved over alpha beta with a full window and perfect move ordering, and couldn't.

I'm probably missing something obvious, but I thought I'd ask here.

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

Re: Conceptual question on aspiration windows

Post by hgm »

Indeed, with perfect move ordering aspiratio (or PVS, which is a sort of interal auto-aspiration) gains you nothing at all. It is only a device to ameliorate the impact of poor move ordering.

I have always had the feeling that it is a rather blunt tool, tryig to do something from the root which could be done more subtly in every (PV) node. Basically you wat to cover yourself from a situation where the score of a hash move drops eormously, and that the search then starts to work very hard to also push the other moves below this new score (for which he existing cut moves in their sub-trees were sorely inadequate), only to discover after it has done that to some dozen that it has an alternative move that scored early as high as the move that flunked out. With aspiration you sort of anticipate that, not going to great lengths pushing down the score of other moves all the way to that of the first (but just by the width of the aspiration window), gambling on it that one of them will score above that.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Conceptual question on aspiration windows

Post by Sven »

hgm wrote:Indeed, with perfect move ordering aspiratio (or PVS, which is a sort of interal auto-aspiration) gains you nothing at all. It is only a device to ameliorate the impact of poor move ordering.
I think that is wrong, at least for an engine with any kind of pruning. Even with perfect move ordering aspiration windows can be a gain since you usually get smaller trees than without aspiration windows by pruning more frequently on extreme scores. The amount of success of aspiration windows seems to depend more on how often you need to do a research after failing high or low at the root. But that is not related much to move ordering.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Conceptual question on aspiration windows

Post by hgm »

No. You only get smaller trees when the move ordering is not perfect. In PVS this is very easy to see: the first branch you search is the PV, and any side branch is then searched with a null window, and will fail low against it. The null window is at the PV score, which should lie within the aspiration window in order not to create an unecessary fail so that the window would actually hurt you. If the PVS null window is inside the aspiration window, the limits of the latter are never used anywhere.
MonteCarlo
Posts: 188
Joined: Sun Dec 25, 2016 4:59 pm

Re: Conceptual question on aspiration windows

Post by MonteCarlo »

Ok, that makes good sense.

Thanks much for the replies!
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Conceptual question on aspiration windows

Post by D Sceviour »

hgm wrote:I have always had the feeling that it is a rather blunt tool, trying to do something from the root which could be done more subtly in every (PV) node.
Does aspiration search conflict or duplicate a PVS search? Many engines use both aspiration and PVS. Here are some interesting results for comparison. For a depth of 12 from the root position, the following nodes were counted with aspiration and PVS turned on/off. The results conclude that PVS seems useless when combined with aspiration and it be would nice to compare results from a different engine.

Code: Select all

Search Iteration =  12

ASPIRE on PVS off
Total Nodes =       3167490

ASPIRE on PVS on
Total Nodes =       3167470

ASPIRE off PVS on
Total Nodes =       4002109

ASPIRE off PVS off
Total Nodes =       8470410
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Conceptual question on aspiration windows

Post by D Sceviour »

D Sceviour wrote:
hgm wrote:I have always had the feeling that it is a rather blunt tool, trying to do something from the root which could be done more subtly in every (PV) node.
Does aspiration search conflict or duplicate a PVS search? Many engines use both aspiration and PVS. Here are some interesting results for comparison. For a depth of 12 from the root position, the following nodes were counted with aspiration and PVS turned on/off. The results conclude that PVS seems useless when combined with aspiration and it be would nice to compare results from a different engine.

Code: Select all

Search Iteration =  12

ASPIRE on PVS off
Total Nodes =       3167490

ASPIRE on PVS on
Total Nodes =       3167470

ASPIRE off PVS on
Total Nodes =       4002109

ASPIRE off PVS off
Total Nodes =       8470410
Post script fix: There is a mistake. After re-testing the data the results should read:

Code: Select all

ASPIRE on PVS on
Total Nodes =       3142999

ASPIRE on PVS off
Total Nodes =       3167490

ASPIRE off PVS on
Total Nodes =       4002109

ASPIRE off PVS off
Total Nodes =       8470410
:oops:
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Conceptual question on aspiration windows

Post by Sven »

Maybe this test should be repeated for a variety of different positions, not just the root position.