Sudoku Programmers Forum Index

 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister   ProfileProfile   Log inLog in          Games  Calendar

Log in to check your private messagesLog in to check your private messages   

Why Unsolvable
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Sudoku Programmers Forum Index -> Solving sudoku
View previous topic :: View next topic  
Author Message
Mark

Joined: 19 Oct 2005
Posts: 30
:
Location: Arizona

Items
PostPosted: Tue Jan 03, 2006 1:10 am    Post subject: Reply with quote

Ruud wrote:
Other promising techniques, like Constraint Subsets, do not seem to survive, while brand new techniques like Broken Wings still need to be fleshed out by the player community.


A very interesting observation, Ruud. One thing that bothers me about the state of sudoku is the current rat's nest of solving techniques.

The large number of these techniques contributes to the confusion, and it's no longer obvious whether a newly-proposed method is logically distinct, or simply a combination of existing methods. Add to that the exotic naming, and the whole subject begins to look like a zoo. I applaud you for not immediately jumping on the bandwagon simply because a new method rears its head.

Perhaps soon there'll be an analysis that reduces each proposed technique to a set of provably independent patterns. Cycles (loops) are fascinating, since they allow possible eliminations of candidates which otherwise would result in a given value occurring twice in the same unit. The underlying logical rule is exactly the same as for subsets, which are simply cycles that occur wholly in a single unit.

Mark
Back to top
View user's profile Send private message
Ruud
Site Admin
Joined: 17 Sep 2005
Posts: 708
:
Location: Netherlands

Items
PostPosted: Wed Jan 04, 2006 11:17 am    Post subject: Reply with quote

Carcul wrote:
I have just a small request for you, if you allow me to do so:
I wonder if you could post in this forum the two most difficult puzzles that your Sudo Cue program can generate?


I have a separate program that does mass-generation of puzzles for me, because Sudo Cue only generates one puzzle at a time.

However, I do use Sudo Cue to rate the difficulty of these mass-generated puzzles, as I have rated other collections posted here and on other forums.

The most difficult Sudokus were found in the top1465 by dukuso. 3 puzzles require advanced techniques embedded in tabling, something not yet implemented in Sudo Cue, so it solves them with DLX. These 3 are #2, #3 and #77 of top1465.

The most difficult ones generated by my own generator and rated by Sudo Cue are these 2, but keep in mind that this rating is mainly based on the number of tabling steps required (and a quick manual check):

Code:
. . .|. . 8|. 2 .
. 1 .|3 . .|. . .
2 . 6|. . 7|9 . .
-----+-----+-----
5 . .|. . 1|. . 3
. . 7|. 9 .|6 . .
1 . .|6 . .|. . 7
-----+-----+-----
. . 1|7 . .|8 . 2
. . .|. . 2|. 5 .
. 4 .|8 . .|. . .


and

Code:
. . .|. . .|. . .
8 . .|9 . .|2 4 .
. 3 7|. . 4|. 1 .
-----+-----+-----
. . 4|. . .|. . 7
. . .|5 8 9|. . .
9 . .|. . .|8 . .
-----+-----+-----
. 4 .|6 . .|5 3 .
. 6 3|. . 7|. . 2
. . .|. . .|. . .


Mark wrote:
One thing that bothers me about the state of sudoku is the current rat's nest of solving techniques.

I fully agree with you on this one. What makes it more difficult is that they are introduced and discussed on different forums, with lots of interference by "Help, I'm stuck" and "Newbie found the ultimate solving method" topics. It is hard to keep up with all this.

Ruud.
_________________
Meet me at sudocue.net
Back to top
View user's profile Send private message Visit poster's website
Carcul

Joined: 29 Dec 2005
Posts: 50
:
Location: Coimbra, Portugal

Items
PostPosted: Thu Jan 05, 2006 8:49 am    Post subject: Reply with quote

