The tridagon rule

Advanced methods and approaches for solving Sudoku puzzles

Re: The tridagon rule

Postby denis_berthier » Fri Mar 25, 2022 10:48 am

.
Here is one more example (#2 in mith 246-list http://forum.enjoysudoku.com/the-hardest-sudokus-new-thread-t6539-1190.html)
Code: Select all
     +-------+-------+-------+
     ! . . . ! . . . ! . . 1 !
     ! . . . ! . . 2 ! . 3 . !
     ! . . . ! . 4 . ! 5 6 . !
     +-------+-------+-------+
     ! . . . ! . . 7 ! . . . !
     ! . . 4 ! 8 1 . ! 2 . . !
     ! 1 9 . ! . 2 4 ! 8 . . !
     +-------+-------+-------+
     ! . 8 9 ! . . 1 ! . . 7 !
     ! 4 2 . ! . 7 8 ! . . 9 !
     ! 7 . 1 ! . 9 . ! . . . !
     +-------+-------+-------+
........1.....2.3.....4.56......7.....481.2..19..248...89..1..742..78..97.1.9....;28


Code: Select all
Resolution state after Singles and whips[1]:
   +----------------------+----------------------+----------------------+
   ! 235689 34567  235678 ! 35679  3568   3569   ! 479    2489   1      !
   ! 5689   14567  5678   ! 15679  568    2      ! 479    3      48     !
   ! 2389   137    2378   ! 1379   4      39     ! 5      6      28     !
   +----------------------+----------------------+----------------------+
   ! 23568  356    23568  ! 3569   356    7      ! 13469  1459   3456   !
   ! 356    3567   4      ! 8      1      3569   ! 2      579    356    !
   ! 1      9      3567   ! 356    2      4      ! 8      57     356    !
   +----------------------+----------------------+----------------------+
   ! 356    8      9      ! 23456  356    1      ! 346    245    7      !
   ! 4      2      356    ! 356    7      8      ! 136    15     9      !
   ! 7      356    1      ! 23456  9      356    ! 346    2458   234568 !
   +----------------------+----------------------+----------------------+
196 candidates.


When whips are enabled, a full solution is obtained after an application of the tridagon elimination rule:
Code: Select all
hidden-pairs-in-a-column: c4{n2 n4}{r7 r9} ==> r9c4≠6, r9c4≠5, r9c4≠3, r7c4≠6, r7c4≠5, r7c4≠3
hidden-pairs-in-a-row: r4{n2 n8}{c1 c3} ==> r4c3≠6, r4c3≠5, r4c3≠3, r4c1≠6, r4c1≠5, r4c1≠3
t-whip[4]: c7n1{r4 r8} - r8c8{n1 n5} - r6c8{n5 n7} - r5c8{n7 .} ==> r4c7≠9
whip[1]: b6n9{r5c8 .} ==> r1c8≠9
hidden-pairs-in-a-block: b3{n7 n9}{r1c7 r2c7} ==> r2c7≠4, r1c7≠4
t-whip[5]: r5n7{c2 c8} - c8n9{r5 r4} - r4n1{c8 c7} - r4n4{c7 c9} - r2n4{c9 .} ==> r2c2≠7
t-whip[5]: r4n9{c4 c8} - r4n1{c8 c7} - r4n4{c7 c9} - r2n4{c9 c2} - r2n1{c2 .} ==> r2c4≠9
t-whip[6]: r5n7{c2 c8} - c8n9{r5 r4} - r4n1{c8 c7} - r4n4{c7 c9} - r2n4{c9 c2} - c2n1{r2 .} ==> r3c2≠7
t-whip[6]: r6n7{c8 c3} - r3n7{c3 c4} - r2n7{c4 c7} - r2n9{c7 c1} - r3n9{c1 c6} - r5n9{c6 .} ==> r5c8≠7
hidden-single-in-a-block ==> r6c8=7
hidden-single-in-a-block ==> r5c2=7
whip[4]: b5n9{r4c4 r5c6} - r5c8{n9 n5} - r8n5{c8 c3} - r6n5{c3 .} ==> r4c4≠5
whip[11]: b5n9{r4c4 r5c6} - r5c8{n9 n5} - b9n5{r7c8 r9c9} - c6n5{r9 r1} - c6n6{r1 r9} - b8n3{r9c6 r7c5} - c5n5{r7 r4} - c2n5{r4 r2} - r2n4{c2 c9} - c9n8{r2 r3} - c9n2{r3 .} ==> r4c4≠3
tridagon type diag for digits 3, 5 and 6 in blocks:
        b5, with cells: r5c6 (target cell), r4c5, r6c4
        b4, with cells: r5c1, r4c2, r6c3
        b8, with cells: r9c6, r7c5, r8c4
        b7, with cells: r9c2, r7c1, r8c3
 ==> r5c6≠3,5,6
stte


If only Subsets and tridagons are activated, no tridagon appears, but there is a tridagon-link:
Code: Select all
hidden-pairs-in-a-column: c4{n2 n4}{r7 r9} ==> r9c4≠6, r9c4≠5, r9c4≠3, r7c4≠6, r7c4≠5, r7c4≠3
hidden-pairs-in-a-row: r4{n2 n8}{c1 c3} ==> r4c3≠6, r4c3≠5, r4c3≠3, r4c1≠6, r4c1≠5, r4c1≠3
extended tridagon for digits 3, 5 and 6 in blocks:
        b4, with cells: r6c3 (link cell), r5c1, r4c2
        b5, with cells: r6c4, r5c6 (link cell), r4c5
        b7, with cells: r8c3, r7c1, r9c2
        b8, with cells: r8c4, r7c5, r9c6
 ==> tridagon-link(n7r6c3, n9r5c6)

With no other rule, nothing more can be deduced.
However, as mentioned by others in the "hardest" thread the tridagon link can be combined with chains in order to produce some eliminations.
I'll deal later with this situation.
What I wanted to show here is only an interesting case (IMO) where previous eliminations allow to reach a situation where the mere elimination rule applies.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Sat Mar 26, 2022 5:48 am

.
TRIDAGON LINKS

The first post of this thread was about
- making explicit a full resolution rule (i.e. a rule that allows immediate eliminations) based on the impossible "trivalue-oddagon" pattern
- and formulating it in a way that can easily be transcribed into a logical formula or any implementation.
Notice that this modest approach has led to consider the rule as an elimination one (rather than an assertion one) and to raise a previous restriction on the target cell: it may contain more than one additional candidate.

Other applications of the impossibility pattern are known. Again, the goal of this post is not to review all of them, but only the simplest case, where two and only two different cells of the impossible pattern have one and only one additional candidate. In this case, the conclusion is that one of the additional candidates must be True - which doesn't define a resolution rule in and of itself, but can be used to build new types of Forcing Chains.
Based on the analysis of the first post, it is easy to see that there are the following cases (and only them).

By the same isomorphisms as before, we can always suppose one of the two additional candidates is in r1c1 and that the pattern of cells is as in the first post:
Code: Select all
# . . | + . .
. + . | . + .
. . + | . . +
-------------
+ . . | x x x
. + . | x x x
. . + | x x x

with the same conditions on the pattern in the third block:
Code: Select all
. . +          . + .          + . .
. + .          + . .          . . +
+ . .          . . +          . + .

(where, at this point, the last two patterns are equivalent under r2/r3, c2/c3, and r5/r6 permutations).


Now, the question is: where can the second candidate be?

First case: in the same block. Only one possible place modulo isomorphisms:
Code: Select all
# . . | + . .
. # . | . + .
. . + | . . +
-------------
+ . . | x x x
. + . | x x x
. . + | x x x


Second case: in a different block but the same band. Only two possible places modulo isomorphisms:
same row:
Code: Select all
# . . | # . .
. + . | . + .
. . + | . . +
-------------
+ . . | x x x
. + . | x x x
. . + | x x x


different row:
Code: Select all
# . . | + . .
. + . | . # .
. . + | . . +
-------------
+ . . | x x x
. + . | x x x
. . + | x x x



Third case: in a different block but the same stack. Only two possible places modulo isomorphisms (deduced from the previous two by row/column symmetry)


Fourth case: in opposite blocks. It can be almost anywhere in the 4th block (which must still satisfy one of the three patterns found in the first post).
Code: Select all
# . . | + . .
. + . | . + .
. . + | . . +
-------------
+ . . | x x x
. + . | x x x
. . + | x x x


Notice that the above four cases are possible and have real examples.
.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Mon Mar 28, 2022 6:46 am

.
As an appetiser for more formal definitions of Tridagon-Forcing-Whips, here is a solution of puzzle #39 in mith's list of 246 puzzles not in T&E(2) (http://forum.enjoysudoku.com/the-hardest-sudokus-new-thread-t6539-1190.html), for which I've already given some analyses in the next posts of the same thread.
Code: Select all
     +-------+-------+-------+
     ! . . . ! . . . ! . . 1 !
     ! . . . ! . . 2 ! 3 4 . !
     ! . . 5 ! . 1 3 ! 6 . 2 !
     +-------+-------+-------+
     ! . . . ! . 7 . ! . 3 6 !
     ! . . . ! . 8 9 ! 4 . . !
     ! . . 4 ! 6 . . ! . . . !
     +-------+-------+-------+
     ! . 1 2 ! 5 . . ! . 6 . !
     ! 4 . 3 ! 1 . . ! 5 2 . !
     ! 5 6 . ! . . . ! 1 . . !
     +-------+-------+-------+
........1.....234...5.136.2....7..36....894....46......125...6.4.31..52.56....1..;29

Code: Select all
Resolution state after Singles and whips[1]:
   +----------------------+----------------------+----------------------+
   ! 236789 234789 6789   ! 4789   4569   45678  ! 789    5789   1      !
   ! 16789  789    16789  ! 789    569    2      ! 3      4      5789   !
   ! 789    4789   5      ! 4789   1      3      ! 6      789    2      !
   +----------------------+----------------------+----------------------+
   ! 1289   2589   189    ! 24     7      145    ! 289    3      6      !
   ! 12367  2357   167    ! 23     8      9      ! 4      157    57     !
   ! 123789 235789 4      ! 6      235    15     ! 2789   15789  5789   !
   +----------------------+----------------------+----------------------+
   ! 789    1      2      ! 5      349    478    ! 789    6      34789  !
   ! 4      789    3      ! 1      69     678    ! 5      2      789    !
   ! 5      6      789    ! 234789 2349   478    ! 1      789    34789  !
   +----------------------+----------------------+----------------------+
193 candidates.

Here, only Subsets, whips[≤12] and Tridagon-Forcing-Whips are activated.
Code: Select all
hidden-pairs-in-a-column: c9{n3 n4}{r7 r9} ==> r9c9≠9, r9c9≠8, r9c9≠7, r7c9≠9, r7c9≠8, r7c9≠7
hidden-pairs-in-a-row: r1{n2 n3}{c1 c2} ==> r1c2≠9, r1c2≠8, r1c2≠7, r1c2≠4, r1c1≠9, r1c1≠8, r1c1≠7, r1c1≠6
hidden-single-in-a-block ==> r3c2=4
z-chain[4]: r6c6{n5 n1} - c8n1{r6 r5} - c8n5{r5 r6} - c5n5{r6 .} ==> r1c6≠5
whip[1]: c6n5{r6 .} ==> r6c5≠5
naked-pairs-in-a-block: b5{r5c4 r6c5}{n2 n3} ==> r4c4≠2
naked-single ==> r4c4=4
hidden-pairs-in-a-column: c4{n2 n3}{r5 r9} ==> r9c4≠9, r9c4≠8, r9c4≠7
whip[1]: b8n7{r9c6 .} ==> r1c6≠7
whip[1]: b8n8{r9c6 .} ==> r1c6≠8
whip[1]: b8n9{r9c5 .} ==> r1c5≠9, r2c5≠9
whip[6]: r2n1{c1 c3} - b1n6{r2c3 r1c3} - r5c3{n6 n7} - r5c9{n7 n5} - r2n5{c9 c5} - r2n6{c5 .} ==> r2c1≠7
whip[6]: r2n1{c1 c3} - b1n6{r2c3 r1c3} - r5c3{n6 n7} - r5c9{n7 n5} - r2n5{c9 c5} - r2n6{c5 .} ==> r2c1≠8
whip[6]: r2n1{c1 c3} - b1n6{r2c3 r1c3} - r5c3{n6 n7} - r5c9{n7 n5} - r2n5{c9 c5} - r2n6{c5 .} ==> r2c1≠9
whip[6]: r5c9{n5 n7} - r5c8{n7 n1} - r5c3{n1 n6} - c1n6{r5 r2} - r2c5{n6 n5} - c9n5{r2 .} ==> r6c8≠5
whip[8]: r2n1{c3 c1} - b1n6{r2c1 r1c3} - c6n6{r1 r8} - c5n6{r8 r2} - r2n5{c5 c9} - r5c9{n5 n7} - c3n7{r5 r9} - r8n7{c2 .} ==> r2c3≠8
whip[8]: r2n1{c3 c1} - b1n6{r2c1 r1c3} - c6n6{r1 r8} - c5n6{r8 r2} - r2n5{c5 c9} - r5c9{n5 n7} - c3n7{r5 r9} - r8n7{c2 .} ==> r2c3≠9
whip[11]: b3n5{r1c8 r2c9} - r2c5{n5 n6} - r8c5{n6 n9} - c9n9{r8 r6} - c9n8{r6 r8} - b9n7{r8c9 r7c7} - c7n9{r7 r1} - r1c4{n9 n8} - r2n8{c4 c2} - b1n9{r2c2 r3c1} - r7n9{c1 .} ==> r1c8≠7

extended tridagon for digits 7, 8 and 9 in blocks:
        b3, with cells: r2c9 (link cell), r1c7, r3c8
        b1, with cells: r2c2, r1c3 (link cell), r3c1
        b9, with cells: r8c9, r7c7, r9c8
        b7, with cells: r8c2, r7c1, r9c3
 ==> tridagon-link[12](n5r2c9, n6r1c3)

tridagon-forcing-whip-elim[13] based on tridagon-link(n6r1c3, n5r2c9)
....for n6r1c3: -
....for n5r2c9: partial-whip[1]: c5n5{r2 r1} -
 ==> r1c5≠6, r2c3≠6

biv-chain[3]: r2c3{n7 n1} - r2c1{n1 n6} - b4n6{r5c1 r5c3} ==> r5c3≠7
biv-chain[3]: r5c3{n1 n6} - c1n6{r5 r2} - b1n1{r2c1 r2c3} ==> r4c3≠1

tridagon-forcing-whip-elim[13] based on tridagon-link(n5r2c9, n6r1c3)
....for n5r2c9: -
....for n6r1c3: partial-whip[1]: r2n6{c1 c5} -
 ==> r2c5≠5
stte


Two very short chains (partial-whips[1]) are enough to allow eliminations based on the tridagon link. (Notice that the Tridagon-link is available at the start and part of the whips appearing before it in this path may not be necessary to solve the puzzle.)
I planned to post a second example showing the use of longer partial-whips, but I have no time right now.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby pjb » Tue Mar 29, 2022 2:00 am

denis_berthier wrote:
Here is one more example (#2 in mith 246-list the-hardest-sudokus-new-thread-t6539-1190.html)
Code: Select all
     +-------+-------+-------+
     ! . . . ! . . . ! . . 1 !
     ! . . . ! . . 2 ! . 3 . !
     ! . . . ! . 4 . ! 5 6 . !
     +-------+-------+-------+
     ! . . . ! . . 7 ! . . . !
     ! . . 4 ! 8 1 . ! 2 . . !
     ! 1 9 . ! . 2 4 ! 8 . . !
     +-------+-------+-------+
     ! . 8 9 ! . . 1 ! . . 7 !
     ! 4 2 . ! . 7 8 ! . . 9 !
     ! 7 . 1 ! . 9 . ! . . . !
     +-------+-------+-------+
........1.....2.3.....4.56......7.....481.2..19..248...89..1..742..78..97.1.9....;28



This actually solves in a single step after basics:
Code: Select all
 235689  34567   235678 | 35679  3568   3569   | 479    2489   1     
 5689    14567   5678   | 15679  568    2      | 479    3      48     
 2389    137     2378   | 1379   4      39     | 5      6      28     
------------------------+----------------------+---------------------
 28     *356     28     | 3569  *356    7      | 13469  1459   3456   
*356     3567C   4      | 8      1     *356+9A | 2      57-9D  356   
 1       9      *356+7B |*356    2      4      | 8      57     356   
------------------------+----------------------+---------------------
*356     8       9      | 24    *356    1      | 346    245    7     
 4       2      *356    |*356    7      8      | 136    15     9     
 7      *356     1      | 24     9     *356    | 346    2458   234568


(9)r5c6 = (7)r6c3 - (7)r5c2 = (7-9)r5c8 => -9 r5c8; btte

Phil
pjb
2014 Supporter
 
Posts: 2570
Joined: 11 September 2011
Location: Sydney, Australia

Re: The tridagon rule

Postby denis_berthier » Tue Mar 29, 2022 4:10 am

.
Hi pjb
It depends on which order you apply the rules.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Tue Mar 29, 2022 4:24 am

.
Here is now the promised example using longer partial-whips.
It's #217 in the same list as above:
Code: Select all
+-------+-------+-------+
! . . . ! . . . ! . . 1 !
! . . . ! . . 1 ! 2 3 . !
! . . 1 ! . 2 4 ! 5 . 6 !
+-------+-------+-------+
! . . 3 ! . . . ! 6 . . !
! . 6 . ! . 5 2 ! . . . !
! 7 . 8 ! . . 6 ! . . . !
+-------+-------+-------+
! . 1 . ! . 6 5 ! 4 . 3 !
! . 3 . ! 2 4 . ! 1 5 . !
! . 4 . ! 1 . 3 ! . 6 2 !
+-------+-------+-------+
........1.....123...1.245.6..3...6...6..52...7.8..6....1..654.3.3.24.15..4.1.3.62;32
SER = 11.6

Code: Select all
Resolution state after Singles and whips[1]:
   +----------------------+----------------------+----------------------+
   ! 234569 25789  24569  ! 356789 3789   789    ! 789    4789   1      !
   ! 4569   5789   4569   ! 56789  789    1      ! 2      3      4789   !
   ! 39     789    1      ! 3789   2      4      ! 5      789    6      !
   +----------------------+----------------------+----------------------+
   ! 12459  259    3      ! 4789   1789   789    ! 6      124789 45789  !
   ! 149    6      49     ! 34789  5      2      ! 3789   14789  4789   !
   ! 7      259    8      ! 349    139    6      ! 39     1249   459    !
   +----------------------+----------------------+----------------------+
   ! 289    1      279    ! 789    6      5      ! 4      789    3      !
   ! 689    3      679    ! 2      4      789    ! 1      5      789    !
   ! 589    4      579    ! 1      789    3      ! 789    6      2      !
   +----------------------+----------------------+----------------------+
179 candidates.

Here also, a trigon-link is available at the start, but let's so as previously and apply it only at its place in the complexity hierarchy.
Code: Select all
hidden-pairs-in-a-column: c4{n5 n6}{r1 r2} ==> r2c4≠9, r2c4≠8, r2c4≠7, r1c4≠9, r1c4≠8, r1c4≠7, r1c4≠3
whip[7]: b4n4{r5c3 r4c1} - r1n4{c1 c3} - c3n2{r1 r7} - c1n2{r7 r1} - r1n6{c1 c4} - r1n5{c4 c2} - b4n5{r4c2 .} ==> r5c8≠4
whip[11]: c5n3{r1 r6} - r6c7{n3 n9} - r6c4{n9 n4} - c4n3{r6 r3} - r3c1{n3 n9} - r9n9{c1 c3} - b4n9{r5c3 r4c2} - r2n9{c2 c9} - r6c9{n9 n5} - r4n5{c9 c1} - r9n5{c1 .} ==> r1c5≠9

extended tridagon for digits 7, 8 and 9 in blocks:
        b2, with cells: r3c4 (link cell), r2c5, r1c6
        b3, with cells: r3c8, r2c9 (link cell), r1c7
        b8, with cells: r7c4, r9c5, r8c6
        b9, with cells: r7c8, r9c7, r8c9
 ==> tridagon-link[12](n3r3c4, n4r2c9)

whip[12]: c5n3{r1 r6} - r6n1{c5 c8} - r6n2{c8 c2} - r6n5{c2 c9} - r6n4{c9 c4} - c4n3{r6 r3} - r3c1{n3 n9} - c2n9{r3 r4} - r4n5{c2 c1} - r9c1{n5 n8} - c7n8{r9 r5} - r5n3{c7 .} ==> r1c5≠8

tridagon-forcing-whip-elim[15] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[3]: r5n3{c4 c7} - r6c7{n3 n9} - r6c4{n9 n4} -
 ==> r6c9≠4

t-whip[5]: r6n4{c4 c8} - c8n2{r6 r4} - c8n1{r4 r5} - c1n1{r5 r4} - r4n4{c1 .} ==> r5c4≠4
t-whip[6]: r5n7{c9 c4} - r5n3{c4 c7} - r6c7{n3 n9} - r6c9{n9 n5} - r6c2{n5 n2} - c8n2{r6 .} ==> r4c8≠7
t-whip[6]: r5n8{c9 c4} - r5n3{c4 c7} - r6c7{n3 n9} - r6c9{n9 n5} - r6c2{n5 n2} - c8n2{r6 .} ==> r4c8≠8
whip[6]: c8n2{r4 r6} - r6n1{c8 c5} - r4n1{c5 c1} - r4n2{c1 c2} - r4n5{c2 c9} - r6c9{n5 .} ==> r4c8≠9

tridagon-forcing-whip-elim[17] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[5]: r5n3{c4 c7} - r6n3{c7 c5} - r1c5{n3 n7} - c7n7{r1 r9} - c7n8{r9 r1} -
 ==> r2c9≠8

tridagon-forcing-whip-elim[19] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[7]: r5n3{c4 c7} - r6n3{c7 c5} - r1c5{n3 n7} - c7n7{r1 r9} - c7n8{r9 r1} - r3n8{c8 c2} - c2n7{r3 r2} -
 ==> r2c9≠7

The end of the path is in W9 and has nothing noticeable: Show
hidden-pairs-in-a-row: r2{n7 n8}{c2 c5} ==> r2c5≠9, r2c2≠9, r2c2≠5
whip[5]: r2n4{c3 c9} - r5n4{c9 c1} - r5c3{n4 n9} - r2n9{c3 c1} - b7n9{r7c1 .} ==> r1c3≠4
whip[9]: c8n2{r6 r4} - c8n1{r4 r5} - c1n1{r5 r4} - r4n4{c1 c4} - c9n4{r4 r2} - c3n4{r2 r5} - r5c1{n4 n9} - r2n9{c1 c3} - b7n9{r7c3 .} ==> r6c8≠4
hidden-single-in-a-row ==> r6c4=4
t-whip[6]: r2c9{n9 n4} - c3n4{r2 r5} - r4n4{c1 c8} - c8n2{r4 r6} - c8n1{r6 r5} - r5c1{n1 .} ==> r5c9≠9, r2c1≠9
whip[5]: r2n9{c9 c3} - r3c1{n9 n3} - c4n3{r3 r5} - b5n9{r5c4 r6c5} - c2n9{r6 .} ==> r4c9≠9
whip[5]: r2n9{c9 c3} - r3c1{n9 n3} - c4n3{r3 r5} - r5n9{c4 c1} - b7n9{r7c1 .} ==> r6c9≠9
naked-single ==> r6c9=5
t-whip[5]: c8n2{r4 r6} - r6c2{n2 n9} - r5c3{n9 n4} - r5c1{n4 n1} - c8n1{r5 .} ==> r4c8≠4
singles ==> r1c8=4, r2c9=9
t-whip[6]: r5n3{c4 c7} - r6n3{c7 c5} - r1c5{n3 n7} - c7n7{r1 r9} - r8c9{n7 n8} - b6n8{r4c9 .} ==> r5c4≠8
whip[1]: r5n8{c9 .} ==> r4c9≠8
t-whip[7]: r4c9{n4 n7} - r5n7{c9 c4} - c4n3{r5 r3} - r3c1{n3 n9} - b2n9{r3c4 r1c6} - r8n9{c6 c3} - r5c3{n9 .} ==> r5c9≠4, r4c1≠4
hidden-single-in-a-row ==> r4c9=4
whip[1]: b6n7{r5c9 .} ==> r5c4≠7
whip[8]: r5c4{n9 n3} - c7n3{r5 r6} - c5n3{r6 r1} - c1n3{r1 r3} - r3n9{c1 c2} - r6n9{c2 c8} - b9n9{r7c8 r9c7} - c5n9{r9 .} ==> r4c4≠9
whip[7]: r4c4{n8 n7} - r7c4{n7 n9} - b2n9{r3c4 r1c6} - c6n7{r1 r8} - r8c9{n7 n8} - r7c8{n8 n7} - r3c8{n7 .} ==> r3c4≠8
biv-chain[3]: r2c2{n7 n8} - r3n8{c2 c8} - b3n7{r3c8 r1c7} ==> r1c2≠7
whip[7]: r5c4{n9 n3} - r3c4{n3 n7} - r3c8{n7 n8} - r7c8{n8 n7} - r8c9{n7 n8} - b8n8{r8c6 r9c5} - r2c5{n8 .} ==> r7c4≠9
naked-pairs-in-a-column: c4{r4 r7}{n7 n8} ==> r3c4≠7
naked-pairs-in-a-row: r3{c1 c4}{n3 n9} ==> r3c2≠9
naked-pairs-in-a-block: b1{r2c2 r3c2}{n7 n8} ==> r1c2≠8
z-chain[4]: b8n9{r8c6 r9c5} - b9n9{r9c7 r7c8} - b9n8{r7c8 r9c7} - r1n8{c7 .} ==> r8c6≠8
biv-chain[3]: b3n8{r3c8 r1c7} - c6n8{r1 r4} - c4n8{r4 r7} ==> r7c8≠8
biv-chain[3]: r5c9{n7 n8} - b9n8{r8c9 r9c7} - r1c7{n8 n7} ==> r5c7≠7
z-chain[2]: c7n7{r9 r1} - b2n7{r1c6 .} ==> r9c5≠7
biv-chain[3]: r7n8{c1 c4} - r9c5{n8 n9} - b9n9{r9c7 r7c8} ==> r7c1≠9
biv-chain[3]: b9n8{r8c9 r9c7} - r9c5{n8 n9} - r8c6{n9 n7} ==> r8c9≠7
singles ==> r8c9=8, r5c9=7
biv-chain[3]: r9c7{n7 n9} - b8n9{r9c5 r8c6} - r8n7{c6 c3} ==> r9c3≠7
stte


In this example, we have 3 different eliminations based on the same tridagon link, but using partial-whips of lengths 3, 5 and 7.
Same remark as before: some of the whips before these may be unnecessary.
I'm working on a functionality that provides the choice of giving some priority to exotic patterns such as tridagons.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Tue Mar 29, 2022 4:48 am

.
Here is now an example in which one of the eliminations based on the tridagon-link involves two short partial-whips (#147 in the same list):

Code: Select all
     +-------+-------+-------+
     ! . . . ! . . . ! . 1 2 !
     ! . . . ! . . . ! 3 . 4 !
     ! . . . ! . 1 5 ! 6 7 . !
     +-------+-------+-------+
     ! . . 8 ! . 9 . ! . . 6 !
     ! . 5 1 ! . 7 6 ! . . . !
     ! 6 9 . ! . . 8 ! . . . !
     +-------+-------+-------+
     ! . 7 5 ! . 8 9 ! . 6 . !
     ! 8 . . ! 6 5 . ! . 9 . !
     ! 9 . 6 ! 7 . 1 ! . . . !
     +-------+-------+-------+
.......12......3.4....1567...8.9...6.51.76...69...8....75.89.6.8..65..9.9.67.1...;31
SER = 11.7

Code: Select all
Resolution state after Singles and whips[1]:
   +-------------------+-------------------+-------------------+
   ! 3457  3468  3479  ! 3489  346   347   ! 589   1     2     !
   ! 1257  1268  279   ! 289   26    27    ! 3     58    4     !
   ! 234   2348  2349  ! 23489 1     5     ! 6     7     89    !
   +-------------------+-------------------+-------------------+
   ! 2347  234   8     ! 12345 9     234   ! 12457 2345  6     !
   ! 234   5     1     ! 234   7     6     ! 2489  2348  389   !
   ! 6     9     2347  ! 12345 234   8     ! 12457 2345  1357  !
   +-------------------+-------------------+-------------------+
   ! 1234  7     5     ! 234   8     9     ! 124   6     13    !
   ! 8     1234  234   ! 6     5     234   ! 1247  9     137   !
   ! 9     234   6     ! 7     234   1     ! 2458  23458 358   !
   +-------------------+-------------------+-------------------+
176 candidates

Code: Select all
hidden-pairs-in-a-column: c4{n1 n5}{r4 r6} ==> r6c4≠4, r6c4≠3, r6c4≠2, r4c4≠4, r4c4≠3, r4c4≠2

extended tridagon for digits 2, 3 and 4 in blocks:
        b7, with cells: r7c1 (link cell), r8c3, r9c2
        b8, with cells: r7c4, r8c6, r9c5
        b4, with cells: r5c1, r6c3 (link cell), r4c2
        b5, with cells: r5c4, r6c5, r4c6
 ==> tridagon-link(n1r7c1, n7r6c3)

tridagon-forcing-whip-elim[14] based on tridagon-link(n7r6c3, n1r7c1)
....for n7r6c3: partial-whip[1]: c9n7{r6 r8} -
....for n1r7c1: partial-whip[1]: r7c9{n1 n3} -
==> r8c9≠3

tridagon-forcing-whip-elim[14] based on tridagon-link(n1r7c1, n7r6c3)
....for n1r7c1: -
....for n7r6c3: partial-whip[2]: c1n7{r4 r1} - c1n5{r1 r2} -
==> r2c1≠1


The end is in Z4:
Code: Select all
singles ==> r2c2=1, r1c2=6, r3c2=8, r3c9=9, r5c7=9, r2c6=6, r7c1=1, r7c9=3, r5c9=8, r9c9=5
hidden-pairs-in-a-block: b9{n1 n7}{r8c7 r8c9} ==> r8c7≠4, r8c7≠2
hidden-pairs-in-a-block: b2{n8 n9}{r1c4 r2c4} ==> r2c4≠2, r1c4≠4, r1c4≠3
finned-x-wing-in-columns: n2{c6 c2}{r4 r8} ==> r8c3≠2
whip[1]: b7n2{r9c2 .} ==> r4c2≠2
z-chain[4]: r1c6{n3 n4} - r1c5{n4 n7} - b1n7{r1c1 r2c3} - c3n9{r2 .} ==> r1c3≠3
z-chain[2]: b1n3{r3c1 r3c3} - c4n3{r3 .} ==> r5c1≠3
z-chain[3]: c4n3{r5 r3} - c3n3{r3 r8} - b8n3{r8c6 .} ==> r6c5≠3
biv-chain[3]: r6c5{n4 n2} - c6n2{r4 r8} - b8n3{r8c6 r9c5} ==> r9c5≠4
biv-chain[3]: c5n4{r6 r1} - r1c6{n4 n3} - b5n3{r4c6 r5c4} ==> r5c4≠4
biv-chain[3]: r5c4{n3 n2} - r5c1{n2 n4} - r4c2{n4 n3} ==> r4c6≠3
hidden-single-in-a-block ==> r5c4=3
whip[1]: r3n3{c3 .} ==> r1c1≠3
biv-chain[3]: r2c1{n2 n5} - r1c1{n5 n7} - b2n7{r1c5 r2c5} ==> r2c5≠2
singles ==> r2c5=7, r3c4=2, r7c4=4,  r7c7=2
whip[1]: b9n4{r9c8 .} ==> r9c2≠4
whip[1]: r3n4{c3 .} ==> r1c3≠4
naked-pairs-in-a-column: c3{r3 r8}{n3 n4} ==> r6c3≠4, r6c3≠3
hidden-single-in-a-row ==> r6c8=3
biv-chain[3]: c2n4{r4 r8} - r8n2{c2 c6} - r4c6{n2 n4} ==> r4c1≠4, r4c7≠4, r4c8≠4
biv-chain[3]: b6n2{r4c8 r5c8} - b6n4{r5c8 r6c7} - b5n4{r6c5 r4c6} ==> r4c6≠2
singles


Reducing a puzzle from SER = 11.7 to one in Z4 show how powerful the tridagon based rules are.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

TRIDAGON-FORCING-WHIPS

Postby denis_berthier » Tue Mar 29, 2022 5:41 am

.
TRIDAGON-FORCING-WHIPS

1) OR-forcing-chains in general
Whenever an OR relation OR(C1, C2) between two candidates C1 and C2 has been proven, assertions and eliminations can easily be obtained by resorting to reasoning by cases. This is not very elegant as it relies on two different streams of reasoning, but it can be useful.
More precisely, consider two different chains, one based on C1 and one based on C2. It can be concluded that:
- any candidate X that is linked to some candidate with positive valence in each chain can be eliminated,
- and any candidate that has positive valence in both chains can be asserted as a decided value.
As a special case of X having negative valence, one or two of the chains can have length 0 (which means that the corresponding Ci is linked to X).

Now, a point on the complexity assigned to such OR-forcing-chains in my approach: the OR(C1, C2) relation isn't supposed to have been proven with the use of a crystal ball. It has involved some particular pattern with its own length (e.g. a biwhip[k]). Similarly, each of the partial-chains has its own length, resp. p1 and p2.
The length of the OR-forcing-chain is thus naturally assigned value n= k + p1 + p2. Indeed, I have no choice: no other possible value would be consistent with my other ratings.
One might object that if the same OR relation is used several times in the resolution path, this is "unfair". But this would rely on a misunderstanding of the fundamental nature of all my ratings: they are ratings of the hardest elimination/assertion step and how many times this highest rating is reached in the resolution path is totally irrelevant.
One might prefer a rating of a full resolution path and I understand this, but as of now, any such proposed rating is totally inconsistent.

In my approach, the typical OR-forcing-chain[n] is a forcing-whip[n], the OR relation being a mere bivalue relation (length 1) and the length of this forcing-whip has already been defined long ago as n = 1 + p1 + p2.



2) Tridagon-Forcing-Whips
Definition:
A Tridagon-Forcing-Whip[n] is a particular type of OR forcing-chain where:
- the partial-chains involved are partial-whips, of respective lengths p1 and p2
- the OR relation involved is a Tridagon-link[12]
- n = 12 + p1 + p2


Remarks:
In order to avoid considering special cases when p1 and/or p2 is 0, the direct link can be considered as a whip[0].
Having a well-defined length, these forcing chains have a natural place in the CSP-Rules hierarchy. However, as for any other rules, various strategies allow to change this default hierarchy. More on this later.

Examples: see my previous posts.

Notation: see my previous posts. The "-" symbol at the end of the lines for the partial-whips means as usual a direct contradiction link.

Implementation:
- the mere Tridagon elimination rule (first post of this thread) is fully implemented in SudoRules and has already been published on GitHub;
- the Tridagon-links are fully implemented in SudoRules, based on my previous analysis of all the possible cases;
- the Tridagon-Forcing-Whip[n] rules are fully implemented in SudoRules. I've applied them to the above-mentioned complete list of 246 puzzles. `
All this will be published soon on GitHub, after I've done more testing.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Tue Mar 29, 2022 7:31 am

.
After introducing into SudoRules a TRIDAGONS specific set of preferences (as defined in section 6.8.1 of the [BUM]), CSP-Rules general solve-w-preferences function easily allows to change the default order of rules application and to give priority to anything Tridagon.

The newly defined TRIDAGONS set of preferences includes:
- all the Subset and Finned Fish resolution rules,
- the Tridagon elimination rule
- the rules for finding Tridagon-link
- all the Tridagon-Forcing-Whip resolution rules

I'll take the example (#2 in mith's 246 list) I first mentioned here: http://forum.enjoysudoku.com/the-tridagon-rule-t39859-24.html.
My purpose there was to show that:
- by combining the mere tridagon resolution rule with classical whips, a solution can be found without resorting to more complicated rules based on Tridagon-links
- if whips are not activated, a tridagon-link can be obtained instead of a mere tridagon.

