Author: Reinhard Scharnagl
Date: 20:58:19 12/23/03
Go up one level in this thread
On December 23, 2003 at 23:33:39, KarinsDad wrote: >On December 23, 2003 at 22:22:25, Reinhard Scharnagl wrote: > >>Hi KarinsDad, >> >>a comprehensive solution always would be a better solution. >> >>There is a solution (complex translation table), which I would like to be >>substituted by a more intuitive, before I would fix that idea then. >> >>Your solution (in my opinion) is no solution. Because if one king is able >>to castle, the other is not and HAS BEEN PLACED SOMEWHERE on the board, his >>coordinate (different from original position) vanishes by your encoding. >> >>Reinhard. > >Yes of course. I was only listing some of the cases. > >However, it does not change the number of bits needed. > >In 12 bits (4096 possibilities), there are 484 illegal positions (i.e. >wka1/bka1/bka2/bkb1/bkb2 as 4 examples). To calculate this, it is white king in >4 corners * 4 black illegal king squares. Plus, white king on 24 edge squares * >6 black illegal king squares. Plus, white king on 36 inner squares * 9 black >illegal king squares. 4*4 + 24*6 + 36*9 = 484. > >Each of the 3612 legal positions (4096-484) all represent themselves where >neither king can castle. > >The remaining cases are: > >1) white king on e1, black king not on d1/d2/e1/e2/f1/f2/e8 = 57 * 3 possible >white castling possibilities (the white cannot castle possibility for all legal >black squares has already been taken care of) for a total of 171 cases. > >2) black king on e8, white king not on d8/d7/e8/e7/f8/f7/e1 = 57 * 3 possible >black castling possibilities (the black cannot castle possibility for all legal >white squares has already been taken care of) for a total of 171 cases. > >3) white king on e1, black king on e8, 15 possible castling cases (the cannot >castle for both kings on e1/e8 respectively case has already been handled). > >For a total of 3612 + 171 + 171 + 15 = 3969 cases which can be stored in 12 bits >(3969 out of 4096). > >When doing position compression though, the idea is to basically ignore how >difficult it is to get the data into or out of the bits (that can be solved once >the compression encoding schema is determined), but merely to figure out which >compression does it to the smallest number of bits. > > >Granted, the encoding/decoding algorithms are not as simple I stated earlier, >but you can actually do them in code without too much difficulty (and without a >bunch of if/else or switch statements). For example, one way is to create a 2 >dimensional 64x64 array of booleans (i.e. transposition table) for all >white/black pairs and set the booleans to true if legal and false if not legal, >then iterate through the illegal boolean array pairs in some set order of legal >castling positions to assign the rest. When you get to your current "at least >one king can castle position" (regardless of which case it is) in the list >(based on the iteration order you picked), you have your encoded number. Do the >exact same calculation for decoding (when the number matches the 12 bits, you >know which case it is ...). Hi KarinsDad, you are describing just the big translation table, I have spoken of. I will try to explain the nature of a solution I would like to have (which is still not complete and in devlopment). Suppose the castling rigths are the following bits: bwl, bwr, bbl, bbr. a) if both kings are at original place, encode Kw = kb = (bwl, bwr, 0, bbl, bbr, 0) b) if only the white king is at original place, 1) O-O only -> place him immediately over or under the black king 2) O-O-O only -> place him immediately right or left to the black king 3) both castlings -> ... still no idea, sorry c) if only the black king is at original place, 1) O-O only -> place him immediately NW or SE the white king 2) O-O-O only -> place him immediately NE or SW to the white king 3) both castlings -> ... still no idea, sorry That this moment is the direction I am thinking of a solution. Regards, Reinhard. P.S.: my main goal in creating a compact encoding is not to reach the ultimative shortest one, but to become able to make a good estimation on the number of all legal possible chess positions.
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.