Ruud wrote:
The most difficult ones generated by my own generator and rated by Sudo Cue are these 2,


Thanks for providing these puzzles.

Ruud wrote:
but keep in mind that this rating is mainly based on the number of tabling steps required (and a quick manual check):


That's right: these two puzzles are indeed not very hard to solve.

Regards, Carcul
Back to top
View user's profile Send private message Send e-mail
rkral

Joined: 21 Oct 2005
Posts: 233
:

Items
PostPosted: Thu Jan 05, 2006 11:08 am    Post subject: Reply with quote

Ruud wrote:
Carcul wrote:
I have just a small request for you, if you allow me to do so:
I wonder if you could post in this forum the two most difficult puzzles that your Sudo Cue program can generate?

The most difficult ones generated by my own generator and rated by Sudo Cue are these 2, but keep in mind that this rating is mainly based on the number of tabling steps required.

  1. How do you define a "tabling step"? Are you counting at a high level, e.g., the eliminations made by tabling ... or are you counting iterations at a lower level?
  2. How many "tabling steps" does each puzzle require?
Thanks in advance, Ron
Back to top
View user's profile Send private message
Ruud
Site Admin
Joined: 17 Sep 2005
Posts: 708
:
Location: Netherlands

Items
PostPosted: Thu Jan 05, 2006 12:39 pm    Post subject: Reply with quote

rkral wrote:
How do you define a "tabling step"? Are you counting at a high level, e.g., the eliminations made by tabling ... or are you counting iterations at a lower level?

Unlike the Susser, that does upto 7 eliminations in a tabling stap, Sudo Cue does a single elimination in each step. After this step it first goes through all 'lower' solving methods before it continues with the next tabling step.

Quote:
How many "tabling steps" does each puzzle require?

These 2 require 16 and 14 steps, respectively.

This is still not the optimal solving path, but I am selecting the eliminations based on the lowest constraint count (pairs before triples, etc.)

Ruud.
_________________
Meet me at sudocue.net
Back to top
View user's profile Send private message Visit poster's website
rkral

Joined: 21 Oct 2005
Posts: 233
:

Items
PostPosted: Thu Jan 05, 2006 1:59 pm    Post subject: Reply with quote

Ruud wrote:
Sudo Cue does a single elimination in each step. After this step it first goes through all 'lower' solving methods before it continues with the next tabling step.

That's the only method that makes sense to me, since it best emulates a solution by a human. If a solver doesn't attempt "best emulation", it might as well use DLX. Well, that's a bit extreme, but I'm sure you understand.

Ruud wrote:
These 2 require 16 and 14 steps, respectively.

[1-11-2006 edit: The following was 100% rewritten to reflect a change in the T&E section of my solver.]

My (unpublished) solver requires 5 and 2 T&E eliminations (was 11 and 8), respectively ... but, relative to your solver, that probably doesn't mean much. It's likely just stumbling upon magic candidates earlier.

The T&E step finds double implication chains that cause a contradiction (two placements of the same digit in one row, col, or 3x3 box) by asserting each candidate as true. If a contradiction is found, the asserted candidate is eliminated and "basic techniques" are again used until another T&E step is required.

The T&E step now first asserts candidates in bivalued cells, then trivalued cells, etc. ... with a scanning order of smallest digit first, columns left-to-right, and rows top-to-bottom. It previously did the identical scan without regard to the number of candidates in a cell.

FWIW, the T&E eliminations in sequence are ...
Puzzle #1:
pzl 1, implication: pass 1, excludes 8 from r4c3 = 89
pzl 1, implication: pass 2, excludes 3 from r6c3 = 34
pzl 1, implication: pass 3, excludes 5 from r1c3 = 35
pzl 1, implication: pass 4, excludes 7 from r1c1 = 47
pzl 1, implication: pass 5, excludes 9 from r1c2 = 79
Puzzle #2:
pzl 1, implication: pass 1, excludes 2 from r3c4 = 28
pzl 1, implication: pass 2, excludes 9 from r3c7 = 69