pjb remarked here http://forum.enjoysudoku.com/the-tridagon-rule-t39859-27.html that the latter rules could be used and the puzzle would result into a trivial one.

This can be done in SudoRules by using the solve-w-preferences function:
Code: Select all
(solve-w-preferences "........1.....2.3.....4.56......7.....481.2..19..248...89..1..742..78..97.1.9....;28" TRIDAGONS)

Code: Select all
Resolution state after Singles and whips[1]:
   +----------------------+----------------------+----------------------+
   ! 235689 34567  235678 ! 35679  3568   3569   ! 479    2489   1      !
   ! 5689   14567  5678   ! 15679  568    2      ! 479    3      48     !
   ! 2389   137    2378   ! 1379   4      39     ! 5      6      28     !
   +----------------------+----------------------+----------------------+
   ! 23568  356    23568  ! 3569   356    7      ! 13469  1459   3456   !
   ! 356    3567   4      ! 8      1      3569   ! 2      579    356    !
   ! 1      9      3567   ! 356    2      4      ! 8      57     356    !
   +----------------------+----------------------+----------------------+
   ! 356    8      9      ! 23456  356    1      ! 346    245    7      !
   ! 4      2      356    ! 356    7      8      ! 136    15     9      !
   ! 7      356    1      ! 23456  9      356    ! 346    2458   234568 !
   +----------------------+----------------------+----------------------+
