Hi eleven,
eleven wrote:Thanks for those 5 lines, SpAce. I never bothered to read about MSLS, because i thought, it is useless to search for one manually. So i did not understand the (your) notation too. But looking at this for 15 minutes made it clear.
Glad to hear that! I also avoided MSLS for a long time because David's explanations made my head ache. The spotting procedure seemed simple enough, but the weird balance calculations and elimination checks and pretty much everything else were lost on me (and still are). I simply refuse to use techniques that I don't understand even if they're demonstrably effective, so I never bothered with it until now. For me the key was to see it through the normal set logic POV which David tried to desperately avoid.
And yes, it could be found manually - though i would have to be very bored to try it.
It actually seems very easy, at least with the simple examples where the two complementary groups of digits can be quickly identified and the Rank 0 balance is found without any adjustments. The potential for such patterns is also easy to see if you just look at the givens (and solved cells if any). If two groups of them (4+5 digits, covering all nine) form two imaginary rectangle-patterns with little overlap in either rows or columns, you probably have an MSLS. Or so it seems with my minimal sample size so far. For example, let's look at David's original
Shark puzzle (another one of yours, it seems):
David P Bird wrote:.......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
To identify the two groups of digits and any misfits I colored the solved cells:
- msls1.png (35.97 KiB) Viewed 246 times
Then I completed their rectangles:
- msls2.png (37.68 KiB) Viewed 246 times
So, we have the blue group with (2489) and the beige group with (13567), as well as the cyan 6r5c3 which is inside the wrong rectangle (we'll just ignore it for now, hoping it won't cause trouble). By David's conventions, those two digit groups would be called Home and Away based on the number of digits (Home: 4, Away: 5), but it's totally arbitrary because they have no designated roles. In set logic terms, one will be used for row links and the other for column links, if we're looking for a naked MSLS with cell truths as usual, but they can be either way. They can also be used as row truths or column truths in a hidden MSLS or a multi-fish, but that's a bit more complicated scenario (see examples below). (Just in case, "truth" is Allan Barker's synonym for a base set, and "link" for a cover set).
In some situations there's only one easy way the Home and Away digit groups can be assigned for rows and columns (like in the previous 16x16 example I couldn't make it work with the Home in rows). Here it doesn't matter at all. I guess one way to see that is that the intersection cells, which become the naked truths, are unoccupied both ways. Again coloring helps (me):
- msls3.png (40.41 KiB) Viewed 246 times
The dark green highlights the Home-rows + Away-columns intersections, and the light green vice versa. We can see that they form two non-overlapping rectangles, one 5x4 and the other 4x5 in this case, and neither contains any solved cells. Depending on our choice, one or the other will contain the 20 cell truths that feed our row and column links. Either way no eliminations occur in those cells. Eliminations can only happen within the empty cells of the Home (blue) and Away (beige) rectangles and either can only eliminate candidates from its own digit group. The eliminations are the same regardless of which of the two naked MSLSs is used (if both are usable), and at least in this case they're the same for any other Rank 0 pattern I've found based on those two digit groups as well.
So, let's assume we assign the Home to the rows and the Away to the columns. Thus the dark green intersections become the cell truths whose candidates need to be covered by the Home-rows (blue) and Away-columns (beige):
- Code: Select all
\135 \13 \367 \56 \57
.------------------------.------------------------.-------------------------.
| *1234 *1234 137-2 | *2467 567-4 *2456 | *2457 8 9 | \24
| 2489 5 279 | 1 478 2489 | 24-7 36 36 |
| 6 2489 279 | 2489-7 4578 3 | 1 457 257 |
:------------------------+------------------------+-------------------------:
| 249-35 7 2359 | 248-3 3458 1 | 6 359 358 |
| *1345 *134 6 | *3478 9 *458 | *578 2 1357-8 | \48
| *12359 *1239 8 | *2367 3567 *256 | *579 1357-9 4 | \29
:------------------------+------------------------+-------------------------:
| *13589 *1389 4 | *3689 2 *689 | *5789 1567-9 1567-8 | \89
| 7 289-1 129 | 5 1468 489-6 | 3 1469 1268 |
| 289-135 6 12359 | 489-3 1348 7 | 2489-5 1459 1258 |
'------------------------'------------------------'-------------------------'
* = truth, \ = cover
MSNS: Home (2489)r1567, Away (13567)c12467
20\20 (Rank 0): {1567N12467 \ 24r1 48r5 29r6 89r7 135c1 13c2 367c4 56c6 57c7} => 18 elims
As said, the truths are the 20 intersection cells of the Home-rows and Away-columns (r1567c12467 for the N-allergic). All of their candidates are covered by the row and column links; rows covering the (still unsolved) Home-digits and columns covering the (still unsolved) Away-digits, so none in the intersection cells is left uncovered (because together the links cover all nine digits and the intersections are hit by both). Since the number of truths and links is the same (20) we have Rank 0 without any need for balancing, and all covered non-base candidates can be eliminated as in any Rank 0 situation. Looks like the misfit cyan 6r5c3 didn't bother us after all. (It will, very slightly, with the hidden variants and multi-fishes below.)
The other way (Home-columns, Away-rows), i.e. light green cell truths, works just as well in this case:
- Code: Select all
\29 \48 \49 \28
.------------------------.-----------------------.--------------------------.
| 1234 1234 137-2 | 2467 567-4 2456 | 2457 8 9 |
| 2489 5 *279 | 1 *478 2489 | 24-7 *36 *36 | \367
| 6 2489 *279 | 2489-7 *4578 3 | 1 *457 *257 | \57
:------------------------+-----------------------+--------------------------:
| 249-35 7 *2359 | 248-3 *3458 1 | 6 *359 *358 | \35
| 1345 134 6 | 3478 9 458 | 578 2 1357-8 |
| 12359 1239 8 | 2367 3567 256 | 579 1357-9 4 |
:------------------------+-----------------------+--------------------------:
| 13589 1389 4 | 3689 2 689 | 5789 1567-9 1567-8 |
| 7 289-1 *129 | 5 *1468 489-6 | 3 *1469 *1268 | \16
| 289-135 6 *12359 | 489-3 *1348 7 | 2489-5 *1459 *1258 | \135
'------------------------'-----------------------'--------------------------'
* = truth, \ = cover
MSNS: Home (2489)c3589, Away (13567)r23489
20\20 (Rank 0): {23489N3589 \ 367r2 57r3 35r4 16r8 135r9 29c3 48c5 49c8 28c9} => 18 elims
Those were both naked MSLS, i.e. using cell truths. What about the hidden variant which uses rows and columns as truths and cells as links? We can produce those too using the same digit groups and rows and columns, if we flip them around:
- Code: Select all
*2489 *2489 *2489 *2489 *2489
.-------------------------.------------------------.--------------------------.
| \1234 \1234 \137-2 | \2467 \567-4 \2456 | \2457 8 9 | *13567
| \2489 5 279 | 1 478 \2489 | \24-7 36 36 |
| 6 \2489 279 | \2489-7 4578 3 | 1 457 257 |
:-------------------------+------------------------+--------------------------:
| \249-35 7 2359 | \248-3 3458 1 | 6 359 358 |
| \1345 \134 6 | \3478 9 \458 | \578 2 \1357-8 | *1357
| \12359 \1239 8 | \2367 \3567 \256 | \579 \1357-9 4 | *13567
:-------------------------+------------------------+--------------------------:
| \13589 \1389 4 | \3689 2 \689 | \5789 \1567-9 \1567-8 | *13567
| 7 \289-1 129 | 5 1468 \489-6 | 3 1469 1268 |
| \289-135 6 12359 | \489-3 1348 7 | \2489-5 1459 1258 |
'-------------------------'------------------------'--------------------------'
* = truth, \ = cover
MSHS: Home (2489)C12467, Away (13567)R1567
39\39 (Rank 0): {13567R167 1357R5 2489C12467 \ 1n1234567 2n167 3n24 4n14 5n124679 6n1245678 7n1246789 8n26 9n147} => 18 elims
Note that the misfit 6r5c3 removes one row truth and one cell link. The same happens with the other variant below.
- Code: Select all
*1357 *13567 *13567 *13567
.--------------------------.-------------------------.---------------------------.
| 1234 1234 \137-2 | 2467 \567-4 2456 | 2457 8 9 |
| \2489 5 \279 | 1 \478 \2489 | \24-7 \36 \36 | *2489
| 6 \2489 \279 | \2489-7 \4578 3 | 1 \457 \257 | *2489
:--------------------------+-------------------------+---------------------------:
| \249-35 7 \2359 | \248-3 \3458 1 | 6 \359 \358 | *2489
| 1345 134 6 | 3478 9 458 | 578 2 \1357-8 |
| 12359 1239 8 | 2367 \3567 256 | 579 \1357-9 4 |
:--------------------------+-------------------------+---------------------------:
| 13589 1389 4 | 3689 2 689 | 5789 \1567-9 \1567-8 |
| 7 \289-1 \129 | 5 \1468 \489-6 | 3 \1469 \1268 | *2489
| \289-135 6 \12359 | \489-3 \1348 7 | \2489-5 \1459 \1258 | *2489
'--------------------------'-------------------------'---------------------------'
* = truth, \ = cover
MSHS: Home (2489)R23489, Away (13567)C3589
39\39 (Rank 0): {2489R23489 1357C3 13567C589 \ 1n35 2n1356789 3n234589 4n134589 5n9 6n58 7n89 8n235689 9n1345789} => 18 elims
Obviously those pure hidden locked sets with all cell links didn't make much sense in this case, and I'm not sure they ever do with these large MSLS patterns. However, we can also use just one of the digit groups for both truths and links (one role in rows and the other in columns, or possibly a mix) to get much more efficient patterns with house truths. If I've now understood things correctly, those would be examples of the elusive Multi-Fishes. A couple of them:
- Code: Select all
\29 \48 \49 \28
.-------------------------.------------------------.-------------------------.
| 1234 1234 137-2 | 2467 567-4 2456 | 2457 8 9 |
| \2489 5 279 | 1 478 \2489 | \24-7 36 36 | *2489
| 6 \2489 279 | \2489-7 4578 3 | 1 457 257 | *2489
:-------------------------+------------------------+-------------------------:
| \249-35 7 2359 | \248-3 3458 1 | 6 359 358 | *2489
| 1345 134 6 | 3478 9 458 | 578 2 1357-8 |
| 12359 1239 8 | 2367 3567 256 | 579 1357-9 4 |
:-------------------------+------------------------+-------------------------:
| 13589 1389 4 | 3689 2 689 | 5789 1567-9 1567-8 |
| 7 \289-1 129 | 5 1468 \489-6 | 3 1469 1268 | *2489
| \289-135 6 12359 | \489-3 1348 7 | \2489-5 1459 1258 | *2489
'-------------------------'------------------------'-------------------------'
* = truth, \ = cover
Multi-Fish (2489) (5R \ 4c+12n):
20\20 (Rank 0): {2489R23489 \ 29c3 48c5 49c8 28c9 2n167 3n24 4n14 8n26 9n147} => 18 elims
- Code: Select all
*2489 *2489 *2489 *2489 *2489
.-------------------------.------------------------.-------------------------.
| 1234 1234 137-2 | 2467 567-4 2456 | 2457 8 9 | \24
| \2489 5 279 | 1 478 \2489 | \24-7 36 36 |
| 6 \2489 279 | \2489-7 4578 3 | 1 457 257 |
:-------------------------+------------------------+-------------------------:
| \249-35 7 2359 | \248-3 3458 1 | 6 359 358 |
| 1345 134 6 | 3478 9 458 | 578 2 1357-8 | \48
| 12359 1239 8 | 2367 3567 256 | 579 1357-9 4 | \29
:-------------------------+------------------------+-------------------------:
| 13589 1389 4 | 3689 2 689 | 5789 1567-9 1567-8 | \89
| 7 \289-1 129 | 5 1468 \489-6 | 3 1469 1268 |
| \289-135 6 12359 | \489-3 1348 7 | \2489-5 1459 1258 |
'-------------------------'------------------------'-------------------------'
* = truth, \ = cover
Multi-Fish (2489) (5C \ 4r+12n)
20\20 (Rank 0): {2489C12467 \ 24r1 48r5 29r6 89r7 249n1 38n2 349n4 28n6 29n7} => 18 elims
- Code: Select all
\135 \13 \367 \56 \57
.------------------------.----------------------.-------------------------.
| 1234 1234 \137-2 | 2467 \567-4 2456 | 2457 8 9 | *13567
| 2489 5 279 | 1 478 2489 | 24-7 36 36 |
| 6 2489 279 | 2489-7 4578 3 | 1 457 257 |
:------------------------+----------------------+-------------------------:
| 249-35 7 2359 | 248-3 3458 1 | 6 359 358 |
| 1345 134 6 | 3478 9 458 | 578 2 \1357-8 | *1357
| 12359 1239 8 | 2367 \3567 256 | 579 \1357-9 4 | *13567
:------------------------+----------------------+-------------------------:
| 13589 1389 4 | 3689 2 689 | 5789 \1567-9 \1567-8 | *13567
| 7 289-1 129 | 5 1468 489-6 | 3 1469 1268 |
| 289-135 6 12359 | 489-3 1348 7 | 2489-5 1459 1258 |
'------------------------'----------------------'-------------------------'
* = truth, \ = cover
Multi-Fish (13567) (4R \ 5c+7n)
19\19 (Rank 0): {13567R167 1357R5 \ 135c1 13c2 367c4 56c6 57c7 1n35 5n9 6n58 7n89} => 18 elims
Note that the 6r5c3 is again responsible for the lower truth and link count. The same happens below.
- Code: Select all
*1357 *13567 *13567 *13567
.------------------------.-----------------------.-------------------------.
| 1234 1234 \137-2 | 2467 \567-4 2456 | 2457 8 9 |
| 2489 5 279 | 1 478 2489 | 24-7 36 36 | \367
| 6 2489 279 | 2489-7 4578 3 | 1 457 257 | \57
:------------------------+-----------------------+-------------------------:
| 249-35 7 2359 | 248-3 3458 1 | 6 359 358 | \35
| 1345 134 6 | 3478 9 458 | 578 2 \1357-8 |
| 12359 1239 8 | 2367 3567 256 | 579 \1357-9 4 |
:------------------------+-----------------------+-------------------------:
| 13589 1389 4 | 3689 2 689 | 5789 \1567-9 \1567-8 |
| 7 289-1 129 | 5 1468 489-6 | 3 1469 1268 | \16
| 289-135 6 12359 | 489-3 1348 7 | 2489-5 1459 1258 | \135
'------------------------'-----------------------'-------------------------'
* = truth, \ = cover
Multi-Fish (13567) (4C \ 5r+7n)
19\19 (Rank 0): {1357C3 13567C589 \ 367r2 57r3 35r4 16r8 135r9 1n3 16n5 67n8 57n9} => 18 elims
Those are all hand-crafted, so I can't guarantee they're flawless. Can anyone find other variants, perhaps multi-fish with mixed rows and columns? Box sets?
[Added:] This base/cover, home/away thingie only confused me. If you have 16 digits in 16 cells, you can eliminate them outside in the units, wherever one is restricted.
Of course. Isn't that the definition of a multi-sector naked set, so the name fits? It just sounds a bit weird if stated like that because we only have 9 distinct digits, after all
Whatever it's called, it boils down to 16 cells with 16 digit covers, which is a straight-forward base\cover Rank 0 situation. For me it's the simplest way to look at it anyway. If you have another way to see it, like you apparently do with the simpler DDS situations (where there's only one cover sector for each digit, thus max 9 sectors), that's great. In reality, that's a base\cover problem too.
So what is this distinction for ?
Well, no matter how you see it and what you call it, I just think it gets much harder with larger patterns and multiple covers per digit. Or can you spot the 16 or 20 cells whose candidates can be covered with exactly as many houses just by looking at the pm? I surely can't. Even if I know the cells, I need to color and write down the covers to be sure the counts match and nothing is missed. Can you do that otherwise?
The bigger problem is spotting those cells anyway, and that's where David's method of identifying those two groups of digits really helps. With that it's relatively easy to spot the potential for such large-scale Rank 0 patterns and then find the truths and links for them. I think that's the real piece of gold in David's method, and everything else is there just to confuse people
At least I don't see much need for his complicated counting methods, which I still don't even understand (and probably won't care to learn). For me, after spotting the pattern potential, it becomes a normal set logic problem of finding a Rank 0 balance between truths and links, and I don't see anything in David's methods that would simplify that (or make it anything else, really).