Ron


Last edited by rkral on Wed Jan 11, 2006 11:06 am; edited 2 times in total
Back to top
View user's profile Send private message
mugnyte

Joined: 07 Dec 2005
Posts: 13
:
Location: portland, or

Items
PostPosted: Wed Jan 11, 2006 1:16 am    Post subject: Reply with quote

Funny, my solver repeatedly solves puzzle #2 with no backups using only basic rules and subset elimination...

then again, it may have found a "machine made" side-effect by discovering the pattern of required values (out of several possibilities that are always the min/max/middle of the possibilities)- yeah, that side effect is out there!

weird
_________________
thanks
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger
rkral

Joined: 21 Oct 2005
Posts: 233
:

Items
PostPosted: Wed Jan 11, 2006 4:01 am    Post subject: Reply with quote

mugnyte wrote:
Funny, my solver repeatedly solves puzzle #2 with no backups using only basic rules and subset elimination...

Are you talking about Ruud's most difficult #2 or unsolvable #2?

Quote:
then again, it may have found a "machine made" side-effect by discovering the pattern of required values (out of several possibilities that are always the min/max/middle of the possibilities)- yeah, that side effect is out there!

Question That sure doesn't sound like a solver that is "using only basic rules and subset elimination". Do you mean it only uses basic rules and subset elimination during its T&E step(s)?

[edit: links added]


Last edited by rkral on Thu Jan 12, 2006 2:32 pm; edited 1 time in total
Back to top
View user's profile Send private message
mugnyte

Joined: 07 Dec 2005
Posts: 13
:
Location: portland, or

Items
PostPosted: Wed Jan 11, 2006 7:50 am    Post subject: Reply with quote

Sorry. I was talking about Ruud's above.

You inspired me to finish the code for rating puzzles in bulk since I'd never run against the "classics" yet. From dusoku's site:

My "ratings" are number of forward moves required to solve. My solver uses logic backed up with T&E.

"top1465"
3072: ..1.....7...89..........6..26..3.......5...749...........1.4.5.83.............2..
2245: 7.8...3.....6.1...5.........4.....263...8.......1...9..9.2....4....7.5...........
2120: 1.....7.2.3.1......9..........39..6.5.8...2...........2....85.....6...9.....4....

"topn234" and "topn87" had many duplicates, and the toughest were identical. It averaged solving about 10/sec.

About only 10-15% required no backups by my solver. This is expected, since I've only completed Basic Rules and Subsets as yet. It should be great to see how these change going forward.

I'm curious if folks using just basic rules (+/- some logic routine) arrive at the similar numbers. i can't be the only one counting moves, right?

Jim
_________________
thanks
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger
rkral

Joined: 21 Oct 2005
Posts: 233
:

Items
PostPosted: Wed Jan 11, 2006 11:33 am    Post subject: Reply with quote

mugnyte wrote:
My "ratings" are number of forward moves required to solve. My solver uses logic backed up with T&E.
[snip][/snip]
I'm curious if folks using just basic rules (+/- some logic routine) arrive at the similar numbers. i can't be the only one counting moves, right?

I'm considering adding that. Although the difference in counts would be small, are you counting ...
  1. just placements, or placements plus eliminations?
  2. just unsuccessful placements, or successful ones as well?
  3. just moves of the T&E section, or moves of "basic techniques" as well?
mugnyte wrote:

"top1465"
3072: ..1.....7...89..........6..26..3.......5...749...........1.4.5.83.............2..
2245: 7.8...3.....6.1...5.........4.....263...8.......1...9..9.2....4....7.5...........
2120: 1.....7.2.3.1......9..........39..6.5.8...2...........2....85.....6...9.....4....

Those are puzzles #29, #3, and #393 of the top1465, respectively. It's mildly interesting that my solver solves those three, but not puzzles #2 and #77.

