On the Programmer's forum (
http://www.setbb.com/sudoku/viewtopic.php?mforum=sudoku&t=1830&postdays=0&postorder=asc&start=15&mforum=sudoku), Mike Metcalf proposed the following 25x25 puzzle:
- Code: Select all
. . . . . . . 24 . 15 16 14 11 . 13 17 12 22 10 . . 19 . 21 .
. . 5 . . 25 11 . 1 . . . . 23 . . 18 . . 2 . . . . 12
. 6 1 . 18 . 23 . 17 . 5 12 9 21 . . 4 . 19 . . 13 14 8 .
15 . . 14 13 7 . . 18 . . 8 1 . 17 20 25 3 . . 11 6 . . .
4 . . . . . . . . . . . . . 22 6 16 . . . . . 10 . .
. 1 15 . . . 20 . . . 24 . . . 21 4 . . . . 9 . . 18 11
. 18 16 9 . 19 10 12 . 13 . . . 22 . . . . . 7 . . 20 . .
8 . . . . . 9 . 3 25 . . 4 . 7 . . 19 2 . 10 . 12 . .
. . . 5 11 . 21 . . 14 . 20 3 . . . . 18 . 16 . . 8 6 .
12 3 4 . 7 . 16 22 . . 18 . 19 2 10 . . . . . . 14 . . .
. . 13 15 10 23 7 17 . 18 19 . . 5 . . . . . . . . 3 . 2
17 . . . . . . 8 9 . . . 18 . . . . 5 . 6 14 22 . 10 15
21 . . . . 13 . 10 4 22 9 . . . 14 . . 20 . 18 8 . 1 11 6
. . 25 11 . . 2 1 . . 12 . 10 4 6 . 3 16 . . . 23 . 9 .
. . . 2 . . 25 . . . 11 22 . 3 16 13 7 . 9 17 24 . . . .
13 7 8 21 . 15 . . . 9 . . . . 11 . 23 . . 25 5 1 . . 24
. 14 11 . 15 . 8 . . 7 . . . . 4 . . . . . 3 . 19 . .
19 . . . 9 4 . 23 . . . 3 . 1 . . 13 . . . 22 17 . . .
. . . . 4 22 12 13 . . . . 8 . . . 9 . . . 21 20 . . 16
20 . 3 1 25 . . . 19 6 . 10 17 16 5 14 . 15 21 . 4 . . 23 9
. 5 . . . 6 . . . . 23 . . . . . 1 . 20 . 17 . 21 19 7
1 11 14 13 21 . 5 . . . . 7 . 12 . . . . . 19 . 2 . 25 .
10 23 19 . . . . . . . 8 . . 9 . . . 25 16 . 12 . . 14 5
. . . . . 12 . . . . 22 11 21 14 . . 10 . . 13 . . 24 . 1
. 22 . 8 . . . . 13 . 20 . 16 19 . 24 . 2 . . . 15 . . .
I have a solution using only whips (of max length 3).
My last version of SudoRules is based on the general CSP solver (CSP-Rules) I developed while I was writing my new book "Constraint Resolution Theories" (CRT).
CSP-Rules implements in a CSP independent way all the whips, g-whips, braids and g-braids, ..., discussed long ago on this Forum and defined and studied more formally in
CRT.
Notice that my purpose with this solver is very different from the usual SAT solvers: I look for the "simplest" solution - i.e. one with the shortest possible whips. This problem is "exponentially" more complex than just looking for a solution.
At each step, (one of) the simplest available pattern(s) is applied (randomly chosen among them if there are several of same complexity). This is what I call the
simplest first strategy.
I think this is related to some of the question raised in the above mentioned thread (how hard are the puzzles proposed ?) This puzzle is relatively simple, with W rating 3. (But the resolution path is long, due to the unusual grid size.)
- Code: Select all
***** SudoRules version 15c-1-12-W *****
*** based on CSP-Rules version 1-0 ***
261 givens, 2308 candidates, 28987 csp-links and 28987 links
singles ==> r25c12 = 5, r24c2 = 15, r23c23 = 13, r20c11 = 13, r18c25 = 14, r20c22 = 8, r22c25 = 8, r22c23 = 22, r20c23 = 7, r17c12 = 9, r9c15 = 9, r6c13 = 12, r18c15 = 12, r7c13 = 5, r16c13 = 14, r19c9 = 14, r17c13 = 22, r16c5 = 22, r21c13 = 13, r15c18 = 10, r15c5 = 1, r15c2 = 8, r11c15 = 8, r6c14 = 8, r9c8 = 4, r8c14 = 11, r5c7 = 13, r4c7 = 22, r3c1 = 11, r1c7 = 6
whip[1]: c22n11{r21 .} ==> r25c23 <> 11
whip[1]: c21n6{r22 .} ==> r25c23 <> 6
whip[1]: c7n4{r21 .} ==> r25c10 <> 4
whip[1]: c7n1{r23 .} ==> r25c10 <> 1
whip[1]: c7n14{r21 .} ==> r25c8 <> 14
whip[1]: c7n14{r25 .} ==> r21c8 <> 14, r25c6 <> 14
whip[1]: c7n4{r25 .} ==> r21c10 <> 4, r22c10 <> 4, r23c10 <> 4, r24c10 <> 4
whip[1]: c7n1{r25 .} ==> r23c6 <> 1, r23c10 <> 1, r25c6 <> 1
whip[1]: r20n18{c8 .} ==> r16c7 <> 18, r16c8 <> 18, r17c6 <> 18, r17c8 <> 18, r18c7 <> 18
singles ==> r18c7 = 24, r20c7 = 18
whip[1]: c14n6{r19 .} ==> r16c11 <> 6
singles ==> r16c11 = 2, r16c24 = 12
whip[1]: c14n6{r19 .} ==> r16c12 <> 6, r17c11 <> 6, r18c11 <> 6, r18c13 <> 6, r19c11 <> 6, r19c12 <> 6
whip[1]: r17n23{c1 .} ==> r19c4 <> 23, r19c3 <> 23, r19c1 <> 23
whip[1]: r15n4{c25 .} ==> r11c22 <> 4, r11c24 <> 4, r12c23 <> 4
whip[1]: c13n23{r15 .} ==> r12c12 <> 23, r12c15 <> 23, r13c12 <> 23
whip[1]: c5n5{r13 .} ==> r15c1 <> 5
whip[1]: c17n19{r12 .} ==> r14c16 <> 19
whip[1]: c12n21{r14 .} ==> r12c11 <> 21
whip[1]: r13n17{c12 .} ==> r14c12 <> 17
whip[1]: r12n13{c12 .} ==> r14c12 <> 13
whip[1]: c5n5{r14 .} ==> r14c1 <> 5
whip[1]: c17n19{r13 .} ==> r12c16 <> 19, r13c16 <> 19
whip[1]: c2n4{r11 .} ==> r12c4 <> 4
whip[1]: c17n8{r7 .} ==> r10c20 <> 8, r10c19 <> 8, r10c18 <> 8
whip[1]: c17n8{r10 .} ==> r7c16 <> 8, r7c18 <> 8, r7c19 <> 8, r10c16 <> 8
whip[1]: c3n22{r9 .} ==> r6c1 <> 22, r6c4 <> 22
whip[1]: r6n22{c20 .} ==> r8c16 <> 22, r8c17 <> 22, r8c20 <> 22, r9c16 <> 22, r9c17 <> 22, r9c19 <> 22
whip[1]: c3n22{r9 .} ==> r8c4 <> 22
whip[1]: c4n22{r2 .} ==> r2c1 <> 22
whip[1]: c3n22{r9 .} ==> r9c1 <> 22
whip[1]: r6n19{c4 .} ==> r9c2 <> 19
whip[1]: c24n7{r5 .} ==> r1c21 <> 7, r2c21 <> 7, r2c22 <> 7, r3c21 <> 7, r5c21 <> 7, r5c22 <> 7
whip[1]: r1n4{c23 .} ==> r4c25 <> 4
naked-single ==> r4c25 = 23
whip[1]: r1n4{c23 .} ==> r4c24 <> 4, r4c23 <> 4, r2c24 <> 4, r2c23 <> 4, r2c22 <> 4
whip[1]: b20n10{r17c25 .} ==> r17c4 <> 10, r17c6 <> 10, r17c9 <> 10, r17c16 <> 10, r17c20 <> 10
whip[1]: b6n21{r8c2 .} ==> r8c25 <> 21, r8c22 <> 21, r8c20 <> 21, r8c17 <> 21, r8c16 <> 21
whip[2]: c21n7{r9 r14} - c21n19{r14 .} ==> r9c21 <> 2, r9c21 <> 1, r9c21 <> 13, r9c21 <> 15
whip[2]: c21n19{r9 r14} - c21n7{r14 .} ==> r9c21 <> 23, r9c21 <> 25
whip[2]: c21n7{r14 r9} - c21n19{r9 .} ==> r14c21 <> 13
singles ==> r14c25 = 13, r17c24 = 13, r10c21 = 13, r14c23 = 17
whip[2]: r14n7{c1 c21} - r14n18{c21 .} ==> r14c1 <> 14, r14c1 <> 22
singles ==> r11c1 = 22, r11c9 = 6, r11c2 = 9, r12c2 = 4
whip[1]: r11n16{c24 .} ==> r13c22 <> 16
whip[1]: r13n16{c2 .} ==> r12c5 <> 16, r12c4 <> 16
whip[1]: r11n16{c24 .} ==> r12c23 <> 16
naked-single ==> r12c23 = 25
whip[1]: b20n25{r17c22 .} ==> r17c14 <> 25, r17c11 <> 25
naked-single ==> r17c11 = 21
whip[1]: b20n25{r17c22 .} ==> r17c9 <> 25, r17c8 <> 25
singles ==> r18c9 = 25, r18c10 = 21
whip[1]: r18n5{c20 .} ==> r17c20 <> 5, r17c19 <> 5, r17c17 <> 5
whip[1]: c17n5{r6 .} ==> r6c19 <> 5, r6c20 <> 5, r8c16 <> 5, r8c20 <> 5, r10c16 <> 5, r10c19 <> 5, r10c20 <> 5
whip[1]: r18n5{c20 .} ==> r17c16 <> 5, r19c16 <> 5, r19c19 <> 5, r19c20 <> 5
whip[1]: b12n11{r12c10 .} ==> r12c16 <> 11, r12c17 <> 11, r12c19 <> 11
whip[1]: r11n14{c20 .} ==> r14c19 <> 14, r14c20 <> 14
whip[2]: r11c24{n20 n16} - r11c21{n16 .} ==> r11c13 <> 20
whip[1]: r11n20{c24 .} ==> r14c21 <> 20, r15c24 <> 20, r15c25 <> 20
whip[1]: c25n20{r1 .} ==> r5c24 <> 20, r5c21 <> 20, r3c21 <> 20, r2c24 <> 20, r2c21 <> 20, r1c21 <> 20
whip[2]: r11c24{n16 n20} - r11c21{n20 .} ==> r11c22 <> 16
whip[2]: r14n7{c1 c21} - r14n18{c21 .} ==> r14c1 <> 24
whip[2]: r12n11{c6 c10} - b12n16{r12c10 .} ==> r12c6 <> 24, r12c6 <> 21, r12c6 <> 20, r12c6 <> 3
whip[2]: r12n11{c10 c6} - b12n16{r12c6 .} ==> r12c10 <> 24
whip[1]: b12n24{r14c10 .} ==> r14c20 <> 24, r14c19 <> 24, r14c12 <> 24, r14c2 <> 24, r14c5 <> 24
whip[2]: r12n11{c10 c6} - b12n16{r12c6 .} ==> r12c10 <> 20, r12c10 <> 19, r12c10 <> 12
whip[1]: b12n12{r15c10 .} ==> r15c3 <> 12, r15c22 <> 12
whip[2]: r12n11{c10 c6} - b12n16{r12c6 .} ==> r12c10 <> 3
whip[1]: b12n3{r13c7 .} ==> r16c7 <> 3
naked-single ==> r16c7 = 17
whip[1]: b12n3{r13c7 .} ==> r21c7 <> 3, r23c7 <> 3, r24c7 <> 3, r25c7 <> 3
whip[2]: r17n25{c25 c22} - b20n10{r17c22 .} ==> r17c25 <> 18
whip[2]: r17n25{c22 c25} - b20n10{r17c25 .} ==> r17c22 <> 18
whip[1]: b20n18{r19c23 .} ==> r25c23 <> 18, r1c23 <> 18, r15c23 <> 18
whip[2]: r15c24{n5 n4} - r15c23{n4 .} ==> r13c22 <> 5
hidden-single-in-a-row ==> r13c5 = 5, r15c6 <> 5, r15c8 <> 5, r15c9 <> 5, r15c10 <> 5
whip[2]: r15c24{n5 n4} - r15c23{n4 .} ==> r15c22 <> 5
whip[2]: r15c24{n4 n5} - r15c23{n5 .} ==> r15c25 <> 4, r15c22 <> 4
whip[2]: r14n18{c21 c1} - r14n7{c1 .} ==> r14c21 <> 19
singles ==> r15c25 = 19, r9c21 = 19, r14c21 = 7, r13c22 = 12, r11c22 = 21, r15c22 = 18, r14c1 = 18
whip[1]: r15n21{c6 .} ==> r14c9 <> 21, r14c6 <> 21
whip[1]: r11n12{c16 .} ==> r12c16 <> 12, r12c19 <> 12
whip[2]: r18c24{n2 n15} - r19c24{n15 .} ==> r18c23 <> 2, r7c24 <> 2, r5c24 <> 2, r4c24 <> 2
whip[1]: c24n2{r19 .} ==> r19c23 <> 2
whip[2]: r18c24{n15 n2} - r19c24{n2 .} ==> r18c23 <> 15, r10c24 <> 15, r8c24 <> 15, r7c24 <> 15, r5c24 <> 15, r2c24 <> 15
whip[1]: c24n15{r19 .} ==> r19c23 <> 15
whip[2]: r20c6{n2 n11} - r20c8{n11 .} ==> r20c2 <> 2, r19c10 <> 2, r17c9 <> 2, r17c8 <> 2, r17c6 <> 2
whip[1]: b17n2{r20c8 .} ==> r20c17 <> 2
whip[2]: r20c6{n11 n2} - r20c8{n2 .} ==> r19c10 <> 11
whip[1]: b17n11{r20c8 .} ==> r20c17 <> 11, r20c20 <> 11
whip[3]: r3c16{n7 n15} - r3c20{n15 n24} - r3c18{n24 .} ==> r3c4 <> 7
whip[1]: r3n7{c18 .} ==> r2c19 <> 7, r2c18 <> 7, r2c16 <> 7, r5c18 <> 7, r5c19 <> 7
whip[3]: r3c16{n15 n7} - r3c18{n7 n24} - r3c20{n24 .} ==> r3c15 <> 15, r2c19 <> 15, r2c16 <> 15
whip[3]: r3c18{n24 n7} - r3c16{n7 n15} - r3c20{n15 .} ==> r3c15 <> 24, r3c4 <> 24
whip[1]: r3n24{c20 .} ==> r5c20 <> 24, r5c19 <> 24, r5c18 <> 24, r4c20 <> 24, r4c19 <> 24
singles ==> r4c19 = 5, r18c20 = 5, r24c16 = 5, r18c13 = 20
whip[1]: r16n20{c8 .} ==> r17c6 <> 20, r17c8 <> 20, r17c9 <> 20
whip[1]: b13n20{r12c14 .} ==> r12c3 <> 20, r12c4 <> 20, r12c5 <> 20
whip[1]: r3n24{c20 .} ==> r2c18 <> 24, r2c19 <> 24
whip[2]: r16c23{n18 n6} - r16c14{n6 .} ==> r16c19 <> 18, r16c16 <> 18, r16c12 <> 18
singles ==> r16c12 = 19, r2c15 = 19, r19c16 = 19
whip[2]: r16c23{n6 n18} - r16c14{n18 .} ==> r16c19 <> 6, r16c18 <> 6
singles ==> r16c18 = 4, r16c19 = 3, r19c10 = 3, r17c6 = 1, r10c10 = 1, r19c1 = 5, r16c9 = 10, r16c16 = 16, r16c8 = 20
whip[1]: r18n16{c2 .} ==> r17c4 <> 16, r17c1 <> 16
whip[2]: b11n16{r13c2 r13c4} - b16n16{r18c4 .} ==> r2c2 <> 16,> r4c2 <> 16
whip[2]: b11n16{r13c4 r13c2} - b16n16{r18c2 .} ==> r3c4 <> 16
whip[1]: b1n16{r2c1 .} ==> r2c8 <> 16, r2c10 <> 16, r2c21 <> 16
singles ==> r2c21 = 15, r10c23 = 15
whip[1]: r3n15{c16 .} ==> r5c20 <> 15, r5c19 <> 15
whip[1]: b1n16{r2c1 .} ==> r2c22 <> 16, r2c23 <> 16
naked-single ==> r2c23 = 9
whip[1]: b1n16{r2c1 .} ==> r2c24 <> 16
whip[2]: b10n2{r7c21 r6c23} - b10n23{r6c23 .} ==> r7c21 <> 25
whip[1]: c21n25{r1 .} ==> r1c25 <> 25, r3c25 <> 25, r5c22 <> 25, r5c25 <> 25
whip[2]: b10n2{r7c21 r6c23} - b10n23{r6c23 .} ==> r7c21 <> 1
whip[1]: b10n1{r8c24 .} ==> r5c24 <> 1
whip[2]: b10n2{r6c23 r7c21} - b10n23{r7c21 .} ==> r6c23 <> 16
singles ==> r4c23 = 16, r4c24 = 24, r2c22 = 3, r5c22 = 5, r4c14 = 10; r4c11 = 4, r2c10 = 4, r22c19 = 4, r11c20 = 4, r22c11 = 10, r5c11 = 3, r23c12 = 17, r13c14 = 17, r21c12 = 4, r6c20 = 3, r9c16 = 10, r19c20 = 10, r18c3 = 10, r2c2 = 10, r6c4 = 10, r6c5 = 19, r9c19 = 12, r9c11 = 1, r12c11 = 7, r2c11 = 6, r2c12 = 24, r2c13 = 7, r2c1 = 16, r18c11 = 15, r19c11 = 25, r18c24 = 2, r19c24 = 15, r18c2 = 16, r13c4 = 16, r13c7 = 3, r12c7 = 19, r24c7 = 4, r23c4 = 4, r23c22 = 11, r7c22 = 4, r14c2 = 19, r13c2 = 24, r20c2 = 12, r5c4 = 19, r13c17 = 19, r13c3 = 7, r5c24 = 7, r19c14 = 7
whip[1]: r20n24{c20 .} ==> r19c19 <> 24, r19c18 <> 24, r17c20 <> 24, r17c19 <> 24, r17c18 <> 24, r17c17 <> 24
whip[1]: c7n15{r23 .} ==> r22c9 <> 15, r22c8 <> 15, r21c9 <> 15, r21c8 <> 15, r23c8 <> 15, r23c9 <> 15
whip[1]: r19n2{c2 .} ==> r17c1 <> 2
whip[1]: c12n1{r12 .} ==> r12c15 <> 1
whip[1]: b9n13{r6c18 .} ==> r6c12 <> 13
whip[1]: r2n20{c4 .} ==> r5c5 <> 20, r5c3 <> 20, r5c2 <> 20, r3c4 <> 20, r1c2 <> 20
singles ==> r8c2 = 20, r9c2 = 13, r8c12 = 13, r12c14 = 13, r12c15 = 20, r11c13 = 24, r6c12 = 16, r8c3 = 21, r9c3 = 22
whip[1]: c2n25{r1 .} ==> r1c1 <> 25, r1c4 <> 25, r3c4 <> 25
whip[1]: r2n20{c4 .} ==> r1c3 <> 20, r1c4 <> 20, r1c5 <> 20
whip[2]: b10n2{r6c23 r7c21} - b10n23{r7c21 .} ==> r6c23 <> 5
singles ==> r15c23 = 5, r15c24 = 4, r25c24 = 3, r7c25 = 3, r10c25 = 21
whip[2]: r11c24{n16 n20} - r24c24{n20 .} ==> r8c24 <> 16
singles ==> r8c22 = 16, r24c22 = 9, r21c22 = 10, r17c22 = 25, r6c22 = 7, r9c22 = 24, r17c25 = 10, r9c9 = 7, r9c1 = 23, r17c4 = 23, r9c6 = 2, r20c6 = 11, r12c6 = 16, r12c10 = 11, r20c8 = 2, r9c25 = 25, r9c14 = 15, r9c17 = 17
whip[1]: r6n17{c6 .} ==> r8c6 <> 17, r10c6 <> 17
whip[1]: c15n15{r23 .} ==> r22c13 <> 15
singles ==> r22c13 = 6, r22c17 = 15
whip[1]: c15n15{r23 .} ==> r23c13 <> 15
singles ==> r23c13 = 2, r3c15 = 2, r3c21 = 25
whip[1]: b7n11{r10c9 .} ==> r21c9 <> 11
whip[1]: b16n17{r19c4 .} ==> r19c18 <> 17, r19c19 <> 17
whip[1]: r8n23{c20 .} ==> r7c19 <> 23, r7c18 <> 23, r7c16 <> 23, r6c19 <> 23, r6c18 <> 23, r10c16 <> 23, r10c18 <> 23, r10c19 <> 23, r10c20 <> 23
whip[2]: r23n15{c15 c7} - r23n1{c7 .} ==> r23c15 <> 24, r23c15 <> 18, r23c15 <> 3
whip[3]: b11n20{r15c3 r14c5} - b11n14{r14c5 r15c1} - b11n6{r15c1 .} ==> r15c3 <> 23
hidden-single-in-a-row ==> r15c13 = 23
whip[1]: r13n23{c19 .} ==> r12c19 <> 23, r12c16 <> 23
whip[1]: r15n15{c8 .} ==> r14c9 <> 15
whip[3]: r12c3{n23 n12} - b1n12{r4c3 r5c5} - b1n24{r5c5 .} ==> r5c3 <> 23
whip[3]: c2n17{r19 r5} - c25n17{r5 r8} - r10n17{c24 .} ==> r19c4 <> 17
whip[2]: b16n2{r19c3 r19c2} - b16n17{r19c2 .} ==> r19c3 <> 6, r19c3 <> 18
whip[1]: c3n18{r25 .} ==> r24c4 <> 18, r21c4 <> 18
whip[2]: b16n2{r19c3 r19c2} - b16n17{r19c2 .} ==> r19c3 <> 24
whip[2]: b23n24{r21c14 r22c15} - r19n24{c15 .} ==> r21c4 <> 24
whip[3]: b1n20{r2c5 r2c4} - r2n22{c4 c24} - r2n17{c24 .} ==> r2c5 <> 8
whip[1]: r2n8{c19 .} ==> r5c20 <> 8, r5c19 <> 8, r5c18 <> 8, r1c20 <> 8
whip[3]: c4n20{r24 r2} - r2c5{n20 n17} - b6n17{r8c5 .} ==> r24c4 <> 17
whip[3]: r6c6{n5 n17} - r6c10{n17 n23} - r6c9{n23 .} ==> r6c8 <> 5
naked-single ==> r6c8 = 6
whip[2]: r23n6{c5 c17} - r8n6{c17 .} ==> r7c5 <> 6
whip[3]: r23n6{c17 c5} - r8n6{c5 c4} - b16n6{r19c4 .} ==> r17c17 <> 6
whip[3]: r6c6{n5 n17} - r6c10{n17 n23} - r6c9{n23 .} ==> r6c17 <> 5
whip[1]: r6n5{c6 .} ==> r8c6 <> 5, r8c8 <> 5
singles ==> r17c8 = 5, r17c9 = 16
whip[1]: r6n5{c6 .} ==> r10c6 <> 5, r10c9 <> 5
whip[3]: r6c9{n23 n5} - r6c10{n5 n17} - r6c6{n17 .} ==> r10c9 <> 23
singles ==> r10c12 = 23, r7c15 = 25, r7c12 = 6, r19c12 = 18, r16c14 = 6, r17c14 = 24, r19c15 = 23, r17c1 = 6, r18c4 = 18, r19c4 = 24, r15c1 = 14, r14c5 = 20, r15c3 = 6, r2c5 = 17, r2c24 = 22, r3c25 = 20, r2c4 = 20, r16c23 = 18, r24c3 = 20, r24c24 = 16, r11c24 = 20, r11c21 = 16, r22c21 = 20, r21c5 = 16, r25c3 = 17, r19c3 = 2, r19c2 = 17, r21c3 = 18, r21c14 = 25, r1c2 = 25, r5c3 = 24, r8c25 = 22, r5c25 = 17, r3c4 = 22, r14c6 = 14
whip[1]: r3n3{c8 .} ==> r1c6 <> 3
whip[1]: b21n9{r25c1 .} ==> r1c1 <> 9
whip[1]: c2n2{r4 .} ==> r5c5 <> 2, r1c1 <> 2, r1c5 <> 2
whip[1]: r6n14{c19 .} ==> r8c20 <> 14, r8c17 <> 14, r7c19 <> 14, r7c18 <> 14, r7c17 <> 14
whip[2]: r1c4{n3 n7} - r1c1{n7 .} ==> r1c5 <> 3
whip[2]: r12c4{n3 n12} - r21c4{n12 .} ==> r24c4 <> 3, r1c4 <> 3
singles ==> r1c4 = 7, r1c1 = 3
whip[3]: r14c9{n5 n24} - r22c9{n24 n23} - r6c9{n23 .} ==> r1c9 <> 5
singles ==> r1c6 = 5, r6c6 = 17
whip[2]: r6c9{n23 n5} - r6c10{n5 .} ==> r6c23 <> 23
singles ==> r6c23 = 2, r7c21 = 23, r1c23 = 4, r25c23 = 23, r25c10 = 10, r3c10 = 16, r3c8 = 3, r3c6 = 10, r1c25 = 18, r25c25 = 4, r1c14 = 20, r5c14 = 18, r6c1 = 25, r24c4 = 25, r25c8 = 25, r21c8 = 11, r22c8 = 16
whip[1]: b22n9{r25c6 .} ==> r5c6 <> 9
whip[1]: b21n6{r25c5 .} ==> r8c5 <> 6
whip[3]: b1n21{r5c2 r4c2} - r4c20{n21 n9} - r5n9{c20 .} ==> r5c8 <> 21
whip[3]: c9n12{r5 r15} - c9n20{r15 r23} - c9n21{r23 .} ==> r5c9 <> 2, r5c9 <> 8
whip[3]: c9n12{r15 r5} - c9n20{r5 r23} - c9n21{r23 .} ==> r15c9 <> 15
singles ==> r15c8 = 15, r8c8 = 18, r8c6 = 24, r10c6 = 8, r10c9 = 11, r7c9 = 15, r8c5 = 14, r8c11 = 17, r7c11 = 14, r8c4 = 6, r10c4 = 17, r10c24 = 5, r8c24 = 1, r7c24 = 17, r8c17 = 5, r7c17 = 8
whip[1]: c20n1{r1 .} ==> r5c18 <> 1, r5c19 <> 1
whip[1]: c19n15{r14 .} ==> r14c16 <> 15, r13c16 <> 15, r14c20 <> 15
whip[1]: r10n24{c20 .} ==> r7c18 <> 24, r7c19 <> 24
whip[2]: r15c6{n20 n21} - r5c6{n21 .} ==> r23c6 <> 20
whip[2]: r15c6{n21 n20} - r5c6{n20 .} ==> r23c6 <> 21, r25c6 <> 21
whip[1]: r25n21{c20 .} ==> r23c20 <> 21
singles to the end
GRID 0 SOLVED. rating-type = W, MOST COMPLEX RULE = Whip[3]
Mike, if you have any non trivial (i.e. not solvable by singles) 36x36 and/or 49x49, I'd like to try them.