Please excuse me barging straight in with a major request.

I have a long running C++ project that generates Sudoku Puzzles en-batch.

The basic methodology is to randomly permutate one from a set of complete solutions, then take away cells that can be deduced until no more cells can be removed.

Each deduction method has it's own rating, and at every stage, a random cell is picked from those with the highest deduction rating.

So far I have coded the following deduction methods:

1) Unnamed - Look for single cell values when possible row values are matched against possible column values against possible block values

2) Simple Counting (Reiterative) - Is there only one destination for a single value in a row/column/block, and/or one value for a single cell

3) Sub-Group Analysis - If all the destinations for a value are in a row/block subgroup, they can be excluded from the rest of the row and block etc

4) Twin Analysis - Naked and Hidden Twins where all the twinned values are possible in all the twinned cells

5) Cyclic Analysis - Naked and Hidden Twins where the twinned values are cycled through the twinned cells

6) X Wing Analysis

7) XY Wing Analysis

8) Swordfish Analysis

Note - Although I have only labelled 2) as reiterative, everything except 1) is reiterative, and gets called in a loop until no more changes are possible and/or the potentially removable cell has been identified as deducable.

Does anyone have any suggestions as to which deduction method I could add next?