Calculation the playing strength of a move

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Calculation the playing strength of a move

Post by hgm »

You keep dodging the issue that there doesn't exist something as a unique score for a given position, so that you want to bsse your move scoring on this thing that doesn't exist.

The point is that engines compare scores of moves obtained at equal search depth, to decide which is best. For this only the relative value of the scores matter, and it is no problem that all the score for each move would be different when searched at some other depth. But for calculating 'the' quality of a move, you will need a single, absolute number. And the engine won't give you that. It will give you a sequence of ever-changing scores, which eventually converge to 0 or a mate score when the depth tends to infinity.
Jon12345
Posts: 80
Joined: Tue May 11, 2010 6:18 pm

Re: Calculation the playing strength of a move

Post by Jon12345 »

You keep dodging the issue that there doesn't exist something as a unique score for a given position, so that you want to base your move scoring on this thing that doesn't exist.
I did not dodge your claim about unique score for a given position. I explained, you ignored. Like every time. Here it is again from a previous post:
You take the elo of that move based on the search depth or time you have attributed. We don't say we cannot evaluate a position because we can't calculate all variations to the end of the game. Engines do evaluations, as do humans. The evaluations may be wrong because they are not "perfect", but we still do them and use them. Should we stop showing engine evaluations because they may be inaccurate, due to the horizon and breadth effect? Should engines not use an evaluation function because if they evaluated to 20 ply, it might be proven wrong had they evaluated to 30 ply?
Playing good quality chess with engines involves estimating move quality. It doesn't involve solving chess from start to finish.

You dodged the question in my last post. And most of my other points. You dodge saying that unless something is 100% accurate it has no merit. You have what is called a lodged belief. Making false claims that I am dodging questions does not prove your flawed logic.

It seems that while I am continually addressing your points, you ignore mine. Why? Because you can't win an unwinnable argument.

Maybe I should be more explicit. Do you agree with this statement: "Playing good quality chess with engines involves estimating move quality."

Or do you want to obfuscate that simple truth too?
Jon
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Calculation the playing strength of a move

Post by hgm »

It is interesting that you attribute all kinds of claims to me that I never made, and then jump to the conclusion that I try to defend an unwinnable argument.

That 100% accuracy is needed was in fact your claim, as you were insisting on an 'objective' evaluation of the position. I, OTOH, was arguing that this is not possible, and not of much interest.

I did (elaborately) answer the question you say I dodged. For playing good chess you only have to order the moves by strength. You don't have to be correct on the magnitude of the score. Not even on the magnitude of the score difference. Just on the sign of the differences.
Jon12345
Posts: 80
Joined: Tue May 11, 2010 6:18 pm

Re: Calculation the playing strength of a move

Post by Jon12345 »

hgm wrote: Tue Jul 13, 2021 11:44 am I did (elaborately) answer the question you say I dodged. For playing good chess you only have to order the moves by strength. You don't have to be correct on the magnitude of the score. Not even on the magnitude of the score difference. Just on the sign of the differences.
Strength = quality. So you are saying to play good chess you only have to order the moves by quality. And therefore, engines play good chess by estimating move quality.
You don't have to be correct on the magnitude of the score.
And how is that relevant to any of this?
Jon
Jon12345
Posts: 80
Joined: Tue May 11, 2010 6:18 pm

Re: Calculation the playing strength of a move

Post by Jon12345 »

Ferdy wrote: Sun Jul 11, 2021 2:47 pm If the initial rating of your opponent is say 2000, your perf rating will be 2000 - 32.57 or 1967.43. However if you find the 0.2 your perf rating will be 2000 + 8.69 or 2008.69.
Ferdy, I have a slightly different perspective on this last part. Let us assume that the engine is rated 3000. If you find the best move, which gives 0.2 evaluation, then your rating for that specific move would be 3000 since you played a move the 3000 rated engine would have played as its first choice. Make sense?
Jon
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Calculation the playing strength of a move

Post by Ferdy »

