Will computers ever solve chess?

Sort:
Avatar of Elroch

There is no short cut in chess (well, only possibly one, and that is not enough).

In checkers, the game was solved in a sense that allows optimal play (in the precise sense of game theory, i.e. recursively best against best opposition), by first of all generating a complete tablebase of endgames with 47 trillion positions, then deriving a strategy to reach such endgames to achieve an optimal result. This was only possible because moves that were highly likely not to be better were ignored (all opponent moves were still analysed, or the result would not be entirely reliable).

https://www.newscientist.com/article/dn12296-checkers-solved-after-years-of-number-crunching/

Avatar of game_designer
SmyslovFan wrote:

 

Let me be plain:

 

plug the position into stockfish and wait less than a minute. It will solve the mate even without reference to a database unless your computer is very old.

 

Claims that engines can't solve basic mates are easily disproven. 

 

Seems like hardly anybody bothered to read what I said.

 

I said that I am using the engine on this website from Menu | Learn | Analysis

 

This is stockfish.JS (JavaScript) not stockfish.cpp (C++)

 

Using a tablebase the MAX number of moves required is 34 for B+N but these moves make no sense to a human.

 

A human will take more moves, say 43, to mate from that position because he is using the B+N technique to mate.

 

If you have a good computer with multiple cores and a good engine that uses bit boards (which JavaScript can not do) then it is possible for the computer to calculate the win providing that it can search to a deep depth, in this case 34 moves x 2 = 68 plys.

 

Computers however will always struggle with the horizon effect, if they can not see past the game horizon (max search depth) then they can not determine the result.

 

In this example add 2 white connected pawns on the 2nd rank and one black knight.

 

In a real game between humans blacks only chance is to set up a blockade or to sacrifice the knight for the 2 pawns and hope that white does not know the B+N technique.

 

For a computer how many plys (half moves) need to be played to avoid a blockade so that black has to sacrifice the knight for the 2 pawns, in other words how long before DTC (Depth To Conversion)

 

In this case to avoid problems the engine needs to see past DTC + Max B+N Plys

 

Computers always have a problem with the horizon effect and this is why they use tablebases, so they can in effect cheat and peek over the horizon.

 

How long is a piece of string?

Avatar of game_designer

 You should be reported for your username and the comments I have seen you post.

Avatar of JustOneUSer
Or throw a rook at them. That usually does the trick.

Actullay, years ago, when I was 12 I taught my older sister how to play. She refused to accept stalemates, claiming that she won, and would instead throw a rook at me. It landed in hit my eye, and I had to get an eye patch for a month.

As I said, I rook aimed at the correct spot is way better then any chess move! :D
Avatar of JustOneUSer
Unless it's a glass house made of brick. Then you can throw rooks.
Avatar of SmyslovFan
game_designer wrote:

...

Set up a K+B+N v K position, one line, max strength and watch what happens.

 

....

What does the engine spit out? Complete garbage.

 

Seems like computers (or is that humans?) have a very long way to go. 

I read what you wrote. You made several caveats, pointed out you were using a weakened engine, then made the claim that engines have a very long way to go.

There's a very old computer programming term for this: GIGO. (Is it still in use?)

Avatar of game_designer
SmyslovFan wrote:
game_designer wrote:

...

Set up a K+B+N v K position, one line, max strength and watch what happens.

 

....

What does the engine spit out? Complete garbage.

 

Seems like computers (or is that humans?) have a very long way to go. 

I read what you wrote. You made several caveats, pointed out you were using a weakened engine, then made the claim that engines have a very long way to go.

There's a very old computer programming term for this: GIGO. (Is it still in use?)

OK

 

Holding my breath until you solve chess.

 

Already turning blue, but I know you can do it.

