Breakthrough Draughts

Discussion about development of draughts in the time of computer and Internet.
Post Reply
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Breakthrough Draughts

Post by BertTuyt »

Gerard, and 7x5 (as expected) different.
Your count 4,037,313,808

7x5 P = 31.716.102.264, Capture = 27.452.979.405
7x5 P = 31.716.102.264, CW NCW CL NCL = 22.106.603.949 4.037.033.645 5.346.375.456 226.089.214
37610.2 7x5, P = 31.716.102.264, E = 0

Bert
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

BertTuyt wrote:Gerard, and 7x5 (as expected) different.
Your count 4,037,313,808

7x5 P = 31.716.102.264, Capture = 27.452.979.405
7x5 P = 31.716.102.264, CW NCW CL NCL = 22.106.603.949 4.037.033.645 5.346.375.456 226.089.214
37610.2 7x5, P = 31.716.102.264, E = 0

Bert
I am now quite happy with my new (always monothread) generation programm.
As expected I am able to give your my first results (updates) concerning the 12P:

11x1 NCW1= 26 601 065 NCL1= 183 363 185 NCW2= 225 356 352 NCL2= 614 163
10x2 NCW1= 188 219 310 NCL1= 544 730 658 NCW2= 799 645 622 NCL2= 4 734 416
9x3 NCW1= 654 448 795 NCL1= 1 060 480 703 NCW2= 1 841 518 665 NCL2= 19 528 228
8x4 NCW1= 1 504 851 774 NCL1= 1 495 350 904 NCW2= 3 110 064 921 NCL2= 65 683 437

It seems we have the same results.

7x5 db is under generation
Gérard
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

Hi Bert

The updating of complete figures for the 12p db is the following
1x1 NCW1= 388 NCL1= 306 NCW2= NCL2=
2x1 NCW1= 2 378 NCL1= 5 958 NCW2= 7 155 NCL2= 1 188
3x1 NCW1= 14 054 NCL1= 50 560 NCW2= 59 902 NCL2= 4 907
2x2 NCW1= 56 410 NCL1= 33 269 NCW2= NCL2=
4x1 NCW1= 68 240 NCL1= 294 840 NCW2= 348 776 NCL2= 16 804
3x2 NCW1= 269 004 NCL1= 356 234 NCW2= 523 486 NCL2= 103 676
5x1 NCW1= 270 543 NCL1= 1 304 673 NCW2= 1 547 416 NCL2= 47 684
4x2 NCW1= 1 147 410 NCL1= 2 029 240 NCW2= 2 915 566 NCL2= 289 073
3x3 NCW1= 2 699 916 NCL1= 1 255 259 NCW2= NCL2=
6x1 NCW1= 883 318 NCL1= 4 603 636 NCW2= 5 486 597 NCL2= 111 373
5x2 NCW1= 4 120 949 NCL1= 8 405 869 NCW2= 12 056 507 NCL2= 688 813
4x3 NCW1= 9 722 656 NCL1= 8 544 479 NCW2= 15 601 037 NCL2= 2 782 311
7x1 NCW1= 2 407 027 NCL1= 13 347 307 NCW2= 16 003 384 NCL2= 216 446
6x2 NCW1= 12 320 688 NCL1= 27 549 799 NCW2= 39 638 961 NCL2= 1 388 052
5x3 NCW1= 31 054 854 NCL1= 34 759 573 NCW2= 61 457 674 NCL2= 5 417 363
4x4 NCW1= 56 865 877 NCL1= 20 714 313 NCW2= NCL2=
8x1 NCW1= 5 539 435 NCL1= 32 445 111 NCW2= 39 159 184 NCL2= 354 356
7x2 NCW1= 30 915 940 NCL1= 74 233 396 NCW2= 107 341 121 NCL2= 2 362 181
6x3 NCW1= 84 714 542 NCL1= 107 646 861 NCW2= 188 751 849 NCL2= 9 230 704
5x4 NCW1= 157 126 750 NCL1= 99 483 418 NCW2= 226 130 368 NCL2= 33 034 189
9x1 NCW1= 10 867 307 NCL1= 67 079 817 NCW2= 81 500 727 NCL2= 494 043
8x2 NCW1= 65 806 337 NCL1= 168 254 551 NCW2= 244 654 995 NCL2= 3 432 294
7x3 NCW1= 195 754 225 NCL1= 272 452 843 NCW2= 475 868 606 NCL2= 13 618 678
6x4 NCW1= 386 438 195 NCL1= 305 428 492 NCW2= 661 403 513 NCL2= 46 568 839
5x5 NCW1= 613 334 701 NCL1= 177 227 198 NCW2= NCL2=
10x1 NCW1= 18 303 045 NCL1= 119 186 655 NCW2= 145 709 055 NCL2= 591 990
9x2 NCW1= 119 881 601 NCL1= 325 786 738 NCW2= 476 222 708 NCL2= 4 310 944
8x3 NCW1= 385 924 492 NCL1= 580 671 876 NCW2= 1 011 361 726 NCL2= 17 425 842
7x4 NCW1= 822 036 259 NCL1= 738 771 798 NCW2= 1 563 996 834 NCL2= 58 664 245
6x5 NCW1= 1 331 456 147 NCL1= 642 927 936 NCW2= 1 787 497 847 NCL2= 212 677 134
11x1 NCW1= 26 601 065 NCL1= 183 363 185 NCW2= 225 356 352 NCL2= 614 163
10x2 NCW1= 188 219 310 NCL1= 544 730 658 NCW2= 799 645 622 NCL2= 4 734 416
9x3 NCW1= 654 448 795 NCL1= 1 060 480 703 NCW2= 1 841 518 665 NCL2= 19 528 228
8x4 NCW1= 1 504 851 774 NCL1= 1 495 350 904 NCW2= 3 110 064 921 NCL2= 65 683 437
7x5 NCW1= 2 586 459 664 NCL1= 1 557 408 544 NCW2= 4 037 033 645 NCL2= 226 089 214
6x6 NCW1= 3 751 257 816 NCL1= 893 491 452 NCW2= NCL2=
Gérard
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

