Dead End, but not really: Demonstration that any logical chain analysis is just trial and error and that "bifurcation" is just the beginning

Shown below is the configuration part way through the Sudoku Assistant analysis of this puzzle from the top95 collection:
920300008006408090830500000000200080709005000002006004008000010001000402200700809

92.|3..|..8
..6|4.8|.9.
83.|5..|...
---+---+---
...|2..|98.
7.9|1.5|...
..2|9.6|..4
---+---+---
4.8|6..|.1.
..1|85.|4.2
2..|7..|8.9

Hypothesis and Disproof -- Looking for a logical inconsistency -- one of the "dead ends":

   |---c1--|---c2--|---c3--||---c4--|---c5--|---c6--||---c7--|---c8--|---c9-- 
-----------------------------------------------------------------------------
r1 | 9 | 2 | 7 || 3 | 6 | 1 || 5 | 4 | 8
| | | || | | || | |
---+-------+-------+-------||-------+-------+-------||-------+-------+-------
r2 | 15 | 15 | 6 || 4 | 27 | 8 || 237 | 9 | 37
| | | || | | || | |
---+-------+-------+-------||-------+-------+-------||-------+-------+-------
r3 | 8 | 3 | 4 || 5 | 279 | 279 || 1267 | 267 | 167
| | | || | | || | |
===========================||=======================||=======================
r4 | 13456 | 1456 | 35 || 2 | 3479 | 3479 || 13679 | 8 | 13567
| | | || | | || | |
---+-------+-------+-------||-------+-------+-------||-------+-------+-------
r5 | 7 | 1468 | 9 || 18 | 348 | 5 || 1236 | 236 | 136
| | | || | | || | |
---+-------+-------+-------||-------+-------+-------||-------+-------+-------
r6 | 135 | 158 | 2 || 189 | 3789 | 6 || 1379 | 357 | 4
| | | || | | || | |
===========================||=======================||=======================
r7 | 346 | 79 | 8 || 69 | 2359 | 2349 || 367 | 1 | 3567
| | | || | | || | |
---+-------+-------+-------||-------+-------+-------||-------+-------+-------
r8 | 356 | 79 | 1 || 689 | 3589 | 39 || 4 | 3567 | 2
| | | || | | || | |
---+-------+-------+-------||-------+-------+-------||-------+-------+-------
r9 | 2 | 456 | 35 || 7 | 1 | 34 || 8 | 36 | 9
| | | || | | || | |
-----------------------------------------------------------------------------

This configuration is one of the "dead ends" arising from logical "hypothesis and disproof." At this point, Sudoku Assistant moves on to another hypothesis. (To get this table from the original top95 puzzle, load that puzzle, set the 3D Medusa analysis level to "+weak", and press "Solve". The solver will get stuck. Change the 3D level to "+hypothesis and disproof", check the "details" link, and then press "Step" once. Look down the list for the dead end at "Logical analysis: Chain 2(0) Dead End at k." Click the "Table" link.)

How "Hypothesis and Disproof" Works