Avatar of JustOneUSer
Sorry, but I think your being very inappropriate and rude, frozenfishcoumter. And you could write better then that, you know, make the punchlines stand out more and stuff.
Avatar of camter
Elroch wrote:

 The best that is feasible is to achieve something analogous to the successful weak solving of checkers. The difference is that in the case of checkers this involved a game complexity of around 10^20 compared to 10^47 in the case of chess.

 

What is far more feasible is to achieve an approximate solution that is so close to entirely adequate that the difference is indetectible. This is something like probabilistic primality testing. Rigorous testing of primality of a number can be very computationally intensive (although modern methods now achieve quite low powers of log(n))  but there are methods that work a very high percentage of the time that are much faster. If such a method is successful often enough that you would be unlucky to ever be wrong, it would be almost as useful as a deterministic method, but would not be solving the primality question.

The two are very alike, as I have myself pointed out here.

Trial division is a logical solution, but not reasible for a computer as slow as the presents ones. 

Same thing with space, which is more of a killer.

Not enough atoms in the universe to do it.

Avatar of SmyslovFan
Elroch wrote:

There is no short cut in chess (well, only possibly one, and that is not enough).

In checkers, the game was solved in a sense that allows optimal play (in the precise sense of game theory, i.e. recursively best against best opposition), by first of all generating a complete tablebase of endgames with 47 trillion positions, then deriving a strategy to reach such endgames to achieve an optimal result. This was only possible because moves that were highly likely not to be better were ignored (all opponent moves were still analysed, or the result would not be entirely reliable).

https://www.newscientist.com/article/dn12296-checkers-solved-after-years-of-number-crunching/

Elroch, 

 

this is the the sort of solution I'm talking about. Of course chess is far more complex than checkers, but the same principle of following best moves until they reach a database will work for chess without having to store every single possible position.

Avatar of reynaldo1234567

May be in the future computers can solve thus new problems.

Avatar of TheLoneWolf1989

By the time computers can play perfect chess everything will be able to be automated by computers.

Avatar of vickalan
SmyslovFan wrote:

All this talk about "solving chess" revolves around the unspoken belief that chess is a draw. If there's a forced win in chess, the solution won't require mapping out every single possibility. 

I firmly believe chess is a draw with best play. I don't think it's necessary to map out every single variation to prove that though...

 

I agree with you. My only comment is what is the basis to believe chess is a draw? I can't find any analytical or mathematical reason for that conclusion.

As for solving chess, there is some reason to believe it can happen within a decade or two. Here's a brief analysis:


Checkers has a game tree complexity of 10^31, and was solved in 2007. It was a draw, so every game had to be studied (make sure there was no way for white or black to win).

 

Chess is more complicated. The game tree complexity is 10^123. So chess is more complicated by a factor of about 10^92. (doesn't sound good so far).

 

Now, some factors that might simplify the calculation for chess:

1) If we can find a forced mate, not all positions need to be investigated.
2) If there is a forced mate, it would make sense to look for it by studying only well-played games (ignore games where one side purposely makes bad moves, like losing pieces for no reason).
3) Chess opening theory has already been highly studied.
4) All chess endgames with 7 pieces and less have already been solved.

 

Now to calculate how much each of these simplifies the calculation (note: one ply = 1/2 a move, such as a move by white)

Instead of a 10^123 game tree complexity, by checking only games with normal play (halting any calculation where one side makes a stupid move) the game tree complexity is reduced to 10^40. (see Wikipedia "Shannon number/Sensible games"). Now our problem is only 10^9 times (1,000,000,000) as complicated as checkers.

Now use existing chess theory to ignore all bad chess openings. Let's say we use opening theory for the first 3 plies. (3 plies x 20 choices = 20^3 = about 10,000). 1,000,000,000/10,000 = 100,000. Our problem is now about 100,000 times as complicated as checkers.

Now use an existing chess tablebase to play the final 6 plies of the game (6 plies x 5 move choices = 5^6 = about 10,000). 100,000/10,000 = 10. Our problem is now about 10 times as complicated as checkers.

