What is the purpose of chess engines?

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jp
Posts: 1470
Joined: Mon Apr 23, 2018 7:54 am

Re: What is the purpose of chess engines?

Post by jp »

Ovyron wrote: Mon Nov 18, 2019 7:12 am
jp wrote: Mon Nov 18, 2019 5:39 amWe are just interested in the truth of the position in (more than) a tablebase sense. ("More than" because tablebases don't give all the information we might be interested in.) You don't seem at all interested in that, but it's not about time.
But your definition of "truth" is vague.

Does your truth include chess clocks? If it doesn't then there's no difference between no chess clocks and infinite time, that's what I'm saying.
Just for now think tablebase. (Of course we are greedy and want more info than tablebases give us, but don't worry about that here.) Do tablebases "include chess clocks"? No, but I don't think tablebases are "infinite time". Do you?
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: What is the purpose of chess engines?

Post by Ovyron »

jp wrote: Mon Nov 18, 2019 7:26 amJust for now think tablebase. (Of course we are greedy and want more info than tablebases give us, but don't worry about that here.) Do tablebases "include chess clocks"? No, but I don't think tablebases are "infinite time". Do you?
Are you serious now? What is the chess truth about this position?

[d]3rk3/3p4/8/8/8/8/3P4/3RK3 w - -

Tablebases only tell us that all white moves draw. It also tells us that after 1.d4 all moves by black draw. And we know if someone has access to this info you wouldn't be able to win. That's it.

What kind of chess truth is this? It's like stating that all moves draw from the opening position, except this kind of chess truth doesn't say anything about the difference between 1.d4 or 1.g4.

The chess truth requires playing a game, lest you can wrongly conclude that a position is a draw, or that it is won, but you'll never know because "best play" is that, playing moves, and chess is about that, not about analysis which can go on FOREVER because there's a different move in a previous position that could have been played.

Tablebases don't tell us anything about the above position, so getting such a chart in others wouldn't have a purpose.
Michel
Posts: 2272
Joined: Mon Sep 29, 2008 1:50 am

Re: What is the purpose of chess engines?

Post by Michel »

The chess truth requires playing a game, lest you can wrongly conclude that a position is a draw, or that it is won, but you'll never know because "best play" is that, playing moves, and chess is about that, not about analysis which can go on FOREVER because there's a different move in a previous position that could have been played.
I would call this "rambling".
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.
Michel
Posts: 2272
Joined: Mon Sep 29, 2008 1:50 am

Re: What is the purpose of chess engines?

Post by Michel »

It is interesting to observe though that if we are interested in obtaining a probabilistic estimate for the game theoretic value of a position, minimax may not be the best algorithm.

If we consider a tree with independent leaf nodes (a very unrealistic assumption I admit) and we think of the static eval as giving some probabilistic estimate for the game theoretic value of the leaf nodes (unprovable, since in general we do not know the game theoretic value) then we should use the multiplication rule to back up probabilities, instead of minimax. This gives very different values (this can already be seen with tree with one root node and two child nodes, assuming no draws).

As said the assumption of a random tree in the previous paragraph is completely unrealistic. A better model would be to incorporate a form of correlation between a node and a child node. I do not quite know how to do this.
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: What is the purpose of chess engines?

Post by Ovyron »

Michel wrote: Mon Nov 18, 2019 11:26 am
The chess truth requires playing a game, lest you can wrongly conclude that a position is a draw, or that it is won, but you'll never know because "best play" is that, playing moves, and chess is about that, not about analysis which can go on FOREVER because there's a different move in a previous position that could have been played.
I would call this "rambling".
But it follows logically:

IF you have concluded that the chess truth about a chess position is that white is winning it, and you are content, so you close it and move to something else BUT if you played the position against somebody they'd be able to find a refutation and draw that position THEN you never got closer to the chess truth, it was all an illusion, and you were fooling yourself.

The purpose of chess engines can't be to learn the chess truth about a position, because you could just be fooling yourself about approaching it, but, because the conclusion will be reached and the analysis closed, people will never know they were fooled.
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: What is the purpose of chess engines?

Post by chrisw »

Ovyron wrote: Mon Nov 18, 2019 3:09 am
jp wrote: Mon Nov 18, 2019 12:42 am
Ovyron wrote: Sun Nov 17, 2019 1:22 pm People that are looking for "chess truth" assume "infinite time" for both sides, but then the chess truth is that in those conditions it's best to never make a move!
There is no assumption of "infinite time". I don't know why you keep repeating this claim over and over again.
Because if it didn't assume "infinite time" then it'd assume a certain time that the game has left, or a certain time that the next moves from the game will be played. If it's not "infinite time", then, what is it? Because in all these discussions games are never played to completion, and if they're played, we get plenty, but each at a laughable time control, and none of that has to do with the truth (which requires a chess clock - or at least, an implied one.)
chrisw wrote: Sun Nov 17, 2019 1:49 pmI throw back at you the question of what is this truth?
What is wanted is that for any given chess position, you get moves ranked from best to worst, so that in any given position, if you played the 1st ranked move, you'd get the best performance against any opponent, under any condition, so deviating from the truth wouldn't make sense in any case.

The word you are looking for here is “map”.

Not only that, but the moves would have a number to their side, the higher the number, the better white performance, the lower the number, the better black performance, and a draw (50% performance) would be 0.

These numbers would apply to any chess position, so if a line was 50 and another was 49, in all cases playing from the 50 position would be better for black.

Note ChessDBCN is a representation of what I'm talking about, though it doesn't implement asymmetric eval, and it's of course a work in progress in where you can bend the truth at will by showing it better variations than what it currently knows (for instance, it has Bxc6 instead of Re1 as the mainline of the Spanish, one could go to either move and decrease Bxc6's score or increase Re1 and change their ranks), but that's how chess truth would look like (except it would never change because evals are final.)

In practice, however, once a game is being played, you eventually reach new territory, a position never seen before by anybody and you have nothing about it, you have to come up with your best performing move on the fly, and knowing this, the positions leading to this had to be played so that your time left to play the game allows you to play it correctly. It is useless if this new never seen position is one where you can mate your opponent with certain moves (that exist), if you have not enough time to find those moves and the position is so complex it's more likely that you'll blunder and lose.

Most people dedicate their time to using chess engines to analyze postmortem games (after they're over), studies (of a famous position) or chess puzzles (compositions from someone's mind), but if they don't find there's a winning move they claim "this position is a draw with best play" as the truth and move on, even though in a real game nobody knows what would happen.

Some people have claimed that they can always rank a non-losing move at the top, and basically solve chess on the fly and become unbeatable, but I don't think chess truth ends there, you rank at the top the moves that make it the most likely for the opponent to blunder, and it's tricky because those moves tend to be unclear and be dangerous to play for yourself.

My conclusion is that chess analysis doesn't make any sense, it only makes sense to play games, analysis is done to rank the moves in real time with your time available and play the move against someone, and if your performance is good, your ranking is good. You can't know if your ranking is good if you only analyze.
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: What is the purpose of chess engines?

Post by Uri Blass »

Ovyron wrote: Mon Nov 18, 2019 7:12 am
Uri Blass wrote: Mon Nov 18, 2019 6:46 amThere may be a drawn position when forcing a draw is the best move against opponent A but against opponent B it is better to play a losing move because B is not going to find the way to win and make a mistake and lose.
But you can't know that in advance. What you're describing is not chess, but "hope chess", where you swindle in the hopes that your opponent will miss something. Any definition of chess truth would avoid playing losing moves, because you don't know if your opponent is able to find their refutation.
You can certainly know things in advance.
For example
If you play against an engine opponent that does not consider underpromotions and you see that after move A the opponent lose unless the opponent underpromote the pawn to a knight(you lose in the last case) then you certainly can take advantage of the opponent and win by the losing move A.

Evem if we ignore losing moves it is possible that in a drawn position you have the following about 2 objectively drawing moves:

move A is the only practical way to win against opponent X.
move B is the only practical way to win against opponent y.

It means that there is no clear definition if A is better than B or B is better than A.
jp
Posts: 1470
Joined: Mon Apr 23, 2018 7:54 am

Re: What is the purpose of chess engines?

Post by jp »

Ovyron wrote: Mon Nov 18, 2019 10:24 am Tablebases only tell us that all white moves draw. It also tells us that after 1.d4 all moves by black draw. And we know if someone has access to this info you wouldn't be able to win. That's it.
Well, we don't have 32-man tablebases. Of course if chess is a draw and both sides have 32-man tablebases then I wouldn't be able to win. Sigh. I already said above we'd like to know more than our tablebases currently record, but that doesn't mean that what they tell us isn't truth (if there were no bugs in producing them).
jp
Posts: 1470
Joined: Mon Apr 23, 2018 7:54 am

Re: What is the purpose of chess engines?

Post by jp »

Ovyron wrote: Mon Nov 18, 2019 12:24 pm
Michel wrote: Mon Nov 18, 2019 11:26 am I would call this "rambling".
But it follows logically:

IF you have concluded that the chess truth about a chess position is that white is winning it, and you are content, so you close it and move to something else BUT if you played the position against somebody they'd be able to find a refutation and draw that position THEN you never got closer to the chess truth, it was all an illusion, and you were fooling yourself.
If you have a position that a correct tablebase tells you is winning, you will not give up a draw against anyone, because the tablebase tells you winning responses to any move your opponent plays. I have no idea what you are talking about.
gojac
Posts: 2
Joined: Mon Feb 26, 2018 6:43 pm

Re: What is the purpose of chess engines?

Post by gojac »

Uri Blass wrote: Mon Nov 18, 2019 12:56 pm
Ovyron wrote: Mon Nov 18, 2019 7:12 am
Uri Blass wrote: Mon Nov 18, 2019 6:46 amThere may be a drawn position when forcing a draw is the best move against opponent A but against opponent B it is better to play a losing move because B is not going to find the way to win and make a mistake and lose.
But you can't know that in advance. What you're describing is not chess, but "hope chess", where you swindle in the hopes that your opponent will miss something. Any definition of chess truth would avoid playing losing moves, because you don't know if your opponent is able to find their refutation.
You can certainly know things in advance.
For example
If you play against an engine opponent that does not consider underpromotions and you see that after move A the opponent lose unless the opponent underpromote the pawn to a knight(you lose in the last case) then you certainly can take advantage of the opponent and win by the losing move A.

Evem if we ignore losing moves it is possible that in a drawn position you have the following about 2 objectively drawing moves:

move A is the only practical way to win against opponent X.
move B is the only practical way to win against opponent y.

It means that there is no clear definition if A is better than B or B is better than A.
If the purpose of chess engine development is to improve their tournament results then creating modules for specific opponents may be necessary at some point. Suppose that we have a tournament of Stockfish, Komodo, Houdini and engine X. If X_1 is a combination of AntiSF, AntiKomodo and AntiHoudini and if X_2 has all 32 men tablebases then X_1 would win the tournament with a higher margin than X_2. Just my 2 cents.