Bert,

First figures for 13p db
12x1 NCW1= 33 476 623 NCL1= 245 544 989 NCW2= 302 994 901 NCL2= 554 039
11*2 NCW1= 256 003 791 NCL1= 792 466 163 NCW2= 1 166 313 100 NCL2= 4 586 420
10x3 NCW1= 960 952 868 NCL1= 1 678 713 208 NCW2= 2 903 179 449 NCL2= 19 383 244
9x4 NCW1= 2 383 300 890 NCL1= 2 594 371 451 NCW2= 5 306 714 075 NCL2= 65 461 407
8x5 NCW1= 4 397 273 809 NCL1= 3 044 664 016 NCW2= 7 569 127 412 NCL2= 219 524 913

7x6db is under generation
Gérard
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

Bert,

I have good news for you. My new generation have confirmed that my 7x5 was wrong.
I did not expect such result and, taking into account that this db was on important part of my pervious programm, I have to admit that my previous analysis of the starting position is incorrect.
As a consequence I consider your analysis saying that 22-18 is a winning move is the only proposal on the table!

I continue with my generations and let you inform with my progress
Gérard
Rein Halbersma
Posts: 1722
Joined: Wed Apr 14, 2004 16:04
Contact:

Re: Breakthrough Draughts

Post by Rein Halbersma »

TAILLE wrote: My new generation have confirmed that my 7x5 was wrong.
I did not expect such result
Hi Gerard,

Can you share what went wrong? Was it a hardware error? Or was there a special case in 7x5 that somehow was overlooked?

Rein
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

Rein Halbersma wrote:
TAILLE wrote: My new generation have confirmed that my 7x5 was wrong.
I did not expect such result
Hi Gerard,

Can you share what went wrong? Was it a hardware error? Or was there a special case in 7x5 that somehow was overlooked?

Rein
It is a little difficult to determine the exact cause of the error but I am convinced it is due to the ast coding error I found. It looks like:
UINT32 number1 = 98280;
UINT32 number2 = 376740;
UINT64 number3 = number1 * number2;
and my compiler gives a wrong result
I should have written
UINT64 number3 = (UINT64)number1 * number2;
or still better
UINT64 number3 = (UINT64)number1 * (UINT64)number2;
but not
UINT64 number3 = (UINT64)(number1 * number2);

The problem appeared in the 7x5db because of the great number of positions to handle which reveal the error above.
Gérard
Rein Halbersma
Posts: 1722
Joined: Wed Apr 14, 2004 16:04
Contact:

Re: Breakthrough Draughts

Post by Rein Halbersma »

TAILLE wrote:
Rein Halbersma wrote:
TAILLE wrote: My new generation have confirmed that my 7x5 was wrong.
I did not expect such result
Hi Gerard,

