## Another one

Advanced methods and approaches for solving Sudoku puzzles

### Another one

Right, I feel frustrated to generate a Sudoku matrix manually. this will be the final one I try to generate. And it is asymmetric. Thanks for Scrose's very quick solution and thanks for Nick solving the previous one using forcing chain. Presumably this one will surely be solved by the same technique. I start to feel bored of the logic. It seems to me that a kind of chain will have to be established to solve this kind of things at the end of the day. And I feel that it may never need "try and error" to solve it given a logic like forcing chain. Based on this, I feel that it isn't worthy for people to think more about the transformation of the matrix, if the information is linked with each other, the transformation won't solve this and give a more systematic solution. However, the above is my personal view. Hope to hear some exciting news about Sudoku soon.

...|35.|..9
.67|...|...
...|..8|4..
-----------
.31|8..|...
.4.|7.6|.9.
...|..1|73.
-----------
..3|6..|...
...|...|81.
8..|.74|.6.

Posts: 62
Joined: 15 July 2005

I'm not sure if I'm applying double forcing chains correctly, but here goes...

Code: Select all
` {14}   {18}   {48}   | 3      5      7      | 6      2      9       {29}   6      7      | 4      1      {29}   | {35}   8      {35}    3      {259}  {259}  | {29}   6      8      | 4      7      1      ----------------------+----------------------+---------------------- 7      3      1      | 8      {49}   {59}   | 2      {45}   6       {25}   4      {258}  | 7      3      6      | 1      9      {58}    {569}  {589}  {5689} | {25}   {24}   1      | 7      3      {458}  ----------------------+----------------------+---------------------- {124}  {127}  3      | 6      8      {25}   | 9      {45}   {247}   {2456} {257}  {2456} | {259}  {29}   3      | 8      1      {2457}  8      {259}  {259}  | 1      7      4      | {35}   6      {235}  (7,6)=2 =>            (2,6)=9 => (3,4)=2 =>            (6,4)=5(7,6)=5 => (4,6)=9 => (2,6)=2 => (3,4)=9 => (8,4)=2 => (6,4)=5`
scrose

Posts: 322
Joined: 31 May 2005

scrose wrote:
Code: Select all
`(7,6)=2 =>            (2,6)=9 => (3,4)=2 =>            (6,4)=5(7,6)=5 => (4,6)=9 => (2,6)=2 => (3,4)=9 => (8,4)=2 => (6,4)=5`

Well, this isn't a "clean" double forcing chain, because one step in the second one ((3,4)=9 => (8,4)=2) relies on the previous move (7,6)=5.

But you can make it much simpler:

Code: Select all
`(7,6)=2 => (2,6)=9 => (3,4)=2 => (6,4)=5(7,6)=5 => (4,6)=9 => (6,4)=5`

Formally, the chains are actually:

Code: Select all
`(7,6)=2 => (2,6)<>2 => (3,4)=2 => (6,4)<>2 => (6,4)=5(7,6)=5 => (4,6)<>5 => (6,4)=5`

Which isn't a minimal chain, because a nice property of double forcing chains is that the minimal ones have two paths of the same length.

You can easily balance it this way:

Code: Select all
`(2,6)<>2 => (3,4)=2 => (6,4)<>2 => (6,4)=5(2,6)<>9 => (4,6)=9 => (4,6)<>5 => (6,4)=5`

My program had found a different minimal chain:

Code: Select all
`(4,6)<>5 => (4,6)=9 => (4,5)<>9 => (8,5)=9(7,6)<>5 => (7,6)=2 => (8,5)<>2 => (8,5)=9`
Nick70

Posts: 156
Joined: 16 June 2005

Eureka! Your detailed explanation really helped me understand how double forcing chains work. Thank you very much!
scrose

Posts: 322
Joined: 31 May 2005