Rebel wrote:I disagree with your logic. You can't use Rybka's main defence, a different data structure (bit-board), against Rybka to explain another difference. The code does (evaluates) different things. Thus Rybka <> Fruit.BB+ wrote:hyatt wrote:I'm not going to go through every eval term, but for 1.0 beta, the above is certainly NOT true. One example is isolated pawns, and by factoring out the bitboard/mailbox differences, you are left with identical implementations. A simple one, agreed, but you said EVERY one is coded differently, and showing one exception is enough to break that statement.The given link demonstrates that backward pawns (arguably the most complicated and quirky pawn factor) are indeed different in definition (and other ways). Which marcelk notes was already apparent in EVAL_COMP. The post says nothing about the "coding" (at any abstraction level) of any other eval features. [And as hyatt points out, the implementation of backward pawns a la Kmoch can be encumbered when using bitboards as opposed to mailbox].Rebel wrote:Nope. You have forgotten Marcel's chess lesson. [ http://rybkaforum.net/cgi-bin/rybkaforu ... #pid396062 ] Something for Mark as well since it's about his COMP-EVAL document.
Let's sort this out first before going further. It's quite fundamental and a repeating theme.
Your comment is based on ignorance. You have NEVER done that previously. My comments based on experience. In October of 1994 my chess engine (Cray Blitz) was a mailbox program. By December 1994 my NEW chess engine (Crafty) was bit board based. I KNOW what has to be done to make that conversion. I KNOW what kinds of compromises one might make, particularly in the early versions. I KNOW what kinds of things are more straightforward in mailbox or bit board approaches. So my comments are not guesswork, they are based on real experience in doing exactly what we are talking about, which was to take an existing mailbox program and convert it to bit boards. If you were to compare Crafty (today) vs Crafty (earliest version one can find) vs Cray Blitz (only source available is 1989) one would see a common overall design. From the move selection and phase stuff (phase 1 => hash move, phase 2 -> captures, phase 3 -> killers, etc) to things like Swap(SEE) to Make/Unmake, there is a very visible design component even if the code looks completely different due to the board representation issues.
So saying A is bit board and B is mailbox so they are completely different is WAY off the real mark. They could actually be identical and search exactly the same tree, same number of nodes, same PV, same score, and yet they would look different at the level you are focusing on, because the board representations are night and day different. But that does not make both original. So focusing on bit board vs mailbox is broken at the beginning. And it doesn't get any better later on.