daj95376 wrote:EnderGT,
I first encountered your approach in an old post in the Programmers Forum. I believe it was called a Double Implication Chain. Since then, names have changed and Double Implication Chain has a new definition (I believe). Now, I think your approach falls under the catch-all heading of forcing chain. (others will probably post a more accurate name soon.)
Anyway, I use a similar approach as my last-stop way of getting past what I can't solve otherwise -- of which I have many missing techniques. In my implementation, I look for common assignments/eliminations along the two paths. That's basically equivalent to what you described. However, I also check paths from mulit-value cells.
Yes, there is a philosophical issue about using a cell when one of the candidates results in the puzzle being solved with singles. I've been debating limiting the length of the paths -- say to 10 nodes. This way, commonality between the two paths is limited to something I can reasonably list in a solution.
Finally, I hope you aren't making the same mistake that I made in implementing this technique. I didn't understand the distinction between a chain and a network, and my solver uses networks instead of chains. Now, I have to manually examine my solver's output and only select the results that can be expressed as chains. I've yet to implement chains in my new solver.
Before a few weeks ago, I considered myself a pretty good sudoku solver. I could spot hidden pairs, triples, even quads. I understood box claims and virtual crosshatching, and could solve most puzzles rated as hard in common publications.
Then I discovered a few puzzle sources that made it clear to me that I was just beginning to learn how to solve sudoku.
In the past few weeks, I've gotten comfortable with normal Fish, XY-Wing, XYZ-Wing, XY-Chains, and some uniqueness methods such as BUG.
I have yet to get comfortable with coloring, nice loops, finned fish, ALS, and the more advanced forcing patterns.
I'm using the technique I described earlier simply because I've run out of the options that I know how to look for. I don't understand the difference between a network and a chain, nor do I understand the significance of that difference. I do, however, feel that what I'm doing is brute-forcing it, and that there really should be a more elegant, more logical, way for me to solve these puzzles.
I am not currently implementing a solver. I do all of my puzzles either with pen and paper, or using the paul's pages SudokuXP solver, which I've found to be pretty good.
But enough about me...