Can you share what went wrong? Was it a hardware error? Or was there a special case in 7x5 that somehow was overlooked?

Rein
It is a little difficult to determine the exact cause of the error but I am convinced it is due to the ast coding error I found. It looks like:
UINT32 number1 = 98280;
UINT32 number2 = 376740;
UINT64 number3 = number1 * number2;
and my compiler gives a wrong result
I should have written
UINT64 number3 = (UINT64)number1 * number2;
or still better
UINT64 number3 = (UINT64)number1 * (UINT64)number2;
but not
UINT64 number3 = (UINT64)(number1 * number2);

The problem appeared in the 7x5db because of the great number of positions to handle which reveal the error above.
Thanks for sharing! This is a nasty bug to have. I tried it in gcc and I couldn't find a warning option that would be triggered by it.
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

Rein Halbersma wrote:
TAILLE wrote:
Rein Halbersma wrote:
Hi Gerard,

Can you share what went wrong? Was it a hardware error? Or was there a special case in 7x5 that somehow was overlooked?

Rein
It is a little difficult to determine the exact cause of the error but I am convinced it is due to the ast coding error I found. It looks like:
UINT32 number1 = 98280;
UINT32 number2 = 376740;
UINT64 number3 = number1 * number2;
and my compiler gives a wrong result
I should have written
UINT64 number3 = (UINT64)number1 * number2;
or still better
UINT64 number3 = (UINT64)number1 * (UINT64)number2;
but not
UINT64 number3 = (UINT64)(number1 * number2);

The problem appeared in the 7x5db because of the great number of positions to handle which reveal the error above.
Thanks for sharing! This is a nasty bug to have. I tried it in gcc and I couldn't find a warning option that would be triggered by it.
Hi Rein,

Does your compiler give always the correct results?
Gérard
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Breakthrough Draughts

Post by BertTuyt »

Gerard, my Verify (as shared debug mode and single thread) has finished.

I found no errors (also no problem with the stress test for the DB cache).
Seems that our numbers are equal.

Now I want to work on the multi thread Verify, and see how I can deal with the 13P - 14P DB verify.
As this computer (in Switzerland) has limited SSD capacity.

But thanks for the information exchange, having the same numbers give confidence in both DB generators.

Bert
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Breakthrough Draughts

Post by BertTuyt »

And here the list..

Bert

Code: Select all

