mobility

Discussion of chess software programming and technical issues.

Moderator: Ras

FMonkman

mobility

Post by FMonkman »

Here's an idea for a mobility algorithm, wonder if this could work:

We all know counting legal moves tells little, but counting *playable* moves might tell us a lot more about, let's say, one side's position being under the kind of pressure that can lead to breakdown.

Suppose, after searching each move at a given node, the score returned (which with failsoft should be of some relevance?) is stored eg. replacing the value just used for move-ordering. Then, assuming all moves searched, these scores could perhaps be used to determine what proportion of the total were acceptably within reach of alpha..?

Off to bed.. :arrow:
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: mobility

Post by Michael Sherwin »

Save the number of playable moves to the opponents move at Ply - 1, but do not change the score. When the best move is determined for Ply - 1 then store the number of playable moves in response to that best move at Ply - 2 (Ply - 1 from where you are at now) and use that value to +/- the current move just searched at Ply - 2. Keep the +/- small to avoid excessive drift in the score.
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
FMonkman

Re: mobility

Post by FMonkman »

Michael Sherwin wrote:Save the number of playable moves to the opponents move at Ply - 1, but do not change the score. When the best move is determined for Ply - 1 then store the number of playable moves in response to that best move at Ply - 2 (Ply - 1 from where you are at now) and use that value to +/- the current move just searched at Ply - 2. Keep the +/- small to avoid excessive drift in the score.
Thanks Mike, that's certainly worth thinking about. I was kind of thinking about a low value as driving a singular extension, but factoring such into the score (especially if one could find a series of such positions for one side) would certainly be consistent with a good positional eval.

I'm hoping to try out some of these ideas on Glaurung, but only when I've finished some current re-writing of my Shatra program (an ancient Siberian chess/checkers variant, with a rule-set of astonishing complexity - also 100% tactical and 0% positional (eg. capturing is compulsory, even of the king), so ideas like the one above would be counterproductive to try - apologies for off-topic!) :)

Another idea I've wanted to try for a long time (Bob might remember my mentioning it back in the late 90s) is to monitor root moves for unexpected improvement as iterations deepen - the feeling from my hours spent watching multi-pv analysis of GM games is that there are signs coming from any good search that a certain move may be considerably better than expected (and more importantly improving), although the actual score may not have yet reached anything comparable with the pv move's). Actually Glaurung is ideal, as ValueByIteration is already some way towards the idea.

Anyone with more time on their hands is welcome to try either of these, though I hope to get round to them before, well, whenever...