How much info can be extracted from a binary

Discussion of chess software programming and technical issues.

Moderator: Ras

vb4
Posts: 165
Joined: Sat Mar 11, 2006 5:45 am
Location: NY

How much info can be extracted from a binary

Post by vb4 »

I decided to post this in this forum since it seems more appropriate here.

Back to this subject again. I have been working on a means of shrinking down the amount of storage required for chess positions. The only stipulation I have is that the position must be a guaranteed mate. In this scheme I developed I store not only the chess positions but castling rights, enpassant, checks,captures, promotions, first move of the pv and ce value. Following is an example of my binary storage method result.

The 52 positions are:

5nQ1/1k6/8/8/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n1Q/1k6/8/8/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/7Q/8/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/6Q1/8/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/6Q1/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/8/6Q1/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/8/8/6Q1/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/8/8/8/8/2K3Q1 w - - bm Qg7+; ce 32748;
5n2/1k6/5Q2/8/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/4Q3/8/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/8/3Q4/8/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/8/8/2Q5/8/2K5 w - - bm Qg7+; ce 32748;
5n2/1k6/8/8/8/8/8/Q1K5 w - - bm Qg7+; ce 32748;
1Qn5/6k1/8/8/8/8/8/5K2 w - - bm Qb7+; ce 32748;
Q1n5/6k1/8/8/8/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/Q7/8/8/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/1Q6/8/8/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/1Q6/8/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/8/1Q6/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/8/8/1Q6/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/8/8/8/8/1Q3K2 w - - bm Qb7+; ce 32748;
2n5/6k1/2Q5/8/8/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/3Q4/8/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/8/4Q3/8/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/8/8/5Q2/8/5K2 w - - bm Qb7+; ce 32748;
2n5/6k1/8/8/8/8/8/5K1Q w - - bm Qb7+; ce 32748;
2k5/8/8/8/8/8/1K6/5Nq1 b - - bm Qg2+; ce 32748;
2k5/8/8/8/8/8/1K6/5N1q b - - bm Qg2+; ce 32748;
2k5/8/8/8/8/7q/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/8/8/8/6q1/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/8/8/6q1/8/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/8/6q1/8/8/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/6q1/8/8/8/1K6/5N2 b - - bm Qg2+; ce 32748;
2k3q1/8/8/8/8/8/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/8/8/8/5q2/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/8/8/4q3/8/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/8/3q4/8/8/1K6/5N2 b - - bm Qg2+; ce 32748;
2k5/8/2q5/8/8/8/1K6/5N2 b - - bm Qg2+; ce 32748;
q1k5/8/8/8/8/8/1K6/5N2 b - - bm Qg2+; ce 32748;
5k2/8/8/8/8/8/6K1/1qN5 b - - bm Qb2+; ce 32748;
5k2/8/8/8/8/8/6K1/q1N5 b - - bm Qb2+; ce 32748;
5k2/8/8/8/8/q7/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/8/8/8/1q6/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/8/8/1q6/8/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/8/1q6/8/8/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/1q6/8/8/8/6K1/2N5 b - - bm Qb2+; ce 32748;
1q3k2/8/8/8/8/8/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/8/8/8/2q5/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/8/8/3q4/8/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/8/4q3/8/8/6K1/2N5 b - - bm Qb2+; ce 32748;
5k2/8/5q2/8/8/8/6K1/2N5 b - - bm Qb2+; ce 32748;
5k1q/8/8/8/8/8/6K1/2N5 b - - bm Qb2+; ce 32748;


The following binary created only uses 127 continuous bits to store all the above positions.

1101011011110010000000010101111110001110000010001101100001001000001001110000001000000000000010000001111010111101000000000000000

On average thats 2.44 bits/position !!!


In the past some of you were looking at various compression schemes. With my only stipulation of a guaranteed mate whats the best you can do??

Enjoy,

Les