196 candidates.


Code: Select all
hidden-pairs-in-a-column: c4{n2 n4}{r7 r9} ==> r9c4≠6, r9c4≠5, r9c4≠3, r7c4≠6, r7c4≠5, r7c4≠3
hidden-pairs-in-a-row: r4{n2 n8}{c1 c3} ==> r4c3≠6, r4c3≠5, r4c3≠3, r4c1≠6, r4c1≠5, r4c1≠3

extended tridagon for digits 3, 5 and 6 in blocks:
        b4, with cells: r6c3 (link cell), r5c1, r4c2
        b5, with cells: r6c4, r5c6 (link cell), r4c5
        b7, with cells: r8c3, r7c1, r9c2
        b8, with cells: r8c4, r7c5, r9c6
 ==> tridagon-link[12](n7r6c3, n9r5c6)

tridagon-forcing-whip-elim[13] based on tridagon-link(n9r5c6, n7r6c3)
....for n9r5c6: -
....for n7r6c3: partial-whip[1]: r5n7{c2 c8} -
 ==> r5c8≠9

singles ==> r5c6=9, r3c6=3
naked-pairs-in-a-block: b6{r5c8 r6c8}{n5 n7} ==> r6c9≠5, r5c9≠5, r4c9≠5, r4c8≠5
singles ==> r9c9=5, r8c8=1, r9c6=6, r1c6=5, r9c2=3, r9c7=4, r7c8=2, r7c4=4, r9c8=8, r9c4=2, r3c9=2, r2c9=8, r2c5=6, r1c5=8, r1c8=4
naked-single ==> r4c8=9, r2c2=4, r3c2=1, r2c4=1, r4c9=4, r4c7=1
whip[1]: r4n3{c5 .} ==> r6c4≠3
whip[1]: c2n5{r5 .} ==> r5c1≠5, r6c3≠5
naked-pairs-in-a-row: r5{c1 c9}{n3 n6} ==> r5c2≠6
naked-pairs-in-a-row: r1{c4 c7}{n7 n9} ==> r1c3≠7, r1c2≠7, r1c1≠9
stte


