Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Even Better

Author: Eugene Nalimov

Date: 17:36:24 05/14/99

Go up one level in this thread


Ok. Why there are 14 possible configurations when EP is possible:

There are 7 configurations when left EP capture is possible.
There are 7 configurations when right EP capture is possible.
If both EP captures are possible, use left one for encoding; right pawn will be
encoding using usual board representation. If you prefer, you can add those
configurations to the previous ones - then you'll end with 20 configurations
instead of 14, so you'll use more space in the header, but less in the board
when dual EP capture is possible. Will it be saving or not depends on the
percentage of the positions when that's possible.

About placing of the kings: there are 3812 legal combinations of the placing of
the kings on the empty board. Unfortunately, you cannot save the bit in the
general case. But you can save it, if you'll find similar 'underusage' of some
other value (e.g. 14 instead of 16, or 20 instead of 32). Then you can combine
both those values using multiplication instead of shift.

Ok, I'll stop that thread. Back to my work...

Eugene

On May 14, 1999 at 20:22:04, KarinsDad wrote:

>On May 14, 1999 at 19:56:51, Eugene Nalimov wrote:
>
>>On May 14, 1999 at 19:24:58, KarinsDad wrote:
>>
>>>I didn't look at the original structure when I wrote this last message.
>>>
>>>The savings would be 3 bits not 4 in the structure, so the overall savings would
>>>be:
>>>
>>>0 EP  1 bit
>>>1 EP  2 bits
>>>2 EP  5 bits
>>>
>>>Oops!
>>>
>>>KarinsDad :)
>>
>>Actually, we can do even better: if there is *no* EP, we can store '0' in a
>>header. If there *is* EP, we can store 1xxxx in a header, but we know values of
>>the 4 squares - 2 pawns and 2 empty ones, so we can don't store those *at all*,
>>just skip those fields when encoding a board. Total saving will be 2 bits in the
>>first case (1 bit instead of 3 in the header), and 4 bits in the second case
>>(header is 2 bits longer, but board is 6 bits shorter) compared to the first
>>suggested schema.
>
>I figured out something similar on the way home.
>
>2 bits for EP
>00 no EP
>01 right EP
>10 left EP
>11 both EP
>
>plus if EP, then 3 more bits for column
>
>and we save either 3 (or 4 in the case of both) of the starting squares or 9
>bits there.
>
>0 EP  2 bits
>1 EP  5 bits
>2 EP  8 bits
>
>I am doing this quickly as I have to go, but I do not yet understand your entire
>schmema yet ( I do not understand the 1xxxx yet ).
>
>>
>>What is much more important, you can do something similar with castling status.
>>In your schema, you reserverd 8 bits in the header - 6 for location of the king
>>and 2 for possible castling directions. It's possible to replace it by something
>>smaller, e.g.
>>1) 0xxxxxx - castling not possible, and we have to store location of the king,
>>2) 01 - both casling are possible, so we know locations of king and both rooks,
>>3) 01x - only one castling is possible, so we know location of king and one of
>>the rooks.
>>In case 1 we save 1 bit, in case 2 - 14 bits, in case 3 - 7 bits.
>
>There is an additional savings here that I realized on my drive home. If there
>is a 0xxxxxx case, then you split the board up into quadrants. If both kings are
>in the same quandrant AND one of the kings is in the middle 4 squares of the
>quandrant, than the other king only has 7 squares that it can be in (as opposed
>to 16 if the other king is not in the same quandrant), so from one king, you can
>occassionally save 1 bit on the other king. This means that there are 16 squares
>on the board where the white king can be where the black king cannot if if is in
>the same quadrant (unfortunately, a king on the edge of a quadrant only cuts out
>5 of the 16 opposing king squares, otherwise, this could be even better).
>
>KarinsDad :)
>
>
>>
>>It looks that I had a good practice when I invented a compact schema for TBs...
>>
>>Eugene



This page took 0 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.