What is the correct value of the pieces?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: What is the correct value of the pieces?

Post by Gerd Isenberg »

Don wrote:{snipped}
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100

ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.
{snipped}
Thanks, interesting.

So 1/3100 Knight units instead of millipawns ;-)

Still, I found ~60 centies for a pawn in the opening surprisingly small, assuming piece square values are centered around zero, and weak pawns like backward and isolated may receive a additional penalty. How much becomes a strong white pawn say on e4 in the opening?
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: What is the correct value of the pieces?

Post by Don »

Gerd Isenberg wrote:
Don wrote:{snipped}
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100

ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.
{snipped}
Thanks, interesting.

So 1/3100 Knight units instead of millipawns ;-)

Still, I found ~60 centies for a pawn in the opening surprisingly small, assuming piece square values are centered around zero, and weak pawns like backward and isolated may receive a additional penalty. How much becomes a strong white pawn say on e4 in the opening?
The pawn value evolved over time - it was once below 1000 for the opening and above 1000 for the ending. To make major changes to the pawn value requires making many adjustments to margins and such - and as this evolved it turns out that this was the easiest thing to do. But if we raised the pawn we would have to raise everything else accordingly.

And yes, a pawn is basically 1000 points but the evaluation returns the answer in centi-pawns.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
Carotino
Posts: 216
Joined: Fri Jun 11, 2010 10:40 am
Location: Italy

Re: What is the correct value of the pieces?

Post by Carotino »

lkaufman wrote:
Carotino wrote:Of course the "final value" of pieces is a dynamic process and depends on the evaluation function, PST, etc.. But I believe that a correct estimation of the initial value is still important.
The values ​​provided by Larry are good and have sufficient accuracy for humans, but for computer but for a computer I believe that we must use a finer tolerance of 1/4 of pawn. What? that is the question! :?

Another consideration: usually, we tend to give to the bishop a value slightly higher than the knight. In fact, in my opinion, should be the evaluation functions of the engine to change this (depending on the mobility, PST, controlled square, pawn structure, etc.. etc ...). I think the starting value should be equal... Or not?
As Robert explained, it doesn't matter what the "starting values" are, as long as all the other terms properly adjust for it. In Komodo we try to set the starting values to be the average values, just so that when we make changes we don't get misled. The average value of an unpaired bishop is slightly higher than the average value of a knight; currently we are using one-eighth of a pawn for this difference.
Oh thanks Larry, one-eighth of a pawn seems to be fairly accurate: about 13 centipawns...
Roberto
Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: What is the correct value of the pieces?

Post by Gerd Isenberg »

Don wrote:
Gerd Isenberg wrote:
Don wrote:{snipped}
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100

ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.
{snipped}
Thanks, interesting.

So 1/3100 Knight units instead of millipawns ;-)

Still, I found ~60 centies for a pawn in the opening surprisingly small, assuming piece square values are centered around zero, and weak pawns like backward and isolated may receive a additional penalty. How much becomes a strong white pawn say on e4 in the opening?
The pawn value evolved over time - it was once below 1000 for the opening and above 1000 for the ending. To make major changes to the pawn value requires making many adjustments to margins and such - and as this evolved it turns out that this was the easiest thing to do. But if we raised the pawn we would have to raise everything else accordingly.

And yes, a pawn is basically 1000 points but the evaluation returns the answer in centi-pawns.
I see, sorry if my question about the none weak e4 pawn was a bit too impertinent ;-)
I guess > 1000.
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: What is the correct value of the pieces?

Post by lkaufman »

Gerd Isenberg wrote:
Don wrote:{snipped}
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100

ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.
{snipped}
Thanks, interesting.

So 1/3100 Knight units instead of millipawns ;-)

Still, I found ~60 centies for a pawn in the opening surprisingly small, assuming piece square values are centered around zero, and weak pawns like backward and isolated may receive a additional penalty. How much becomes a strong white pawn say on e4 in the opening?
The pawn value in Komodo is artificially low, primarily because an extra pawn is usually also a passed or candidate passed pawn, which gets a nice bonus, especially if advanced. Also unblocked pawns (the usual case) get bonuses. I think we should do something to more properly center the pawn, if only to avoid misleading anyone. You can remove a pawn and set up any configuration you like to answer a question like the above in Komodo; the answer will partly depend on whether the extra pawn on e4 is a Candidate or not, and also on whose turn to move, etc. In the opening position with e7 removed, a one ply search shows 1.e4 with a 0.65 score in Komodo 5 (0.67 in latest version). Since Black gets a side-to move bonus, the static value of the position after 1.e4 with no e7 must be in the upper 70s. This seems about right; on a full board a knight is worth nearly four pawns, and 3.1/4 is .775.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: What is the correct value of the pieces?

Post by diep »

Carotino wrote:On this subject, there are dozens of different evaluations, but no one was able to give a definitive answer.
That's because it is total dependant upon the rest of your evaluation.

If you have no evaluation at all, just 5 values for 4 pieces and 1 for pawn, then you'll see best value for a piece is around a 2.8

If you keep adding some chessknowledge, then this value quickly rises to 4.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: What is the correct value of the pieces?

