2

I hope this is the right place to post this question. So I like to implement things myself without using libraries and one of my first projects was a chess engine and I would like to improve this one.

I got multiple questions:


  1. How are transposition tables used? Usually the serch algorithm has a fixed depth so we cannot "evaluate" non-leafs with the transposition tables, right? So the only purpose would be to hash the board evaluation of the leafs. Is this correct?

  2. I am using Java without multithreads. Is it worth to look into magic bitboards and switch to C++? They seem to be pretty messy at the first glance.

  3. How many nodes per second are realistic to reach with a "simple" engine. I got up to 1E6. I know that Stockfish reaches 80E6. Is it more worth to improve on nodes per second or on the algorithm itself?

I am very happy for any help.

1 Answer 1

2
  1. Depends on the program and how they implemented it. Many have memorized openings and transpositions later on in the game are usually short enough that the depth of analysis handles it.

  2. Not for me. But I am old school when it comes to programming. You may or may not like C++.

  3. Nodes/sec depends on the hardware, opsys, language, and your coding. The algorithm is far more important for good results.

6
  • 1
    thank you for your answer! What exactly do you mean by "transpositions [...] are usually short enough that the depth [...] handles it" Do transpositions only store the evaluation of leafs? Dec 8, 2019 at 15:15
  • @Finn Eggers -- I can only speak from when I ran into transpositions in my games. They were always in the openings, and well within the book values that were stored from GM games. None of them were more than a half dozen moves into the opening. Later in the game I have seen some alternative lines but they are rarely more than a few moves and are usually restricted by a choice of sequencing forcing moves.
    – yobamamama
    Dec 8, 2019 at 17:52
  • That makes sense to me but they are only for node leafs, right? Dec 8, 2019 at 17:54
  • @FinnEggers -- That should be the case. I see no problems with transpositions. Not sure what the actual concern is.
    – yobamamama
    Dec 8, 2019 at 17:58
  • Oh I see. It makes sense. I just thought about it for a second and realised that its actually simpler than I expected. Thank you for your help! One last question, is PV important to implement? Is there a huge benefit of principal variation? Dec 8, 2019 at 18:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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