Checkers took 18 years to solve using 200 computers at the peak of the calculation. Our calculation is 10x as difficult, so it will take 180 years to solve chess. How to do better: Use 10 times as many computers. So chess might be able to be solved in 18 years.

Now we're still at a disadvantage compared to checkers, because calculations may proceed more slowly. Each move needs to be checked if it was "stupid" or not (like losing a queen with no compensation). If stupid, stop the work and go to the next game.

On the other hand, we have one big advantage, If we find a forced mate, we're done. The rest of the game tree can be ignored.

 

So, with distributed computing, using about 2000 computers, and the assumptions above, we have a problem that can conceivably be solved in 15-20 years.happy.png

Avatar of OptimalTurnip
Fixing_A_Hole wrote:
waffllemaster wrote:

This has been asked and talked about before.  The answer is no.

 

ifoody wrote:

Sadly yes. It may take some years, but the technology advances all the time, and if today's computer need 200 years to solve chess completley, in 10 years the will need 50 years, and maybe in some time solving games like chess will be something that every 8 years old kid can do with his personal computer at home.

But the answer is for sure, yes.

The problem with that logic is they currently need an absurd number like 10^50 years.  So in the future, when it gets 100x faster, they'll only need 10^48 years, and in the very far far far future, only 10^40 years.

And then there's the impracticality (more like impossibility) of storing the solution.

e.g. a little quiz.  If every position + its evaluation only took 1 bit of storage space, and every bit could be stored in the size of an atom, then how big would the storage device be?

A) Bigger than the moon.
B) Bigger than the sun.
C) More atoms than our solar system.
D) More atoms than our galaxy.

Answer is none of the above- More atoms than in the universe.  

True

Avatar of Ashton_Yeager

My question is why would you want to completely solve chess when it could take all the fun out of the game.  Chess is really best the way it is

Avatar of vickalan
Ashton_Yeager wrote:

My question is why would you want to completely solve chess when it could take all the fun out of the game.  Chess is really best the way it is

I'm dying to find out if one side can force a win. But even if chess is solved, I won't be able to memorize all the correct moves. Playing OTB would still be fun. (But playing on-line I would worry about my opponent cheating using the perfect play database). But if chess is solved and I still want to play on-line by correspondence, there's plenty of other chess-type games that still won't be solved.happy.png

null

Avatar of vickalan
s23bog wrote:

Is there any work being done on mapping out every possibility?

To my knowledge, no one is working on completely mapping out the entire tree of all chess moves.
For looking for a "forced mate", the basis for only checking "good play" is that a forced mate is based on the theory that each side tries to mate the other, while at the same time avoiding being checkmated.
Throwing out "bad" play makes the search for a forced checkmate easier.
 
There are forced mates that exist for more than the length of an average game.  Here is one that requires 546 moves: (hit play to see 546 move forced mate).
 
The most computer power I'm aware of devoted to a math study is GIMPS. More than 1,000,000 cpus are being used to search for new prime numbers. The aggregate throughput is more than 150 TeraFLOPs. (Too bad they weren't studying chess).happy.png
Avatar of DiogenesDue
vickalan wrote:
SmyslovFan wrote:

All this talk about "solving chess" revolves around the unspoken belief that chess is a draw. If there's a forced win in chess, the solution won't require mapping out every single possibility. 

I firmly believe chess is a draw with best play. I don't think it's necessary to map out every single variation to prove that though...

 

I agree with you. My only comment is what is the basis to believe chess is a draw? I can't find any analytical or mathematical reason for that conclusion.

As for solving chess, there is some reason to believe it can happen within a decade or two. Here's a brief analysis:


Checkers has a game tree complexity of 10^31, and was solved in 2007. It was a draw, so every game had to be studied (make sure there was no way for white or black to win).

 

