Stockfish 17 is beatable from the starting position

In computer chess matches, chess engines always draw each other from the starting position. Because of this, it is widely believed that the strongest engines cannot be beaten from the starting position.

This is incorrect. I can consistently find winning games against Stockfish 17 with enough search. The strategy is simple: allow yourself infinite takebacks, memorize all positions you've seen, and prioritize the positions you currently evaluate the best.

https://lichess.org/LluIhY5s: 69. Rf7#

To find candidate moves for each position, I run a Stockfish of similar strength, set to give me multiple lines. For each move, I store the resulting position, evaluation, and mainline into a game node, and push it to a max heap. Then, I fetch the most promising position, ask the opposing Stockfish to move, and repeat the process. To reduce game length, I also take move number into account (exponentially) when comparing nodes.

Plot of positions from above game, starting from move 32.

There are some caveats, but not many. The Stockfish I am playing against is deterministic (single-threaded), and does not hold any memory between positions. This is purely for convenience - I save time by storing the results of all positions, including Stockfish's move of choice, in a database, and it is too cumbersome to store the exact hash table state for each position. This gives the engine as White a decent advantage, but not nearly enough to win on its own.

For the game shown above, here are the specs. I expect the strategy to continue working with even more thinking time, but until I get a supercomputer, these were the most feasible:

Engine as White: SF17_windows_avx2, 50M nodes/move, 1024MB hash, 8 Threads, PV = 5

Engine as Black: SF17_windows_avx2, 25M nodes/move, 512MB hash, no memory between positions

My takeaway is that chess is still very far from solved, and there are holes in every analysis. Ask me anything, I have a few more cool games to share :)