Red Ed wrote:I wondered about doing the search that way, but I was put off by the thought of winding up with quite large exhangeable sets (you can have millions of wrong completions of a 16-clue grid, some of which presumably differ from the target by a large amount).
It is true that there can be millions of wrong combinations, but in some sense we don't care about that - it is only the exchangeable sets that we care about, and (as you observed) we only need to keep those for which no subset is already in the list. This means that large exchangeable sets are usually just chucked out straight away..
In addition, we don't actually need to start with 16-clue grids - we can use ANY grid with multiple solutions to add a few to the mix..
I have done some more extensive experiments (on "strangely familiar") in the following fashion
- construct a few hundred thousand 35-clue subgrids
- complete them in all possible ways and identify the exchangeable sets
- maintain a list of all exchangeable sets subject to the rule that any that are known to be not minimal are thrown out
The interesting thing is that the list of exchangeable sets grows quickly to start with (as I pump in more incorrectly completed grids), but then the rate of growth slows down and after a while the list becomes fairly stable.... AND it is not as large as I feared.
For SF I get the following sort of numbers (focusing on the small exchangeable sets because these give the most power in restricting the size of the hitting set):
2 exchangeable 4-sets
1 5 19 23
36 37 72 73
(as a C programmer, my numbering of the cells is from 0..80 row by row)
14 exchangeable 6-sets
7 8 43 44 79 80
19 20 65 70 73 79
63 67 71 72 76 80
18 19 27 31 46 49
51 52 53 69 70 71
28 33 37 41 50 51
21 23 48 50 75 77
0 6 20 24 36 38
3 4 39 40 75 76
15 16 33 34 78 79
12 13 48 49 57 58
4 5 49 50 67 68
21 22 30 31 66 67
10 13 15 19 22 24
18 x 8-sets, 10 x 9-sets, 69 x 10-sets, 57 x 11-sets, 201 x 12-sets, 160 x 13-sets, 584 x 14-sets, 615 x 15-sets, 1718 x 16-sets, 2592 x 17-sets,..
In this particular experiment the numbers continued to rise until about 13000 x 21-sets, but then decreased again down to a single 39-set... I found less than 100000 sets altogether... if I ran the experiment for longer, I bet that I would not find many more, and indeed may even find fewer (remembering that each additional exchangeable set can potentially reduce the overall size of the list).
So, how many 16-clue hitting sets are there that touch all of these 100000 exchangeable sets? I would bet that there aren't many...
Trouble is, my attempt at writing a hitting set program in about 15 minutes today was not a success and I won't have much time tomorrow to try it.... so I have no feel for whether this number is horrible or pretty much OK. My (naive) feeling is that one might get quite a long way by taking a few hundred, or maybe a few thousand, of the smallest of the sets.
Cheers
gordon