Computer Chess Club Archives


Search

Terms

Messages

Subject: Mobility in Chess Evaluation Function at terminal-nodes

Author: Stuart Cracraft

Date: 09:31:13 12/28/05


Hi - I ran a small experiment last night.

Many people don't put mobility into their evaluation function because of the
heavy expense of a move-gen at the terminal node.

But I advocate to them that they should do experiments to convince themselves
that the result on their test suites is not much worse and the program plays
much better for the positional gain they get from mobility - as you know, J.
Schaefer's experiments showed mobility as the #2 term corresponding to game
result, after material, with king safety being third.)

I added mobility to my evaluation function (the difference between a genmv()
for the side on move less the same for the side not on move, without sorting
the resulting movelist and without scoring it with SEE, to save at least
some time over the standard genmv() I do.

I put that under a compile time flag and added a command-line parameter for how
much of a bonus to give the mobility. For example, 20 moves for white 10 moves
for black equals 10. A mobility bonus of 1 would make that equal to +10 for
white. Of 2, would make it +20. etc.

Then I ran an overnight run of the mobility bonus multipliers between
1 and 18 inclusive from a calling script that varied the mobility
bonus and got this for a test suite:

$ egrep '/300 ha=' LOG*
- 7.52/20.62 84% 253/300 ha=28 1190.91 167107696 557026/4/140319
240474/382329/1327880/5513157/59240532/608225/0/1285006
- 7.38/20.12 83% 251/300 ha=29 1195.00 138130432 460435/4/115590
210266/323338/1162457/4534280/49317756/499882/0/1049585
- 7.49/20.55 85% 257/300 ha=28 1192.64 164995520 549985/4/138345
234089/379838/1332107/5477857/58841816/599694/0/1302738
- 7.51/20.49 86% 259/300 ha=28 1189.92 166282704 554276/4/139743
238989/381854/1520395/5548212/59362600/610289/0/1331883
- 7.51/20.54 84% 253/300 ha=27 1190.88 166756768 555856/4/140028
241290/384370/1373972/5559856/59666496/611841/0/1351587
- 7.50/20.56 84% 254/300 ha=27 1189.29 166566272 555221/4/140056
239925/382465/1419681/5577634/59651836/609615/0/1342258
- 7.50/20.43 84% 253/300 ha=28 1190.82 166441136 554804/4/139770
236177/381435/1503069/5576327/59794100/610294/0/1333488
- 7.49/20.38 84% 253/300 ha=28 1191.24 166571712 555239/4/139830
234648/382605/1504945/5580403/59990952/612993/0/1334129
- 7.49/20.40 84% 253/300 ha=28 1189.92 165183184 550611/4/138819
235536/380277/1499795/5543228/59542420/609608/0/1348145
- 7.49/20.35 84% 253/300 ha=28 1189.45 166587152 555291/4/140054
234568/385026/1562216/5581740/60182484/610646/0/1359775
- 7.48/20.36 85% 255/300 ha=28 1190.17 166913296 556378/4/140243
235821/385011/1485762/5581325/60218688/608177/0/1349138
- 7.49/20.36 85% 255/300 ha=27 1190.30 166767520 555892/4/140106
239741/384832/1438800/5581739/60256548/611122/0/1368462
- 7.48/20.34 84% 253/300 ha=27 1189.90 166946240 556487/4/140303
239484/387104/1461428/5586449/60395188/609393/0/1370506
- 7.48/20.34 85% 257/300 ha=28 1190.07 166473936 554913/4/139886
237929/385998/1391489/5572576/60288720/606761/0/1356362
- 7.49/20.32 85% 255/300 ha=28 1190.03 165876304 552921/4/139388
235108/383606/1401601/5542329/60103648/603794/0/1347724
- 7.47/20.29 85% 256/300 ha=27 1191.94 166318352 554395/4/139535
234834/385503/1413928/5590048/60356304/612689/0/1349921
- 7.48/20.30 84% 254/300 ha=27 1191.20 167219648 557399/4/140379
238313/383320/1392053/5608731/60544580/613259/0/1375934
- 7.49/20.23 85% 256/300 ha=27 1191.18 166792800 555976/4/140024
239082/383047/1345213/5596612/60508488/611597/0/1370023

Stuart Cracraft@CRACRAFT ~/src/td

Each line represents a result at WAC. The best result came at mob=4 (i.e.
the 4th line above) but the results are not so far different as to be a grave
concern. The other interesting thing is that the program without any mobility
function scores 262/300. So the score of bonus=4 which is the 4th line above is
about the same (only a 1% difference.) And all of these are within an small
enough difference that the whole result is in question. Nothing is clearly
better.

I will expand the test tonight to search for mobility bonus multipliers of 1, 5,
10, 15, 20, 25, etc.

My program is milli-pawn based so the result argues for a mobility bonus
multiplier of 4 with typical pc/sq terms typically ranging from single digit to
no more than 40. A mobility difference of 10 between the two sides, with a
multiplier of 4 would be equal to approximately the maximum positional bonus as
currently set.

I know that many will object to this as suite-based cherry-picking instead of
ICC-based play against real opponents. I do not want them to see it as
either-or but a combination of the two with only one part semi-completed.

Others will see a score of 262/300 on WAC and ridicule the result as "immature"
but for them I would encourage them to publish in reply their own experience
with mobility and avoid the critique-without-improvement approach.

Thanks,

Stuart



This page took 0.03 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.