News for hackers. Stuff that matters.
Re:Strongest chess player, ever by anatoly on Sunday June 01, 2014 @06:08AM (#7828697)
Can anyone comment on what makes stockfish different from other chess engines? If I'm curious about state of the art in computer chess, is it worthwhile to study its source? What interesting ideas should I expect to see there beyond what I vaguely know to be the standard approach from introductory AI courses, i.e. some sort of alpha-beta pruning search?
Re:Strongest chess player, ever by onestone on Sunday June 01, 2014 @06:34AM (#7828730)
What sets Stockfish apart is its open testing framework. Many volunteers allocate CPU time to run test games, checking if a pull request actually adds Elo rating points. Also, its open development model is a big advantage compared to closed-source chess engines, which usually just have 1-2 developers. The ideas used are mostly the same in all top engines, the advantage of Stockfish comes from tuning/testing/polishing/tweaks.

An year ago Stockfish was near the top, but not quite there. Since then its development model became more open, and the open testing framework was introduced. The rate it's been adding Elo rating points since then has been amazing.

Re:Strongest chess player, ever by dfan on Sunday June 01, 2014 @09:40AM (#7829107)
You should indeed study Stockfish's source, not because it is the strongest computer chess engine, but because it is exceedingly well-written. Most engines that are public are a big hacky mess, but the Stockfish maintainers have made cleanliness a really high priority (sometimes proposed changes that increase the engine's strength are rejected because they're too much code), and it has clearly paid off.
Re:Strongest chess player, ever by mfenniak on Sunday June 01, 2014 @05:32PM (#7830764)
Rejecting an improvement because it's just "too much code" is... brilliant, disciplined, and extremely difficult to do. Such a high percentage of software development is maintenance, and it's easy to underestimate that long-term maintenance cost.
Re:Strongest chess player, ever by icpmacdo on Sunday June 01, 2014 @02:59PM (#7830238)
>sometimes proposed changes that increase the engine's strength are rejected because they're too much code

that seems insane.

Re:Strongest chess player, ever by dfan on Sunday June 01, 2014 @06:22PM (#7830907)
I know, doesn't it? But sometimes someone finds a way to simplify the patch so it's less code and almost as effective, and sometimes future improvements are made easier because the existing code is easier to work with. And it's hard to argue with the results.
Re:Strongest chess player, ever by dripton on Sunday June 01, 2014 @04:47PM (#7830595)
Insane in the short term. But in the long term, if they make the program less maintainable, they may prevent future improvements.
Re:Strongest chess player, ever by ekr on Sunday June 01, 2014 @06:37AM (#7828738)
I'm not familiar with it, but I'd assume most of them use the same mini-max, with alpha-beta prunning, or some similar algorithm, with small improvements, especially in the heuristic state evaluation function.

You'd learn more by studying a book on AI, and maybe trying to implement an engine yourself, iMO.

The difference in score between the top engines is not that big.

Re:Strongest chess player, ever by arek2 on Sunday June 01, 2014 @06:43AM (#7828750)
I have not seen the Stockfish source, but my impression is that computer chess was going round in circles in the last 10 years, and it's still good old alpha-beta search with more refined heuristics.

The biggest value in studying computer chess for a programmer is IMO in seeing all the different performance optimization tricks.

Re:Strongest chess player, ever by halfcat on Monday June 02, 2014 @11:51PM (#7838049)
Performance optimization, while it is not neglected, is not what separates chess engines. You don't win an exponential race with linear advantages.