Mathimagics wrote:I had hoped to piggy-back the enumeration of 11-clue puzzles along with the 10-clue testing, but that now looks to be an impossible dream.
It might be possible ... read on.
If this "profile" is typical of an 11-clue puzzle, and it does appear to be so, then that's the death sentence for exhaustive enumeration!
It may be typical of a grid with an 11-clue puzzle, but I don't think it's typical of randomly selected grids.
I think you'll see a lot of cases with no hitting sets at all -- even with your "MCN" filtering in place.
The largest set of UA's that I could assemble (using GridChecker, as my simplistic UA generator proved to be inadequate) was 124, from which I obtained:
- 1,130 HSets of size 8
- 375,331 HSets of size 9
- 27,266,402 Hsers of size 10
- 620,690,909 HSets of size 11
These are "net" figures, ie the HSets of size 9 do not include any repeats of size 8, etc.
The first 3 cases need to be multiplied by the "free cell multiplier", for size 8 this is C(73, 3) = 62,196, for size 9 it's C(72,2) = 2,556, and for size 10 it's 71.
So the total number of 11-clue puzzle candidates that need to to be tested is (1130 x 62196) + (375331 x 2556) + (27266402 x 71) + 620690909 = 3,586,232,967 .
You can improve that number substantially ... reducing "free cell multiplier" numbers, by using the "dead clues" concept.
I remember that they were discussed in McGuire's paper, but I don't remember how much detail was covered.
Thier code used it in three ways:
- In selecting which UA to cover "next".
- To reduce the number of cells that need to be considered for "hits" in that set.
- To reduce what you've called the "free cell multiplier" numbers.
For the "free cell multiplier" connection: if you reach a point where, say, 9 clues have been placed, and all of the UA sets that the code is dealing with, have been hit ... then in the double loop that adds two more clues, you can skip any cells that are (currently) flagged as "dead".
If any of that doesn't "click", don't hesitate to ask ...