3

In what way do major chess engines differ from one another?

Do they all use the same algorithm and the same evaluation function, differing only in parameters/weights?

3

EDIT:

  • I'm confident both Houdini and Komodo are in C/C++, the best language for speed optimization.
  • I'd be very surprised if they don't use alpha-beta/nega-max. This is standard in chess programming.
  • I don't know about board representation in Houdini and Komodo, but bitboard is good and fast. Stockfish uses that, and I think it's common for all strong engines.

ORIGINAL

Lot's of possibilities (I can't list everything):

  • How to prune/reduce the search tree?
  • How to evaluate a chess position?
  • What about quiescence search? Do you want to extend your search horizon?
  • Bitboard? Mailbox? How do you want to represent the internal board?
  • Multithreading support?
  • Programming language. C++? Java?
  • Operating systems optimisations such as large pages?

While all chess engines I'm aware of use alpha-beta/nega-max, their implementation could be significantly different.

No. They don't all use the same algorithm and the same evaluation function. Visit https://chessprogramming.wikispaces.com/Home, and you'll appreciate the complexity in chess engine programming.

  • Could you give concrete examples for some of the strongest engines (stockfish, Houdini, Komodo,....)? I understand that there are lots of possibilities, but perhaps some of those possibilities are better than others and are therefore preferred in the stronger engines!? – user1583209 Oct 18 '17 at 21:17
  • @user1583209 Komod and Houdini are closed source. Thus, not possible to say anything for their algorithms. We can only get their analysis, but we don't know the details. – SmallChess Oct 19 '17 at 0:06
  • @user1583209 Any concrete example will just give you a different move, different principal variation, different score. But, you'll never know why because no source code for Houdini and Komodo. Is that what you want? – SmallChess Oct 19 '17 at 0:07
  • I had the hope that at least a few things were known about closed source engines. For instance you state that all engines use "alpha-beta/nega-max". How about "bitboards", ....? Probably the strong engines are not written in Java either!? – user1583209 Oct 19 '17 at 12:23
  • @user1583209 I'm not able to find an example. I'll try to find an example if nobody else answers this question. – SmallChess Oct 20 '17 at 2:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.