1x1 P = 760, Capture = 66
1x1 P = 760, CW NCW CL NCL = 66 388 0 306
0.0 1x1, P = 760, E = 0
1x2 P = 9.936, Capture = 1.600
1x2 P = 9.936, CW NCW CL NCL = 858 2.378 742 5.958
0.0 1x2, P = 9.936, E = 0
1x3 P = 83.304, Capture = 18.690
1x3 P = 83.304, CW NCW CL NCL = 4.700 14.054 13.990 50.560
0.1 1x3, P = 83.304, E = 0
1x4 P = 503.100, Capture = 140.020
1x4 P = 503.100, CW NCW CL NCL = 24.454 68.240 115.566 294.840
0.3 1x4, P = 503.100, E = 0
1x5 P = 2.330.640, Capture = 755.424
1x5 P = 2.330.640, CW NCW CL NCL = 111.420 270.543 644.004 1.304.673
1.6 1x5, P = 2.330.640, E = 0
1x6 P = 8.611.200, Capture = 3.124.246
1x6 P = 8.611.200, CW NCW CL NCL = 422.894 883.318 2.701.352 4.603.636
6.2 1x6, P = 8.611.200, E = 0
1x7 P = 26.048.880, Capture = 10.294.546
1x7 P = 26.048.880, CW NCW CL NCL = 1.326.491 2.407.027 8.968.055 13.347.307
19.0 1x7, P = 26.048.880, E = 0
1x8 P = 65.714.220, Capture = 27.729.674
1x8 P = 65.714.220, CW NCW CL NCL = 3.463.810 5.539.435 24.265.864 32.445.111
48.7 1x8, P = 65.714.220, E = 0
1x9 P = 140.111.400, Capture = 62.164.276
1x9 P = 140.111.400, CW NCW CL NCL = 7.595.751 10.867.307 54.568.525 67.079.817
105.6 1x9, P = 140.111.400, E = 0
1x10 P = 254.963.280, Capture = 117.473.580
1x10 P = 254.963.280, CW NCW CL NCL = 14.098.683 18.303.045 103.374.897 119.186.655
195.4 1x10, P = 254.963.280, E = 0
1x11 P = 398.806.200, Capture = 188.841.950
1x11 P = 398.806.200, CW NCW CL NCL = 22.286.688 26.601.065 166.555.262 183.363.185
309.8 1x11, P = 398.806.200, E = 0
2x1 P = 9.936, Capture = 1.593
2x1 P = 9.936, CW NCW CL NCL = 1.593 7.155 0 1.188
0.0 2x1, P = 9.936, E = 0
2x2 P = 125.664, Capture = 35.985
2x2 P = 125.664, CW NCW CL NCL = 27.881 56.410 8.104 33.269
0.1 2x2, P = 125.664, E = 0
2x3 P = 1.018.056, Capture = 392.818
2x3 P = 1.018.056, CW NCW CL NCL = 195.609 269.004 197.209 356.234
0.9 2x3, P = 1.018.056, E = 0
2x4 P = 5.933.850, Capture = 2.757.200
2x4 P = 5.933.850, CW NCW CL NCL = 860.766 1.147.410 1.896.434 2.029.240
5.3 2x4, P = 5.933.850, E = 0
2x5 P = 26.495.040, Capture = 13.968.222
2x5 P = 26.495.040, CW NCW CL NCL = 3.319.810 4.120.949 10.648.412 8.405.869
24.4 2x5, P = 26.495.040, E = 0
2x6 P = 94.220.880, Capture = 54.350.393
2x6 P = 94.220.880, CW NCW CL NCL = 11.139.424 12.320.688 43.210.969 27.549.799
89.0 2x6, P = 94.220.880, E = 0
2x7 P = 273.907.920, Capture = 168.758.584
2x7 P = 273.907.920, CW NCW CL NCL = 31.850.531 30.915.940 136.908.053 74.233.396
264.6 2x7, P = 273.907.920, E = 0
2x8 P = 662.963.730, Capture = 428.902.842
2x8 P = 662.963.730, CW NCW CL NCL = 76.950.260 65.806.337 351.952.582 168.254.551
650.1 2x8, P = 662.963.730, E = 0
2x9 P = 1.353.752.400, Capture = 908.084.061
2x9 P = 1.353.752.400, CW NCW CL NCL = 157.265.686 119.881.601 750.818.375 325.786.738
1349.0 2x9, P = 1.353.752.400, E = 0
2x10 P = 2.354.660.880, Capture = 1.621.710.912
2x10 P = 2.354.660.880, CW NCW CL NCL = 272.859.614 188.219.310 1.348.851.298 544.730.658
2406.5 2x10, P = 2.354.660.880, E = 0
3x1 P = 83.304, Capture = 18.495
3x1 P = 83.304, CW NCW CL NCL = 18.495 59.902 0 4.907
0.1 3x1, P = 83.304, E = 0
3x2 P = 1.018.056, Capture = 390.894
3x2 P = 1.018.056, CW NCW CL NCL = 332.094 523.486 58.800 103.676
0.8 3x2, P = 1.018.056, E = 0
3x3 P = 7.959.904, Capture = 4.004.729
3x3 P = 7.959.904, CW NCW CL NCL = 2.772.633 2.699.916 1.232.096 1.255.259
7.2 3x3, P = 7.959.904, E = 0
3x4 P = 44.717.500, Capture = 26.450.365
3x4 P = 44.717.500, CW NCW CL NCL = 13.265.287 9.722.656 13.185.078 8.544.479
45.4 3x4, P = 44.717.500, E = 0
3x5 P = 192.174.480, Capture = 126.360.053
3x5 P = 192.174.480, CW NCW CL NCL = 46.048.738 31.054.854 80.311.315 34.759.573
206.5 3x5, P = 192.174.480, E = 0
3x6 P = 656.756.720, Capture = 464.395.317
3x6 P = 656.756.720, CW NCW CL NCL = 138.307.004 84.714.542 326.088.313 107.646.861
719.3 3x6, P = 656.756.720, E = 0
3x7 P = 1.831.760.480, Capture = 1.363.553.412
3x7 P = 1.831.760.480, CW NCW CL NCL = 359.637.086 195.754.225 1.003.916.326 272.452.843
2056.2 3x7, P = 1.831.760.480, E = 0
3x8 P = 4.245.982.620, Capture = 3.279.386.252
3x8 P = 4.245.982.620, CW NCW CL NCL = 799.987.825 385.924.492 2.479.398.427 580.671.876
4852.4 3x8, P = 4.245.982.620, E = 0
3x9 P = 8.287.015.000, Capture = 6.572.085.502
3x9 P = 8.287.015.000, CW NCW CL NCL = 1.515.024.902 654.448.795 5.057.060.600 1.060.480.703
9682.0 3x9, P = 8.287.015.000, E = 0
4x1 P = 503.100, Capture = 137.520
4x1 P = 503.100, CW NCW CL NCL = 137.520 348.776 0 16.804
0.4 4x1, P = 503.100, E = 0
4x2 P = 5.933.850, Capture = 2.729.211
4x2 P = 5.933.850, CW NCW CL NCL = 2.412.383 2.915.566 316.828 289.073
4.7 4x2, P = 5.933.850, E = 0
4x3 P = 44.717.500, Capture = 26.334.152
4x3 P = 44.717.500, CW NCW CL NCL = 20.669.129 15.601.037 5.665.023 2.782.311
39.9 4x3, P = 44.717.500, E = 0
4x4 P = 241.788.751, Capture = 164.208.561
4x4 P = 241.788.751, CW NCW CL NCL = 109.903.327 56.865.877 54.305.234 20.714.313
245.8 4x4, P = 241.788.751, E = 0
4x5 P = 998.568.024, Capture = 741.957.856
4x5 P = 998.568.024, CW NCW CL NCL = 388.340.372 157.126.750 353.617.484 99.483.418
1107.1 4x5, P = 998.568.024, E = 0
4x6 P = 3.274.073.276, Capture = 2.582.206.589
4x6 P = 3.274.073.276, CW NCW CL NCL = 1.060.594.093 386.438.195 1.521.612.496 305.428.492
3853.2 4x6, P = 3.274.073.276, E = 0
4x7 P = 8.745.200.024, Capture = 7.184.391.967
4x7 P = 8.745.200.024, CW NCW CL NCL = 2.492.000.951 822.036.259 4.692.391.016 738.771.798
10658.0 4x7, P = 8.745.200.024, E = 0
4x8 P = 19.374.908.751, Capture = 16.374.706.073
4x8 P = 19.374.908.751, CW NCW CL NCL = 5.069.693.247 1.504.851.774 11.305.012.826 1.495.350.904
24580.9 4x8, P = 19.374.908.751, E = 0
5x1 P = 2.330.640, Capture = 735.540
5x1 P = 2.330.640, CW NCW CL NCL = 735.540 1.547.416 0 47.684
1.6 5x1, P = 2.330.640, E = 0
5x2 P = 26.495.040, Capture = 13.749.720
5x2 P = 26.495.040, CW NCW CL NCL = 12.422.915 12.056.507 1.326.805 688.813
21.9 5x2, P = 26.495.040, E = 0
5x3 P = 192.174.480, Capture = 125.299.443
5x3 P = 192.174.480, CW NCW CL NCL = 104.427.886 61.457.674 20.871.557 5.417.363
176.1 5x3, P = 192.174.480, E = 0
5x4 P = 998.568.024, Capture = 739.403.467
5x4 P = 998.568.024, CW NCW CL NCL = 563.942.377 226.130.368 175.461.090 33.034.189
1014.9 5x4, P = 998.568.024, E = 0
5x5 P = 3.956.576.472, Capture = 3.166.014.573
5x5 P = 3.956.576.472, CW NCW CL NCL = 2.114.697.522 613.334.701 1.051.317.051 177.227.198
4467.1 5x5, P = 3.956.576.472, E = 0
5x6 P = 12.423.500.232, Capture = 10.449.116.149
5x6 P = 12.423.500.232, CW NCW CL NCL = 5.703.313.294 1.331.456.147 4.745.802.855 642.927.936
15391.4 5x6, P = 12.423.500.232, E = 0
5x7 P = 31.716.102.264, Capture = 27.572.234.056
5x7 P = 31.716.102.264, CW NCW CL NCL = 12.281.007.488 2.586.459.664 15.291.226.568 1.557.408.544
41334.6 5x7, P = 31.716.102.264, E = 0
6x1 P = 8.611.200, Capture = 3.013.230
6x1 P = 8.611.200, CW NCW CL NCL = 3.013.230 5.486.597 0 111.373
6.0 6x1, P = 8.611.200, E = 0
6x2 P = 94.220.880, Capture = 53.193.867
6x2 P = 94.220.880, CW NCW CL NCL = 48.754.064 39.638.961 4.439.803 1.388.052
82.4 6x2, P = 94.220.880, E = 0
6x3 P = 656.756.720, Capture = 458.774.167
6x3 P = 656.756.720, CW NCW CL NCL = 395.924.698 188.751.849 62.849.469 9.230.704
633.4 6x3, P = 656.756.720, E = 0
6x4 P = 3.274.073.276, Capture = 2.566.100.924
6x4 P = 3.274.073.276, CW NCW CL NCL = 2.089.817.322 661.403.513 476.283.602 46.568.839
3445.2 6x4, P = 3.274.073.276, E = 0
6x5 P = 12.423.500.232, Capture = 10.423.325.251
6x5 P = 12.423.500.232, CW NCW CL NCL = 7.870.768.849 1.787.497.847 2.552.556.402 212.677.134
14161.0 6x5, P = 12.423.500.232, E = 0
6x6 P = 37.283.864.156, Capture = 32.639.114.888
6x6 P = 37.283.864.156, CW NCW CL NCL = 21.878.084.574 3.751.257.816 10.761.030.314 893.491.452
47575.6 6x6, P = 37.283.864.156, E = 0
7x1 P = 26.048.880, Capture = 9.829.050
7x1 P = 26.048.880, CW NCW CL NCL = 9.829.050 16.003.384 0 216.446
19.2 7x1, P = 26.048.880, E = 0
7x2 P = 273.907.920, Capture = 164.204.618
7x2 P = 273.907.920, CW NCW CL NCL = 152.059.927 107.341.121 12.144.691 2.362.181
252.2 7x2, P = 273.907.920, E = 0
7x3 P = 1.831.760.480, Capture = 1.342.273.196
7x3 P = 1.831.760.480, CW NCW CL NCL = 1.185.057.389 475.868.606 157.215.807 13.618.678
1857.0 7x3, P = 1.831.760.480, E = 0
7x4 P = 8.745.200.024, Capture = 7.122.538.945
7x4 P = 8.745.200.024, CW NCW CL NCL = 6.026.358.591 1.563.996.834 1.096.180.354 58.664.245
9631.4 7x4, P = 8.745.200.024, E = 0
7x5 P = 31.716.102.264, Capture = 27.452.979.405
7x5 P = 31.716.102.264, CW NCW CL NCL = 22.106.603.949 4.037.033.645 5.346.375.456 226.089.214
37610.2 7x5, P = 31.716.102.264, E = 0
8x1 P = 65.714.220, Capture = 26.200.680
8x1 P = 65.714.220, CW NCW CL NCL = 26.200.680 39.159.184 0 354.356
51.0 8x1, P = 65.714.220, E = 0
8x2 P = 662.963.730, Capture = 414.876.441
8x2 P = 662.963.730, CW NCW CL NCL = 387.234.623 244.654.995 27.641.818 3.432.294
649.4 8x2, P = 662.963.730, E = 0
8x3 P = 4.245.982.620, Capture = 3.217.195.052
8x3 P = 4.245.982.620, CW NCW CL NCL = 2.886.152.331 1.011.361.726 331.042.721 17.425.842
4623.4 8x3, P = 4.245.982.620, E = 0
8x4 P = 19.374.908.751, Capture = 16.199.160.393
8x4 P = 19.374.908.751, CW NCW CL NCL = 14.049.615.182 3.110.064.921 2.149.545.211 65.683.437
22837.0 8x4, P = 19.374.908.751, E = 0
9x1 P = 140.111.400, Capture = 58.116.630
9x1 P = 140.111.400, CW NCW CL NCL = 58.116.630 81.500.727 0 494.043
113.2 9x1, P = 140.111.400, E = 0
9x2 P = 1.353.752.400, Capture = 873.218.748
9x2 P = 1.353.752.400, CW NCW CL NCL = 820.208.955 476.222.708 53.009.793 4.310.944
1388.5 9x2, P = 1.353.752.400, E = 0
9x3 P = 8.287.015.000, Capture = 6.425.968.107
9x3 P = 8.287.015.000, CW NCW CL NCL = 5.833.585.443 1.841.518.665 592.382.664 19.528.228
9346.6 9x3, P = 8.287.015.000, E = 0
10x1 P = 254.963.280, Capture = 108.662.235
10x1 P = 254.963.280, CW NCW CL NCL = 108.662.235 145.709.055 0 591.990
215.4 10x1, P = 254.963.280, E = 0
10x2 P = 2.354.660.880, Capture = 1.550.280.842
10x2 P = 2.354.660.880, CW NCW CL NCL = 1.463.844.002 799.645.622 86.436.840 4.734.416
2530.5 10x2, P = 2.354.660.880, E = 0
11x1 P = 398.806.200, Capture = 172.835.685
11x1 P = 398.806.200, CW NCW CL NCL = 172.835.685 225.356.352 0 614.163
354.0 11x1, P = 398.806.200, E = 0
Rein Halbersma
Posts: 1722
Joined: Wed Apr 14, 2004 16:04
Contact:

