Hi Hendrik
hendrik_monard wrote:My solver has 4 stages. When a stage is not able to solve the puzzle, the next stage is called. It can only find a solution if the puzzle is solvable and if there is only one solution.
The first stage is a basic solver (detecting hidden and naked singles, pairs, triples and quads, pointing, claiming).
OK, let's call S this set of rules.
hendrik_monard wrote:In stage 2 all the candidates are examined individually. The current candidate (the one being examined) is transformed into a clue and the modified puzzle is submitted to the basic solver. The only result requested from the solver is the error status. If an error situation appears, the current candidate is considered to be 'forbidden'. This has been detected in the underlying process of the solver which is inherently a logical process.
If the current candidate (say C) was eliminated instead of just put in the list, that would be what I defined as T&E(S, 1, C)
hendrik_monard wrote:At regular intervals, the original puzzle together with the list of forbidden candidates is submitted to the basic solver to examine whether enough progress has been obtained for a solution to emerge from the basic solver (in my programme I check this after each addition to the list of forbidden candidates). If solved: end of programme, otherwise the examination of candidates continues.
OK, now this is almost what I defined as T&E(1, S) BUT there's a major difference: in T&E(1, S), if the solution is not found after trying all the candidates, but if at least one candidate has been eliminated, one must iterate the whole procedure.
Why?, will you ask. Two reasons:
- because, for any candidate C, the elimination of candidates other than C may give C a new chance to be eliminated during the repetition.
- if you don't do this, the result of the procedure is not well defined. It depends on the order of testing the candidates.
hendrik_monard wrote:In stage 3, the process is similar to the one of stage 2. However, in this stage candidates of two cells are combined. If a candidate of cell x combined with each candidate of cell y results every time in an error returned by the basic solver, that candidate of cell x can be eliminated, because one of the candidates of cell y has to be part of the ultimate solution of the puzzle.
OK, that's akin to T&E(2, S), with the same remarks as above about iterating.
hendrik_monard wrote:Theoretically, more stages could be added (involving four or more cells), but the probability for a next stage to be required for solving a valid puzzle seems rather slim.
The last (long) test I did was on all puzzles >= SER 12.2 of database ph_1712, and for none of them stage 4 was needed to solve the puzzle.
Now guess what. If you do the iterations I mentioned above, you'll never need more stages (and you don't even need intersections or Subsets in S): all the known puzzles are in T&E(2, Singles) - indeed they that are in B7B. I've shown this long ago and keep checking it for all the hardest puzzles proposed in this thread.
Even if some puzzle P appeared to be in B8B, the gap between B8B and not-T&E(2) is so large that it would mean P is "infinitely" harder than any currently known 9x9 puzzle.
hendrik_monard wrote:You mentioned in previous posts qualifications of the type B5B , B6B or B7B. Where can I find more information about that system?
That's a subclassifications of T&E(2, Singles). It is described (together with the definitions of T&E...) in my book "Pattern-Based Constraint Satisfaction" chapter 11, freely available:
- on ResearchGate:
https://www.researchgate.net/publication/280100555_Pattern-Based_Constraint_Satisfaction_and_Logic_Puzzles_Second_Edition - or as part of the documentation of my CSP-Rules solver:
https://github.com/denis-berthier/CSP-Rules-V2.1