Variable Material Values

Archive of the old Parsimony forum. Some messages couldn't be restored. Limitations: Search for authors does not work, Parsimony specific formats do not work, threaded view does not work properly. Posting is disabled.

Variable Material Values

Postby B M Schaeffer » 13 May 2004, 03:42

Geschrieben von:/Posted by: B M Schaeffer at 13. May 2004 04:42:

I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com
B M Schaeffer
 

Re: Variable Material Values

Postby Richard Pijl » 13 May 2004, 12:59

Geschrieben von:/Posted by: Richard Pijl at 13 May 2004 13:59:23:
Als Antwort auf:/In reply to: Variable Material Values geschrieben von:/posted by: B M Schaeffer at 13. May 2004 04:42:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com
I suppose most programs have bonusses/penalties for pieces based on various characteristics. Things like:
- bishops pair
- increasing value for pawns in the endgame
- penalties/bonusses for bishops/knights in closed positions
- bonus for bishops in endgame with pawns on both sides
- several uneven material cases (see also an article by IM Larry Kaufman on Dan Heisman's homepage: http://mywebpages.comcast.net/danheisma ... alance.htm)
- etc...
Richard.
Richard Pijl
 

Re: Variable Material Values

Postby Volker Annuss » 13 May 2004, 20:05

Geschrieben von:/Posted by: Volker Annuss at 13 May 2004 21:05:55:
Als Antwort auf:/In reply to: Variable Material Values geschrieben von:/posted by: B M Schaeffer at 13. May 2004 04:42:

For the next version of my engine Hermann I created a table with gives the score from different material.
It looks like this:
QRBNP QRBNP games score
12228 12227 1751 48.78%
01100 01001 218 56.91%
00001 00000 670 76.64%
The first line means: If player one has all pieces from the start position and player two has lost one pawn, then player one can ecpect a score of 48,78%. This line is made from 1751 games. This is one of the surprising results I got. The player with more material gets the lower score.
The second line gives the score for R+B vs. R+P and the last line the score for K+P vs. K.
Of course the complete table is much larger and there are many lines that come from very few games, so they are not statistically significant.
It would be fine to have only quiet positions in the table, but I cannot test them with a quiecence search. I would have do make assumptions on the material value for that, but the material value is what I want to find out. So only positions (better: material combinations) are used where there was no capture for at least three moves. Checks were ignored for that table, but I will use them in future to get a better approximation to quiecence.
There are gaps in the table that have to be filled with reasonable values, and reasonable values must be found for the lines that come from only a few games.
The score must be translated to a material evaluation value. I have a concept for all that. I also had an experimental version of Hermann with a material evaluation that used these ideas. It did not play better but it also did not play much worse than the version with the new material evaluation switched off.
There is much to do to make this work good. I started with a new job this month, so I have not much time to make this work. It will take some months and its not 100% sure that it will be successful.
Volker



Hermann
Volker Annuss
 

Re: Variable Material Values

Postby B M Schaeffer » 14 May 2004, 02:19

Geschrieben von:/Posted by: B M Schaeffer at 14. May 2004 03:19:
Als Antwort auf:/In reply to: Re: Variable Material Values geschrieben von:/posted by: Volker Annuss at 13 May 2004 21:05:55:
For the next version of my engine Hermann I created a table with gives the score from different material.
It looks like this:
QRBNP QRBNP games score
12228 12227 1751 48.78%
01100 01001 218 56.91%
00001 00000 670 76.64%
The first line means: If player one has all pieces from the start position and player two has lost one pawn, then player one can ecpect a score of 48,78%. This line is made from 1751 games. This is one of the surprising results I got. The player with more material gets the lower score.
The second line gives the score for R+B vs. R+P and the last line the score for K+P vs. K.
Of course the complete table is much larger and there are many lines that come from very few games, so they are not statistically significant.
It would be fine to have only quiet positions in the table, but I cannot test them with a quiecence search. I would have do make assumptions on the material value for that, but the material value is what I want to find out. So only positions (better: material combinations) are used where there was no capture for at least three moves. Checks were ignored for that table, but I will use them in future to get a better approximation to quiecence.
There are gaps in the table that have to be filled with reasonable values, and reasonable values must be found for the lines that come from only a few games.
The score must be translated to a material evaluation value. I have a concept for all that. I also had an experimental version of Hermann with a material evaluation that used these ideas. It did not play better but it also did not play much worse than the version with the new material evaluation switched off.
There is much to do to make this work good. I started with a new job this month, so I have not much time to make this work. It will take some months and its not 100% sure that it will be successful.
Volker
-----
I see you are already doing a much deeper implementation of that, one that I only imagined would be at the end of a project! What your looking into is a database of 486x486 possibilities, although plenty of combinations are going to be greater than a minor piece difference. That could be very powerful when coming down to making a close decision.
What I have been playing around with is much simpler. So far only one side's material would be effected, like this: (Alert: I have not tested this code yet)
// Sample Variable Material Tables
// Date: May 13, 2004
// Copyright 2004 by Ben Schaeffer
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Contact me with "Chess" in the subject (or it will get deleted!):
bens2@myrealbox.com
*/
//skipping stuff...
/*k*/ 0,1,2,3,4,5,6,7,8,
/*kn*/ 3,4,5,6,7,8,9,10,11,
/*knn*/ 6,7,8,9,10,11,12,13,14,
/*kb*/ 3,4,5,6,7,8,9,10,11,
/*kbn*/ 6,7,8,9,10,11,12,13,14,
/*kbnn*/ 9,10,11,12,13,14,15,16,17,
/*kbb*/ 6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,
/*kbbn*/ 9.5,10.5,11.5,12.5,13.5,14.5,15.5,16.5,17.5,
/*kbbnn*/ 12.5,13.5,14.5,15.5,16.5,17.5,18.5,19.5,20.5,
/*kr*/ 5,6,7,8,9,10,11,12,13,
/*krn*/ 8,9,10,11,12,13,14,15,16,
/*krnn*/ 11,12,13,14,15,16,17,18,19,
/*krb*/ 8,9,10,11,12,13,14,15,16,
/*krbn*/ 11,12,13,14,15,16,17,18,19,
/*krbnn*/ 14,15,16,17,18,19,20,21,22,
/*krbb*/ 11.5,12.5,13.5,14.5,15.5,16.5,17.5,18.5,19.5,
/*krbbn*/ 14.5,15.5,16.5,17.5,18.5,19.5,20.5,21.5,22.5,
/*krbbnn*/ 17.5,18.5,19.5,20.5,21.5,22.5,23.5,24.5,25.5,
/*krr*/ 10,11,12,13,14,15,16,17,18,
/*krrn*/ 13,14,15,16,17,18,19,20,21,
/*krrnn*/ 16,17,18,19,20,21,22,23,24,
/*krrb*/ 13,14,15,16,17,18,19,20,21,
/*krrbn*/ 16,17,18,19,20,21,22,23,24,
/*krrbnn*/ 19,20,21,22,23,24,25,26,27,
/*krrbb*/ 16.5,17.5,18.5,19.5,20.5,21.5,22.5,23.5,24.5,
/*krrbbn*/ 19.5,20.5,21.5,22.5,23.5,24.5,25.5,26.5,27.5,
/*krrbbnn*/ 22.5,23.5,24.5,25.5,26.5,27.5,28.5,29.5,30.5,
/*kq*/ 9,10,11,12,13,14,15,16,17,
/*kqn*/ 12,13,14,15,16,17,18,19,20,
/*kqnn*/ 15,16,17,18,19,20,21,22,23,
/*kqb*/ 12,13,14,15,16,17,18,19,20,
/*kqbn*/ 15,16,17,18,19,20,21,22,23,
/*kqbnn*/ 18,19,20,21,22,23,24,25,26,
/*kqbb*/ 15.5,16.5,17.5,18.5,19.5,20.5,21.5,22.5,23.5,
/*kqbbn*/ 18.5,19.5,20.5,21.5,22.5,23.5,24.5,25.5,26.5,
/*kqbbnn*/ 21.5,22.5,23.5,24.5,25.5,26.5,27.5,28.5,29.5,
/*kqr*/ 14,15,16,17,18,19,20,21,22,
/*kqrn*/ 17,18,19,20,21,22,23,24,25,
/*kqrnn*/ 20,21,22,23,24,25,26,27,28,
/*kqrb*/ 17,18,19,20,21,22,23,24,25,
/*kqrbn*/ 20,21,22,23,24,25,26,27,28,
/*kqrbnn*/ 23,24,25,26,27,28,29,30,31,
/*kqrbb*/ 20.5,21.5,22.5,23.5,24.5,25.5,26.5,27.5,28.5,
/*kqrbbn*/ 23.5,24.5,25.5,26.5,27.5,28.5,29.5,30.5,31.5,
/*kqrbbnn*/ 26.5,27.5,28.5,29.5,30.5,31.5,32.5,33.5,34.5,
/*kqrr*/ 19,20,21,22,23,24,25,26,27,
/*kqrrn*/ 22,23,24,25,26,27,28,29,30,
/*kqrrnn*/ 25,26,27,28,29,30,31,32,33,
/*kqrrb*/ 22,23,24,25,26,27,28,29,30,
/*kqrrbn*/ 25,26,27,28,29,30,31,32,33,
/*kqrrbnn*/ 28,29,30,31,32,33,34,35,36,
/*kqrrbb*/ 25.5,26.5,27.5,28.5,29.5,30.5,31.5,32.5,33.5,
/*kqrrbbn*/ 28.5,29.5,30.5,31.5,32.5,33.5,34.5,35.5,36.5,
/*kqrrbbnn*/ 31.5,32.5,33.5,34.5,35.5,36.5,37.5,38.5,39.5
//Just a Bishop bonus on that one...
//Her's snippet of more involved one
/*kqbbn*/ 19.7475,20.81,21.8725,22.935,23.9975,25.06,26.1225,27.185,28.2475,
/*kqbbnn*/ 22.6225,23.7475,24.8725,25.9975,27.1225,28.2475,29.3725,30.4975,31.6225,
//etc.
Getting a table that lends itself to more advantageous positions was the goal there on the second one.
The obscure situation of having 2 queens, 3 rooks, etc. throws a monkey wrench into things. I don't know if there is an accepted term for that; I have been calling it redundant promotions.
Perhaps a fine tuned table might assist in getting to a statistically significant advantage.
Ben
B M Schaeffer
 

Re: Variable Material Values

Postby B M Schaeffer » 14 May 2004, 02:51

Geschrieben von:/Posted by: B M Schaeffer at 14. May 2004 03:51:
Als Antwort auf:/In reply to: Re: Variable Material Values geschrieben von:/posted by: Richard Pijl at 13 May 2004 13:59:23:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com
increasing value for pawns in the endgame
I suppose most programs have bonusses/penalties for pieces based on various characteristics. Things like:
- bishops pair
- increasing value for pawns in the endgame
- penalties/bonusses for bishops/knights in closed positions
- bonus for bishops in endgame with pawns on both sides
- several uneven material cases (see also an article by IM Larry Kaufman on Dan Heisman's homepage: http://mywebpages.comcast.net/danheisma ... alance.htm)
- etc...
Richard.
That was a great article! I started from Larry's numbers a while back. But, for the simple programs I have been experimenting with, with those numbers needed further tweaking. My guess is that it changes a bit with each programs' positional unique evaluations, depending on its bias towards little positional strengths and weaknesses, and how deep it is thinking.
I bet each engine, at its best overall performing settings, would be slightly different. In one way that makes sense, but in another it seems just a bit odd.
This is one of those things that seems like an interesting puzzle to me. You can make the pawns worth more or make the pieces worth less. Those different numbers, combined with the positional math is, might make a big difference.
Ben
B M Schaeffer
 

Re: Variable Material Values

Postby Dann Corbit » 14 May 2004, 06:01

Geschrieben von:/Posted by: Dann Corbit at 14 May 2004 07:01:51:
Als Antwort auf:/In reply to: Variable Material Values geschrieben von:/posted by: B M Schaeffer at 13. May 2004 04:42:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com
I am doing an experiment right now, and preliminary evidence seems to show that piece values should decrease with depth of search.
For instance, a bishop on a 2 ply search is worth 370 +/- 9 centipawns, and on a 5 ply search only 340 +/- 13 centipawns. Similarly, a knight is worth 330 +/- 11 centipawns at 2 plies and 313 +/- 7 centipawns at 5 plies.
I believe that the scores will continue to drop with depth, but I have not collected deep data yet. I am also unsure what shape the centipawn curve will take as a function of depth.



my ftp site {remove http:// unless you like error messages}
Dann Corbit
 

Re: Variable Material Values

Postby Dann Corbit » 14 May 2004, 06:04

Geschrieben von:/Posted by: Dann Corbit at 14 May 2004 07:04:26:
Als Antwort auf:/In reply to: Re: Variable Material Values geschrieben von:/posted by: Dann Corbit at 14 May 2004 07:01:51:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com
I am doing an experiment right now, and preliminary evidence seems to show that piece values should decrease with depth of search.
For instance, a bishop on a 2 ply search is worth 370 +/- 9 centipawns, and on a 5 ply search only 340 +/- 13 centipawns. Similarly, a knight is worth 330 +/- 11 centipawns at 2 plies and 313 +/- 7 centipawns at 5 plies.
I believe that the scores will continue to drop with depth, but I have not collected deep data yet. I am also unsure what shape the centipawn curve will take as a function of depth.
Rook data:
rook_score=600 at 2; stddev=5.189846
rook_score=535 at 4; stddev=6.055301
rook_score=556 at 5; stddev=10.862082
Not sure why 4 ply value would be less than 5 ply.



my ftp site {remove http:// unless you like error messages}
Dann Corbit
 

Re: Variable Material Values

Postby Dann Corbit » 14 May 2004, 06:05

Geschrieben von:/Posted by: Dann Corbit at 14 May 2004 07:05:44:
Als Antwort auf:/In reply to: Re: Variable Material Values geschrieben von:/posted by: Dann Corbit at 14 May 2004 07:04:26:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com
I am doing an experiment right now, and preliminary evidence seems to show that piece values should decrease with depth of search.
For instance, a bishop on a 2 ply search is worth 370 +/- 9 centipawns, and on a 5 ply search only 340 +/- 13 centipawns. Similarly, a knight is worth 330 +/- 11 centipawns at 2 plies and 313 +/- 7 centipawns at 5 plies.
I believe that the scores will continue to drop with depth, but I have not collected deep data yet. I am also unsure what shape the centipawn curve will take as a function of depth.
Rook data:
rook_score=600 at 2; stddev=5.189846
rook_score=535 at 4; stddev=6.055301
rook_score=556 at 5; stddev=10.862082
Not sure why 4 ply value would be less than 5 ply.
The queen score seems fairly constant, and no parabolic fit could be obtained at 2 plies.
queen_score=992 at 4; stddev=1.789520
queen_score=998 at 5; stddev=4.798990



my ftp site {remove http:// unless you like error messages}
Dann Corbit
 

Re: Variable Material Values

Postby Uri Blass » 14 May 2004, 07:04

Geschrieben von:/Posted by: Uri Blass at 14 May 2004 08:04:19:
Als Antwort auf:/In reply to: Variable Material Values geschrieben von:/posted by: B M Schaeffer at 13. May 2004 04:42:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of the game. This would lend another level of fine tuning to material value thought sections of the game. I have do a few experiments with TSCP and Gerbil, and they have showed a tiny bit of improvement.
I will hazard a guess that this could make the most difference in programs that have extensive position evaluation in them, like Crafty.
I am interested in working on a deeper version of this. If anyone is interested in collaborating, let me know.
(I get TONS of Spam, to please put "Chess" somewhere in the subject! Thanks)
bens2 (that "at" sign) myrealbox.com

I understand nothing from Dann's Corbit replies.
The only way to calculate optimal value at fixed depth is to play many games at fixed depth but in that case I do not understand how did he get his stdv
numbers.
I failed to reply directly to Dann corbit last post and for some reason I do not see the text of his reply when I do it so I reply here.
Uri
Uri Blass
 

Re: Variable Material Values

Postby B M Schaeffer » 15 May 2004, 00:23

Geschrieben von:/Posted by: B M Schaeffer at 15. May 2004 01:23:
Als Antwort auf:/In reply to: Re: Variable Material Values geschrieben von:/posted by: Dann Corbit at 14 May 2004 07:05:44:
I was wondering if anyone in chess programming works with variable material values, i.e. rather than being constants they vary slightly over the course of ...
For instance, a bishop on a 2 ply search is worth 370 +/- 9 centipawns, and on a 5 ply search only 340 +/- 13 centipawns. Similarly, a knight is worth 330 +/- 11 centipawns at 2 plies and 313 +/- 7 centipawns at 5 plies.
I believe that the scores will continue to drop with depth, but I have not collected deep data yet. I am also unsure what shape the centipawn curve will take as a function of depth.
Rook data:
rook_score=600 at 2; stddev=5.189846
rook_score=535 at 4; stddev=6.055301
rook_score=556 at 5; stddev=10.862082
Not sure why 4 ply value would be less than 5 ply.
The queen score seems fairly constant, and no parabolic fit could be obtained at 2 plies.
queen_score=992 at 4; stddev=1.789520
queen_score=998 at 5; stddev=4.798990
---
---
That's very interesting, especially the large Rook differences.
I saw some similar downward valuations with Chessmaster 8000 personalities. With N=3.2 and B=3.3, it became worse with longer time controls, but setting them both a full 10th of a pawn was much worse overall.
Ben
B M Schaeffer
 


Return to Archive (Old Parsimony Forum)

Who is online

Users browsing this forum: No registered users and 27 guests