Chess is more complicated. The game tree complexity is 10^123. So chess is more complicated by a factor of about 10^92. (doesn't sound good so far).

 

Now, some factors that might simplify the calculation for chess:

1) If we can find a forced mate, not all positions need to be investigated.
2) If there is a forced mate, it would make sense to look for it by studying only well-played games (ignore games where one side purposely makes bad moves, like losing pieces for no reason).
3) Chess opening theory has already been highly studied.
4) All chess endgames with 7 pieces and less have already been solved.

 

Now to calculate how much each of these simplifies the calculation (note: one ply = 1/2 a move, such as a move by white)

Instead of a 10^123 game tree complexity, by checking only games with normal play (halting any calculation where one side makes a stupid move) the game tree complexity is reduced to 10^40. (see Wikipedia "Shannon number/Sensible games"). Now our problem is only 10^9 times (1,000,000,000) as complicated as checkers.

Now use existing chess theory to ignore all bad chess openings. Let's say we use opening theory for the first 3 plies. (3 plies x 20 choices = 20^3 = about 10,000). 1,000,000,000/10,000 = 100,000. Our problem is now about 100,000 times as complicated as checkers.

Now use an existing chess tablebase to play the final 6 plies of the game (6 plies x 5 move choices = 5^6 = about 10,000). 100,000/10,000 = 10. Our problem is now about 10 times as complicated as checkers.

Checkers took 18 years to solve using 200 computers at the peak of the calculation. Our calculation is 10x as difficult, so it will take 180 years to solve chess. How to do better: Use 10 times as many computers. So chess might be able to be solved in 18 years.

Now we're still at a disadvantage compared to checkers, because calculations may proceed more slowly. Each move needs to be checked if it was "stupid" or not (like losing a queen with no compensation). If stupid, stop the work and go to the next game.

On the other hand, we have one big advantage, If we find a forced mate, we're done. The rest of the game tree can be ignored.

 

So, with distributed computing, using about 2000 computers, and the assumptions above, we have a problem that can conceivably be solved in 15-20 years.

You are double and triple counting eliminations (I assume that you can see that your bullet points above are not mutually exclusive, but you are recounting positions that would have already been eliminated by previous and subsequent bullet points), and vastly overestimating.

You are also comparing evaluation of chess positions to checkers positions as apples to apples.  Not the case at all....just like Go, Checkers is simpler and much faster to evaluate a position for.  The reason Go is harder than Checkers was is because the tree is much larger than Chess.  Checkers' tree is both far smaller and much less processing power per evaluated position.

Even granting all your other overall generous estimates as-is otherwise (a very tall order), you are way off. 

Avatar of Billkingplayschess

Never say never. We have already established the premise that chess can be solved, yet it is just a matter of time. Even if it takes 1 million years, that is but a wink of the eye, when comparing it to the age of the universe. The one thing this thread has introduced, which I never considered before, was the idea that chess can be solved with a win. This would indeed kill the game for sure. Based on how many ways draws can be made, I doubt there will be a winning solve of chess though.

Avatar of nimzomalaysian
Excalibr4 wrote:

Never say never. We have already established the premise that chess can be solved, yet it is just a matter of time. Even if it takes 1 million years, that is but a wink of the eye, when comparing it to the age of the universe. The one thing this thread has introduced, which I never considered before, was the idea that chess can be solved with a win. This would indeed kill the game for sure. Based on how many ways draws can be made, I doubt there will be a winning solve of chess though.

There's no way chess can be solved completely because there simply isn't enough space to store all the positions. Let's say you build a system that stores one position per atom, unfortunately the number of chess positions far exceeds the number of atoms in the entire universe (observable), as a result you find yourself running out of physical space to store them.

So, there's no way you can solve it completely, but one thing you can do is filter out positions that give one side a huge advantage because we already know who will win. So you start from the initial position and branch out, every time you get to a position that is +/- 3, you chuck that line. This way, the number of possible positions reduces drastically and there's some hope.