Hello to all again,
Wish to inform that, Pattern Overlay Method, devised by Myth Jellies, has been incorporated in to RJSudoku.c and RJSukaku.c, with efficient way and without any restrictions, successfully. My
GitHub repositories have been updated accordingly.
I have carefully examined the 46656 POM templates and noticed that, for each cell in first row, same pattern applied for mini-row.
Similarly, for each cell position in first row, there are 6 disjoint cell positions for second row, 6 for third row and 8 each for rest of the rows.
I have introduced two dimensional reference array R[9][60] containing nine cell positions in first row x 60 cell positions for rest of the 2nd to 9th rows.
Similarly, I have converted templates in to three dimensional array P[3][5184][8] containing first row's three mini-row patterns x 5184 templates x 8 pointers to first row nine disjoint reference cell positions of rest of the rows.
============================================================
Now, both the programs search following techniques:
1) Zero State check (fully implemented);
2) Hidden Single;
3) Naked Single (or guess from minimum values cell position);
4) Locked candidate Type 1 (Pointing) & Type 2 (Claiming);
5) Locked pair & triplet
6) Naked & Hidden Tuples (pair, triplet & quad);
7) Almost Locked Candidates (pair, triplet & quad);
8) Basic Fishes (X-Wing, Sword Fish & Jelly Fish);
9) Skyscraper & Grouped Skyscraper;
10) 2-String Kite and Grouped 2-String Kite;
11) 2-String Kite+ERI Ring and Grouped 2-String Kite+ERI Ring;
12) 2-String Kite+ERI and Grouped 2-String Kite+ERI;
13) 2-String Kite+Box and Grouped 2-String Kite+Box;
14) Empty Rectangle, Dual Linked Empty Rectangle;
15) Grouped Empty Rectangle & Dual Linked Grouped Empty Rectangle;
16) M-Wing Type 1A, 1B, 2A, 2B, 2C, 3A, 3B, 4A, 4B;
17) M-Ring Type A;
18) W-Wing Type 1 (Row-Column wise), Type 2 (Box-Line wise);
19) Grouped W-Wing Type 1 & Type 2, W-Ring (1 exemplar);
20) Strong Wing Type 1 & Strong Ring Type 1 (Row-Column wise);
21) Strong Wing Type 2 & Strong Ring Type 2 (Box-Line wise);
22) XY-Ring Type 1 (Row-Column wise);
23) XY-Wing Type 1 (Row-Column wise);
24) XY-Wing Type 1 Transport;
25) XYZ-Transport;
26) XYZ-Hybrid & Dual XYZ-Hybrid;
27) XY-Ring Type 2 (Box-Line wise);
28) XY-Wing Type 2 (Box-Line wise);
29) XY-Wing Type 2 Transport;
30) XYZ-Wing;
31) XYZ-Wing Transport;
32) XYZ-Wing Hybrid & Dual XYZ-Wing Hybrid;
33) WXYZ-Wing Type 1 (Row-Column wise);
34) Almost Locked Set move Type 1a & Type 1b;
35) WXYZ-Wing Type 2a, 2b, 3, 4a, 4b & (SDC) (Box-Line wise);
36) Almost Locked Set move Type 2a, Type 2b & Type 2c;
37) Bivalue Universal Grave Type 1;
38) Pattern Overlay Method (Single digit);
39) Trial & Error via recursive step-by-step backtracking (RJSolBit.c) & iterative guess backtracking (RJSudoku.c & RJSukaku.c).
(Note: RJSolBit.c need long time to be update for reflecting POM efficiently and without restrictions.)
============================================================
Here, I am sharing some statistics for the following popular Sudoku puzzle collection:
With Pattern Overlay Method (Limited) added:
Ruud's 50K : 13757 +481
17 49158 : 48461 +251
Tarek 6000 : 0
PG 26855 : 11910 +711
PG 4279 : 1399 +107
With Pattern Overlay Method (Efficient and Unlimited) updated:
Ruud's 50K : 13763 +6
17 49158 : 48469 +8
Tarek 6000 : 0
PG 26855 : 11940 +30
PG 4279 : 1407 +8
R. Jamil