lichess.org
Donate

Review of different board representations in computer chess.

Nice computer chess blogs angles (including the other) of approach.

I skimmed, and will read to educate myself on history, but did you forget about Alpha-Zero and Leela chess zero complete input encoding? going in the other direction of compactness of information support?

That's computer chess using human brain (or mammalian or animal) sensory architecture as the visual cortex as inspiration. It goals to make the separation between patterns as accessible as possible both for learning and recognition (my words).

I think a lot of computer representations in the past (which i would not pretend to know, but read about some, and will read in your blog, nice series btw), have had some constraints that may not be always required everywhere, even in computer chess. Maybe there will always be the need for information compression though. as long as time and storage are limiting resources, and also speed the goal (even if time were not an issue anymore).
your engine? I did not understand the context of your blogs. You are making blogs with your high level models so far, and would like feedback? well i gave you some, I hope welcome.

I guess then my comment about NN encoding, is not that off topic. It might even help about handling NNue which is walking on the tight rope between the compact goal, and the expressiveness needed for proper representation of classical SF moderate search depth score of NN input position (using SF, but any "classical eval of other AB engine would do).

The art of board representation being stretched from both sides.. compact yet informative.
About the form:
nice blog indeed i am at the human representations (known territory) and I find it well presented... I ought to take notes about the delivery. methodical history (but not stalling). I also like the blend between casual opinion and fact sharing (some get confused by such alternance, but for me it brings rhythm at some scale, it breathes).

In the core of the presentation, you do place yourself in the discovery process and share it with the audience. That ought to get a lot of kudos.... Bravo. Maybe i don't read enough blogs and they all are like that, but this is rather technical in its objectives...

Also, I should in light of above missing representation comment, mention that you did notice various trade-off between human intuition and computer programming typical constraints and coding mobility and legality in whatever choice of representation. And your goal is coding first, along the established and well documented paths.

NN in chess might be a nice complement to read about. SF doing both, but minimalistically on the exploded expressiveness side of the board representation.. That part of NNue is well documented, how they do dimensionality reduction from full NN input representation like in A0 or LC0). look in github.
<Comment deleted by user>
@Solal35 said in #2:
> Nice blog.
>
> One of the main reason Bitboards became ubiquitous was the "magic bitboards": www.chessprogramming.org/Magic_Bitboards, allowing for fast slider move generation.
>
> It is however non-trivial both to understand and implement, for example in scalachess: github.com/lichess-org/scalachess/pull/210

Thank you.

Yes... magic bitboards. When I first read about them I was completely humbled and could not understand a thing. Then I revisited that topic several times and read up on perfect hash functions and now it all clicks. I have implemented them already in my engine. And I purposefully did not comment on them or go into detail on the various bitboard operations or popcount and LS1B, etc... That is a huge topic and one that I certainly hope to revisit one day in a separate post.
@dboing

Thank you a lot for the feedback. I did not forget about AZ or Lc0. I simply don't know anything about them to such detail where I can talk about them. But your comments certainly sparked some interest in exploring those topics more.

As you already understood this is a discovery process that I share with the audience. I currently pretend NN chess doesn't exist and only make small side notes here and there where it is absolutely necessary. But I of course have a lot of curiosity towards them and I hope I will be able to dip into that field myself one day.

I really want to limit my writing only on areas I have personally explored and understood. And try to convey that information as technically accurate but also approachable and of course also my own opinions mixed in with the facts.

Thank you again for reading and leaving so much feedback and commentary.
thank you for doing what you are doing.. not everyone would expose themselves in discovery mode.
Thanks for this. The quick overview of pros and cons of each board representation strategy helps those trying out a chess programming project for the first time. The Chess Programming Wiki is a bit more verbose and technical: you break it down and summarize it into layman's language well.