Jon12345 wrote: Tue Jul 13, 2021 1:29 pm
Ferdy wrote: Sun Jul 11, 2021 2:47 pm If the initial rating of your opponent is say 2000, your perf rating will be 2000 - 32.57 or 1967.43. However if you find the 0.2 your perf rating will be 2000 + 8.69 or 2008.69.
Ferdy, I have a slightly different perspective on this last part. Let us assume that the engine is rated 3000. If you find the best move, which gives 0.2 evaluation, then your rating for that specific move would be 3000 since you played a move the 3000 rated engine would have played as its first choice. Make sense?
If you are comparing or evaluating the move to the analyzing engine, that is correct, you will get the 3000.
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Calculation the playing strength of a move

Post by hgm »

Jon12345 wrote: Tue Jul 13, 2021 11:57 amAnd how is that relevant to any of this?
You want to express the quality of the move as a number. Not just as the verdict "this move is not the best".
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Calculation the playing strength of a move

Post by hgm »

Ferdy wrote: Tue Jul 13, 2021 4:16 pm
Jon12345 wrote: Tue Jul 13, 2021 1:29 pm
Ferdy wrote: Sun Jul 11, 2021 2:47 pm If the initial rating of your opponent is say 2000, your perf rating will be 2000 - 32.57 or 1967.43. However if you find the 0.2 your perf rating will be 2000 + 8.69 or 2008.69.
Ferdy, I have a slightly different perspective on this last part. Let us assume that the engine is rated 3000. If you find the best move, which gives 0.2 evaluation, then your rating for that specific move would be 3000 since you played a move the 3000 rated engine would have played as its first choice. Make sense?
If you are comparing or evaluating the move to the analyzing engine, that is correct, you will get the 3000.
Your proposed method seems to assume that the result of a game is determined by a single sub-optimal move. That doesn't seem a realistic model. If a certain score loss compared to the best move is typical for a player of a certain Elo, he would be expected to lose that on every move of the game.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Calculation the playing strength of a move

Post by Ferdy »

hgm wrote: Wed Jul 14, 2021 10:45 am
Ferdy wrote: Tue Jul 13, 2021 4:16 pm
Jon12345 wrote: Tue Jul 13, 2021 1:29 pm
Ferdy wrote: Sun Jul 11, 2021 2:47 pm If the initial rating of your opponent is say 2000, your perf rating will be 2000 - 32.57 or 1967.43. However if you find the 0.2 your perf rating will be 2000 + 8.69 or 2008.69.
Ferdy, I have a slightly different perspective on this last part. Let us assume that the engine is rated 3000. If you find the best move, which gives 0.2 evaluation, then your rating for that specific move would be 3000 since you played a move the 3000 rated engine would have played as its first choice. Make sense?
If you are comparing or evaluating the move to the analyzing engine, that is correct, you will get the 3000.
Your proposed method seems to assume that the result of a game is determined by a single sub-optimal move. That doesn't seem a realistic model. If a certain score loss compared to the best move is typical for a player of a certain Elo, he would be expected to lose that on every move of the game.
One way is to take the average. If human move for example matches the best move of the analyzing engine (3000) the rating of the move is the rating of the engine. If human move is suboptimal say -30 elo (via sigmoid and FIDE conversion table), the rating for that move would be 3000 - 30 or 2970, the average for those two moves would be 2985. A game may have forced captures, human usually find the best move here so it gets 3000. The overall evaluation of human play is more reliable as more moves are evaluated.
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Calculation the playing strength of a move

Post by hgm »

The problem with this is that a human which would play 2970-Elo moves during the entire game would probably lose 9 out of 10 times against an 1800-rated player. Because over the duration of a 50-move game he would 'burn' a total of 50x30 = 1500 cP. And it does seem a bit strange to rate all the moves of a player that hardly reaches 1500 Elo as 2970-Elo moves.

There also seems to be something arbitrary here. In very many (most?) of the cases a 2500 and a 3500-rated engine would consider the same move best. and in cases where they don't they would probably only have a tiny difference in score between the moves they each prefer. So it seems totally arbitrary whether to rate such a move by 2500, 3500, 2498 or 3497.

If a rating for a move should have any meaning, than it would be the lowest rating that some entity should have in order to prefer that move. That a super-strong entity also prefers it hardly means anything. You already mention the case of a forced recapture. Even a 1500-rated player would typically play that, and of course a 3000-rated player would too. So why would the move be 3000 Elo. And why should it depend on the engine that was used to analyze the position?