Ruud, as you likely recall, I changed the T&E section of my solver to try bivalued cells first. Therefore, I edited the reported results in a prior post.

Ron
Back to top
View user's profile Send private message
tarek

Joined: 31 Dec 2005
Posts: 153
:
Location: London, UK

Items
PostPosted: Wed Jan 11, 2006 12:13 pm    Post subject: Reply with quote

Hi mugnyte,

mugnyte wrote:
Funny, my solver repeatedly solves puzzle #2 with no backups using only basic rules and subset elimination...


I must say that that sounds strange.

my solver first goes into basic rules first & subset eliminations ........

T&E occurs just at the end & #2 required not just simple T&E (forward checking with single elinations) but it needed complex T&E (forward checking using all possible logical techniques).

what level of subset elimination did you reach before cracking the puzzle ?

the other queries are same as rkral's:

what do you mean by counting forward moves?
when do you start counting ?
what do you count from then ?
are there are any exclusions ?

tarek
Back to top
View user's profile Send private message
mugnyte

Joined: 07 Dec 2005
Posts: 13
:
Location: portland, or

Items
PostPosted: Wed Jan 11, 2006 8:54 pm    Post subject: Counting Reply with quote

Good questions. First the counting:
I count from the first move of the game. Any placement of a value on the board is a "move". I do NOT count backups, but neither do I decrement the count. There are not exceptions. So, when no backups, there are 81-starts "moves".

I understand the amount of analysis between moves is the grey area. To explain that, here's the entire pseuocode for my solver. After you guys help me clarify anything obtuse, I'll post it as a topic if wanted.

Code:

Solver Summary:  pluggable logic modules with full T&E backup when presented with multiple choices


Details: There's lots of text-generation code skipped to allow re-use of this
   logic for different purposes (generate,solve,hint).

   Also unshown, the are optimization switches to interpret naked singles
   as values and just keep cranking on the inner routines - which defeats "human-style"
   solving style but is great for counting solutions or ripping through puzzle collections.

   I have changed names of many routines and variables to protect the innocent ;)

Legend: 
   - for clarity, subroutines named "fnXXX"
   - variables are all caps
   - comments are after "//"
   - conditionals and loops have end markers
   - sets unioned with a capital U

