logoalt Hacker News

twoodfinyesterday at 10:40 PM1 replyview on HN

It’s simpler. Chess is a search through the space of possible moves, looking for a move that’s estimated to be better than the best move you’ve seen so far.

The search is by depth of further moves, and “better” is a function of heuristics (explicit or learned) on the resulting board positions, because most of the time you can’t be sure a move will inevitably result in a win or a loss.

So any particular move evaluation might take more or less time before the algorithm gives up on it—or chooses it as the new winner. To throw a consistent amount of compute at each move, the simple thing to do is give the engine consistent amounts of time per move.


Replies

TheDongtoday at 2:27 AM

> To throw a consistent amount of compute at each move, the simple thing to do is give the engine consistent amounts of time per move.

The simple thing to do is give it a limit on the total number of states it can explore in its search.

If your goal is consistency, wall-clock time makes no sense. If I run 'make -j20', should the chess computer become vastly easier because the CPU is being used to compile, not search? Should 'nice -n 20 <chess app pid>' make the chess computer worse?

Should my computer thermal-throttling because it's a hot day make the chess computer worse, so chess is harder in winter?

If the goal is consistency, then wall-clock isn't the simple way to do it.

show 1 reply