Solver App for Android and iPhone
Strategies for Number Puzzles of all kinds
Search:
Solvers
Puzzles
Latest Apps
Str8ts
Other
Page:2014 1 2 3 4 5 :2013 2012 2011 2010 2009 2008 2007 2006

Feedback and Questions

I've received a lot of interesting comments and questions from Sudoku fans over the last few years and this page is where I try to answer them. Please feel free to drop me a note on the side of the page or try the Facebook comment box. Or you can email me directly at .


Post a Comment or Question here...
Your Name or 'Handle'

Part of the World you're from

Email Address (optional) so I can reply directly if necessary (it will not be displayed here)

Any Sudoku you want to publish here for easy loading into the solver - 81 characters, use '.' or '0' for unknowns.

public - comment/question will be added to feedback column
private - email comment/question directly to Andrew Stuart, don't display here

Comment, question or feedback:

Enter these letters
Please enter the
letters you see:
arrow
Many thanks to all the people who have helped improve the solvers and strategies with their feedback!

Monday 22-Sep-2014

... by: Uhm, Netherlands

I am programming also and sudoku solver, i find a good program with so many techniques http://hodoku.sourceforge.net/en/index.php.

But i could not find how you can program those strategies.
Did you ever thought about creating some pseudocode for on you website?

The more advance strategies are very hard to program.
I have now basic stragegies, xy-wing, xyz-wing, simple coloring, Fish-family and Guess.
But i dont know if i implemented guess and naked,hidden pairs->n with an optimal way.
Last time i tried to solve and 64x64 and it took a long time to get past all the naked,hidden pairs, triple up to 64.

But its get harder when the strategies gets harder. Its hard to come up with an good way to solve those.

Andrew Stuart writes (23-Sep-2014):

Programming the strategies is the fun part, but I did so gradually (and in bursts) over quite some time. Some pseudo-code would be possible but only after explaining some quite complex data structures. I program in C/C++ and make use of a lot of pointers and arrays of pointers which isn't easy to abstract out. The second issue is that the constraints of rows/columns/boxes are also abstracted in the code - so that it is possible to add additional arbitrary constraints to capture other variants like Sudoku X, Jigsaw, Colour Sudoku etc. My Core Engine has to cope with a variety of puzzles and puzzles of different sizes.

Even if a pseudo-code is possible the programmer would never be sure that their implementation was complete and consistent since there is a loss of information in going from code -> pseudo-code. Also pseudo-code prevents the programmer from having a deep understanding of the problem being solved and therefore knowledge of completeness/consistency. So it can actually be harmful, in a sense, they would be writing a user-interface to a black box. Really, the best way is to start from the ground up, and being all your own work, is very satisfying. Expect to go through many incremental versions. I am over a 100 now. The recipes are the descriptions on the website and these contain examples. You can test your progress using sets of difficult puzzles, eg Ruud's top50k. I don’t mind providing those.

Thirdly, the software is commercially sensitive and an asset of the company I work for, as we try and scratch a living on the periphery of a market dominated by a few big players.. ; )

Saturday 20-Sep-2014

... by: jackeith, usa

Load Sudoku:

I don't get any numbers in your puzzles. Am using a nexus pad with android. If JavaScript is required, how do I turn it on???? Help!!!!

Andrew Stuart writes (20-Sep-2014):

Are you looking at the website? What pages? I don’t have a Nexus but I might be able to suggest something

Friday 19-Sep-2014

... by: Chuck, Virginia

Hello Andrew,

It's been a while since I last wrote to you. I'm not writing with a question, just a suggestion. I would like to see a book that explains step, by step, how to find a given strategy. I have your "the Book", but like most other Sudoku books, it doesn't show you how to find the strategy, only how to use it. I don't have a problem with most of the simpler ones like X-Wing, Y-Wing, Unique Rectangles, and some others. But, Sword-Fish sometimes eludes me, and X-Y-Chain, well, that's almost impossible.

I've looked around on the web, and found some things that help, but in most cases, I can't find a true step-by-step procedure. Trust me, if you write such a book, I will buy it.

I might have written you on this subject before. If I did, well, here I am, at it again.

Thanks for listening
Chuck

Andrew Stuart writes (20-Sep-2014):

