To avoid confusion with champagne's possible multi-fish variants, I'm going to temporarily call my simplified truth balancing routine a Shark (being a fish eater). It may be possible to reconcile the two terms later, but at this stage I just don't know. In the simplest cases Multi-Fish and Sharks will arrive at the same exclusions but using different approaches. However the Shark pattern location system also allows more complex scenarios to be identified, when it remains to be seen if they are equivalent or not. Anyway, opening a new thread give me the chance to present a re-working of the truth balancing method I described in champagne's bi-bi patterns thread (where I felt it was already off-topic).
It appears that both our approaches will handle some SK loop situations when they may provide some extra exclusions. In many cases these would be found using locked set eliminations after the SK loop eliminations have been made, but I dont this will always be true. So it also remains to be seen if how extensive the overlaps are.
This is how the re-worked system goes:
The Shark method operates on a promising subset of digits.
Different flags are used to identify cells (including those with givens)
a) that must contain a member digit (#)
b) that can't contain a member (x).
A total of 9 rows and columns are selected with the objective of maximising the number of (#) cells that are covered.
A secondary objective to aid row and column selection is to maximise the number of (x) cells in the uncovered cells.
It is easy to show that the numbers of truths contained in the sets of doubly covered cells (red) and uncovered cells (blue) will be equal.
Consequently if the number of available cells in the in the blue set matches the number of (#) cells in the red set, the blue cells must all contain member digits and any other cells in the red set can't contain members.
There may be more than one way rows and columns can be selected to achieve this balance and each one will provide slightly different eliminations.
At this stage of the procedure Sharks and Multi-Fish will provide identical exclusions. However the Shark approach can be extended to consider cases when an immediate truth balance has not been reached:
On inspection it will be found that not all the seemingly available options in these sets can be realised.
In the blue set the cells available to hold a truth in a house be limited because there are known truths in external cells.
In the red set a house be forced to contain an extra truth because there are insufficient openings available in the external cells.
The adjustments to be made need to be considered by house type (rows, columns or boxes) and the most limiting result used for each set.
If these adjustments achieve a truth balance, eliminations can only be made in those houses where no adjustment has been made. This is because in the adjusted houses the location of the target cells is uncertain.
.......89.5.1.....6....31...7...16......9..2...8.....4..4.2....7..5..3...6...7... 3329 eleven 991 11.20 1.20 1.20 713 B4B
- Code: Select all
v v v v
*-----------------------*-----------------------*----------------------*
>| 1234 1234 1237 | 2467 4567 2456 | 2457 8 # 9 # |<
>| 2489 # 5x 279 | 1x 478 2489 # | 247 36x 36x |<
| 6x 2489 # 279 | 24789 4578 3x | 1x 457 257 |
*-----------------------*-----------------------*----------------------*
| 23459 7x 2359 | 2348 3458 1x | 6x 359 358 |
>| 1345 134 6x | 3478 9 # 458 | 578 2 # 13578 |<
>| 12359 1239 8 # | 2367 3567x 256 | 579 13579 4 # |<
*-----------------------*-----------------------*----------------------*
>| 13589 1389 4 # | 3689 2 # 689 | 5789 15679 15678 |<
| 7x 1289 129 | 5 1468 4689 | 3x 1469 1268 |
| 123589 6x 12359 | 3489 1348 7x | 24589 1459 1258 |
*-----------------------*-----------------------*----------------------*
^ ^ ^ ^
In this puzzle from champagne's "nothing special found" set the digit set is [2489]
The red set (covered twice) contains 8 givens and the blue set (uncovered) has 9 available cells, so there is no immediate truth balance.
However, in row 2 there are only three cells that can hold a truth that aren’t covered twice which requires r2c35 to hold at least one truth.
This produces a truth balance so that in the doubly covered set all non-member digits are false and the uncovered cells in rows14567 all the member digits are false giving 18 eliminations in all.
Because the adjustment has been made in row 2, which of r2c35 can't hold a member digit is uncertain and no elimination is possible in these cells. However it's apparent that as 7 is the only non-member they hold it must be true in one of them.
It's also possible that a member digit must be true in a cell external to the doubly covered set because it is part of a locked set containing non-member digits. I believe champagne's method allows that to be investigated which separates the systems as they stand now.
Champagne, it would be interesting to see how your revised solver handles this problem now, and how much difference there is between us. From my limited trials your 2x2 multi-fish all coincide with SK loops as far as I can see. Is that true? Shark handles the ones I've tired so far and I expect to post more on them later.
ronk, is it possible to produce a truth and link sets diagram to represent the eliminations in my example?
[Edit] Selection rules for rows and columns corrected in blue, and row selections inverted in the figure – fragments of two rival marking systems I had been testing got mixed together. Other minor improvements made.
[Edit 2 Ajustment system extended form rows & columns to rows, columns & boxes - shown in green.