Forums

The most beautiful puzzle that my engine can never solve

Sort:
DesperateKingWalk
Elroch wrote:

Do I need to tell you a third time that chess has a finite number of legal positions?

So what.

This has nothing to do with Stockfish looking at all possible moves in the search. Does it....grin

I just showed that no matter how long Stockfish searches it is always cutting moves for the search tree.

AND THIS IS WHAT THE PROGRAMMES OF STOCKFISH CLAIM.

DO YOU HAVE ANYTHING SHOWING THE STOCKFISH PROGRAMMERS ARE LIARS.

Yes you do....

Do I need to tell you a third time that chess has a finite number of legal positions?

grin

Elroch

The answer to your question "does it?" is "yes, it does".

The only thing that stops Stockfish looking at every move is computational resources, especially TIME.

On multiple occasions you have forgotten that all the empirical evidence involves a minuscule amount of time. We are discussing what the algorithm would do with unlimited time and space. (The fact that it can't solve some problems with practical time has never been in question).

Let's see what Stockfish does when it is in a position to eliminate every node except one, but still has time to analyse. The answer is that it continues to analyse DEFINITELY INFERIOR BRANCHES. Given that, the belief that it might ever PERMANENTLY ignore branches that COULD BE BEST is ridiculous.

Arisktotle
DesperateKingWalk wrote:
Elroch wrote:

Do I need to tell you a third time that chess has a finite number of legal positions?

So what.

This has nothing to do with Stockfish looking at all possible moves in the search. Does it....

I don't know what StockFish currently does and how. But I do know I would program every chess engine - and I would be massively surprised if it isn't done already - to have a thread (threads) running doing a full tree search on the chance it strikes gold. Even if just running in the background as a garbage collector on 1% of CPU-time. When quantum computing gets fast enough (assuming it can) I would delete all the other code. The point is that there is a balance between the required complexity of the software and CPU speed plus memory. In the last century russian infomation theorists were considered brilliant in designing algorithms which they needed for instance in their space rockets since their computers were slow compared to those in the west.

DesperateKingWalk
Elroch wrote:

The answer to your question "does it?" is "yes, it does".

The only thing that stops Stockfish looking at every move is computational resources, especially TIME.

On multiple occasions you have forgotten that all the empirical evidence involves a minuscule amount of time. We are discussing what the algorithm would do with unlimited time and space. (The fact that it can't solve some problems with practical time has never been in question).

Let's see what Stockfish does when it is in a position to eliminate every node except one, but still has time to analyse. The answer is that it continues to analyse DEFINITELY INFERIOR BRANCHES. Given that, the belief that it might ever PERMANENTLY ignore branches that COULD BE BEST is ridiculous.

 

You are a moron.

We already shown that at 1 ply it looks at every move.grin

Stockfish is open source, and the program search is understood.

number of leaves with depth n and b = 40
depth n bn b⌈n/2⌉ + b⌊n/2⌋ - 1
0 1 1
1 40 40
2 1,600 79
3 64,000 1,639
4 2,560,000 3,199
5 102,400,000 65,569
6 4,096,000,000 127,999
7 163,840,000,000 2,623,999
8 6,553,600,000,000 5,119,999

How Stockfish prunes out moves....

So instead of evaluating all the way until checkmate, Stockfish simply looks as far as it can (usually 30+ nodes deep), and uses heuristics based on the stage of the game to assign a value to how "good" the move really is based off of the resulting position. To do this, Stockfish cleverly constructs a tree full of ever-increasing depth, consisting of moves followed by more moves, along with their values. While modern hardware can analyze hundreds of thousands of positions in seconds, multiple steps are still taken to "prune" and recognize patterns inside the tree.

A non-exhaustive list of techniques is as follows:

Alpha-beta pruning is used to eliminate "bad moves," or moves that after counter-moves result in extremely bad positions.
A transposition-table is created to store frequently visited positions, so no identical nodes are analyzed more than once.
This becomes even more complicated past depths of 3, check out chessprogramming - Alpha-Beta for more info.
Razoring is used as a sort of forward pruning where rather than skipping an entire subtree, the engine searches it to a reduced depth, typically one less than the normal depth. The advantage is that you get most of the saving but with much lower risk than pruning entire subtrees like with alpha-beta pruning.
This comes from the heuristic that from any given position the opponent will be able to find at least one move that improves his position, the Null Move Observation.
Again, this is oversimplified. Check out chessprogramming - Razoring for more info.

DesperateKingWalk

Can Stockfish Solve Chess?

Answer form Google.

Stockfish chess engine is a programed set of chess commands and positional move timing according to human knowledge at a higher level of chess perception but, it cannot be relied upon to solve chess because it can't calculate beyond its set limits.

DesperateKingWalk

Stockfish can not solve chess or every chess position. Because it was not designed to look at every move. By the design of the programmers of Stockfish.

This is not hard to understand. grin

Meaning Stockfish would need to be reprogrammed to allow every move to be examined.

Elroch

Your skillset appears to mostly consist of glibly repeating vague mantras and being abusive. Also incorrectly reasoning from quotes.

The skill you could do with developing is logical reasoning.

You don't seem to understand what a 1-ply analysis is. The position I posted showed analysis lines to many moves and a search depth of 26. That is NOT a 1 ply analysis. Note also, that you seem to forget that a 1-ply analysis generates a new set of positions without 1-ply analysis. At the extremes of an incomplete analysis tree, you always have a set of positions that do not have a 1-ply analysis. If every position has a 1-ply analysis, the analysis is complete, contrary to your fanatical belief.

The point was that the lines Stockfish was analysing in my example were the most extreme example of irrelevant, inferior lines possible. The idea that it would fail to permanently prune such lines but prune some other type of line is, to an intelligent person, obviously absurd.

One possibility you miss is that Stockfish can do its analysis, pruning low priority (or even strictly inferior, like in my example) lines, but later, when there is nothing better to do analyse those lines. That is what happens in my example, and that is what happens at every leaf node in the hypothetical end.

It is an interesting discovery that Stockfish does this even when it has categorically solved a problem - it has found the shortest mate, proved that there are no other alternative mates, and yet continues to analyse inferior lines. Because it can, and it has nothing better to do.

In our hypothetical case where Stockfish has no problems with computational resources, it does the same at every position in the analysis tree, each one being in the hash table so it is found if it is reached by transposition.

Elroch
DesperateKingWalk wrote:

Can Stockfish Solve Chess?

Answer form Google.

Stockfish chess engine is a programed set of chess commands and positional move timing according to human knowledge at a higher level of chess perception but, it cannot be relied upon to solve chess because it can't calculate beyond its set limits.Sto

No, that is an answer a google search finds on Quora. It is from a contributor using the fake name "Alfred Alphazero". But it is correct if about a specific implementation of Stockfish, which can have say a maximum hash table size. Here is a more relevant answer from someone who uses his real name.

DesperateKingWalk

I wonder why you like to lie about stockfish. When Stockfish programmer's even say Stockfish always prunes and razors. And even Google knows Stockfish can not solve chess. Because of this programmed limitation. I guess maybe you are just low IQ.

Jose_Victor_Goriding

I want to learn more!

Elroch
DesperateKingWalk wrote:

... even Google knows ...

grin.png

Arisktotle

Whatever StockFish does or can do (are they different?) the underlying design principle is that reaching an end point (in time) has a higher priority than reaching an end position (game state). The point where SF could solve chess has long been passed because the price was too high - 200 billion years. Which is the fate of complex mathematics. You won't see it appear until it has been reduced and restricted and the tools are powerful enough to permit practical application - see ChatGPT.

Elroch

Yes. There is a huge gap between the theoretical and the practical.

With AI, it wasn't so much that there was a theoretical demand, it's just that enormously increased computational power made a lot more possible. I was fascinated by neural networks in the dark ages (after they had been invented then went out of fashion while computationally cheaper alternatives had a lot of success. With 1000 times more computing resource (probably a million times with the big LLMs, which run on very powerful centralised hardware with stacks of state of the art TPUs), a lot more has been achieved.

The ChatGPT hardware has thousands of individual units suitable for interacting with individual users, each of which has 8 state of the art V100 TPUs. Each of those units is more powerful than the world's fastest supercomputer in 2004 - 800 teraflops.

Proman9OnlyGod

If white moves first my engine took 10 seconds and depth 42 to realise white is winning

Traxxas

That is an amazing puzzle. I only got a few moves correct

SynOfLife

2024, with Stockfish 16.1 this finally gets solved within seconds :-)

sumukesh97

Congratulations 👏🎉

hassoalbert
Aron_08 wrote:

ddd 64 @Oh ok I don't no about this enine then try this position

It's fascinating how the chess.com engine can detect a mate in less than a second and execute the perfect sequence without any mistakes. The puzzle's beauty lies in its complexity and the unexpected requirement for multiple underpromotions.