After the Tridagon-Forcing-Whip[13] has been applied, nothing more complex than Naked-Pairs is required. The end of the path could be replaced by a single rule as in pjb's post, but that is not my point here.

This is a case where not having whips intermingled with Tridagon-Forcing-Whips simplifies the resolution path. However beware that this will not always be the case and that this may on the contrary lead to much more complicated paths.
Last edited by denis_berthier on Tue Mar 29, 2022 3:34 pm, edited 1 time in total.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Tue Mar 29, 2022 8:07 am

.
As an example of my last remark above, consider again puzzle #217.
If absolute priority is given, to the TRIDAGONS family of rules, more tridagon-forcing-whip eliminations are obtained at the start:
Code: Select all
hidden-pairs-in-a-column: c4{n5 n6}{r1 r2} ==> r2c4≠9, r2c4≠8, r2c4≠7, r1c4≠9, r1c4≠8, r1c4≠7, r1c4≠3

extended tridagon for digits 7, 8 and 9 in blocks:
        b2, with cells: r3c4 (link cell), r2c5, r1c6
        b3, with cells: r3c8, r2c9 (link cell), r1c7
        b8, with cells: r7c4, r9c5, r8c6
        b9, with cells: r7c8, r9c7, r8c9
 ==> tridagon-link[12](n3r3c4, n4r2c9)

