An idea for move ordering at the root

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

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

Re: Subtree node counts as an ordering heuristic

Post by bob »

sje wrote:I've tried using subtree node counts as an ordering heuristic, and while it may have helped slightly, I recall seeing lots of oscillation from one iteration to the next which probably wasn't all that good.

With high resolution CPU usage clock system calls available nowadays, perhaps using processor usage instead of node counts might be a better approach.
I don't think either works. With the reductions, null-move search, forward pruning, etc, the node counts almost are meaningless. I spent a couple of months working on that issue a while back, and since I have the old Cray Blitz source running, I compared it to crafty. CB had a rational node count that made ordering useful. Crafty's node counts are almost random numbers. A move that will become best next iteration might have a big node count this iteration, a small node count, or an average node count. I could not find any correlation at all.

I was trying to take Hsu's "panic time" concept and come up with a working approach that recognized when moves were "hard" or "easy" before they failed low (or high). Couldn't find anything dealing with node counts that worked at all, and I tried a hundred different approaches at least...
jdart
Posts: 4368
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: An idea for move ordering at the root

Post by jdart »

No, the window extends below the PV score-1 (unlike a normal 0 window search), so you don't just get faillows.

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

Re: An idea for move ordering at the root

Post by bob »

jdart wrote:No, the window extends below the PV score-1 (unlike a normal 0 window search), so you don't just get faillows.

--Jon
OK, you didn't mention that, just "not using PVS window" which suggested that you run beta higher than normal, but not alpha...

I don't think any of that works very well, however. If you use normal PVS and move any fail-high moves to the front, the good moves collect there anyway. a shallow eval backed up doesn't really help with ordering for deep searches since they see so much more...