How God Plays Chess (2018)
en.chessbase.com
en.chessbase.com
God should know there are approximately 4.8*10^44 legal positions [1].
> Secondly Ken was predicting that the game of chess was a draw, i.e. that probably a majority of all legal positions, including the starting position, would lead to a draw with perfect play.
Only the latter is what the game being drawn means. The majority of legal positions is in fact overwhelmingly to one side's advantage, as is clear from sampling a few dozen random legal positions.
that might reduce the search space enough to find an optimal play through to the start game...
that would be fun
Chess engines already do this, just with much much better heuristics than counting number of pieces.
> that might reduce the search space enough to find an optimal play through to the start game...
Sorry, no.
I had a vague intuition of doing the same (going backwards) to generate the winnable Solitaire card deals, but I didn’t get far with it… Does anyone have experience/ideas on that? FTR: a similar discussion on X, started recently by Jonathan Blow: https://x.com/Jonathan_Blow/status/1865520149891346634
I ended up generating totally random deals, then filtering-out those unsolvable by an algorithm of mine (described at https://FreeSolitaire.win/strategy#remarks). It’s fast & good enough to run on-the-fly, when a player starts a new game. But this isn’t an intellectually satisfying solution.
Note that “The probability of being able to win a game of Klondike with best-possible play is not known, and the inability of theoreticians to precisely calculate these odds has been referred to by mathematician Persi Diaconis as "one of the embarrassments of applied probability"” dixit https://en.wikipedia.org/wiki/Klondike_(solitaire)#Probabili...
We need another genius like Ken Thompson for Solitaire!
[0] https://en.wikipedia.org/wiki/Endgame_tablebase#External_lin...
[1] https://syzygy-tables.info/
[2] https://news.ycombinator.com/item?id=40949943 ("Optimizing the Lichess Tablebase Server (lichess.org)")
[3] https://news.ycombinator.com/item?id=27896386 ("Our lawsuit against ChessBase (stockfishchess.org)")
Does the 50 turn rule make the analysis harder or easier? My gut says easier because it creates some limit that should, I guess, let you prune some extra cases somehow… but it does add some extra state which is weird. Two otherwise identical board states become no longer identical depending on how you got there…
The classic Nalimov bases don't, at all (pure DTM).
The Syzygy bases that are the most common now do, but in a kind of weird way (DTZ50); they try to get to the next zeroing move (pawn push or piece capture) as soon as possible, which means they play optimally from a win/draw/loss perspective no matter what the 50-move counter is but appear to play super-strangely (e.g. they may sacrifice a queen and go into a super-tricky won ending, instead of finding a mate in five).
Galen Huntington has made proper DTM50 bases (http://galen.metapath.org/egtb50/), which basically treats each position as different depending on the DTZ counter, i.e. “kings on a1 and a8 and a queen on c4” is really 100 different positions depending on who is to move and what the DTZ counter is, where some of them may have different mate distances and/or different results. That will give the shortest possible mate _and_ always take the 50-move rule into account. But they are not public, much larger than the Syzygy bases and generally more of a research project.
Any engine that uses tablebases in its search will generally end up playing pretty strangely on the “knowledge horizon”, even when using DTM50 bases, for the simple reason that they will be happy to reach anything the tablebase says is a win, by any means. (E.g., again, if you have 8 pieces and 7-man tablebases and you don't see any other way of mating, sacrificing your queen to get into a won 7-man ending will be your best move.)
Although it could of course use some strong existing engine to pick a move in drawn tablebase positions. I assume Stockfish already does that.
This is commonly called “swindling” and Stockfish does not do it. There are other engines that do (you do a normal search where the losing moves are never considered, and then pick the best one from there).
The thing is, there is money in chess but not that much money. There will never be a unicorn in chess software.
Most of my opening stuff is just in a bunch of Lichess studies these days though.
It's hard to imagine a competitor at say $50 that did say 80% of Chessbase's functionality would sell many copies. It needs to be 150% of Chessbase and cost $200.
Scid (and forks) also exists in the open source world. It works just fine but the UX is lacking; I've never met a serious player who relied on it. It's the GIMP to Chessbase's Photoshop. So the UI needs to be great or to be a clone of Chessbase's.
There's also Chessbase mobile which was an amazing product when it first came out. It has the three features people really want from Chessbase: search for a position, search for a player's games, run engine analysis. All in the cloud. For something like $6.99. Sadly Chessbase seem to underprovision servers for it and Android nerfed it by preventing you plugging in strong OS engines. But it's a sign they can give away the product if they need to get into a price war.
But everything up to 6 pieces is on BitTorrent these days. The 7 piece tablebase is 20TB or so, so it’ll be a few years before you can fit that one your phone. Pretty sure Lichess has an API for that. Never tried to hook it up to Stockfish or Leela though.
You don't need to muck around with BitTorrent to get them; several mirrors have them over HTTP.