tridagon-forcing-whip-elim[15] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[3]: r5n3{c4 c7} - r6c7{n3 n9} - r6c4{n9 n4} -
 ==> r6c9≠4

tridagon-forcing-whip-elim[20] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[8]: r5n3{c4 c7} - r6c7{n3 n9} - r6c4{n9 n4} - r6n3{c4 c5} - r1n3{c5 c1} - r3c1{n3 n9} - c2n9{r3 r4} - r5c3{n9 n4} -
 ==> r5c9≠4

tridagon-forcing-whip-elim[20] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[8]: r5n3{c4 c7} - r6c7{n3 n9} - r6c4{n9 n4} - r6n3{c4 c5} - r1n3{c5 c1} - r3c1{n3 n9} - c2n9{r3 r4} - r5c3{n9 n4} -
 ==> r2c3≠4

However, from that point on, it becomes very slow because very long tridagon-forcing-whips are looked for.
One way out of this is to restrict global variable ?*tridagon-forcing-whips-max-length*, say to 20.

In this case, the end of the resolution path is:
Code: Select all
t-whip[5]: r6n4{c4 c8} - c8n2{r6 r4} - c8n1{r4 r5} - c1n1{r5 r4} - r4n4{c1 .} ==> r5c4≠4
t-whip[6]: r5n8{c9 c4} - r5n3{c4 c7} - r6c7{n3 n9} - r6c9{n9 n5} - r6c2{n5 n2} - r4n2{c2 .} ==> r4c8≠8
t-whip[6]: r5n7{c9 c4} - r5n3{c4 c7} - r6c7{n3 n9} - r6c9{n9 n5} - r6c2{n5 n2} - r4n2{c2 .} ==> r4c8≠7
whip[6]: c3n4{r5 r1} - c3n2{r1 r7} - c1n2{r7 r1} - r1n6{c1 c4} - r1n5{c4 c2} - b4n5{r4c2 .} ==> r4c1≠4
whip[1]: b4n4{r5c3 .} ==> r5c8≠4
whip[6]: c8n2{r4 r6} - r6n1{c8 c5} - r4n1{c5 c1} - r4n2{c1 c2} - r4n5{c2 c9} - b6n4{r4c9 .} ==> r4c8≠9
whip[11]: r2c4{n5 n6} - r2c3{n6 n9} - r5c3{n9 n4} - b1n4{r1c3 r1c1} - r1n6{c1 c3} - c3n2{r1 r7} - c1n2{r7 r4} - c8n2{r4 r6} - r6n1{c8 c5} - r4n1{c5 c8} - c8n4{r4 .} ==> r2c1≠5
whip[11]: c5n3{r1 r6} - r6c7{n3 n9} - r6c4{n9 n4} - c4n3{r6 r3} - r3c1{n3 n9} - c2n9{r3 r4} - r2n9{c2 c9} - c9n4{r2 r4} - r4n5{c9 c1} - r9n5{c1 c3} - r9n9{c3 .} ==> r1c5≠9
t-whip[12]: r1n3{c5 c1} - r3n3{c1 c4} - r5n3{c4 c7} - r6n3{c7 c5} - r6n1{c5 c8} - c8n2{r6 r4} - c1n2{r4 r7} - c3n2{r7 r1} - b1n4{r1c3 r2c1} - c1n6{r2 r8} - c1n8{r8 r9} - c7n8{r9 .} ==> r1c5≠8