Post by diep »

Don wrote:
Houdini wrote:Three comments:
1) The value of the pieces evolve with the phase of the game. The values you give above for Houdini are not "piece values", they're just multipliers for a more complex function. They could very well have been 100, 50, 87, 26, 151...
2) Piece values are influenced by the PST (piece-square tables). If you increase all the PST values by 10, the "piece values" will decrease by the same amount.
3) Piece values very much depend on the dynamic factors in the evaluation. If you increase the mobility score for of a piece, its static piece value will have to be decreased to maintain overall balance.

All this means that there is no such thing as a simple "piece value" in Houdini (or in any other engine, for that matter). Comparing the multiplier values you've found in the Houdini executable to classical, "human" piece values is completely meaningless.

Robert
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100
If i calculate that back to pawn = 1000 then that gives for
the pieces:

pawn = 1.000
knight = 5.167
bishop = 5.375
rook = 7.250
queen = 15.167

That's quite a lot for a piece in opening.

The interesting thing here is that the relative difference to sacrafice an
exchange is under 2.0 pawns. it's less than 1.9 in fact.

Most engines have a relative distance of 2.0 there or even more.

Seems in more modern automatic tuning the tuners tune it lower than 2.0
ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.

I do have a hypothesis on this too. If a program is terrible at handling some specific piece, should the value of that piece be the same as in a program that handled that piece well? Traditionally, programs did not handle their rooks well for example and the programs chances improved if there were no rooks on the board. Of course programs do well with queens too, due to tactics. In the chess club I once attended some weak kid there specializing in the use of knights because it works against weaker plays and he had a knack for playing them. For HIM, the knights were worth more than the bishops - and his entire play was based on deploying and attacking with the knights. He was not hard to beat, but you had to watch his knights and if you could win them his game fell completely apart. If he were a computer program I would say his knights NEEDED to be valued much more than the bishops.

The short version of this is that I believe the values of pieces should be somewhat based on the other heuristics - what really matters is maximizing your strengths and minimizing your weaknesses and for computer chess you have to literally assign numbers to those things.
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: What is the correct value of the pieces?

Post by lkaufman »

diep wrote:
Don wrote:
Houdini wrote:Three comments:
1) The value of the pieces evolve with the phase of the game. The values you give above for Houdini are not "piece values", they're just multipliers for a more complex function. They could very well have been 100, 50, 87, 26, 151...
2) Piece values are influenced by the PST (piece-square tables). If you increase all the PST values by 10, the "piece values" will decrease by the same amount.
3) Piece values very much depend on the dynamic factors in the evaluation. If you increase the mobility score for of a piece, its static piece value will have to be decreased to maintain overall balance.

All this means that there is no such thing as a simple "piece value" in Houdini (or in any other engine, for that matter). Comparing the multiplier values you've found in the Houdini executable to classical, "human" piece values is completely meaningless.

Robert
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100
If i calculate that back to pawn = 1000 then that gives for
the pieces:

pawn = 1.000
knight = 5.167
bishop = 5.375
rook = 7.250
queen = 15.167

That's quite a lot for a piece in opening.

The interesting thing here is that the relative difference to sacrafice an
exchange is under 2.0 pawns. it's less than 1.9 in fact.

Most engines have a relative distance of 2.0 there or even more.

Seems in more modern automatic tuning the tuners tune it lower than 2.0
ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.

I do have a hypothesis on this too. If a program is terrible at handling some specific piece, should the value of that piece be the same as in a program that handled that piece well? Traditionally, programs did not handle their rooks well for example and the programs chances improved if there were no rooks on the board. Of course programs do well with queens too, due to tactics. In the chess club I once attended some weak kid there specializing in the use of knights because it works against weaker plays and he had a knack for playing them. For HIM, the knights were worth more than the bishops - and his entire play was based on deploying and attacking with the knights. He was not hard to beat, but you had to watch his knights and if you could win them his game fell completely apart. If he were a computer program I would say his knights NEEDED to be valued much more than the bishops.

The short version of this is that I believe the values of pieces should be somewhat based on the other heuristics - what really matters is maximizing your strengths and minimizing your weaknesses and for computer chess you have to literally assign numbers to those things.
The pawn values are understated by at least a 100 for reasons explained earlier, so you should add at least 100 to those numbers when making these calculations.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: What is the correct value of the pieces?

Post by diep »

lkaufman wrote:
diep wrote:
Don wrote:
Houdini wrote:Three comments:
1) The value of the pieces evolve with the phase of the game. The values you give above for Houdini are not "piece values", they're just multipliers for a more complex function. They could very well have been 100, 50, 87, 26, 151...
2) Piece values are influenced by the PST (piece-square tables). If you increase all the PST values by 10, the "piece values" will decrease by the same amount.
3) Piece values very much depend on the dynamic factors in the evaluation. If you increase the mobility score for of a piece, its static piece value will have to be decreased to maintain overall balance.

All this means that there is no such thing as a simple "piece value" in Houdini (or in any other engine, for that matter). Comparing the multiplier values you've found in the Houdini executable to classical, "human" piece values is completely meaningless.