fnSOLVE:
   count GIVENS // places on board with starting #'s

   MOVES_TOGO = 81 - GIVENS
   SOL_COUNT = 0

   WHILE( SOL_COUNT < FIND_SOLS )
      WHILE( MOVES_TOGO > 0 )
         fnSCAN(CANDIDATE)

         if ( CANDIDATE isn't a valid cell )
            CANDIDATE = BOARD.CELL with the least number of AVAIL
         end if

         if ( CANDIDATE isnt valid cell)

            fnBACKUP(MOVED)

            IF ( MOVED = FALSE )
               // cannot back up any further
               // there are 0 solutions!
               RETURN failure
            END IF
         else
            // save the path we're taking on the cell's choices
            AVAILNDX = 0
            MOVE_HISTORY.PUSH( BOARD.CELL, AVAILNDX )

            // change the board
            BOARD.CELL.VAL = CANDIDATE
            CELL.AVAIL.CLEAR
            MOVES_TOGO--
         end if
      end while
   end while
:fnSOLVE

fnBACKUP:
   WHILE ( MOVE_HISTORY.COUNT > 0 ) and (MOVED = false)
      MOVE_HISTORY.POP( BOARD.CELL, AVAILNDX )
         
      // we privously made a move from
      // the BOARD.CELL.AVAIL set at AVAILNDX
      // so now we increment it and make another
      if ( AVAILNDX < BOARD.CELL.AVAIL.COUNT )

         // now we can move
         AVAILNDX += 1
         MOVE_HISTORY.PUSH( BOARD.CELL, AVAILNDX )
         return true
      else
         // no move moves possible for this cell,
         // so we must back up further until we
         // can go foward again or until we reach the
         // first game move (which indicates 0 solutions)
      end if
   END WHILE
:fnBACKUP

fnSCAN(SINGLE):
   
   FIRST = true
   DO
      BOARDCHANGED = false

      // calculate what's available in every cell
      for each CELL (0,0) to (8,8)


         if FIRST = true
            CELL.AVAIL = all values from 1..9
            FIRST = false
         end if

         // note: user chooses modules
         for each LM in CHOSEN_LOGIC

            // always given in order below

            if LM = CHS
               fnCHS(BOARDCHANGED)
   
            else if LM = RC
               fnRC(BOARDCHANGED)
   
            else if LM = SE
               fnSE(BOARDCHANGED)

            else

               // further modules go here

            end if

            // after any module is applied:
            if (board has a naked single)
               // we have enough to continue, exit
               return SINGLE
            end if
         end for
      end for

      // if BOARDCHANGE == false:
      // we don't have a naked single, but we've changed the
      // board marks during a pass from 0,0 to 8,8
      // so, like a human, we re-scan and look for the effects of logic

   WHILE ( BOARDCHANGED = true )

   // board wasn't changed by a pass of all our logic, so we'll have to guess
:fnSCAN

      

// Cross-Hatch Scanning
fnCHS:
   for each CHSCELL in (region U row U col coordinates) intersecting CELL // skip CELL itself
      remove CHSCELL.ENTERED from CELL.AVAIL
      BOARDCHANGED = true
   end for
:fnEND


// Range Checking
fnRC:
   foreach SET in (region,row,col coordinates) intersecting CELL // skip CELL itself
      if a *any* of CELL.AVAIL not found in SET:
         remove all other AVAIL from CELL
         for each CELL2 in (region U row U col coordinates) intersecting CELL // skip CELL itself
            remove single value from CELL2.AVAIL
         end for
         BOARDCHANGED = true
      end if
   end for
:RC

// Subuset Elimination - a bit more detailed
SE:
   foreach SET in (region,row,col coordinates) intersecting CELL // skip CELL itself

      // this is key to finding the smallest sets first
      sort SET by each member's AVAIL count ascending

      for each CHECKCELL in SET

         store CHECKCELL in CELLSET

         for each V in CHECKCELL.AVAIL
            if V in CELL.AVAIL
               store that value in VALUESET
            end if
         end if
            
         // if this isn't a single, which should be remove by RC
         //    and if values count == cells count
         //    and if the set count is less than our entire domain
         if (CELLSET.COUNT > 1) and
            ( CELLSET.COUNT == VALUESET.COUNT ) and
            (CELLSET.COUNT < SET.COUNT ) 

            // loop through the domain again
            for each REMOVECELL in SET

               // if not part of our subset..
               if (REMOVECELL not in CELLSET)
                  for each REMOVEAVAIL in REMOVECELL.AVAIL

                     // .. but has a value from that set..
                     if (REMOVEAVAILVAL in VALUESET)

                        // ..remove said value
                        remove REMOVEAVAILVAL from REMOVECELL.AVAIL
                        BOARDCHANGED = true
                     end if
                  end for
               end if
            end for
         end if
      end for
   end for
:SE



The real code for this is available on my site.
Jim

[edited to update the logic in a second review. sheesh]
_________________
thanks
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger
tarek

Joined: 31 Dec 2005
Posts: 153
:
Location: London, UK

Items
PostPosted: Thu Jan 12, 2006 1:34 am    Post subject: Reply with quote

mugnyte wrote:
I understand the amount of analysis between moves is the grey area. To explain that, here's the entire pseuocode for my solver. After you guys help me clarify anything obtuse, I'll post it as a topic if wanted.


The pseudocode looks nice to me, however I'm not good in reading pseudocodes in the first place.

Is it possible just to post the logic that made you make the statement

mugnyte wrote:
my solver repeatedly solves puzzle #2 with no backups using only basic rules and subset elimination...


Tarek
Back to top
View user's profile Send private message
mugnyte

Joined: 07 Dec 2005
Posts: 13
:
Location: portland, or

Items
PostPosted: Thu Jan 12, 2006 6:07 am    Post subject: Reply with quote

tarek wrote:
Is it possible just to post the logic that made you make the statement

Tarek


Tarek,

Sorry for the delay. I scanned the entire topic again and realized that we may be speaking of different puzzles. Ruud mentions 2 different "second" puzzles - one in reference to the "unsolveable" heading, and one of his own.

the first:
Code:

.1.|.7.|...
.26|...|.57
5..|...|..3
-----------
..8|2..|...
.5.|..4|3.2
4..|.37|.8.
-----------
...|.53|4..
..5|...|..8
.8.|...|.96


was what i typed in a found to take only my sovler's trivial logic. (55 moves)

the second:
Code:

...|...|...
8..|9..|24.
.37|..4|.1.
-----------
..4|...|..7
...|589|...
9..|...|8..
-----------
.4.|6..|53.
.63|..7|..2
...|...|...


indeed, took 3 guesses & 93 moves:

the 8th entry was found to be best at:
Code:

x..|...|...
x..|xx.|xx.
.xx|..x|.x.
-----------
.xx|...|...
.x.|xxx|...
x..|xx.|x..
-----------
xx.|x..|xx.
Oxx|..x|..x
...|...|...

small x are prior entries, large O is current chosen entry location (its choices are least across board)


offering a choice of 1 or 5. it took 1 and headed off to make 2 more guesses later before coming back here to try the (correct) 5.

sorry for the confusion! i hope i didn't send you on a wild goose chase.

However, I'm most curious that Ruud's rating system found such a puzzle to be the "very difficult". From what I can tell, these 3 decision points (2 values apiece) were the entire tree using just my limited modules.

Ruud, can you enlighten us about that?

Jim
_________________
thanks
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger
Ruud
Site Admin
Joined: 17 Sep 2005
Posts: 708
:
Location: Netherlands

Items
PostPosted: Thu Jan 12, 2006 8:15 am    Post subject: Reply with quote

Hi,

To add a bit to the confusion, this puzzle:

Code:
.1.|.7.|...
.26|...|.57
5..|...|..3
-----------
..8|2..|...
.5.|..4|3.2
4..|.37|.8.
-----------
...|.53|4..
..5|...|..8
.8.|...|.96


Was the second puzzle, dubbed unsolvable, from this site: http://www.smackedassintosh.net/sudoku/unsolvable_boards.html

With Sudo Cue, I could solve this without guessing, but it still required 8 tabling steps, making it "interesting".

Here is my solver log summary on this puzzle (I colored the 8 tabling steps):

log wrote:
Row 6 Digit 2 must be placed in R6C3
Row 7 Digit 8 must be placed in R7C4
Row 5 Digit 8 must be placed in R5C5
Column 8 Digit 3 must be placed in R8C8
Column 2 Digit 3 must be placed in R4C2
Row 9 Digit 5 must be placed in R9C7
R7C9 has Digit 1 as the only remaining candidate
Row 2 only has candidates for Digit 4 in Box 2
Row 7 only has candidates for Digit 6 in Box 7
Row 7 only has candidates for Digit 9 in Box 7
1 candidates for Digit 1 eliminated by a template check
Placing Digit 4 in R1C3 forces 2 different Digits in R7C8
Row 1 only has candidates for Digit 4 in Box 3
Box 1 found a Hidden Pair with Digits {4,7}
Column 2 found a Naked Pair with Digits {4,7}
Placing Digit 3 in R1C1 forces 2 different Digits in R9C3
Placing Digit 9 in R1C4 forces 2 different cells to Digit 9 in Column 4
Placing Digit 6 in R1C4 forces 2 different cells to Digit 1 in Column 4
Placing Digit 6 in R1C6 forces 2 different cells to Digit 7 in Row 8

Row 1 only has candidates for Digit 6 in Box 3
Placing Digit 2 in R1C6 forces 2 different cells to Digit 9 in Row 6
Row 1 only has candidates for Digit 2 in Box 3
R3C8 has Digit 1 as the only remaining candidate
Box 3 found a Naked Pair with Digits {8,9}
R1C9 has Digit 4 as the only remaining candidate
Column 8 Digit 4 must be placed in R4C8
Column 9 only has candidates for Digit 9 in Box 6
Coloring value 7 found a connected pair
Placing Digit 9 in R1C1 forces 2 different Digits in R7C3
R1C1 has Digit 8 as the only remaining candidate
Placing Digit 9 in R1C6 forces 2 different cells to Digit 7 in Column 3
Row 1 Digit 9 must be placed in R1C3
R1C6 has Digit 5 as the only remaining candidate
Row 1 Digit 3 must be placed in R1C4
Column 3 Digit 3 must be placed in R9C3
Box 1 Digit 3 must be placed in R2C1
R7C3 has Digit 7 as the only remaining candidate
Column 4 Digit 5 must be placed in R6C4
Row 4 Digit 5 must be placed in R4C9
Column 3 Digit 1 must be placed in R5C3
Column 3 Digit 4 must be placed in R3C3
Box 7 Digit 4 must be placed in R8C2
Row 9 Digit 7 must be placed in R9C4
Row 3 Digit 7 must be placed in R3C2
Column 8 Digit 7 must be placed in R5C8
Box 9 Digit 7 must be placed in R8C7
R7C8 has Digit 2 as the only remaining candidate
Column 1 Digit 7 must be placed in R4C1
Row 6 Digit 1 must be placed in R6C7
Row 6 Digit 6 must be placed in R6C2
Row 6 Digit 9 must be placed in R6C9
R5C1 has Digit 9 as the only remaining candidate
R5C4 has Digit 6 as the only remaining candidate
Column 4 Digit 4 must be placed in R2C4
Box 8 Digit 4 must be placed in R9C5
Column 8 Digit 6 must be placed in R1C8
Box 6 Digit 6 must be placed in R4C7
Column 7 Digit 2 must be placed in R1C7
R7C1 has Digit 6 as the only remaining candidate
Column 2 Digit 9 must be placed in R7C2
R3C4 has Digit 9 as the only remaining candidate
R8C4 has Digit 1 as the only remaining candidate
Row 2 Digit 9 must be placed in R2C7
R2C5 has Digit 1 as the only remaining candidate
R2C6 has Digit 8 as the only remaining candidate
R3C7 has Digit 8 as the only remaining candidate
Column 1 Digit 1 must be placed in R9C1
R8C1 has Digit 2 as the only remaining candidate
Column 6 Digit 1 must be placed in R4C6
R9C6 has Digit 2 as the only remaining candidate
R4C5 has Digit 9 as the only remaining candidate
R3C6 has Digit 6 as the only remaining candidate
Column 5 Digit 2 must be placed in R3C5
R8C5 has Digit 6 as the only remaining candidate
R8C6 has Digit 9 as the only remaining candidate
All Cells Solved


Now I was a little surprised to read this:

mugnyte wrote:
(...) was what i typed in a found to take only my solver's trivial logic. (55 moves)

With 8 tabling steps required in my solver, how do you define "trivial logic"? Can you show us a solver log, so that we can see what shortcuts you have found?

Ruud.
_________________
Meet me at sudocue.net
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Sudoku Programmers Forum Index -> Solving sudoku All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Sudoku Programmers topic RSS feed 


Powered by phpBB © 2001, 2005 phpBB Group

Igloo Theme Version 1.0 :: Created By: Andrew Charron