Re: Breakthrough Draughts

Post by Rein Halbersma »

TAILLE wrote:
Rein Halbersma wrote:
TAILLE wrote:
It is a little difficult to determine the exact cause of the error but I am convinced it is due to the ast coding error I found. It looks like:
UINT32 number1 = 98280;
UINT32 number2 = 376740;
UINT64 number3 = number1 * number2;
and my compiler gives a wrong result
I should have written
UINT64 number3 = (UINT64)number1 * number2;
or still better
UINT64 number3 = (UINT64)number1 * (UINT64)number2;
but not
UINT64 number3 = (UINT64)(number1 * number2);

The problem appeared in the 7x5db because of the great number of positions to handle which reveal the error above.
Thanks for sharing! This is a nasty bug to have. I tried it in gcc and I couldn't find a warning option that would be triggered by it.
Hi Rein,

Does your compiler give always the correct results?
Well "correct" according to the C++ language, yes, but no, not "correct" according to normal arithmetic. So my point was that I would like my compiler to warn about such truncations but I didn't manage to trigger any warnings. So if I would have coded it like that (very likely!), then I would have had the same bug :( So thank you again for sharing! (I did make similar bugs with signed/unsigned conversions a while ago, but at least gcc warns against it with -Wconversion flag).
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Breakthrough Draughts