That's an interesting question. Some people seem to have an amazing eye for spotting chains and seeing patterns in the candidates. For them these very complex advanced strategies are possible with pen and paper - provided that all the candidates have been properly mapped out. For other people they do need an aid - many use the solver to get to a specific bottleneck and print out the board at that stage. That guarantees that the board and candidates are set out correctly and they start looking for links - units where candidates show up just twice. I'm sure they combine this with what-if questions - supposing or removing a number in a cell - but that's using a more trial and error approach. It's still logical in a deterministic way, but my solver avoids deliberate subtraction as I'm interested in pattern based strategies. To that end I'd say that the bulk of the 'extreme' strategies are veering towards the academic rather than the practical - although as I said, some people I don't doubt have used them without a hint or a solver.

What I'm doing with the book and the solver/website is to collect all the known valid ways of using pattern based (or 'state deterministic') ways of logically removing candidates and some are pretty esoteric to say the least. A computer is ideal for searching for them - as a coder I've gotten great satisfaction from devising optimal ways for catching all instances of a strategy using the least amount of time/memory - but that is a different activity from a pen/paper solver trying to solve a specific puzzle.

As you investigate a board and map out all the links in chains it's not really possible to know in advance which strategy will be most useful next. The solver gives the illusion of knowing but only because it is so fast. If it picks Medusa Rule 3, it does so only because it has exhaustively searched for and failed to find any instance of a simpler strategy. We humans can't do exhaustive searches, we have to use hunches and intuition. We will probably miss a simpler path when we use a complex one - but there are many, many paths (usually).

I would say, though, that the most fruitful area is the family of chaining strategies - you can build up a series of links between bi-value and bi-location candidates - these are the building blocks of all those strategies. Merely having an awareness of the tricks that each strategy will, in time, seep into your image of the board state and you'll get the Eureka moment.

I'd like to hear from pen and paper solvers who have tips and 'rules of thumb' they use. I'm sure there are a lot of interesting approaches. Some people swear by using dots in a 3x3 grid rather than small numbers, for example.

Wednesday 17-Sep-2014

... by: Roger, USA

Thank you very much for creating this solver. I have learned much that is not taught or shown any place else. I'm grateful to you and congratulate you on your wonderful intellect.

Andrew Stuart writes (20-Sep-2014):

Thanks for the kind feedback, most appreciated! And very glad you enjoy the site

Tuesday 16-Sep-2014

... by: Nigel Ogilvie, England

Just to thank you for the work you have put in to this; to have a rigorous proof of all the steps is immensely helpful, and must have taken a lot of time.

Andrew Stuart writes (20-Sep-2014):

Been nine years, but slowly and in bursts! Had many excellent ideas and contributions to work with. Glad you find it useful

Thursday 28-Aug-2014

... by: uhm, Netherlands

Load Sudoku:

rating gives:
Time taken: 515 seconds (Normal)
but i think its miliseconds

Andrew Stuart writes (29-Aug-2014):

Doh, correct. Will change in next update, thx!

Tuesday 26-Aug-2014

... by: NiZhiyang, China

I am a student from China. Last time I gave you an unsolvable Sudoku X example, then you gave me another 9 Sudoku X, now I got another one, maybe its the world's hardest Sudoku X. Here it is

Andrew Stuart writes (29-Aug-2014):

That does look like a very difficult puzzle. So hard to compare. I have some ideas here but I will need to adapt my program for this to work with Sudoku X.

Thursday 21-Aug-2014

... by: Didi, Austria

Every Sudoku has it´s own solution path(s). Did you ever try to put a little research about that? What´s the Sudoku (with x given fields) like with the most/least amount of possible solution paths?

Andrew Stuart writes (23-Aug-2014):

That's another interesting question and one I want to explore when I can put a good chunk of time into it. Defining "solution path" helps narrow down the possibilities from near infinite to manageable. In discussing this I prefer to think of "candidate eliminations" rather than "solving cells" since the former leads to the later but is more finely gained - after basic strategies all work is done on candidates and their removal.

1) Solution path could imply 'try any strategy at this point' and see what can be eliminated. In actuality one wants to work through a list in order - some strategies just don’t make sense if easier strategies haven't cleared off the obvious eliminations. This is why after every successful tough elimination I always go back to the start of the list. So it's practical to limit the number of solution paths to those than follow a complexity order. However, I don’t pretend to assert that the order on my solver is the best order, just the one I've settled on as best for me. There is an element of subjectivity in that ordering, although the larger groupings (basic, tough etc) shouldn’t be controversial. So complexity order is one way to reduce the number of solution paths.