tridagon-forcing-whip-elim[17] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[5]: r5n3{c4 c7} - r6n3{c7 c5} - r1c5{n3 n7} - c7n7{r1 r9} - c7n8{r9 r1} -
 ==> r2c9≠8

tridagon-forcing-whip-elim[19] based on tridagon-link(n4r2c9, n3r3c4)
....for n4r2c9: -
....for n3r3c4: partial-whip[7]: r5n3{c4 c7} - r6n3{c7 c5} - r1c5{n3 n7} - c7n7{r1 r9} - c7n8{r9 r1} - r3n8{c8 c2} - c2n7{r3 r2} -
 ==> r2c9≠7

hidden-pairs-in-a-row: r2{n7 n8}{c2 c5} ==> r2c5≠9, r2c2≠9, r2c2≠5
whip[4]: r5n4{c3 c1} - r2n4{c1 c9} - r2n9{c9 c1} - b7n9{r7c1 .} ==> r5c3≠9
naked-single ==> r5c3=4
whip[5]: r6c7{n9 n3} - r5n3{c7 c4} - r5n9{c4 c1} - r2n9{c1 c3} - b7n9{r7c3 .} ==> r4c9≠9
whip[5]: r6n4{c4 c8} - c8n2{r6 r4} - c8n1{r4 r5} - r5c1{n1 n9} - b6n9{r5c9 .} ==> r6c4≠9
whip[5]: r6c7{n9 n3} - r5n3{c7 c4} - r5n9{c4 c1} - r2n9{c1 c3} - b7n9{r7c3 .} ==> r6c9≠9
naked-single ==> r6c9=5
t-whip[4]: c8n2{r4 r6} - r6c2{n2 n9} - r5c1{n9 n1} - c8n1{r5 .} ==> r4c8≠4
biv-chain[4]: r6c7{n9 n3} - r6c4{n3 n4} - b6n4{r6c8 r4c9} - r2c9{n4 n9} ==> r5c9≠9, r1c7≠9
t-whip[5]: b1n4{r2c1 r1c1} - c8n4{r1 r6} - c8n2{r6 r4} - c8n1{r4 r5} - r5c1{n1 .} ==> r2c1≠9
whip[6]: c8n4{r1 r6} - c8n2{r6 r4} - c8n1{r4 r5} - r5c1{n1 n9} - c2n9{r4 r3} - b2n9{r3c4 .} ==> r1c8≠9
whip[6]: r2c9{n9 n4} - b6n4{r4c9 r6c8} - c8n2{r6 r4} - c8n1{r4 r5} - r5c1{n1 n9} - b7n9{r7c1 .} ==> r2c3≠9
singles ==> r2c9=9, r1c8=4,  r2c1=4, r4c9=4, r6c4=4
whip[1]: b6n7{r5c9 .} ==> r5c4≠7
whip[1]: b6n8{r5c9 .} ==> r5c4≠8
whip[8]: r5c4{n9 n3} - c7n3{r5 r6} - c5n3{r6 r1} - c1n3{r1 r3} - r3n9{c1 c2} - b4n9{r4c2 r5c1} - c7n9{r5 r9} - c5n9{r9 .} ==> r4c4≠9
whip[7]: r4c4{n8 n7} - r7c4{n7 n9} - b2n9{r3c4 r1c6} - c6n7{r1 r8} - r8c9{n7 n8} - r7c8{n8 n7} - r3c8{n7 .} ==> r3c4≠8
biv-chain[3]: r2c2{n7 n8} - r3n8{c2 c8} - b3n7{r3c8 r1c7} ==> r1c2≠7
whip[7]: r5c4{n9 n3} - r3c4{n3 n7} - r3c8{n7 n8} - r7c8{n8 n7} - r8c9{n7 n8} - b8n8{r8c6 r9c5} - r2c5{n8 .} ==> r7c4≠9
naked-pairs-in-a-column: c4{r4 r7}{n7 n8} ==> r3c4≠7
naked-pairs-in-a-row: r3{c1 c4}{n3 n9} ==> r3c2≠9
naked-pairs-in-a-block: b1{r2c2 r3c2}{n7 n8} ==> r1c2≠8
z-chain[4]: b8n9{r8c6 r9c5} - b9n9{r9c7 r7c8} - b9n8{r7c8 r9c7} - r1n8{c7 .} ==> r8c6≠8
biv-chain[3]: b3n8{r3c8 r1c7} - c6n8{r1 r4} - c4n8{r4 r7} ==> r7c8≠8
biv-chain[3]: c9n7{r5 r8} - b9n8{r8c9 r9c7} - r1c7{n8 n7} ==> r5c7≠7
z-chain[2]: c7n7{r9 r1} - b2n7{r1c6 .} ==> r9c5≠7
biv-chain[3]: r7n8{c1 c4} - r9c5{n8 n9} - b9n9{r9c7 r7c8} ==> r7c1≠9
biv-chain[3]: b9n8{r8c9 r9c7} - r9c5{n8 n9} - r8c6{n9 n7} ==> r8c9≠7
singles ==> r8c9=8, r5c9=7
biv-chain[3]: r9c7{n7 n9} - b8n9{r9c5 r8c6} - r8n7{c6 c3} ==> r9c3≠7
stte