In this analysis, you pick a "node A" (a specific possible value in a certain cell) hypothesize, "A cannot be eliminated," and see if that leads to a logical inconsistency (an "error"). If it does, then you know that the hypothesis is false, and "A" CAN be eliminated. The cycle of finding a solution is restarted. This node can be either a strong-chain node (a candidate in a cell with only two possible values or a candidate that has exactly two possible locations in a row, column, or 3x3 block) or a weakly associated node (one of a strong node's "buddies" -- in the same row, column, or block as that strong node).

If this analysis does not lead to a logical inconsistency, two outcomes are possible: Either you have found a "Magic Cell" -- the puzzle is solved -- or you have reached a "dead end."

When I started in on this hypothesis and proof business with the Sudoku Assistant, it didn't solve some of the top95 and "impossible 520" puzzles. The problem, I discovered, was that I was "missing" the idea that if N-1 members of a set of 'buddies' are found to be eliminated due to the hypothesis, then the Nth can be "set TRUE," and the process can be continued. Addition of this consideration allows for the solving of all of these puzzles. Indeed, I have yet to find a 9x9 Sudoku that can't be solved this way. Some have referred to the analysis as "logical bifurcation" when this special step is included.

"Bifurcation Logic" is the Same

An alternative route through logical analysis amounts to hypothesizing that Node "a" CAN be eliminated and then working backward to what would lead to this hypothesis being true. Sort of a "trial" without the "error." You can see this sort of analysis in action by selecting "proof" instead of "disproof" in the Sudoku Assistant. You will see that it is absolutely identical logic, just conceptualized in a slightly different way. The "bifurcation" rule in that case becomes the following: If any one of N-1 members of a set of 'buddies' not eliminated (TRUE) would prove the hypothesis, then the Nth can be set FALSE (elimination would prove the hypothesis) and the process can be continued. To each his/her own.

{?FFF...} --> {TFFF...} Is Just the Beginning

But it turns out that there isn't anything special about adding this particular consideration. Really all it is is just starting over with the human solving stage -- looking for hidden singles. ("If you can't put 5 anywhere else, then it must go HERE....") We could have continued past this "logical dead end" looking for block row/column exclusions ("locked" cells), subsets, X-wings, chain analysis --- the works.

So, for example, if you look at the "dead end" shown above, it isn't really a dead end. The 5 in r8c1 can be eliminated. That's because the 5 in this block is "locked" into being in row 9 by the absence of 5s in row 9, columns 4-9. If you load this configuration and try to solve it, you will see that several other eliminations continue from there, ultimately leading to a logical inconsistency. Thus, node r4c6#4 can be eliminated because 4 must be in the third column of block 8. Node r8c4#6 can be eliminated by a nifty XY-Wing involving the three duples at r8c1 (just 36, once the 5 is gone), r8c6, and r7c4. Etc., etc. Clearly this is only a dead end because we have chosen to give up at this point.

The Beginning is Just Trial and Error Depth Search

If this sounds a lot like just solving a Sudoku, well, it is. We're just "starting over" with this particular configuration arising from our trial hypothesis. Continuing all the way through block row/column exclusion, subset elimination, grid analsysis, and chain analysis to an additional round of hypothesis and (dis)proof amounts at some point to a "depth-based" trial and error search with added "human" short-cuts. (An efficient solver will just dispense with ALL the human stuff and do this sort of logical analysis directly.)

My conclusion

It is interesting to try to solve Sudoku puzzles using "human" methods. All of these methods amount to "short-cuts" to simple trial and error. The spotting of a hidden triple, an X-wing, a swordfish -- these are just quick tricks that will suffice for the sort of puzzle generally presented in print. But all of these tricks will ultimately fail for some Sudoku. (This, I believe, is a fundamental aspect of the "NP-complete" nature of Sudoku. There is no GENERAL non-[trial and error] solution to such problems.) At this point, one can employ more advanced techinques -- coloring, tabling, and other simiplified variants of general logical chain analysis. But, for SOME puzzles, in the end this will not be enough. Whether you refer to the next step as "depth search" or just "continuing to look for logical inconsistencies", the process would continue by cycling through whatever method you have chosen to greater and greater depth until the job is done.


Logical analysis: Chain 2(0)

A: The hypothesis is this: Chain 2(0) cannot be eliminated.
A: Chain 2: r1c3#4(1), r1c3#7(0), r1c8#4(0), r3c3#4(0), r3c3#7(1), r3c8#4(1)
A: setting r1c3#7 TRUE chain 2 parity 0
A: setting r1c8#4 TRUE chain 2 parity 0
A: setting r3c3#4 TRUE chain 2 parity 0
a: The hypothesis forces chain 2(1) to be FALSE
a: setting r1c3#4 FALSE chain 2 parity 1
a: setting r3c3#7 FALSE chain 2 parity 1
a: setting r3c8#4 FALSE chain 2 parity 1
b: The hypothesis forces weakly associated nodes 2(0) to be FALSE:
b: setting r1c5#7 FALSE
b: setting r1c6#7 FALSE
b: setting r1c7#7 FALSE
b: setting r1c8#7 FALSE
b: setting r1c8#5 FALSE
b: setting r1c8#6 FALSE
c: The hypothesis is linked by 2(0)/4(0)
c: Chain 4: r1c7#5(1), r1c8#5(0)
C: The hypothesis forces chain 4(1) to be TRUE
C: setting r1c7#5 TRUE chain 4 parity 1
d: The hypothesis forces weakly associated nodes 4(1) to be FALSE:
d: setting r1c7#1 FALSE
d: setting r4c7#5 FALSE
d: setting r6c7#5 FALSE
d: setting r1c7#6 FALSE
d: setting r7c7#5 FALSE
D: row 1 is nearly all FALSE for #5, requiring a TRUE in that last location
D: The hypothesis forces all of the following to be TRUE:
D: setting r1c5#6 TRUE
e: The hypothesis is linked by r1c5#6 chain 8(1)
e: Chain 8: r1c5#6(1), r3c5#6(0)
e: setting r3c5#6 FALSE chain 8 parity 0
E: The hypothesis forces chain 8(1) to be TRUE
f: The hypothesis forces weakly associated nodes 8(1) to be FALSE:
f: setting r1c5#1 FALSE
F: row 1 is nearly all FALSE for #6, requiring a TRUE in that last location
F: The hypothesis forces all of the following to be TRUE:
F: setting r1c6#1 TRUE
g: The hypothesis is linked by r1c6#1 chain 5(1)
g: Chain 5: r1c6#1(1), r1c6#7(0)
G: The hypothesis forces chain 5(1) to be TRUE
h: The hypothesis forces weakly associated nodes 5(1) to be FALSE:
h: setting r3c6#1 FALSE
h: setting r3c5#1 FALSE
h: setting r9c6#1 FALSE
H: column 5 is nearly all FALSE for #9, requiring a TRUE in that last location
H: The hypothesis forces all of the following to be TRUE:
H: setting r9c5#1 TRUE
i: The hypothesis is linked by r9c5#1 chain 19(1)
i: Chain 19: r9c5#1(1), r9c6#1(0)
I: The hypothesis forces chain 19(1) to be TRUE
j: The hypothesis forces weakly associated nodes 19(1) to be FALSE:
j: setting r9c5#3 FALSE
j: setting r9c5#4 FALSE
j: setting r9c5#5 FALSE
Dead End at k ...not really....

Disclaimer