Whip solution of large sudokus

For fans of Killer Sudoku, Samurai Sudoku and other variants

Whip solution of large sudokus

Postby denis_berthier » Mon Dec 05, 2011 6:25 pm

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.)


Hidden Text: Show
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.
denis_berthier
2010 Supporter
 
Posts: 1253
Joined: 19 June 2007
Location: Paris

Re: Whip solution of large sudokus

Postby m_b_metcalf » Tue Dec 06, 2011 1:35 am

denis_berthier wrote:Mike, if you have any non trivial (i.e. not solvable by singles) 36x36 and/or 49x49, I'd like to try them.

Denis (and everyone else),
I do, indeed, have such puzzles. However, last Saturday, my beautiful laptop had a catastrophic failure :( . Upon investigation, it turns out that it cannot be repaired here in Japan (it switches itself off after a couple of seconds -- it's the internal power-supply or the mother-board). I am typing this from a guest account on a borrowed computer with a German keyboard. I can rescue some puzzles from my back-up memory stick and maybe even compute some new ones, but I need a day to get that far.

Regards,

Mike Metcalf
User avatar
m_b_metcalf
2017 Supporter
 
Posts: 8290
Joined: 15 May 2006
Location: Berlin

Re: Whip solution of large sudokus

Postby denis_berthier » Tue Dec 06, 2011 6:05 am

Mike, thanks for your answer. I hope your computer will recover once at home.
Please take your time for the puzzles, I can wait.
denis_berthier
2010 Supporter
 
Posts: 1253
Joined: 19 June 2007
Location: Paris

Re: Whip solution of large sudokus

Postby m_b_metcalf » Tue Dec 06, 2011 8:43 am

denis_berthier wrote:Mike, thanks for your answer. I hope your computer will recover once at home.
Please take your time for the puzzles, I can wait.

Denis,
Thanks. I expect I'll need to buy a new one. The Patterns Game has worn the old one (2008) out already.

Below are two puzzles I've created afresh to test my new, temporary arrangement. The first is a symmteric 36x36 that is quite hard, probably SE 8 to 9. The second is an asymmteric 49x49 that is in the range SE 3 to 4. I am very limited in my options as I have no access to a compiler and can use only pre-compiled code that happens to be on the memory stick.

Hope that helps,

Regards,

Mike

Code: Select all
  .  . 20 13  .  .  .  .  .  . 24  . 16  . 32  .  3  .  . 36  .  1  . 33  .  4  .  .  .  .  .  . 26 23  .  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  . 19  .  2  7  . 16 12  . 34  . 11 28 29 35  .  4 18  8 20  . 25 31 30  9  .  1  . 32 26  . 10 33  . 27  .
  .  9 22  . 27  8 31 13  . 20  2 17  .  . 26 30 25 10 19 21 35 16  .  . 29  7 18  . 12 33 32 34  .  1 28  .
 33 14  .  1 10  .  7  .  .  8 36  .  .  2  . 13  . 17  9  .  3  . 29  .  .  6 28  .  .  5  . 20 35  . 31  4
 29 17 30 36 11  . 27  1  .  . 15  4  9  . 31  . 12 33 26 14  . 34  . 32 23 20  .  . 35 24  . 13 21 16  2  3
  .  .  .  .  .  . 10  .  .  .  . 24  . 35 28  .  .  3 27  .  . 36 16  .  4  .  .  .  .  1  .  .  .  .  .  .
 31 27  5 18 25  .  . 19  2  .  4  .  . 16  .  . 20 11  3 22  .  .  1  .  . 36  . 32 26  .  .  6 30 13  9 35
  2  .  3  4 24 15  . 33  5  7 26 13 25  . 34 29  . 19 20  .  9 23  . 14 12 16 22 35 11  . 10 18 27 28  .  1
 30 28 36  .  1  6  9 15 27  .  . 20 23 32  .  7 17  .  . 24 34  . 13  4 25  .  . 29 10 18 19 31  .  3 11  5
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4 15  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 35 26 29 34 14  .  .  . 28 31 11  1  . 15  .  9  . 12 10  .  5  .  2  . 33 27 19 20  .  .  .  7  4 25 23 32
  .  1 31 21  4  2 30  . 13  3 12 19  5  . 16 35 28 15 17 29  7  8  . 24  6  9 26 14  . 32 11 36 34 33 22  .
  8 32 16 26 17  .  2 10  1 28  . 22  .  9  .  4  7 20 35 15 12  .  5  . 24  . 29 11 34 27  . 14 31 30  3 21
  .  .  .  .  .  .  .  .  . 36 21  . 22  .  .  .  . 25 23  .  .  .  . 34  . 17 10  .  .  .  .  .  .  .  .  .
  3  . 15  .  . 27  5  9 32  4 14  .  8 24 19  . 11 34 30  2  .  6 26 10  . 22  7 33 21 16 20  .  . 35  . 25
  .  .  .  .  .  .  .  .  . 17  .  .  .  .  .  .  . 31 14  .  .  .  .  .  .  . 36  .  .  .  .  .  .  .  .  .
  6  . 10 12 23 22  .  . 33 25 20 34  2 17 14  3 36  .  . 31 27 13 21  1 30  5 35  4  .  .  8 16 19  9  . 18
 25  . 27 10  2 29  .  .  6 32 34 14 17 28  5 31 33  .  . 30 15 20  8  7 13 12  9 22  .  . 26  1  3 36  . 16
  .  .  .  .  .  .  .  .  . 19  .  .  .  .  .  .  .  2 28  .  .  .  .  .  .  .  3  .  .  .  .  .  .  .  .  .
 36  . 21  .  . 28 13  2 18 11 16  . 26  8 25  .  9 22 29 23  . 31 27  5  . 32 15 10  6 19 30  .  .  4  . 17
  .  .  .  .  .  .  .  .  . 27  9  . 12  .  .  .  .  7 25  .  .  .  .  2  . 14 16  .  .  .  .  .  .  .  .  .
 32  7  6  5 35  . 25 28 26  1  .  3  . 11  . 14 19 30 24 33 13  . 36  . 31  . 27 21 17  8  . 23  2 15 20 29
  . 15 34  8 26 17  4  . 31 29 33 30 35  .  3 27 10  1 21  6 16 14  .  9  5 28 20 23  .  2 12 22 11  7 32  .
 19  2 28 20 33  .  .  . 29  5  1 25  . 14  . 18  . 16  6  . 10  . 15  . 17 35 12 31  .  .  .  8 32 34 26  7
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 29  5  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  7 25 26  . 36  9 11 17  8  .  . 10 31 22  . 21  5  .  . 16 24  . 20 18 14  .  .  6 27 15  4  3  . 12 35 30
 10  . 13 14 31 18  .  3 22  9  7  6 30  . 20 15  . 32 33  .  8 21  . 27 16 26 24 28  5  . 17  2 36 11  . 19
 22 24 12  3 15  .  .  4 21  . 31  .  . 33  .  . 34  9  2 35  .  . 14  .  . 29  . 19  7  .  .  5 20 18 10 28
  .  .  .  .  .  . 28  .  .  .  . 26  . 10  7  .  . 13 31  .  . 17 22  . 20  .  .  .  . 30  .  .  .  .  .  .
  9 12  1 31 18  . 35 26  .  . 29 32  3  . 13  . 15  6 34 25  . 27  . 17  8 24  .  . 22 14  . 11 28 19 33 36
 34  3  . 19 13  . 21  .  . 16 28  .  . 25  . 22  .  5 36  .  6  . 12  .  . 33 17  .  .  4  . 32  7  . 14  8
  .  8  7  . 21 25  1 11  . 10  5 27  .  . 30 12 14 23  4 13 22 15  .  . 34  3 32  . 28 36 35  9  . 29  6  .
  . 29  .  6 22  . 12 25  . 33  .  9 32 21 10  . 27  8  1 18  .  2 35 20 26  . 13  . 30 11  . 15 23  . 24  .
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
  .  . 32 24  .  .  .  .  .  . 13  . 36  . 29  . 16  .  . 28  . 10  . 19  . 31  .  .  .  .  .  . 12 26  .  .
 
 No. fixed: 688


Code: Select all
 25  . 32 33  .  .  . 35 20 38  . 43  .  .  . 34  .  .  . 41 26 22 10 23 15 27  .  6 31 18 14 11 30 42  . 40  9  4  . 37 13  7  8 49 28 47 39  .  .
  8 14  .  .  . 26 34  .  . 29  . 27  .  .  . 48 32 23  . 16  6 17 24  .  . 47  . 28  . 21  . 39 13 45  . 30 38  .  . 20 18  . 33  . 42  . 15  .  .
 43  .  . 44 15  .  .  9  . 36  2 30 10 11  .  .  . 27  4  .  .  . 34  .  .  . 26 37  .  .  .  .  .  . 25  .  5  . 31  . 29 41  .  .  3  . 21 35  .
 46  .  . 10 45 19  .  .  . 15  . 18  .  .  .  . 38  . 29  7 43 11  . 44  .  . 41  .  . 48 26  2  .  9  . 23  .  .  .  .  . 28  .  . 20 37  .  5  .
 39  3  .  . 18 48 49  .  . 46 37 31 22 21  9 25  . 42  .  .  5 33 40  .  .  7  8  . 38 32  .  .  .  .  . 35 34  .  . 36  .  .  .  .  1 17 45  . 11
  .  .  6  5  .  .  .  . 23 45 13  .  .  . 28  3  .  .  .  .  . 18  .  4  .  .  . 46 43 15  .  . 27 34 49 32  . 42  . 16 22  1 25  . 48  9 14 31  .
 16  . 47  . 13 42  .  6  . 28 26  1  . 34  .  .  .  .  . 31  . 30 32  .  . 19 43  .  .  .  .  .  .  . 24  .  .  . 25  . 17 10  .  .  .  7  2 44 38
  .  . 23 37  . 49  7  . 29  .  9  .  .  4 26  . 20 48 35  2  8  .  . 31 36  .  . 38  1  . 13  .  . 47  .  5  .  . 42  6  .  .  .  . 17 14 46 12  .
 21  .  . 43  .  .  . 23  7 33 27  6 26 36  . 38 25  3 12  .  .  .  . 34  .  2 11  8  . 19  .  .  . 37  .  . 31 39 35  .  .  . 42 45 30 48 10 24 22
  .  . 38  .  . 14 40 21  .  .  .  .  . 44 41 27 23  .  .  .  . 39 30  .  .  . 37  .  2  .  .  8  . 17 32  .  . 12 19  .  . 11  .  3 34 29  .  .  1
  .  .  . 46 24 34  .  3  .  . 18  . 20  . 19  . 31 11  .  . 40 23  1  . 27 29  .  .  . 26  . 15  6 12  .  .  . 48  4  .  2  .  . 33 25  .  .  . 39
 27 25  4  .  . 15  . 31  .  8  .  .  .  .  . 44  . 43  .  .  .  6  . 12  7 33 45 22  .  9  .  .  .  5 28 21 29  . 49  .  .  .  .  . 36  .  . 40  .
  . 11 36  1  . 22 47  2  . 12 39  .  .  .  .  .  . 14  . 15 10 40  .  . 26 46 35  .  .  4  .  .  .  . 48  .  . 20 34  . 25 44 43 13 16  8 31  7  .
 26 10  .  . 39  . 29 47  . 24 42  .  . 45  .  .  5  .  . 22 46  . 18 20  .  9 21  3 36  .  .  . 31 14 34  .  .  . 30  .  . 13 11  .  . 19 35 27  2
 24  .  . 36 23 46 13  .  2  .  . 29  .  .  .  . 44  .  3  5  .  .  . 17  . 11  . 47 39  7  .  .  . 18 27  .  . 30  8  . 16  . 12  . 32 41 33  . 19
  4 12  . 38 42  . 39 19 45  . 10  9  .  1  .  .  . 18 21  .  . 26  .  . 13 44  .  . 37  . 33  . 24 46  . 25 23  .  .  3  .  .  . 16 14  .  .  8  .
  . 34  .  .  8  . 33  .  . 30 12  .  5  .  .  . 37 24  6  . 42  .  9  .  .  4  . 10 11  .  .  .  .  .  . 13  .  . 43  1 49 38  . 15  . 35 22  3 47
  . 30 43 18  .  .  .  .  . 37 46  .  6  .  .  .  . 25  .  . 16  5 20 29  1 48  .  7 23  .  .  .  . 32  3 44  . 26  .  .  .  2 28 36  9  .  .  .  .
 11  .  .  . 47  6  2  . 34  .  .  .  3  .  .  7  .  4  .  . 22 46 37 24 33 41  .  .  .  . 35 45 14  .  . 17  . 19 29  .  .  . 18 42  .  .  . 26 23
  .  . 22 27  .  .  .  .  .  .  .  .  .  .  .  .  . 10 33  . 41  . 15  .  6  . 25 31  8  . 49 19 17  . 21  .  .  .  .  .  . 20 29  .  .  .  4 30  .
 19 45 49  . 28 20 10  .  . 42  .  .  . 14 23  . 15  . 40  .  . 34 43  3  . 16  . 35  9  .  1  .  . 26  2  .  . 36 37  .  . 27  . 44 31  6  . 25  .
  . 47 35 32 16  .  .  4 19  .  . 15  .  . 31  .  .  .  .  . 27  .  .  .  .  .  3  .  . 17 48  .  .  . 26  . 44  .  .  .  .  .  .  . 46 11 29 39  .
  .  .  . 29  .  8  .  . 25  . 30 48  . 41  . 15  .  . 46  .  9 27 47 10 32  . 18  . 40  . 43  . 35  . 14 34 22 21  .  4  . 36 37  6  .  .  . 17 20
  . 27 46 30  . 23  .  .  8 44 24  .  .  . 10 42 21 32  .  .  . 36 38 41 22 15  .  . 49  2  5  3 34  . 33  .  .  . 13  .  .  . 26  .  .  .  .  .  4
 15 33  . 31  1  . 11  . 26 34  .  . 18  .  . 29  . 44  .  .  .  . 16 28  .  .  . 12 10  .  .  . 19  . 41 20 35  3 17  .  .  .  .  .  . 43 32  . 40
  .  9  2  . 34  3  .  .  . 47 36  .  . 39  . 40 19  .  . 43  . 37 21 45  5  . 48  4 24 31 29 46 28  .  . 42  .  .  . 25 23  .  .  1 44  . 18  . 12
  . 17 13  .  . 45  . 12 14  . 33  . 43  6  .  .  4 47  .  . 37  .  .  .  . 39  .  .  . 44 20 38  .  .  . 15 32  .  .  . 31  . 36 41  7 25  . 22  .
 28  . 48 14 21  . 37 45 11 40  1  3  . 46  .  . 22  .  . 26  .  .  .  .  . 20 31  . 18  .  .  .  .  7 47  . 24  . 41  . 19 29  . 35  . 42 23 38 33
  .  .  . 41  . 47  .  .  . 26  .  . 12  .  . 39 42 17  7 30 44  . 22  . 28 34  . 43 35 37  .  .  .  .  .  .  .  .  .  .  .  .  1  8  2  . 49 20 21
 17 42  .  .  .  1  . 28  .  2  . 14  . 23  . 10 26  . 43  . 18 32 49 33 40  .  .  .  6 41  .  .  . 38  .  4  . 16  . 45 37  . 30  .  .  . 27 15  .
 40 26  3  .  2 31  . 16 36  .  4  . 17  .  . 12 34 38  9  .  .  .  .  .  .  .  . 14  . 49  .  .  8 30  .  .  .  6 46 27  . 19  5 11 29  .  .  . 45
  7 39  .  .  . 27  6 44  1 22 25 46  .  . 21  4 41 15  . 37  . 38  . 42 29 45  9  .  .  . 16  .  .  3  .  .  . 24 36 13  . 26 40 12  .  .  . 28  .
  5 48  .  . 37 24 35 27  .  .  . 45  7 19 46  .  .  .  .  .  .  .  2  .  . 23 30  .  . 42 17 47 32 21  .  . 10  .  .  .  .  . 44 31  . 39 38  9 18
 45  .  . 34  .  . 32 30  6  .  5  .  .  . 47  .  . 22  8  .  .  . 48  . 20  .  .  .  . 46 23 44 33 43 31  1  2  .  . 29  .  . 41  . 19 26 17  .  .
  . 28 18  . 49  . 23 11 43 48 32 35  . 31 33  6 40  . 25  .  3  .  .  . 47  .  1 19  5 24  9 13 12  .  .  .  .  .  .  .  .  .  .  .  .  .  . 16  7
  .  1 26  .  .  .  . 17 15 32  6  .  . 33 14 46  . 37 49  . 20  3 12  .  .  .  . 48  4 45  .  .  5 10  .  2  .  . 21  .  . 47 19 29 11 38  9  .  8
  .  . 20  3  . 29  .  8  .  .  . 13  9 16 24 33 18  . 27  .  . 42 41 21  . 17  .  .  . 35  .  .  2 11 44 14 40 34 10 23  .  .  .  .  .  .  . 45  .
  .  .  . 16  9 33  .  . 27  .  3 23 49  . 40  . 45  1  . 48  .  .  .  .  .  . 46  . 41 14  8 21  .  .  . 22 18 28 32  .  5 35  .  . 10  . 30  . 36
 41 24 21  . 19  .  . 40 28  .  .  .  .  .  6  .  9  .  .  4 38 45 27 11  . 31 22 18  . 39  .  . 23  . 36  . 20  .  . 30  .  .  .  . 47  3  .  .  .
 18 13  . 11  .  .  . 46  .  4 21  2 14 20 35 30  .  . 15  .  . 49  8  .  .  . 19  . 42  .  . 34  .  1  7 27  . 43  .  .  . 39  6  . 26  .  . 33 48
 30 23  . 42  .  . 46 43 31  . 19  .  .  . 22  8 12 41  .  . 34 35 14  . 44  6  . 36  . 47 28  . 15  .  .  .  . 11  . 26  1  .  .  .  .  .  . 13  .
  6  .  5  7 43  . 31 48  .  . 44 47 36 12  .  . 29  . 19  3  .  .  . 32  .  .  .  .  .  .  .  . 40  . 17  .  4 25 24 42  .  . 21 18 15 46 41  . 34
  .  . 41  . 11  . 21  .  . 18 34  .  .  . 37  .  .  . 38  9  .  . 45 39  .  . 10 33  . 25 27 16 49  . 23 29  1  .  .  8  .  4 17 19  . 12  . 48 14
 34  . 14  .  .  .  4 36 35  . 41  .  .  3 49  .  .  . 42  . 19  . 44 18  . 26 47 17 28 10 46  .  . 33 39  7 13  .  . 31  .  .  .  .  .  .  .  .  .
  .  .  . 17  .  . 25  . 48  . 15  .  .  9 11  .  . 12 44  .  .  2  .  7  .  8  . 42  . 36 21 30 43  .  . 45 28 14 20 35  . 34 39  5  .  . 24  . 41
  1 20 28 39  . 36  .  . 16  . 47  .  . 13 25  5 14 45 10 27 32  .  . 40 46  .  .  .  . 22  .  .  . 24 18 12  .  .  2 17 42 33 23 21  8 15  .  .  .
  .  .  .  .  .  .  8 33  .  .  . 44  . 25 29 13  .  .  . 17 30  1  . 16  9  .  .  .  .  .  7  .  . 41 19 10  . 18  .  . 43 37  . 22 40 49 42 36 27
 49 29  . 15  .  .  .  .  4 20  .  .  .  .  7  . 33 26  . 39  .  .  .  5  . 32  .  . 12 38  . 31  9  . 37  .  . 41 22  . 27 25  .  2  . 34 44  .  .
  . 18  .  .  .  . 12  .  . 19 14 26  . 24  4  1  .  .  . 20  .  .  .  .  . 37 38 49  .  .  .  .  .  .  6  .  . 15  . 44  .  5  .  9  .  . 25  . 32
 
 No. fixed: 1212
User avatar
m_b_metcalf
2017 Supporter
 
Posts: 8290
Joined: 15 May 2006
Location: Berlin

Re: Whip solution of large sudokus

Postby denis_berthier » Tue Dec 06, 2011 9:20 am

Mike,
Thanks a lot.
I'll try them as soon as my old Powerbook has finished a hard 16x16 of yours I found on the Programmer's forum.
denis_berthier
2010 Supporter
 
Posts: 1253
Joined: 19 June 2007
Location: Paris

Re: Whip solution of large sudokus

Postby denis_berthier » Thu Dec 08, 2011 8:20 am

Hi Mike,

My Mac has been busy with other things, but I could finally make it swallow your 36x36.
It doesn't seem to be as hard as you suggest: it is solvable by whips[5] (in any case, it is much easier than your 16x16 that needs whips[20], whose solution I've just posted on the Programmer's forum).

After trying a few of these large puzzles, I think those that are not merely intractable for a human player (such as the above mentioned 16x16) would be terribly boring.
However, they are still interesting from a theoretical POV or for programmers (such as tests for our solvers).

Here is the raw SudoRules output (hidden, because I doubt anyone wants to read this):

Hidden Text: Show
Code: Select all
*****  SudoRules version 15c-1-12-W  *****
***   based on CSP-Rules version 1-0   ***

688 givens, 4025 candidates, 56732 csp-links and 56732 links. Density = 0.175
naked-single ==> r36c18 = 35
naked-single ==> r34c26 = 19
naked-single ==> r27c18 = 28
naked-single ==> r21c35 = 34
naked-single ==> r21c21 = 1
naked-single ==> r21c4 = 33
naked-single ==> r21c2 = 20
naked-single ==> r21c16 = 24
naked-single ==> r19c18 = 21
naked-single ==> r21c32 = 35
naked-single ==> r21c25 = 7
naked-single ==> r21c12 = 12
naked-single ==> r21c5 = 3
naked-single ==> r21c33 = 14
naked-single ==> r19c30 = 35
naked-single ==> r18c30 = 28
naked-single ==> r18c29 = 15
naked-single ==> r18c18 = 26
naked-single ==> r10c18 = 14
naked-single ==> r1c18 = 27
naked-single ==> r35c18 = 24
naked-single ==> r2c18 = 36
naked-single ==> r18c2 = 11
naked-single ==> r18c19 = 32
naked-single ==> r27c19 = 13
naked-single ==> r10c19 = 12
naked-single ==> r9c2 = 21
naked-single ==> r6c6 = 5
hidden-single-in-a-column ==> r35c19 = 16
hidden-single-in-a-column ==> r17c24 = 16
hidden-single-in-a-block ==> r17c22 = 22
hidden-single-in-a-row ==> r31c6 = 10
hidden-single-in-a-column ==> r11c2 = 10
hidden-single-in-a-row ==> r28c35 = 29
naked-single ==> r27c33 = 1
naked-single ==> r18c35 = 7
hidden-single-in-a-row ==> r27c27 = 33
hidden-single-in-a-row ==> r27c26 = 34
naked-single ==> r23c26 = 18
naked-single ==> r23c15 = 4
naked-single ==> r23c13 = 34
naked-single ==> r23c22 = 12
naked-single ==> r23c6 = 16
naked-single ==> r12c6 = 13
naked-single ==> r23c24 = 22
naked-single ==> r23c11 = 10
naked-single ==> r23c31 = 9
hidden-single-in-a-row ==> r20c16 = 16
hidden-single-in-a-column ==> r26c14 = 3
hidden-single-in-a-row ==> r24c29 = 25
hidden-single-in-a-row ==> r13c23 = 25
naked-single ==> r14c24 = 36
hidden-single-in-a-row ==> r16c2 = 36
hidden-single-in-a-row ==> r14c26 = 25
hidden-single-in-a-row ==> r28c30 = 25
hidden-single-in-a-row ==> r24c23 = 19
hidden-single-in-a-row ==> r19c35 = 19
hidden-single-in-a-row ==> r19c19 = 11
naked-single ==> r36c19 = 7
hidden-single-in-a-row ==> r19c2 = 18
hidden-single-in-a-row ==> r24c14 = 18
hidden-single-in-a-row ==> r24c8 = 36
hidden-single-in-a-row ==> r19c29 = 4
hidden-single-in-a-row ==> r16c12 = 31
hidden-single-in-a-row ==> r16c16 = 23
naked-single ==> r13c14 = 27
hidden-single-in-a-row ==> r13c36 = 10
hidden-single-in-a-row ==> r10c22 = 26
hidden-single-in-a-row ==> r10c15 = 33
hidden-single-in-a-row ==> r5c6 = 26
hidden-single-in-a-row ==> r5c8 = 32
hidden-single-in-a-row ==> r5c28 = 34
hidden-single-in-a-row ==> r5c29 = 16
hidden-single-in-a-row ==> r5c9 = 30
hidden-single-in-a-row ==> r4c28 = 36
hidden-single-in-a-row ==> r3c31 = 36
hidden-single-in-a-row ==> r4c9 = 3
hidden-single-in-a-column ==> r2c24 = 13
hidden-single-in-a-column ==> r2c10 = 26
whip[1]: r36n8{c12 .} ==> r35c7 <> 8
whip[1]: r36n8{c12 .} ==> r35c8 <> 8
whip[1]: r36n8{c12 .} ==> r35c11 <> 8
whip[1]: r36n8{c12 .} ==> r35c12 <> 8
whip[1]: r30n33{c36 .} ==> r26c31 <> 33
whip[1]: r30n33{c36 .} ==> r26c32 <> 33
whip[1]: r30n33{c36 .} ==> r26c36 <> 33
whip[1]: c10n24{r30 .} ==> r25c7 <> 24
whip[1]: c10n24{r30 .} ==> r25c8 <> 24
whip[1]: c10n24{r30 .} ==> r26c7 <> 24
whip[1]: c10n24{r30 .} ==> r26c8 <> 24
whip[1]: c10n24{r30 .} ==> r26c9 <> 24
whip[1]: c10n24{r30 .} ==> r30c8 <> 24
whip[1]: c10n24{r30 .} ==> r30c9 <> 24
whip[1]: r29n17{c16 .} ==> r26c15 <> 17
whip[1]: r29n17{c16 .} ==> r26c16 <> 17
whip[1]: r19n23{c7 .} ==> r22c12 <> 23
whip[1]: r19n24{c7 .} ==> r22c9 <> 24
whip[1]: r19n23{c7 .} ==> r22c9 <> 23
whip[1]: r19n24{c7 .} ==> r22c8 <> 24
whip[1]: r19n23{c7 .} ==> r22c8 <> 23
whip[1]: r19n24{c7 .} ==> r22c7 <> 24
whip[1]: r19n23{c7 .} ==> r22c7 <> 23
whip[1]: r19n23{c7 .} ==> r20c12 <> 23
whip[1]: r19n23{c7 .} ==> r20c11 <> 23
whip[1]: r19n24{c7 .} ==> r20c9 <> 24
whip[1]: r19n23{c7 .} ==> r20c9 <> 23
whip[1]: r19n24{c7 .} ==> r20c8 <> 24
whip[1]: r19n23{c7 .} ==> r20c8 <> 23
whip[1]: r19n24{c7 .} ==> r20c7 <> 24
whip[1]: r19n23{c7 .} ==> r20c7 <> 23
whip[1]: r18n29{c8 .} ==> r15c7 <> 29
whip[1]: r18n29{c8 .} ==> r15c8 <> 29
whip[1]: r18n29{c8 .} ==> r15c12 <> 29
whip[1]: r18n29{c8 .} ==> r17c7 <> 29
whip[1]: r18n29{c8 .} ==> r17c8 <> 29
whip[1]: r18n29{c8 .} ==> r17c12 <> 29
whip[1]: r18n24{c8 .} ==> r15c7 <> 24
whip[1]: r18n24{c8 .} ==> r15c8 <> 24
whip[1]: r18n24{c8 .} ==> r15c9 <> 24
whip[1]: r18n24{c8 .} ==> r17c7 <> 24
whip[1]: r18n24{c8 .} ==> r17c8 <> 24
whip[1]: r18n24{c8 .} ==> r17c9 <> 24
whip[1]: c9n24{r33 .} ==> r32c8 <> 24
whip[1]: r16n13{c33 .} ==> r17c36 <> 13
whip[1]: r16n12{c32 .} ==> r17c36 <> 12
whip[1]: r16n13{c33 .} ==> r17c35 <> 13
whip[1]: r16n12{c32 .} ==> r17c35 <> 12
whip[1]: r16n13{c33 .} ==> r17c33 <> 13
whip[1]: r16n12{c32 .} ==> r17c32 <> 12
whip[1]: r16n13{c33 .} ==> r17c31 <> 13
whip[1]: r16n13{c35 .} ==> r14c31 <> 13
hidden-single-in-a-row ==> r14c13 = 13
whip[1]: r16n13{c35 .} ==> r15c31 <> 13
whip[1]: r16n13{c35 .} ==> r15c33 <> 13
whip[1]: r16n13{c35 .} ==> r15c35 <> 13
whip[1]: r16n13{c35 .} ==> r15c36 <> 13
whip[1]: r16n12{c35 .} ==> r15c32 <> 12
whip[1]: r16n12{c35 .} ==> r15c35 <> 12
whip[1]: r16n12{c35 .} ==> r15c36 <> 12
whip[1]: c27n34{r7 .} ==> r11c30 <> 34
whip[1]: r10n2{c26 .} ==> r11c29 <> 2
whip[1]: r10n2{c26 .} ==> r11c28 <> 2
whip[1]: c27n34{r11 .} ==> r8c30 <> 34
whip[1]: r10n2{c26 .} ==> r11c27 <> 2
whip[1]: r10n2{c26 .} ==> r11c26 <> 2
whip[1]: r10n2{c26 .} ==> r11c25 <> 2
whip[1]: r10n35{c10 .} ==> r11c12 <> 35
whip[1]: r10n35{c10 .} ==> r11c11 <> 35
whip[1]: r10n35{c10 .} ==> r11c10 <> 35
whip[1]: r10n35{c10 .} ==> r11c9 <> 35
whip[1]: r10n35{c10 .} ==> r11c8 <> 35
whip[1]: r10n2{c27 .} ==> r7c26 <> 2
whip[1]: r10n2{c27 .} ==> r7c27 <> 2
whip[1]: r10n2{c27 .} ==> r7c28 <> 2
whip[1]: r10n2{c27 .} ==> r7c29 <> 2
whip[1]: r6n28{c23 .} ==> r1c21 <> 28
whip[1]: r6n28{c23 .} ==> r1c23 <> 28
whip[1]: r6n28{c23 .} ==> r2c21 <> 28
whip[1]: r6n28{c23 .} ==> r2c22 <> 28
whip[1]: r6n28{c23 .} ==> r2c23 <> 28
whip[1]: c19n18{r1 .} ==> r6c23 <> 18
whip[1]: c19n18{r1 .} ==> r6c21 <> 18
naked-single ==> r6c21 = 28
naked-single ==> r16c21 = 18
naked-single ==> r16c25 = 1
whip[1]: r5n12{c24 .} ==> r2c20 <> 12
whip[1]: c19n18{r1 .} ==> r5c22 <> 18
whip[1]: c19n18{r1 .} ==> r2c23 <> 18
whip[1]: c19n18{r1 .} ==> r2c22 <> 18
whip[1]: c19n18{r2 .} ==> r1c23 <> 18
whip[1]: b34n5{r35c20 .} ==> r35c35 <> 5
whip[1]: b34n5{r35c20 .} ==> r35c34 <> 5
whip[1]: b34n5{r35c20 .} ==> r35c33 <> 5
whip[1]: b34n5{r35c20 .} ==> r35c31 <> 5
whip[1]: b34n5{r35c20 .} ==> r35c28 <> 5
whip[1]: b34n5{r35c20 .} ==> r35c27 <> 5
whip[1]: b34n5{r35c22 .} ==> r35c1 <> 5
whip[1]: b34n5{r35c22 .} ==> r35c2 <> 5
whip[1]: b34n5{r35c22 .} ==> r35c5 <> 5
whip[1]: b4n5{r2c20 .} ==> r2c35 <> 5
whip[1]: b4n5{r2c20 .} ==> r2c34 <> 5
whip[1]: b4n5{r2c20 .} ==> r2c33 <> 5
whip[1]: b4n5{r2c20 .} ==> r2c31 <> 5
whip[1]: b4n5{r2c22 .} ==> r2c8 <> 5
whip[1]: b4n5{r2c22 .} ==> r2c12 <> 5
whip[1]: b2n5{r1c8 .} ==> r1c35 <> 5
whip[1]: b2n5{r1c8 .} ==> r1c31 <> 5
whip[1]: b2n5{r1c8 .} ==> r1c16 <> 5
whip[1]: b2n5{r1c8 .} ==> r1c14 <> 5
whip[1]: b4n5{r2c22 .} ==> r2c14 <> 5
whip[1]: b4n5{r2c22 .} ==> r2c16 <> 5
whip[2]: r3n22{c34 c11} - r6n22{c10 .} ==> r2c36 <> 22
whip[2]: r3n22{c34 c11} - r6n22{c10 .} ==> r2c34 <> 22
whip[2]: r3n22{c34 c11} - r6n22{c10 .} ==> r2c33 <> 22
whip[2]: r3n22{c34 c11} - r6n22{c10 .} ==> r2c31 <> 22
whip[2]: r3n22{c34 c11} - r6n22{c10 .} ==> r1c36 <> 22
whip[2]: r3n22{c34 c11} - r6n22{c10 .} ==> r1c31 <> 22
whip[2]: r3n22{c36 c11} - r6n22{c10 .} ==> r5c31 <> 22
whip[2]: r3n22{c36 c11} - r6n22{c10 .} ==> r5c34 <> 22
naked-single ==> r5c34 = 24
naked-single ==> r5c22 = 11
whip[1]: r3n24{c1 .} ==> r4c1 <> 24
whip[1]: r3n24{c1 .} ==> r2c1 <> 24
whip[1]: r3n24{c1 .} ==> r2c3 <> 24
whip[1]: r3n24{c1 .} ==> r2c6 <> 24
whip[2]: r4n14{c13 c36} - r4n11{c36 .} ==> r4c13 <> 24
hidden-single-in-a-row ==> r4c23 = 24
naked-single ==> r33c23 = 33
hidden-single-in-a-column ==> r32c22 = 24
hidden-single-in-a-block ==> r33c9 = 24
hidden-single-in-a-row ==> r4c1 = 4
whip[1]: b32n19{r35c11 .} ==> r35c13 <> 19
whip[1]: b32n19{r35c11 .} ==> r35c14 <> 19
whip[1]: b32n19{r35c11 .} ==> r35c16 <> 19
whip[2]: r4n14{c13 c36} - r4n11{c36 .} ==> r4c13 <> 15
whip[2]: r4n14{c13 c36} - r4n11{c36 .} ==> r4c13 <> 6
whip[2]: r4n14{c36 c13} - r4n11{c13 .} ==> r4c36 <> 6
whip[2]: r4n14{c36 c13} - r4n11{c13 .} ==> r4c36 <> 15
whip[2]: r32n30{c8 c6} - b25n30{r25c6 .} ==> r26c8 <> 30
whip[2]: r6n18{c10 c31} - r6n22{c31 .} ==> r6c10 <> 6
whip[2]: r6n22{c10 c31} - r3n22{c34 .} ==> r2c11 <> 22
whip[2]: r6n22{c10 c31} - r3n22{c34 .} ==> r2c8 <> 22
whip[2]: r6n22{c10 c31} - r3n22{c34 .} ==> r2c7 <> 22
whip[2]: r6n22{c10 c31} - r3n22{c34 .} ==> r1c10 <> 22
whip[2]: r6n22{c10 c31} - r3n22{c34 .} ==> r1c8 <> 22
whip[2]: r6n22{c10 c31} - r3n22{c34 .} ==> r1c7 <> 22
whip[2]: r6c27{n8 n25} - r6c28{n25 .} ==> r6c16 <> 8
whip[1]: r6n8{c28 .} ==> r2c29 <> 8
whip[1]: r6n8{c28 .} ==> r2c28 <> 8
whip[1]: r6n8{c28 .} ==> r2c27 <> 8
whip[1]: r6n8{c28 .} ==> r2c26 <> 8
whip[1]: r6n8{c28 .} ==> r1c29 <> 8
whip[1]: r6n8{c28 .} ==> r1c28 <> 8
whip[1]: r6n8{c28 .} ==> r1c27 <> 8
whip[2]: r6c27{n25 n8} - r6c28{n8 .} ==> r6c9 <> 25
whip[2]: r6c27{n25 n8} - r6c28{n8 .} ==> r2c28 <> 25
whip[2]: r6c27{n25 n8} - r6c28{n8 .} ==> r2c27 <> 25
whip[2]: r6c27{n25 n8} - r6c28{n8 .} ==> r1c28 <> 25
whip[2]: r6c27{n25 n8} - r6c28{n8 .} ==> r1c27 <> 25
whip[1]: b5n25{r6c28 .} ==> r6c31 <> 25
whip[2]: r6n18{c31 c10} - r6n22{c10 .} ==> r6c31 <> 7
whip[2]: r6n18{c31 c10} - r6n22{c10 .} ==> r6c31 <> 6
whip[2]: r12n16{c8 c31} - r29n16{c31 .} ==> r11c12 <> 16
whip[2]: r16c4{n28 n29} - r16c5{n29 .} ==> r15c5 <> 28
whip[2]: r16c4{n28 n29} - r16c5{n29 .} ==> r15c4 <> 28
whip[2]: r16c4{n28 n29} - r16c5{n29 .} ==> r15c1 <> 28
whip[2]: r16c4{n29 n28} - r16c5{n28 .} ==> r15c5 <> 29
whip[2]: r16c4{n29 n28} - r16c5{n28 .} ==> r15c4 <> 29
whip[2]: r16c5{n28 n29} - r16c4{n29 .} ==> r16c32 <> 28
whip[1]: r16n28{c4 .} ==> r17c5 <> 28
whip[1]: r16n28{c4 .} ==> r17c4 <> 28
whip[1]: r16n28{c4 .} ==> r17c1 <> 28
whip[2]: r16c5{n29 n28} - r16c4{n28 .} ==> r16c32 <> 29
whip[2]: r16c5{n29 n28} - r16c4{n28 .} ==> r16c33 <> 29
whip[1]: r16n29{c4 .} ==> r17c5 <> 29
whip[1]: r16n29{c4 .} ==> r17c4 <> 29
whip[2]: r20c25{n11 n36} - r22c25{n36 .} ==> r2c25 <> 11
whip[2]: r20c25{n11 n36} - r22c25{n36 .} ==> r1c25 <> 11
whip[2]: r20c25{n11 n36} - r22c25{n36 .} ==> r20c26 <> 11
whip[1]: b23n11{r22c25 .} ==> r26c25 <> 11
whip[1]: b23n11{r22c25 .} ==> r29c25 <> 11
whip[2]: r20c25{n36 n11} - r22c25{n11 .} ==> r20c29 <> 36
whip[2]: r20c30{n29 n34} - r22c30{n34 .} ==> r20c29 <> 29
whip[2]: r20c30{n29 n34} - r22c30{n34 .} ==> r22c29 <> 29
whip[1]: c29n29{r35 .} ==> r35c30 <> 29
whip[2]: r22c25{n36 n11} - r20c25{n11 .} ==> r22c29 <> 36
whip[1]: c29n36{r30 .} ==> r29c25 <> 36
naked-single ==> r29c25 = 32
naked-single ==> r29c22 = 30
naked-single ==> r12c22 = 18
whip[1]: c29n36{r30 .} ==> r26c25 <> 36
whip[2]: r32n30{c8 c6} - r25n30{c6 .} ==> r36c8 <> 30
whip[2]: r32n30{c8 c6} - r25n30{c6 .} ==> r35c8 <> 30
whip[2]: r32n30{c8 c6} - r25n30{c6 .} ==> r7c8 <> 30
whip[2]: r32n30{c8 c6} - r25n30{c6 .} ==> r11c8 <> 30
whip[2]: r32n30{c8 c6} - r25n30{c6 .} ==> r12c8 <> 30
hidden-single-in-a-row ==> r12c17 = 30
hidden-single-in-a-row ==> r9c23 = 30
naked-single ==> r31c23 = 23
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r36c6 <> 30
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r35c6 <> 30
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r15c6 <> 30
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r17c6 <> 30
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r20c6 <> 30
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r22c6 <> 30
whip[2]: r32n30{c6 c8} - r25n30{c8 .} ==> r26c6 <> 30
whip[2]: r29c10{n13 n23} - r29c30{n23 .} ==> r29c31 <> 13
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c31 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c27 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c24 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c21 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c15 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c12 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c6 <> 23
whip[2]: r29c10{n23 n13} - r29c30{n13 .} ==> r29c7 <> 23
naked-single ==> r29c7 = 36
naked-single ==> r25c7 = 23
naked-single ==> r27c10 = 2
naked-single ==> r31c10 = 30
naked-single ==> r31c21 = 21
naked-single ==> r27c15 = 23
naked-single ==> r29c10 = 13
naked-single ==> r29c30 = 23
naked-single ==> r19c7 = 24
naked-single ==> r18c7 = 29
naked-single ==> r18c8 = 24
naked-single ==> r19c8 = 23
naked-single ==> r13c8 = 18
naked-single ==> r13c1 = 20
naked-single ==> r13c29 = 23
naked-single ==> r28c7 = 34
naked-single ==> r28c23 = 4
naked-single ==> r25c17 = 24
naked-single ==> r29c12 = 16
hidden-single-in-a-row ==> r14c15 = 18
hidden-single-in-a-row ==> r28c2 = 23
hidden-single-in-a-row ==> r28c17 = 35
hidden-single-in-a-column ==> r25c8 = 30
hidden-single-in-a-column ==> r32c6 = 30
hidden-single-in-a-row ==> r12c15 = 36
hidden-single-in-a-row ==> r9c35 = 36
hidden-single-in-a-row ==> r25c29 = 36
whip[1]: c14n36{r22 .} ==> r22c16 <> 36
whip[1]: c14n4{r36 .} ==> r35c13 <> 4
whip[2]: r6n22{c10 c31} - r12n22{c31 .} ==> r11c10 <> 22
whip[2]: r6n22{c10 c31} - r12n22{c31 .} ==> r10c10 <> 22
whip[2]: r6n22{c10 c31} - r12n22{c31 .} ==> r7c10 <> 22
whip[2]: r25n13{c31 c30} - r25n22{c30 .} ==> r25c31 <> 27
whip[1]: r25n27{c13 .} ==> r30c13 <> 27
whip[1]: r25n27{c13 .} ==> r29c15 <> 27
whip[1]: r25n27{c13 .} ==> r29c13 <> 27
hidden-single-in-a-row ==> r29c31 = 27
whip[1]: r29n6{c13 .} ==> r26c17 <> 6
whip[1]: r29n6{c13 .} ==> r26c16 <> 6
whip[1]: r29n6{c13 .} ==> r26c15 <> 6
whip[1]: r29n6{c13 .} ==> r26c13 <> 6
whip[1]: r29n6{c13 .} ==> r30c13 <> 6
whip[1]: r29n6{c13 .} ==> r30c16 <> 6
whip[1]: r29n6{c13 .} ==> r30c17 <> 6
whip[1]: r25n27{c13 .} ==> r26c15 <> 27
whip[1]: r25n27{c13 .} ==> r26c13 <> 27
whip[2]: r25n13{c31 c30} - r25n22{c30 .} ==> r25c31 <> 21
whip[2]: r25n13{c30 c31} - r25n22{c31 .} ==> r25c30 <> 21
hidden-single-in-a-row ==> r25c6 = 21
hidden-single-in-a-row ==> r25c13 = 4
hidden-single-in-a-block ==> r25c15 = 27
hidden-single-in-a-block ==> r11c13 = 27
whip[1]: r25n11{c24 .} ==> r26c20 <> 11
whip[1]: r25n11{c24 .} ==> r26c21 <> 11
whip[1]: r25n11{c24 .} ==> r26c23 <> 11
whip[1]: r25n11{c24 .} ==> r26c24 <> 11
whip[1]: r25n11{c24 .} ==> r29c21 <> 11
whip[1]: r25n11{c24 .} ==> r29c24 <> 11
whip[1]: r25n11{c24 .} ==> r30c20 <> 11
whip[1]: r25n11{c24 .} ==> r30c21 <> 11
whip[1]: r25n11{c24 .} ==> r30c24 <> 11
whip[2]: r29c24{n26 n25} - r29c21{n25 .} ==> r29c16 <> 26
whip[1]: r29n26{c24 .} ==> r26c24 <> 26
whip[1]: r29n26{c24 .} ==> r26c21 <> 26
whip[1]: r29n26{c24 .} ==> r26c20 <> 26
whip[2]: r29c24{n25 n26} - r29c21{n26 .} ==> r29c16 <> 25
whip[1]: r29n25{c24 .} ==> r26c24 <> 25
whip[1]: r29n25{c24 .} ==> r26c21 <> 25
whip[1]: r29n25{c24 .} ==> r30c21 <> 25
whip[1]: r29n25{c24 .} ==> r30c24 <> 25
whip[2]: c16n36{r26 r30} - b27n25{r30c16 .} ==> r26c16 <> 1
whip[2]: c16n36{r26 r30} - b27n25{r30c16 .} ==> r26c16 <> 2
whip[2]: c16n36{r26 r30} - b27n25{r30c16 .} ==> r26c16 <> 8
whip[2]: c16n36{r26 r30} - b27n25{r30c16 .} ==> r26c16 <> 11
whip[2]: c16n36{r26 r30} - b27n25{r30c16 .} ==> r26c16 <> 19
whip[2]: c16n36{r26 r30} - b27n25{r30c16 .} ==> r26c16 <> 26
hidden-single-in-a-block ==> r26c17 = 26
whip[1]: r32n26{c24 .} ==> r33c24 <> 26
naked-single ==> r33c24 = 31
naked-single ==> r34c21 = 14
whip[1]: r34n31{c36 .} ==> r32c34 <> 31
whip[1]: r34n31{c36 .} ==> r32c31 <> 31
whip[1]: r34n31{c36 .} ==> r35c31 <> 31
whip[1]: r34n31{c36 .} ==> r35c34 <> 31
whip[1]: r34n31{c36 .} ==> r35c36 <> 31
whip[1]: r32n26{c24 .} ==> r35c20 <> 26
whip[1]: r32n26{c24 .} ==> r35c21 <> 26
whip[1]: r32n26{c24 .} ==> r35c24 <> 26
whip[2]: c16n36{r30 r26} - b27n25{r26c16 .} ==> r30c16 <> 19
whip[1]: c16n19{r1 .} ==> r6c14 <> 19
whip[1]: c16n19{r1 .} ==> r5c13 <> 19
hidden-single-in-a-row ==> r5c25 = 19
hidden-single-in-a-row ==> r5c20 = 27
hidden-single-in-a-block ==> r5c24 = 12
hidden-single-in-a-block ==> r4c24 = 15
naked-single ==> r4c4 = 23
naked-single ==> r3c3 = 24
naked-single ==> r3c6 = 3
whip[1]: c24n6{r12 .} ==> r11c23 <> 6
whip[1]: c24n23{r30 .} ==> r26c21 <> 23
whip[1]: c24n23{r30 .} ==> r30c21 <> 23
whip[1]: r5n22{c15 .} ==> r2c17 <> 22
whip[1]: r5n22{c15 .} ==> r2c15 <> 22
whip[1]: c16n19{r1 .} ==> r2c14 <> 19
whip[1]: c16n19{r1 .} ==> r2c13 <> 19
whip[1]: c16n19{r1 .} ==> r1c14 <> 19
hidden-single-in-a-column ==> r33c14 = 19
hidden-single-in-a-row ==> r33c1 = 26
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r2c17 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r2c16 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r2c15 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r2c14 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r2c13 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r1c16 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r1c14 <> 6
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r6c14 <> 6
naked-single ==> r6c14 = 7
naked-single ==> r1c14 = 34
hidden-single-in-a-column ==> r35c13 = 7
hidden-single-in-a-column ==> r17c13 = 33
hidden-single-in-a-block ==> r17c16 = 10
naked-single ==> r8c16 = 8
hidden-single-in-a-row ==> r1c35 = 8
hidden-single-in-a-block ==> r8c13 = 10
hidden-single-in-a-column ==> r20c13 = 29
naked-single ==> r20c30 = 34
naked-single ==> r22c30 = 29
whip[1]: b21n15{r22c15 .} ==> r5c15 <> 15
whip[1]: b21n15{r22c15 .} ==> r2c15 <> 15
whip[1]: b32n7{r31c9 .} ==> r20c9 <> 7
whip[1]: b32n7{r31c9 .} ==> r17c9 <> 7
whip[1]: b32n7{r31c9 .} ==> r15c9 <> 7
whip[1]: b35n7{r31c28 .} ==> r7c28 <> 7
whip[1]: b35n7{r31c28 .} ==> r11c28 <> 7
whip[2]: r9n32{c7 c20} - r9n8{c20 .} ==> r9c7 <> 6
whip[2]: r9n32{c7 c20} - r9n8{c20 .} ==> r9c7 <> 17
whip[2]: r9n32{c20 c7} - r9n8{c7 .} ==> r9c20 <> 17
hidden-single-in-a-row ==> r9c30 = 17
whip[1]: r9n6{c14 .} ==> r12c13 <> 6
whip[1]: r9n6{c14 .} ==> r11c17 <> 6
whip[1]: r9n6{c14 .} ==> r11c16 <> 6
whip[1]: r9n6{c14 .} ==> r11c15 <> 6
whip[1]: r9n6{c14 .} ==> r11c14 <> 6
whip[1]: r9n6{c14 .} ==> r7c13 <> 6
hidden-single-in-a-column ==> r29c13 = 6
whip[1]: r9n6{c14 .} ==> r7c16 <> 6
whip[1]: r9n6{c14 .} ==> r7c17 <> 6
whip[1]: r9n31{c14 .} ==> r7c17 <> 31
whip[1]: r9n31{c14 .} ==> r11c14 <> 31
whip[1]: r9n31{c14 .} ==> r11c17 <> 31
whip[2]: r3c16{n6 n5} - r4c14{n5 .} ==> r6c16 <> 6
naked-single ==> r6c16 = 19
naked-single ==> r1c16 = 11
naked-single ==> r4c13 = 14
naked-single ==> r4c36 = 11
naked-single ==> r6c9 = 10
naked-single ==> r6c23 = 6
whip[2]: c16n36{r30 r26} - b27n25{r26c16 .} ==> r30c16 <> 2
whip[2]: c16n36{r30 r26} - b27n25{r26c16 .} ==> r30c16 <> 1
whip[2]: r12c13{n24 n21} - r8c15{n21 .} ==> r11c15 <> 24
whip[2]: r12c13{n21 n24} - r8c15{n24 .} ==> r11c17 <> 21
whip[2]: r12c13{n21 n24} - r8c15{n24 .} ==> r11c15 <> 21
whip[2]: r12c13{n21 n24} - r8c15{n24 .} ==> r7c17 <> 21
whip[2]: r12c13{n21 n24} - r8c15{n24 .} ==> r7c13 <> 21
naked-single ==> r7c13 = 18
naked-single ==> r33c13 = 20
naked-single ==> r31c14 = 4
naked-single ==> r36c14 = 1
naked-single ==> r32c13 = 11
naked-single ==> r28c14 = 12
naked-single ==> r28c20 = 1
naked-single ==> r31c16 = 2
naked-single ==> r32c15 = 9
naked-single ==> r35c15 = 17
naked-single ==> r32c20 = 26
naked-single ==> r32c24 = 29
naked-single ==> r31c27 = 5
naked-single ==> r31c31 = 16
naked-single ==> r31c28 = 7
naked-single ==> r34c28 = 16
naked-single ==> r31c9 = 20
naked-single ==> r32c8 = 31
naked-single ==> r32c17 = 18
naked-single ==> r35c17 = 31
naked-single ==> r9c17 = 6
naked-single ==> r9c14 = 31
naked-single ==> r35c14 = 26
naked-single ==> r33c36 = 2
naked-single ==> r32c31 = 1
naked-single ==> r33c28 = 18
naked-single ==> r33c33 = 17
naked-single ==> r16c33 = 13
naked-single ==> r33c4 = 16
naked-single ==> r10c4 = 22
naked-single ==> r7c2 = 33
hidden-single-in-a-row ==> r10c33 = 16
hidden-single-in-a-row ==> r34c9 = 7
hidden-single-in-a-row ==> r34c6 = 36
hidden-single-in-a-row ==> r34c3 = 4
naked-single ==> r35c2 = 35
naked-single ==> r36c2 = 5
naked-single ==> r36c5 = 20
naked-single ==> r35c5 = 28
naked-single ==> r34c1 = 17
naked-single ==> r34c11 = 3
naked-single ==> r16c5 = 29
naked-single ==> r16c4 = 28
hidden-single-in-a-row ==> r34c16 = 28
hidden-single-in-a-row ==> r32c25 = 35
hidden-single-in-a-row ==> r32c34 = 10
hidden-single-in-a-row ==> r32c29 = 20
hidden-single-in-a-row ==> r32c28 = 27
hidden-single-in-a-column ==> r2c25 = 27
hidden-single-in-a-row ==> r12c8 = 16
hidden-single-in-a-column ==> r15c9 = 16
hidden-single-in-a-block ==> r17c9 = 11
hidden-single-in-a-row ==> r35c29 = 29
hidden-single-in-a-column ==> r29c16 = 17
whip[1]: r32n15{c9 .} ==> r36c12 <> 15
whip[1]: r32n15{c9 .} ==> r36c10 <> 15
whip[1]: r32n15{c9 .} ==> r36c9 <> 15
whip[1]: r32n15{c9 .} ==> r36c7 <> 15
whip[1]: r32n15{c9 .} ==> r35c12 <> 15
whip[1]: r32n15{c9 .} ==> r35c10 <> 15
whip[1]: c10n15{r26 .} ==> r26c9 <> 15
whip[1]: c10n15{r26 .} ==> r26c7 <> 15
whip[1]: c10n15{r26 .} ==> r26c12 <> 15
whip[1]: c10n15{r26 .} ==> r30c9 <> 15
whip[1]: r32n15{c9 .} ==> r35c9 <> 15
whip[1]: r32n15{c9 .} ==> r35c7 <> 15
whip[1]: r34n34{c36 .} ==> r35c31 <> 34
whip[1]: r34n34{c36 .} ==> r35c36 <> 34
whip[1]: r34n34{c36 .} ==> r36c31 <> 34
whip[1]: r34n34{c36 .} ==> r36c36 <> 34
whip[2]: b26n15{r30c10 r26c10} - b26n24{r26c10 .} ==> r30c10 <> 35
whip[2]: b26n15{r30c10 r26c10} - b26n24{r26c10 .} ==> r30c10 <> 18
whip[2]: b26n15{r30c10 r26c10} - b26n24{r26c10 .} ==> r30c10 <> 12
whip[2]: b26n15{r30c10 r26c10} - b26n24{r26c10 .} ==> r30c10 <> 14
whip[2]: b26n15{r26c10 r30c10} - b26n24{r30c10 .} ==> r26c10 <> 14
whip[2]: b26n15{r26c10 r30c10} - b26n24{r30c10 .} ==> r26c10 <> 12
whip[1]: b26n12{r30c9 .} ==> r11c9 <> 12
whip[1]: b26n12{r30c9 .} ==> r7c9 <> 12
whip[2]: b26n15{r26c10 r30c10} - b26n24{r30c10 .} ==> r26c10 <> 18
whip[2]: b26n15{r26c10 r30c10} - b26n24{r30c10 .} ==> r26c10 <> 35
whip[2]: r15c14{n6 n30} - r17c14{n30 .} ==> r4c14 <> 6
naked-single ==> r4c14 = 5
naked-single ==> r3c16 = 6
naked-single ==> r11c14 = 13
naked-single ==> r4c33 = 6
hidden-single-in-a-row ==> r3c34 = 5
naked-single ==> r34c34 = 31
naked-single ==> r34c36 = 34
naked-single ==> r34c31 = 5
whip[2]: b9n26{r11c16 r7c16} - c16n5{r7 .} ==> r11c16 <> 1
whip[2]: r15c14{n6 n30} - r17c14{n30 .} ==> r15c15 <> 6
whip[2]: r15c14{n6 n30} - r17c14{n30 .} ==> r17c15 <> 6
whip[1]: c15n6{r22 .} ==> r22c14 <> 6
whip[1]: c15n6{r22 .} ==> r20c14 <> 6
whip[2]: r26c13{n1 n19} - r30c13{n19 .} ==> r2c13 <> 1
whip[1]: c13n1{r30 .} ==> r30c17 <> 1
whip[1]: c13n1{r30 .} ==> r26c15 <> 1
whip[1]: c13n1{r30 .} ==> r29c15 <> 1
hidden-single-in-a-row ==> r29c6 = 1
whip[2]: r8n17{c7 c21} - r12n17{c20 .} ==> r36c7 <> 17
hidden-single-in-a-block ==> r36c9 = 17
hidden-single-in-a-block ==> r35c9 = 4
hidden-single-in-a-block ==> r35c12 = 36
hidden-single-in-a-block ==> r11c9 = 36
hidden-single-in-a-column ==> r7c9 = 34
whip[1]: b8n25{r11c11 .} ==> r2c11 <> 25
whip[2]: b2n9{r2c9 r1c9} - b2n25{r1c9 .} ==> r2c9 <> 14
whip[2]: b2n9{r2c9 r1c9} - b2n25{r1c9 .} ==> r2c9 <> 19
whip[2]: b2n9{r2c9 r1c9} - b2n25{r1c9 .} ==> r2c9 <> 23
whip[2]: b2n9{r2c9 r1c9} - b2n25{r1c9 .} ==> r2c9 <> 35
whip[2]: b2n9{r1c9 r2c9} - b2n25{r2c9 .} ==> r1c9 <> 14
whip[2]: b2n9{r1c9 r2c9} - b2n25{r2c9 .} ==> r1c9 <> 19
whip[1]: c9n19{r30 .} ==> r27c11 <> 19
naked-single ==> r27c11 = 32
naked-single ==> r27c4 = 29
naked-single ==> r27c22 = 19
naked-single ==> r14c22 = 33
naked-single ==> r14c6 = 19
hidden-single-in-a-row ==> r30c21 = 29
hidden-single-in-a-block ==> r26c21 = 36
naked-single ==> r26c16 = 25
naked-single ==> r30c16 = 36
whip[1]: c9n19{r30 .} ==> r26c11 <> 19
whip[1]: c9n19{r30 .} ==> r26c7 <> 19
whip[1]: c9n19{r30 .} ==> r30c11 <> 19
whip[2]: c9n12{r30 r26} - b26n19{r26c9 .} ==> r30c9 <> 35
whip[2]: c9n12{r30 r26} - b26n19{r26c9 .} ==> r30c9 <> 14
whip[2]: c9n12{r26 r30} - b26n19{r30c9 .} ==> r26c9 <> 35
whip[2]: c9n12{r26 r30} - b26n19{r30c9 .} ==> r26c9 <> 14
hidden-single-in-a-column ==> r3c9 = 14
hidden-single-in-a-column ==> r32c9 = 23
naked-single ==> r32c3 = 2
naked-single ==> r32c12 = 15
hidden-single-in-a-block ==> r36c12 = 2
naked-single ==> r36c29 = 9
whip[1]: b14n15{r17c7 .} ==> r20c7 <> 15
whip[1]: b14n15{r17c7 .} ==> r22c7 <> 15
whip[1]: c10n23{r7 .} ==> r11c12 <> 23
whip[1]: c10n23{r7 .} ==> r11c11 <> 23
whip[1]: c10n23{r7 .} ==> r8c12 <> 23
whip[1]: c10n23{r7 .} ==> r7c11 <> 23
whip[2]: b14n26{r17c7 r15c7} - c7n15{r15 .} ==> r17c7 <> 6
whip[2]: b14n26{r17c7 r15c7} - c7n15{r15 .} ==> r17c7 <> 8
whip[2]: b14n26{r15c7 r17c7} - c7n15{r17 .} ==> r15c7 <> 6
whip[2]: b14n26{r15c7 r17c7} - c7n15{r17 .} ==> r15c7 <> 8
whip[2]: b2n9{r1c9 r2c9} - b2n25{r2c9 .} ==> r1c9 <> 35
whip[1]: c9n35{r22 .} ==> r22c8 <> 35
whip[1]: c9n35{r22 .} ==> r20c12 <> 35
whip[1]: c9n35{r22 .} ==> r20c11 <> 35
whip[1]: c9n35{r22 .} ==> r20c8 <> 35
whip[1]: c9n35{r22 .} ==> r22c12 <> 35
whip[2]: c11n25{r11 r7} - b8n30{r7c11 .} ==> r11c11 <> 6
whip[2]: c11n25{r11 r7} - b8n30{r7c11 .} ==> r11c11 <> 8
whip[2]: c11n25{r11 r7} - b8n30{r7c11 .} ==> r11c11 <> 17
whip[2]: c11n17{r20 r7} - r8n17{c7 .} ==> r20c21 <> 17
whip[2]: c11n17{r20 r7} - r12n17{c7 .} ==> r20c20 <> 17
whip[2]: c11n25{r11 r7} - b8n30{r7c11 .} ==> r11c11 <> 18
whip[2]: c11n25{r11 r7} - b8n30{r7c11 .} ==> r11c11 <> 22
whip[2]: c11n25{r7 r11} - b8n30{r11c11 .} ==> r7c11 <> 6
whip[2]: c11n25{r7 r11} - b8n30{r11c11 .} ==> r7c11 <> 8
whip[2]: c11n25{r7 r11} - b8n30{r11c11 .} ==> r7c11 <> 17
hidden-single-in-a-column ==> r20c11 = 17
whip[2]: c11n25{r7 r11} - b8n30{r11c11 .} ==> r7c11 <> 22
whip[2]: c10n22{r36 r6} - c11n22{r3 .} ==> r35c7 <> 22
whip[2]: c10n22{r36 r6} - c11n22{r3 .} ==> r35c8 <> 22
whip[2]: c10n22{r36 r6} - c11n22{r3 .} ==> r36c7 <> 22
whip[2]: c10n22{r36 r6} - c11n22{r3 .} ==> r36c8 <> 22
whip[2]: b6n22{r6c31 r3c36} - c11n22{r3 .} ==> r35c31 <> 22
whip[2]: r8n17{c7 c21} - r12n17{c20 .} ==> r11c7 <> 17
whip[2]: r8n17{c21 c7} - r12n17{c7 .} ==> r11c23 <> 17
whip[2]: r8n17{c21 c7} - r12n17{c7 .} ==> r11c21 <> 17
whip[2]: r8n17{c21 c7} - r12n17{c7 .} ==> r11c20 <> 17
whip[2]: r8n17{c21 c7} - r12n17{c7 .} ==> r7c20 <> 17
whip[2]: r8n17{c21 c7} - r12n17{c7 .} ==> r7c21 <> 17
whip[2]: r25n13{c30 c31} - r25n22{c31 .} ==> r25c30 <> 3
whip[1]: b29n3{r30c29 .} ==> r30c24 <> 3
naked-single ==> r30c24 = 23
naked-single ==> r26c24 = 28
naked-single ==> r8c24 = 21
naked-single ==> r8c12 = 29
naked-single ==> r8c15 = 24
naked-single ==> r12c13 = 21
naked-single ==> r5c13 = 15
naked-single ==> r2c13 = 24
naked-single ==> r8c30 = 7
naked-single ==> r8c22 = 28
naked-single ==> r8c25 = 15
naked-single ==> r36c25 = 21
naked-single ==> r36c30 = 6
naked-single ==> r12c30 = 3
naked-single ==> r11c25 = 28
hidden-single-in-a-row ==> r11c7 = 3
hidden-single-in-a-block ==> r9c7 = 32
naked-single ==> r9c20 = 8
naked-single ==> r12c24 = 6
naked-single ==> r12c20 = 17
naked-single ==> r8c21 = 33
hidden-single-in-a-row ==> r8c7 = 17
hidden-single-in-a-column ==> r35c24 = 8
hidden-single-in-a-column ==> r25c24 = 3
naked-single ==> r25c22 = 9
naked-single ==> r25c20 = 11
hidden-single-in-a-block ==> r11c22 = 29
hidden-single-in-a-block ==> r11c24 = 35
naked-single ==> r20c24 = 26
naked-single ==> r29c24 = 25
naked-single ==> r7c24 = 11
naked-single ==> r29c21 = 26
hidden-single-in-a-row ==> r22c28 = 26
whip[1]: b23n30{r20c26 .} ==> r20c5 <> 30
whip[1]: b23n30{r20c26 .} ==> r20c4 <> 30
whip[1]: b23n30{r20c26 .} ==> r20c2 <> 30
whip[1]: c25n3{r17 .} ==> r15c29 <> 3
whip[1]: c25n3{r17 .} ==> r15c28 <> 3
whip[1]: c25n3{r17 .} ==> r17c28 <> 3
whip[1]: c25n3{r17 .} ==> r17c29 <> 3
whip[2]: c21n31{r7 r11} - b10n25{r11c21 .} ==> r7c21 <> 32
whip[2]: c21n31{r7 r11} - b10n25{r11c21 .} ==> r7c21 <> 19
whip[2]: c21n31{r11 r7} - b10n25{r7c21 .} ==> r11c21 <> 32
whip[2]: c21n31{r11 r7} - b10n25{r7c21 .} ==> r11c21 <> 19
whip[1]: c21n19{r17 .} ==> r17c20 <> 19
whip[1]: c21n19{r17 .} ==> r15c20 <> 19
whip[2]: b16n20{r15c21 r17c21} - b16n19{r17c21 .} ==> r15c21 <> 4
whip[2]: b16n20{r15c21 r17c21} - b16n19{r17c21 .} ==> r15c21 <> 11
hidden-single-in-a-block ==> r15c23 = 11
naked-single ==> r36c23 = 3
hidden-single-in-a-row ==> r35c31 = 3
hidden-single-in-a-block ==> r17c23 = 28
hidden-single-in-a-column ==> r35c23 = 9
whip[2]: b16n20{r17c21 r15c21} - b16n19{r15c21 .} ==> r17c21 <> 4
whip[2]: c11n8{r17 r10} - r12n8{c7 .} ==> r17c29 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r7c29 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r7c28 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r7c27 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r7c26 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r11c26 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r11c27 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r11c28 <> 8
whip[2]: r10n8{c26 c11} - r12n8{c7 .} ==> r11c29 <> 8
whip[2]: c4n15{r2 r35} - c26n15{r35 .} ==> r2c28 <> 15
whip[2]: r5c3{n18 n25} - r5c31{n25 .} ==> r5c12 <> 18
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 6
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 13
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 14
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 15
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 21
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 22
whip[2]: b30n31{r26c31 r26c36} - r26n23{c36 .} ==> r26c31 <> 24
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 6
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 9
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 13
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 14
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 15
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 22
whip[2]: b30n31{r26c36 r26c31} - r26n23{c31 .} ==> r26c36 <> 24
whip[2]: r35c20{n32 n5} - r35c22{n5 .} ==> r35c21 <> 32
whip[1]: c21n32{r20 .} ==> r22c23 <> 32
whip[1]: c21n32{r20 .} ==> r22c22 <> 32
whip[1]: c21n32{r20 .} ==> r22c20 <> 32
whip[1]: c21n32{r20 .} ==> r20c23 <> 32
whip[1]: c21n32{r20 .} ==> r20c22 <> 32
whip[1]: c21n32{r20 .} ==> r20c20 <> 32
whip[2]: b23n24{r20c28 r22c29} - r12n24{c29 .} ==> r20c31 <> 24
whip[2]: r7c1{n23 n12} - r8c6{n12 .} ==> r11c6 <> 23
whip[2]: r7c1{n23 n12} - r8c6{n12 .} ==> r11c3 <> 23
whip[2]: r7c1{n23 n12} - r8c6{n12 .} ==> r11c1 <> 23
whip[2]: r7c1{n23 n12} - r8c6{n12 .} ==> r7c6 <> 23
whip[2]: r7c1{n23 n12} - r8c6{n12 .} ==> r7c3 <> 23
whip[2]: r7c1{n12 n23} - r8c6{n23 .} ==> r11c6 <> 12
whip[2]: r7c1{n12 n23} - r8c6{n23 .} ==> r11c5 <> 12
whip[2]: r7c1{n12 n23} - r8c6{n23 .} ==> r11c1 <> 12
whip[2]: r7c1{n12 n23} - r8c6{n23 .} ==> r7c6 <> 12
whip[2]: r7c1{n12 n23} - r8c6{n23 .} ==> r7c5 <> 12
whip[2]: r12n8{c7 c29} - r10n8{c26 .} ==> r7c8 <> 8
whip[2]: r12n8{c7 c29} - r10n8{c26 .} ==> r11c8 <> 8
whip[2]: r12n8{c7 c29} - r10n8{c26 .} ==> r11c12 <> 8
whip[3]: c22n5{r2 r35} - c22n32{r35 r26} - c22n7{r26 .} ==> r2c22 <> 4
whip[3]: r6c10{n18 n22} - c11n22{r3 r35} - c11n19{r35 .} ==> r2c11 <> 18
whip[3]: r6c31{n22 n18} - r5c31{n18 n25} - r36c31{n25 .} ==> r7c31 <> 22
whip[3]: r6c31{n22 n18} - r5c31{n18 n25} - r36c31{n25 .} ==> r11c31 <> 22
whip[3]: r6c31{n22 n18} - r5c31{n18 n25} - r36c31{n25 .} ==> r12c31 <> 22
naked-single ==> r12c31 = 24
naked-single ==> r12c29 = 8
naked-single ==> r12c7 = 22
hidden-single-in-a-row ==> r10c11 = 8
hidden-single-in-a-block ==> r10c10 = 35
whip[1]: r10n21{c27 .} ==> r7c27 <> 21
whip[1]: r10n21{c27 .} ==> r7c26 <> 21
whip[1]: r10n21{c27 .} ==> r11c26 <> 21
whip[1]: r10n21{c27 .} ==> r11c27 <> 21
whip[1]: r10n21{c27 .} ==> r11c30 <> 21
whip[2]: r20c7{n8 n20} - r22c7{n20 .} ==> r36c7 <> 8
hidden-single-in-a-block ==> r36c8 = 8
hidden-single-in-a-block ==> r35c8 = 34
naked-single ==> r35c16 = 33
naked-single ==> r36c16 = 34
hidden-single-in-a-row ==> r36c6 = 33
hidden-single-in-a-block ==> r15c3 = 33
whip[1]: b14n8{r17c12 .} ==> r20c12 <> 8
whip[1]: b14n8{r17c12 .} ==> r22c12 <> 8
whip[2]: b7n23{r8c6 r7c1} - r36n23{c1 .} ==> r8c27 <> 23
whip[2]: r8c31{n14 n34} - r8c27{n34 .} ==> r8c10 <> 14
whip[2]: r20c7{n20 n8} - r22c7{n8 .} ==> r20c8 <> 20
whip[2]: r20c7{n20 n8} - r22c7{n8 .} ==> r22c8 <> 20
hidden-single-in-a-column ==> r26c8 = 20
whip[3]: r6c10{n18 n22} - r36c10{n22 n14} - r36c7{n14 .} ==> r35c10 <> 18
whip[3]: r6c31{n22 n18} - r5c31{n18 n25} - r36c31{n25 .} ==> r25c31 <> 22
naked-single ==> r25c31 = 13
naked-single ==> r25c30 = 22
hidden-single-in-a-column ==> r1c25 = 22
naked-single ==> r1c19 = 18
naked-single ==> r2c19 = 22
whip[3]: r6c31{n18 n22} - r36c31{n22 n25} - r5c31{n25 .} ==> r2c31 <> 18
whip[3]: r6c31{n18 n22} - r36c31{n22 n25} - r5c31{n25 .} ==> r20c31 <> 18
whip[3]: r6c31{n18 n22} - r36c31{n22 n25} - r5c31{n25 .} ==> r22c31 <> 18
whip[3]: b17n31{r15c29 r15c30} - r15n20{c30 c21} - r15n19{c21 .} ==> r15c29 <> 18
whip[3]: b17n31{r15c29 r15c30} - r15n20{c30 c21} - r15n19{c21 .} ==> r15c29 <> 13
whip[3]: b17n31{r15c29 r15c30} - r15n20{c30 c21} - r15n19{c21 .} ==> r15c29 <> 2
whip[3]: b17n31{r15c30 r15c29} - r15n19{c29 c21} - r15n20{c21 .} ==> r15c30 <> 13
whip[3]: b17n31{r15c30 r15c29} - r15n19{c29 c21} - r15n20{c21 .} ==> r15c30 <> 12
whip[3]: b10n7{r7c20 r11c23} - c23n32{r11 r26} - r26c22{n32 .} ==> r26c20 <> 7
whip[3]: r5c31{n25 n18} - r6c31{n18 n22} - r36c31{n22 .} ==> r2c31 <> 25
whip[3]: r5c31{n25 n18} - r6c31{n18 n22} - r36c31{n22 .} ==> r1c31 <> 25
whip[3]: r5c31{n25 n18} - r6c31{n18 n22} - r36c31{n22 .} ==> r20c31 <> 25
whip[3]: r5c31{n25 n18} - r6c31{n18 n22} - r36c31{n22 .} ==> r30c31 <> 25
whip[4]: r6c10{n18 n22} - r3c11{n22 n23} - r5c12{n23 n21} - r11c12{n21 .} ==> r11c10 <> 18
hidden-single-in-a-block ==> r11c12 = 18
whip[5]: b32n19{r35c11 r35c7} - b32n6{r35c7 r35c10} - r1c10{n6 n21} - r5c12{n21 n23} - r3c11{n23 .} ==> r35c11 <> 22
hidden-single-in-a-column ==> r3c11 = 22
naked-single ==> r6c10 = 18
naked-single ==> r6c31 = 22
naked-single ==> r3c36 = 15
naked-single ==> r3c1 = 21
naked-single ==> r3c26 = 13
naked-single ==> r3c28 = 17
naked-single ==> r3c21 = 23
whip[2]: r11c26{n23 n30} - r7c26{n30 .} ==> r35c26 <> 23
whip[1]: b35n23{r36c27 .} ==> r11c27 <> 23
whip[1]: b35n23{r36c27 .} ==> r7c27 <> 23
whip[2]: r11c26{n30 n23} - r7c26{n23 .} ==> r20c26 <> 30
naked-single ==> r20c26 = 1
hidden-single-in-a-row ==> r22c1 = 1
hidden-single-in-a-block ==> r35c28 = 1
hidden-single-in-a-block ==> r35c30 = 12
hidden-single-in-a-block ==> r20c28 = 30
hidden-single-in-a-column ==> r11c28 = 24
hidden-single-in-a-block ==> r7c28 = 5
naked-single ==> r7c16 = 26
naked-single ==> r11c16 = 5
hidden-single-in-a-block ==> r11c30 = 9
hidden-single-in-a-block ==> r7c29 = 13
whip[2]: r11c26{n30 n23} - r7c26{n23 .} ==> r11c27 <> 30
whip[2]: r11c26{n30 n23} - r7c26{n23 .} ==> r2c26 <> 30
whip[1]: c26n30{r11 .} ==> r7c27 <> 30
whip[2]: b35n15{r35c26 r36c28} - r1n15{c28 .} ==> r35c1 <> 15
whip[2]: r36n15{c1 c28} - r1n15{c28 .} ==> r2c1 <> 15
whip[4]: r11c1{n11 n16} - r26c1{n16 n27} - c4n27{r26 r35} - b31n15{r35c4 .} ==> r36c1 <> 11
hidden-single-in-a-row ==> r36c21 = 11
naked-single ==> r35c21 = 30
whip[2]: b36n4{r36c32 r36c35} - b36n30{r36c35 .} ==> r36c32 <> 27
whip[2]: b36n4{r36c32 r36c35} - b36n30{r36c35 .} ==> r36c32 <> 25
whip[2]: b36n4{r36c35 r36c32} - b36n30{r36c32 .} ==> r36c35 <> 25
whip[2]: b36n4{r36c35 r36c32} - b36n30{r36c32 .} ==> r36c35 <> 18
whip[4]: r29c27{n8 n11} - c26n11{r26 r2} - c26n10{r2 r35} - c26n15{r35 .} ==> r26c26 <> 8
whip[4]: r2n11{c27 c26} - c26n15{r2 r35} - b35n2{r35c26 r35c25} - b35n10{r35c25 .} ==> r2c27 <> 2
whip[4]: b11n2{r10c26 r10c27} - b35n2{r35c27 r35c25} - b35n10{r35c25 r35c26} - c26n15{r35 .} ==> r2c26 <> 2
whip[4]: b1n15{r2c4 r1c1} - r1n28{c1 c12} - b2n35{r1c12 r1c8} - b2n5{r1c8 .} ==> r2c4 <> 35
whip[4]: r11c29{n31 n14} - r1c29{n14 n2} - r2c29{n2 n3} - r2c28{n3 .} ==> r15c29 <> 31
naked-single ==> r15c29 = 19
naked-single ==> r15c21 = 20
naked-single ==> r17c21 = 19
naked-single ==> r15c30 = 31
hidden-single-in-a-row ==> r17c30 = 20
hidden-single-in-a-column ==> r26c30 = 13
whip[1]: c30n10{r1 .} ==> r2c26 <> 10
whip[1]: c30n21{r1 .} ==> r1c27 <> 21
whip[1]: c30n21{r1 .} ==> r2c26 <> 21
whip[1]: c30n21{r1 .} ==> r2c27 <> 21
whip[2]: b17n12{r17c28 r15c28} - c28n13{r15 .} ==> r17c28 <> 8
whip[2]: b17n12{r17c28 r15c28} - c28n13{r15 .} ==> r17c28 <> 2
whip[2]: b17n12{r15c28 r17c28} - c28n13{r17 .} ==> r15c28 <> 8
hidden-single-in-a-block ==> r17c26 = 8
hidden-single-in-a-block ==> r15c12 = 8
whip[2]: b17n12{r15c28 r17c28} - c28n13{r17 .} ==> r15c28 <> 2
whip[4]: r1c28{n2 n15} - b35n15{r36c28 r35c26} - b35n2{r35c26 r35c25} - b35n10{r35c25 .} ==> r1c27 <> 2
whip[5]: r29c27{n8 n11} - c26n11{r26 r2} - c26n15{r2 r35} - r36c28{n15 n25} - r6c28{n25 .} ==> r30c28 <> 8
whip[5]: c28n15{r1 r36} - c28n25{r36 r6} - c28n8{r6 r26} - r29c27{n8 n11} - c26n11{r30 .} ==> r2c26 <> 15
naked-single ==> r2c26 = 11
hidden-single-in-a-block ==> r1c28 = 15
naked-single ==> r36c28 = 25
naked-single ==> r6c28 = 8
naked-single ==> r6c27 = 25
naked-single ==> r36c27 = 23
naked-single ==> r35c27 = 2
naked-single ==> r10c27 = 21
naked-single ==> r10c26 = 2
naked-single ==> r30c26 = 21
naked-single ==> r26c26 = 10
naked-single ==> r35c26 = 15
naked-single ==> r35c25 = 10
naked-single ==> r36c31 = 18
naked-single ==> r5c31 = 25
naked-single ==> r5c3 = 18
naked-single ==> r36c7 = 14
naked-single ==> r36c10 = 22
naked-single ==> r35c10 = 6
naked-single ==> r1c10 = 21
naked-single ==> r5c12 = 23
naked-single ==> r1c30 = 10
naked-single ==> r2c30 = 21
naked-single ==> r36c36 = 27
naked-single ==> r36c1 = 15
hidden-single-in-a-block ==> r30c8 = 14
naked-single ==> r30c34 = 6
hidden-single-in-a-block ==> r26c34 = 14
naked-single ==> r2c34 = 17
hidden-single-in-a-block ==> r26c33 = 22
naked-single ==> r11c33 = 8
naked-single ==> r35c33 = 25
naked-single ==> r35c32 = 21
naked-single ==> r26c32 = 24
naked-single ==> r26c10 = 15
naked-single ==> r30c10 = 24
naked-single ==> r35c35 = 13
hidden-single-in-a-block ==> r26c35 = 21
hidden-single-in-a-block ==> r30c35 = 16
hidden-single-in-a-block ==> r30c32 = 25
hidden-single-in-a-block ==> r20c35 = 25
hidden-single-in-a-row ==> r26c28 = 9
hidden-single-in-a-row ==> r1c9 = 25
naked-single ==> r2c9 = 9
hidden-single-in-a-block ==> r1c36 = 9
naked-single ==> r30c36 = 33
naked-single ==> r30c31 = 15
naked-single ==> r30c33 = 9
hidden-single-in-a-column ==> r2c4 = 15
hidden-single-in-a-block ==> r2c3 = 25
hidden-single-in-a-block ==> r17c4 = 25
whip[1]: b1n35{r2c6 .} ==> r30c6 <> 35
whip[1]: b1n35{r2c6 .} ==> r26c6 <> 35
whip[1]: b1n35{r2c6 .} ==> r17c6 <> 35
whip[1]: b1n35{r2c6 .} ==> r15c6 <> 35
whip[1]: b26n27{r30c11 .} ==> r17c11 <> 27
whip[1]: c12n21{r22 .} ==> r22c8 <> 21
whip[1]: c12n21{r22 .} ==> r20c8 <> 21
whip[1]: b8n6{r11c8 .} ==> r17c8 <> 6
whip[1]: b8n6{r11c8 .} ==> r15c8 <> 6
whip[1]: b14n6{r17c11 .} ==> r2c11 <> 6
whip[1]: b8n6{r11c8 .} ==> r1c8 <> 6
whip[1]: b8n6{r11c8 .} ==> r2c8 <> 6
whip[2]: r8n14{c27 c31} - c36n14{r11 .} ==> r2c27 <> 14
whip[2]: r16c35{n17 n12} - r11c35{n12 .} ==> r7c35 <> 17
whip[2]: r16c35{n12 n17} - r11c35{n17 .} ==> r2c35 <> 12
whip[2]: r16c35{n12 n17} - r11c35{n17 .} ==> r7c35 <> 12
naked-single ==> r7c35 = 15
naked-single ==> r7c33 = 29
naked-single ==> r2c33 = 18
naked-single ==> r2c35 = 30
naked-single ==> r36c35 = 4
naked-single ==> r36c32 = 30
naked-single ==> r2c27 = 31
hidden-single-in-a-column ==> r11c29 = 31
naked-single ==> r11c21 = 25
naked-single ==> r7c21 = 31
naked-single ==> r11c11 = 30
naked-single ==> r7c11 = 25
naked-single ==> r11c26 = 23
naked-single ==> r7c26 = 30
hidden-single-in-a-row ==> r1c27 = 30
hidden-single-in-a-block ==> r22c35 = 18
hidden-single-in-a-block ==> r20c23 = 18
whip[1]: c35n5{r15 .} ==> r17c33 <> 5
whip[1]: c35n5{r15 .} ==> r15c33 <> 5
whip[2]: c33n10{r20 r22} - c33n5{r22 .} ==> r20c33 <> 24
whip[2]: c33n10{r22 r20} - c33n5{r20 .} ==> r22c33 <> 24
whip[1]: b24n24{r24c36 .} ==> r15c36 <> 24
whip[1]: b24n24{r24c36 .} ==> r17c36 <> 24
whip[2]: r16c32{n17 n12} - r7c32{n12 .} ==> r11c32 <> 17
whip[2]: r16c32{n12 n17} - r7c32{n17 .} ==> r1c32 <> 12
whip[1]: b6n12{r2c36 .} ==> r2c1 <> 12
whip[1]: b6n12{r2c36 .} ==> r2c5 <> 12
whip[1]: b6n12{r2c36 .} ==> r2c6 <> 12
whip[2]: r16c32{n12 n17} - r7c32{n17 .} ==> r2c32 <> 12
hidden-single-in-a-block ==> r2c36 = 12
whip[1]: c36n14{r11 .} ==> r11c31 <> 14
whip[1]: c36n14{r11 .} ==> r8c31 <> 14
naked-single ==> r8c31 = 34
naked-single ==> r8c27 = 14
naked-single ==> r7c27 = 6
naked-single ==> r11c27 = 34
naked-single ==> r7c8 = 21
naked-single ==> r11c8 = 6
whip[1]: c36n14{r11 .} ==> r7c31 <> 14
singles to the end
GRID SOLVED. rating-type = W, MOST COMPLEX RULE = Whip[5]
denis_berthier
2010 Supporter
 
Posts: 1253
Joined: 19 June 2007
Location: Paris

Re: Whip solution of large sudokus

Postby denis_berthier » Thu Dec 08, 2011 1:50 pm

Regarding the 49x49, I've given up: I run out of memory.

Maybe I should explain why I face this problem. Any SAT solver, when applied to Sudoku, should be able to deal with 49x49 and even much larger puzzles. Why then does SudoRules run out of memory?

In part, it may be because I haven't optimised the initialization phase and I create static structures that I could avoid to create. As it was convenient and it had no impact in the standard case, I didn't care about it. Notice that this is in the Sudoku specific part, not in the domain independent CSP-Rules kernel on which my new implementation of SudoRules is based.

This said, the main reason is that the goal in SudoRules or CSP-Rules is very different from that in a SAT solver:
- the goal of a SAT solver is to produce a solution in the most efficient (wrt computation time and memory) possible way;
- my goal is to produce the simplest possible resolution path ("simplest" according to a predefined set of patterns).
The second problem is "exponentially" more complex than the first.

Mike, thanks for these puzzles. I now know for which n I can reasonably try to solve nxn puzzles with this version of SudoRules (n <= 36). As there remains so much to do with the 16x16 case, I don't feel it as a big limitation (for the time being).
denis_berthier
2010 Supporter
 
Posts: 1253
Joined: 19 June 2007
Location: Paris


Return to Sudoku variants