2) My grader has the notion of "opportunities to eliminate" which means that given the state of the board there may well be several places that the same strategy can eliminate candidates. This happens a lot with Pairs and Triples, for example. My rule is that the new state of the board shouldn't feed back into the algorithm and loop until exhausted. Even though a human with pencil and paper might want to exhaust the possibilities with a chain reaction of eliminations. I have this rule mainly for presentation reasons, in that it's not possible to show 'knock on' effects on the solver board and it would confuse people when they try and work out what the solver has done. Also, there is a logical reason - eliminations should be 'pattern based', ie based on the state of the board as it is, not what it may be after "in-loop" eliminations. If there are 5 "opportunities to eliminate", eg five Naked Pairs in a step, we should take them as a single step in the solution path. But if they lead to more Naked Pairs, the solver will stop and go back to Naked Singles and clear first.

3) "Solution Path" may imply "how many different strategies are that that will eliminate candidate X?" I think this is what most people mean when they ask the question. If we didn't know about, say "X-Wings" then a more complex strategy would probably do the same job. But I am coming round to the notion that this approach is a red herring. Does it matter which strategy gets X? Its like some light bulbs can be changed by one man, but some need two men - one to hold the ladder. Are they really different operations? Since my and most peoples solvers don’t contain every tool in the box or implement each strategy completely (very hard to prove) then we could accidentally balloon the count of solution paths artificially merely by being incomplete. This line of thinking means that the actual number of solution paths is constrained to be less than or equal the number of candidates on the board. Which is several hundred, but certainly not "millions" and most candidates are cleared off quickly.

The problem then becomes, what is the optimal solution path? What is the least number of operations required to solve it - allowing that each step can eliminate a slew of candidates in one loop. The answer to this question is exactly what the solver currently does. But the controversy becomes the order of the strategy list. Now, I have wondered, is my ordering optimal? Highly unlikely for all Sudoku puzzles. Probably for some. But impossible to know which. So what I need to do is take a bunch of puzzles and solve them using a tree/branch method that tries every possible order (leaving basic strategies at the start). This can't be done on a web page but could be done in my offline version. This is where I'm hoping to go next with my research and others, with solvers, would find it fun to explore this.

Wednesday 20-Aug-2014

... by: Didi, Austria

Most fascinating thing about Sudoku is the big variety of logics to solve those riddles. At the moment we all depend on some genious humans, who find these logical algorithms.
Is that true? Do you know any artificial intelligence approaches to let computers detect known and unknown solving logics?
It would be great to have an AI developed, that could at least find the most basic solving techniques! I believe that without such basic AI real Androids will never ever exist. Sudoku could be a nice starting project.

Andrew Stuart writes (23-Aug-2014):

An interesting question. Yes, all the strategies have come from discussions on forums (some now defunct) and from people suggesting improvements. Where known, I've tried to credit people. I'm not a mathematician but I know how maths minds work - the level of abstract thought that goes into working on algorithms I like to think approaches what mathematicians feel when they explore equations in their heads, but I'm not in their league. From my own study of AI systems - and I've knocked up a few models - genetic and neural network types - is that there is an "intuition barrier". Most maths people have intuition which allows them to step over a difficult problem and get insight intuitively, and then they back-fill it with logic and proof. It's actually quite hard to deduce a new or interesting proposition merely from deduction. Even choosing the direction in which to work involving a process no software can duplicate.

I do believe there will be artificial intelligences that will be equal and superior to human minds but they will be evolved, not written, and they will exhibit the intuitive trait required to solve these types of problems. But if we asked them to explain how they did it, or dumped their "software" it would be as complex and useless to us as a physical brain dump.

However, there may well be some clever people out there who do work on algorithms that create algorithms. Some of these are tricks though, like slime moulds solving the Travelling Salesman problem.

Tuesday 19-Aug-2014

... by: bruce, U.S. of A.

I love your site. It's taught me alot and I use your solver to do the daily puzzles. I like to play the game and not fill in the possibles (I always screw them up!), so I use it for that. Maybe I'm doing something wrong, but when I enter a number into the little grid, after having removed some possibilities from the large grid with say a pointed pair, the numbers removed end up back in the large grid. I'm using Chrome, showing the possibles, auto-clear is on, and allow editing is on. Any ideas? Thanks.
Bruce

Andrew Stuart writes (19-Aug-2014):

Very glad you like the site. The two boards are not quite mirrors of each other. The small one is meant for easy input and it can prepare the board with auto clear. But the big board should be used for editing if you are using "take step". That is the current state of the board since it contains the candidates. Editing the big board pushes solved numbers up to the small board. I suppose I could have done it all with one board but that’s the way I initially developed and its been the structure ever since. Use the " Candidates can be () edited"
Page:2014 1 2 3 4 5 :2013 2012 2011 2010 2009 2008 2007 2006