Post by BertTuyt »

Gerard, just curiosity, what is the timing for your single-cored DB generation (at least I thought it was 1 core), and what is the Computer you use.

In my case I use 16 Threads (8 core machine), 4 Ghz, and 1 TByte SSD (my fast machine :D ).

The generation of the 6x6 DB (so only this one) took 2135 seconds.

Bert
TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Re: Breakthrough Draughts

Post by TAILLE »

BertTuyt wrote:Gerard, just curiosity, what is the timing for your single-cored DB generation (at least I thought it was 1 core), and what is the Computer you use.

In my case I use 16 Threads (8 core machine), 4 Ghz, and 1 TByte SSD (my fast machine :D ).

The generation of the 6x6 DB (so only this one) took 2135 seconds.

Bert
Hi Bert,

I am not able to rivalise with your configuration!
I have a XPS 15 9550 computer, with an i7-6700HQ CPU 2.60 GHz, 32Go RAM, 1To SSD
and, has I said I built only a one thread generation programm.
On the other and I have developped a multithread verification programm and my search alogorithm is also a multithread one.

The generation of the 6x6db took me 7782 s : about 4 time your figure which do not seem a surprising result comparing our configurations.
Is it the same factor for a bigger generation?
My 7x6 db generation is not finished but I can easily estimate that it will take about 10h. Can you confirm that you need less than 2h30 to generate this db?
Gérard
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Breakthrough Draughts

Post by BertTuyt »

Gerard, basically your result is quite good!
When I started my speed was around 25M Positions/sec.

But it has drastically reduced as I use a quite complicated Index function without holes/gaps (with the help of Ed).
Also for larger DBs, I still use the same index function (so not based on leading rank or whatever).
To quickly get the 13P and 14P DBs I partitioned the DB, and swap partitions.
As speed was okish, i did (so far) not go into further optimization mode.
Advantage it now can scale to every size (when one has sufficient disk space), disadvantage speed.

The 7x6 + 6x7 took 4.5 hours (for non-symmetrical my program calculates pairs), the 7x7 5.8 hours (so both approximately 10M Positions/sec)

So when I Verify all 13P and 14P, I really need to find some speed improvements, otherwise I will never create a 24P DB.

Bert
Last edited by BertTuyt on Wed Aug 23, 2017 23:04, edited 3 times in total.
Post Reply