Reverse Chess Engine?

Sort:
Avatar of Jonschesschannel
snoozyman wrote:

Wait...so you want to know if there's chess engine that can figure out how this:

 
 

....came from this:

 

By going reverse? That's a tough one, considering there are more chess games than the number of atoms in the universe...


Yea, this.

If I'm interpreting the OP correctly, that doesn't make any sense.

Avatar of NathanDrake12345

Are there really more than there are atoms?

Avatar of Shadic_the_Hedgehog

Hello

Avatar of snoozyman
NathanDrake12345 wrote:

Are there really more than there are atoms?

 

Yes. 

Atoms in the universe = 10^80

Number of chess games = 10^120

https://en.wikipedia.org/wiki/Shannon_number

 

Avatar of NathanDrake12345
snoozyman wrote:
NathanDrake12345 wrote:

Are there really more than there are atoms?

 

Yes. 

Atoms in the universe = 10^80

Number of chess games = 10^120

https://en.wikipedia.org/wiki/Shannon_number

 

 

We have not counted the Asteroids grin.png

Avatar of Jonschesschannel
snoozyman wrote:
NathanDrake12345 wrote:

Are there really more than there are atoms?

 

Yes. 

Atoms in the universe = 10^80

Number of chess games = 10^120

https://en.wikipedia.org/wiki/Shannon_number

 


I think half of those chess games include games where both players will move pieces back and forth and capture on the 50th move and do that over and over until it's stalemate.

Avatar of WBillH
Fins5090 wrote:

Really I just want to take a few really hard puzzles that a friend found and try to construct plausible high-level games that feature those tricky positions and use them in a short-story that I am writing.

 

How set are you on those specific positions?

Many tactics puzzles will link you to the game.  The iChess app and Lichess.org are a couple that come to mind.  Lichess has an interesting blog article about how they developed a method to mine their computer-analyzed games just to find problems.

Going through positions like that with a link to a real game might be easier for you.

Avatar of Shadic_the_Hedgehog

Hello

Avatar of llama47

OP was written really confusingly, but after reading it a few times I think I get it.

For example a normal chess engine takes a position after black's move 30 and ranks all of white's legal moves for move 31.

A "reverse" chess engine would take the same position and rank all of white's legal moves for move 30 instead of 31.

The problem would be how to treat the last move on the board. Are we assuming it will always be played? Or are we looking for white's move 30 such that black's move 30 is the best move? Off the top of my head there's no answer to this that wouldn't sometimes lead to some odd results.

Avatar of llama47
Jonschesschannel wrote:
snoozyman wrote:
NathanDrake12345 wrote:

Are there really more than there are atoms?

 

Yes. 

Atoms in the universe = 10^80

Number of chess games = 10^120

https://en.wikipedia.org/wiki/Shannon_number

 


I think half of those chess games include games where both players will move pieces back and forth and capture on the 50th move and do that over and over until it's stalemate.

Half?

lol

Avatar of EuweMaxx

They know how many atoms are there in the universe?? what is this? how did they calculate that?

Edit: They assume the mass to be constant and assume all atoms are hydrogen atoms, soo yea the number is not real

Avatar of llama47
iAmNotThatGuy wrote:

They know how many atoms are there in the universe?? what is this? how did they calculate that?

Edit: They assume the mass to be constant and assume all atoms are hydrogen atoms, soo yea the number is not real

lol, what do you mean not real?

Avatar of snoozyman

How many particles in the Universe Numberphile YouTube

What is a googol and googolplex Numberphile YouTube

How many chess games Numberphile YouTube

 

 

Avatar of CaptainCheckmate

OP actually asked a legitimate, interesting question.


OP, as someone who has written a few engines for chess and other games, I can tell you that what you're saying -- whether it is possible to make a chess engine that works backwards to determine likely moves leading up to a particular position -- is possible, although difficult.

You will struggle to get it to work beyond 3-4 moves however.  The issue is that, assuming your players played well, you must analyse the likelihood of a particular move by analysing the board and searching FORWARD, and you must do this while search BACKWARD, and so there is a lot of computation involved.  Modern chess engines partially tame the combinatorial explosion of moves by doing optimization such as alpha-beta pruning, and you may not be able to do this backwards.

In any case, this is a large project for a very skilled developer -- unless you're very well funded it would probably be cost prohibitive from a project management point of view.  You would probably be better off just running through a bunch of master games and trying to identify some interesting positions that are suitable for your purpose, rather than starting with a position and trying to build a game around it.

Avatar of llama47

Most people have a terrible intuition for large numbers.

For example, let's imagine the number 10^100 and let's reduce that number by 99%... that means only 1% of the original value is left over.

Which of the following is closest to 1% of 10^100?

a) 10^0

b) 10^1

c) 10^2

d) 10^10

e) 10^20

f) 10^50

g) 10^100

Avatar of snoozyman
Probably B) 10^1 closer to 1% of a googol?

I’m guessing because 10 has only 1 zero while a googol has 100. I thought it might be 10^10 though because I’m terrible at math lol
Avatar of llama47

The answer is g happy.png

10^100 divided by 100 is 10^98.

Which means, for example, that 10^100 + 10^98 is pretty much still 10^100... the same way that 100 + 1 is pretty much still 100.

The way a though f compare is like dipping your finger inside an Olympic sized swimming pool, flicking off a few drops, and wondering how much you've emptied it.

Avatar of snoozyman
llama47 wrote:

The answer is g

10^100 divided by 100 is 10^98.

Which means, for example, that 10^100 + 10^98 is pretty much still 10^100... the same way that 100 + 1 is pretty much still 100.

The way a though f compare is like dipping your finger inside an Olympic sized swimming pool, flicking off a few drops, and wondering how much you've emptied it.

 

I just googled "what is half of a googol" and it turns out it is 5.0 x 10^99. That's still a HUGE number!

Avatar of llama47

Yeah, exactly.

We're used to linear stuff, not logrithmic stuff.

For example what's the half way point between 0 and 100?  The answer is 50, of course, because 0 + 50 twice.

But geometrically what's the half way point between 1 and 100? The answer is 10, because 1 x 10 twice.

The point being that you move a little bit geometrically (10^99 vs 10^100) and you move a lot linearly (10^100 is ten times bigger).

Avatar of bbeanzonpizza
This is an old question but an interesting one. And it’s a lot harder than it seems at first glance…let’s do the easy parts first.

All pieces (I do not include pawns in my definition of pieces) could have moved from any legal position in the last move so that’s easy to look at. Pawns, if they are not blocked from behind, could’ve just moved up one (or two if they’re on the 3rd or 6th rank) square. All white pieces on the 8th rank could’ve been promoted pawns on the last move (and vice versa for black pieces on the first rank). But the part that adds a ton of complexity for the reverse engine problem is captures. Any pawn or piece could’ve just captured a piece of any kind. You can make some restrictions based on 1. There must only be 8 pawns max for each side and 2. Some more complicated restrictions on each kind of piece based on the position but this is what really adds to the complexity of a reverse engine. It is definitely still possible though, because you could define the “best reverse move” as the move that maximizes the change in static score (relative to black or white) from the previous ply to the current ply. I hope this makes sense and maybe someone else can chime in.