Robert
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100
If i calculate that back to pawn = 1000 then that gives for
the pieces:

pawn = 1.000
knight = 5.167
bishop = 5.375
rook = 7.250
queen = 15.167

That's quite a lot for a piece in opening.

The interesting thing here is that the relative difference to sacrafice an
exchange is under 2.0 pawns. it's less than 1.9 in fact.

Most engines have a relative distance of 2.0 there or even more.

Seems in more modern automatic tuning the tuners tune it lower than 2.0
ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.

I do have a hypothesis on this too. If a program is terrible at handling some specific piece, should the value of that piece be the same as in a program that handled that piece well? Traditionally, programs did not handle their rooks well for example and the programs chances improved if there were no rooks on the board. Of course programs do well with queens too, due to tactics. In the chess club I once attended some weak kid there specializing in the use of knights because it works against weaker plays and he had a knack for playing them. For HIM, the knights were worth more than the bishops - and his entire play was based on deploying and attacking with the knights. He was not hard to beat, but you had to watch his knights and if you could win them his game fell completely apart. If he were a computer program I would say his knights NEEDED to be valued much more than the bishops.

The short version of this is that I believe the values of pieces should be somewhat based on the other heuristics - what really matters is maximizing your strengths and minimizing your weaknesses and for computer chess you have to literally assign numbers to those things.
The pawn values are understated by at least a 100 for reasons explained earlier, so you should add at least 100 to those numbers when making these calculations.
You refer to bonuses for things like passers, everyone has those Larry.

This is the basic material evaluation. It's important to factorize correctly and what i wrote down seems correct.
Uri Blass
Posts: 10281
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: What is the correct value of the pieces?

Post by Uri Blass »

diep wrote:
lkaufman wrote:
diep wrote:
Don wrote:
Houdini wrote:Three comments:
1) The value of the pieces evolve with the phase of the game. The values you give above for Houdini are not "piece values", they're just multipliers for a more complex function. They could very well have been 100, 50, 87, 26, 151...
2) Piece values are influenced by the PST (piece-square tables). If you increase all the PST values by 10, the "piece values" will decrease by the same amount.
3) Piece values very much depend on the dynamic factors in the evaluation. If you increase the mobility score for of a piece, its static piece value will have to be decreased to maintain overall balance.

All this means that there is no such thing as a simple "piece value" in Houdini (or in any other engine, for that matter). Comparing the multiplier values you've found in the Houdini executable to classical, "human" piece values is completely meaningless.

Robert
Komodo, as well as other programs and probably Houdini too have different values for different game stages.

In Komodo we "center" everything so that the values are actually meaningful to us without too much interpretation. For example our bishop mobility is negative if the bishop is not very mobile and is close to zero when it has "average" mobility. Of course what is average is a judgement call but we try to make that judgement. So for mobility we have defined N squares of mobility to be the centering point - and that is different for each piece. Our piece square tables all have negative and positive entries also in order to capture this same concept. Whenever we implement a new evaluation concept we don't want to have to "lower" or "raise" the value of something else to compensate so we take care to "center" anything that has anything more than a trivial consequence on the evaluation function.

Our values for the opening are:

600, 3100, 3225, 4350, 9100
If i calculate that back to pawn = 1000 then that gives for
the pieces:

pawn = 1.000
knight = 5.167
bishop = 5.375
rook = 7.250
queen = 15.167

That's quite a lot for a piece in opening.

The interesting thing here is that the relative difference to sacrafice an
exchange is under 2.0 pawns. it's less than 1.9 in fact.

Most engines have a relative distance of 2.0 there or even more.

Seems in more modern automatic tuning the tuners tune it lower than 2.0
ending:

925, 3100, 3225, 5475, 9700

We also have other modifiers which have the effect of changing these such as the bishop pair, rook pair, "major piece pair involving queen" and a bunch of other stuff which also considers the effect of the pawns.

I doubt these values will work for just any program but I present them for what they are worth.

I do have a hypothesis on this too. If a program is terrible at handling some specific piece, should the value of that piece be the same as in a program that handled that piece well? Traditionally, programs did not handle their rooks well for example and the programs chances improved if there were no rooks on the board. Of course programs do well with queens too, due to tactics. In the chess club I once attended some weak kid there specializing in the use of knights because it works against weaker plays and he had a knack for playing them. For HIM, the knights were worth more than the bishops - and his entire play was based on deploying and attacking with the knights. He was not hard to beat, but you had to watch his knights and if you could win them his game fell completely apart. If he were a computer program I would say his knights NEEDED to be valued much more than the bishops.

The short version of this is that I believe the values of pieces should be somewhat based on the other heuristics - what really matters is maximizing your strengths and minimizing your weaknesses and for computer chess you have to literally assign numbers to those things.
The pawn values are understated by at least a 100 for reasons explained earlier, so you should add at least 100 to those numbers when making these calculations.
You refer to bonuses for things like passers, everyone has those Larry.

This is the basic material evaluation. It's important to factorize correctly and what i wrote down seems correct.
It is not factorizing correctly because it seems that the komodo team forgot to center the pawn value correctly by substracting something in the evaluation for pawns that are not passed pawns.