New Tridagon-Forcing-Whip eliminations appear after whips have been applied. It appears that the additional Tridagon-Forcing-Whip eliminations we got at the start before whips where allowed to apply were useless and the resulting path is globally more complicated.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby denis_berthier » Thu Mar 31, 2022 5:16 am

.
ANALYSIS OF THE FULL LIST OF 246 T&E(3) PUZZLES mentioned before: http://forum.enjoysudoku.com/the-hardest-sudokus-new-thread-t6539-1190.html

As already reported (http://forum.enjoysudoku.com/the-hardest-sudokus-new-thread-t6539-1200.html):
- all of these puzzles are precisely in T&E(W2, 2);
- 94 of them can be solved using only Subsets + Finned-Fish + the Tridagon elimination rule (defined in the first post of this thread);
- 117 can be solved using Subsets + Finned-Fish + the Tridagon elimination rule + Whips;
(In a few cases, the Tridagon elimination rule can only be applied after a few whip eliminations. )
- 35 have no tridagon elimination rule: 2 6 7 8 13 18 29 36 37 38 39 40 41 48 51 56 60 61 63 72 80 81 102 103 106 118 121 123 126 139 146 147 177 192 217


What about those 35?
33 of them can be solved using Subsets + Finned-Fish + Whips + Tridagon-Forcing-Whips involving relatively short partial-whips.
No puzzle in the list requires any Tridagon related pattern with more than:
- either any number of additional candidates in a single cell,
- or only two additional candidates in different cells.



The two exceptions are: #63 and #123
As they behave similarly, I'll analyse only #63
Notice that both of them have Tridagon links and Tridagon-forcing-whip eliminations, so that they are not exceptions to the above remark. They are only exceptions to the capability of these Tridagon patterns to bring them down to (relatively simple) puzzles.
Notice also that they don't have the highest SER (11.6)

#63:
Code: Select all
     +-------+-------+-------+
     ! . . . ! . . . ! . . 1 !
     ! . . . ! . . . ! . 2 3 !
     ! . . . ! 2 4 5 ! 6 . . !
     +-------+-------+-------+
     ! . . . ! 7 . 4 ! . . 5 !
     ! . . 5 ! . 8 2 ! 7 . 6 !
     ! . 7 . ! 5 6 . ! 8 . . !
     +-------+-------+-------+
     ! . 8 7 ! 4 . . ! . 6 . !
     ! 4 6 . ! . . 7 ! . . . !
     ! 5 . 2 ! 6 . 8 ! . . . !
     +-------+-------+-------+
........1.......23...2456.....7.4..5..5.827.6.7.56.8...874...6.46...7...5.26.8...;30
SER = 11.6

Code: Select all
(solve-w-preferences
    "........1.......23...2456.....7.4..5..5.827.6.7.56.8...874...6.46...7...5.26.8...;30"
    TRIDAGONS
)
Resolution state after Singles and whips[1]:
   +----------------------+----------------------+----------------------+
   ! 26789  2459   4689   ! 389    379    369    ! 459    45789  1      !
   ! 6789   459    4689   ! 189    179    169    ! 459    2      3      !
   ! 13789  139    1389   ! 2      4      5      ! 6      789    789    !
   +----------------------+----------------------+----------------------+
   ! 123689 1239   13689  ! 7      139    4      ! 1239   139    5      !
   ! 139    1349   5      ! 139    8      2      ! 7      1349   6      !
   ! 1239   7      1349   ! 5      6      139    ! 8      1349   249    !
   +----------------------+----------------------+----------------------+
   ! 139    8      7      ! 4      12359  139    ! 12359  6      29     !
   ! 4      6      139    ! 139    12359  7      ! 12359  13589  289    !
   ! 5      139    2      ! 6      139    8      ! 1349   13479  479    !
   +----------------------+----------------------+----------------------+
188 candidates.

Code: Select all
hidden-pairs-in-a-column: c5{n2 n5}{r7 r8} ==> r8c5≠9, r8c5≠3, r8c5≠1, r7c5≠9, r7c5≠3, r7c5≠1
hidden-pairs-in-a-row: r4{n6 n8}{c1 c3} ==> r4c3≠9, r4c3≠3, r4c3≠1, r4c1≠9, r4c1≠3, r4c1≠2, r4c1≠1

extended tridagon for digits 1, 3 and 9 in blocks:
        b4, with cells: r4c2 (link cell), r6c3 (link cell), r5c1
        b5, with cells: r4c5, r6c6, r5c4
        b7, with cells: r9c2, r8c3, r7c1
        b8, with cells: r9c5, r8c4, r7c6
 ==> tridagon-link[12](n2r4c2, n4r6c3)

tridagon-forcing-whip-elim[13] based on tridagon-link(n4r6c3, n2r4c2)
....for n4r6c3: -
....for n2r4c2: partial-whip[1]: r6n2{c1 c9} -
 ==> r6c9≠4

singles ==> r9c9=4, r9c8=7, r3c9=7, r8c9=8
whip[1]: c7n4{r2 .} ==> r1c8≠4

tridagon-forcing-whip-elim[18] based on tridagon-link(n4r6c3, n2r4c2)
....for n4r6c3: partial-whip[1]: r5n4{c2 c8} -
....for n2r4c2: partial-whip[5]: c1n2{r6 r1} - c1n7{r1 r2} - c1n6{r2 r4} - c1n8{r4 r3} - r3c8{n8 n9} -
==> r5c8≠9

Code: Select all
Resolution state:
+-------------------+-------------------+-------------------+
! 26789 2459  4689  ! 389   379   369   ! 459   589   1     !
! 6789  459   4689  ! 189   179   169   ! 459   2     3     !
! 1389  139   1389  ! 2     4     5     ! 6     89    7     !
+-------------------+-------------------+-------------------+
! 68    1239  68    ! 7     139   4     ! 1239  139   5     !
! 139   1349  5     ! 139   8     2     ! 7     134   6     !
! 1239  7     1349  ! 5     6     139   ! 8     1349  29    !
+-------------------+-------------------+-------------------+
! 139   8     7     ! 4     25    139   ! 12359 6     29    !
! 4     6     139   ! 139   25    7     ! 12359 1359  8     !
! 5     139   2     ! 6     139   8     ! 139   7     4     !
+-------------------+-------------------+-------------------+ 


As I had restricted the max length of Tridagon-Forcing-Whips to 18, that's all we get with the TRIDAGONS preference space, before we start using whips.
However, if I set it to 20, there are long computations but no other elimination seems to appear.


Code: Select all
whip[3]: c9n9{r6 r7} - r8n9{c8 c4} - r5n9{c4 .} ==> r6c3≠9
t-whip[6]: r6c9{n9 n2} - c1n2{r6 r1} - c1n7{r1 r2} - c1n6{r2 r4} - c1n8{r4 r3} - r3c8{n8 .} ==> r6c8≠9, r4c8≠9
hidden-pairs-in-a-block: b6{n2 n9}{r4c7 r6c9} ==> r4c7≠3, r4c7≠1
whip[1]: c7n1{r9 .} ==> r8c8≠1
whip[1]: c7n3{r9 .} ==> r8c8≠3
biv-chain[3]: r7n5{c5 c7} - r8c8{n5 n9} - r7c9{n9 n2} ==> r7c5≠2
naked-single ==> r7c5=5
naked-single ==> r8c5=2
PUZZLE 0 IS NOT SOLVED. 45 VALUES MISSING.

Code: Select all
Final resolution state:

+-------------------+-------------------+-------------------+
! 26789 2459  4689  ! 389   379   369   ! 459   589   1     !
! 6789  459   4689  ! 189   179   169   ! 459   2     3     !
! 1389  139   1389  ! 2     4     5     ! 6     89    7     !
+-------------------+-------------------+-------------------+
! 68    1239  68    ! 7     139   4     ! 29    13    5     !
! 139   1349  5     ! 139   8     2     ! 7     134   6     !
! 1239  7     134   ! 5     6     139   ! 8     134   29    !
+-------------------+-------------------+-------------------+
! 139   8     7     ! 4     5     139   ! 1239  6     29    !
! 4     6     139   ! 139   2     7     ! 1359  59    8     !
! 5     139   2     ! 6     139   8     ! 139   7     4     !
+-------------------+-------------------+-------------------+


At this point, I applied gT&E(1), which allowed no more eliminations.

Conclusion: after applying Subsets + Finned Fish + gBraids + the above tridagon-forcing-whip-eliminations, puzzle #63 is not solved.
The final resolution state is indeed in B2B.

The Tridagon-Forcing-Whips were enough to simplify the puzzle form T&E(W2, 2) to T&E(W2, 1) but not enough to solve it.

A similar analysis is valid for puzzle #123.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby mith » Thu Mar 31, 2022 5:01 pm

For #63, there is this deduction:

4r6c3 = 2r4c2 (trivalue oddagon)
4r5c2 = 2r4c2 (ALS 12349r3459c2)
=> +2r4c2

Still not quite trivial after this, though it does give a bunch of singles. (SER 6.6, but that's with a uniqueness step.)
mith
 
Posts: 950
Joined: 14 July 2020

Re: The tridagon rule

Postby denis_berthier » Fri Apr 01, 2022 1:26 am

mith wrote:For #63, there is this deduction:
4r6c3 = 2r4c2 (trivalue oddagon)
4r5c2 = 2r4c2 (ALS 12349r3459c2)
=> +2r4c2
Still not quite trivial after this, though it does give a bunch of singles. (SER 6.6, but that's with a uniqueness step.)

Hi mith,
I didn't find this because this ALS can't be re-interpreted as a partial-whip.

Finally, all the 246 puzzles are solved.
Now, I may want to consider your full list of 972, but I fear there'll be nothing really new to report, unless you have used new seeds. I've already checked they all are in T&E(W2, 2).
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

Re: The tridagon rule

Postby ghfick » Fri Apr 01, 2022 6:29 am

For #63, I tried pjb's solver. It turns out, one can use the strong link twice:

type 2 Tridagon with SL between 2 at r6c3 and 4 at r4c2
Simple discontinuous loop: (4)r6c3 = (2)r4c2 - (2)r1c2 = (2)r1c1 - (2)r6c1 = (2-4)r6c9 => -4 r6c9
4s at r12c7 only ones in row/column => -4 r1c8.
Type 4 unique rectangle of 25 at r78c57, eliminating 2 from r8c7
Hidden unique rectangle of 45 at r12c27, eliminating 4 from r2c2
type 2 Tridagon with SL between 2 at r4c2 and 4 at r6c3
Simple discontinuous loop: (2)r4c2 = (4)r6c3 - (4)r5c2 = (4-2)r1c2 => -2 r1c2
ghfick
 
Posts: 232
Joined: 06 April 2016
Location: Calgary, Alberta, Canada youtube.com/@gordonfick

Re: The tridagon rule

Postby denis_berthier » Fri Apr 01, 2022 6:56 am

.
Once r4c2=2 is established, uniqueness is not needed.
denis_berthier
2010 Supporter
 
Posts: 3972
Joined: 19 June 2007
Location: Paris

PreviousNext

Return to Advanced solving techniques