Big fish

Advanced methods and approaches for solving Sudoku puzzles

Postby ronk » Sat Jun 10, 2006 9:33 pm

Havard wrote:what about this jellyfish?
Code: Select all
1  .  .  | 1X .  .  | .  .  .
.  1X 1  | .  1- .  | .  .  1X
1  1X .  | 1X .  .  | .  1X .
---------+----------+---------
.  1X .  | 1X 1  .  | .  .  .
.  .  .  | .  .  .  | 1  .  .
.  .  1  | .  1  .  | .  .  .
---------+----------+---------
.  .  .  | .  .  1  | .  1X .
1  .  1  | .  .  .  | .  1X 1X
1  .  1  | .  .  1  | .  .  1X

That certainly works. How ... without using elimination by contradiction ... do you explain the deduction? And where is/are the fin(s)?
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Mike Barker » Sat Jun 10, 2006 11:29 pm

Using almost constraint subsets, if the fin (r1c4) is true then r2c5 is false. If the fin is not true then c2489 are covered by r234 and b9. I'm a lousy fisherman, but I can I cover or can I cover.

Code: Select all
1  .  .  | 1X .  .  | .  .  .
.  1X 1  | .  1- .  | .  .  1X
1  1X .  | 1X .  .  | .  1X .
---------+----------+---------
.  1X .  | 1X 1  .  | .  .  .
.  .  .  | .  .  .  | 1  .  .
.  .  1  | .  1  .  | .  .  .
---------+----------+---------
.  .  .  | .  .  1  | .  1X .
1  .  1  | .  .  .  | .  1X 1X
1  .  1  | .  .  1  | .  .  1X
Mike Barker
 
Posts: 458
Joined: 22 January 2006

Postby Steve R » Sun Jun 11, 2006 11:00 pm

What about the other recent fish?

Havard’s fish of June 10 is based on m = 4 rows. The dual is based on m* = 5 columns (1, 6, 7, 8 and 9) so m + m* = 9. Like Mike and Ron’s specimens this is a good enough catch but not quite on a par to the “near whale” with m = m* = 5.

The examples suggest that Havard’s idea of a fish is similar to mine. It could well be that Ron has a different approach. His first diagram contains a fish of my sort on rows 1, 6, 7, 8 and 9 which makes the two eliminations. The dual is on columns 2, 4 8 and 9 so we have m + m* = 9. Ron observes that the same eliminations apply if the fin in box 2 is removed. That is true but I would see two different fish being involved here. The first (keeping everything based on rows) targets boxes 2 and 9
Code: Select all
 X  .  X | X  .  . | .  .  .
 .  .  . | .  -  - | .  .  . 
 .  .  . | .  -  - | .  .  .
 ---------------------------
 .  .  . | .  .  . | .  .  .
 .  .  . | .  .  . | .  .  .
 X  .  X | .  X  . | .  .  .
 ---------------------------
 X  .  X | .  .  X | .  X  .
 X  .  X | .  .  . | .  X  X 
 X  .  X | .  .  X | .  .  X

Here target columns (4) + target boxes (2) = 6 = m + 1 so the eliminations are confined to the intersections of target columns and target boxes.

The second targets only box 9, not boxes 2 and 9
Code: Select all
 X  .  X | .  .  . | .  .  .
 -  .  - | .  -  - | .  .  . 
 -  .  - | .  -  - | .  .  .
 ---------------------------
 -  .  - | .  -  - | .  .  .
 -  .  - | .  -  - | .  .  .
 X  .  X | .  X  . | .  .  .
 ---------------------------
 X  .  X | .  .  X | .  X  .
 X  .  X | .  .  . | .  X  X 
 X  .  X | .  .  X | .  .  X

This time target columns (4) + target boxes (1) = 5 = m so the eliminations apply to all the target columns and the target box.

Ron’s second fish is based on the same rows but targets boxes 5 and 9. Its dual is based on columns 2, 5, 8 and 9.

Steve
Steve R
 
Posts: 74
Joined: 03 April 2006

Postby Havard » Mon Jun 12, 2006 12:48 am

I thougth I better try and explain my "fishing technique"...:) I don't know if it's worth a separate post, since a lot of the pricipals involved are probably already known, but I have not read enough to know if this is the case. Maybe you fishermen can help decide that...:)

First of all, this is more of an algorithm than an actual "technique", and is probably of not much use for "human" solver, but someone might find it useful...

The main principle is this: Find a numbers of rows or columns and try and "cover" them with other sectors...

First some terminology to ease the explanation... There are three types of "sectors": rows, columns and boxes. So when I talk of the "other two sectors" while talking about rows, this means columns and boxes...:)

The collection of candidates made up by the intial rows or columns is called "the fish"!

So the idea is that if you have three rows of candidates, you have to try and "cover" these three rows with "the other two sectors", hence boxes and columns.

Now there are a set of rules that my "fishing-kit" uses: These are:

Covering rules:
1. always try to apply the "other sector" that will cover the most canidates.
2. if two sectors compete for the same amount of candidates to cover, uses boxes last!

Elimination rules:
1. If the amount of sectors used to cover "the fish" is equal to the amount of sectors gone into making it, you can eliminate any other candidates in the sectors used to cover it!
2. If, when having used the same amount of covering sectors as there are lines in the fish, there is one candidate left, you can eliminate any candidates common to that candidate and any of the covering sectors.
3. If, in the same scenario as 2, instead are several candidates "left", you can eliminate any candidates common to these candidates and the covering sectors!


And that's it! Some examples might be handy now...:)

let's start with a simple swordfish, and see how things can progress:
Code: Select all
. . . | . . . | . . .
. X . | . X . | . X .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. X . | . X . | . X .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. X . | . X . | . X .
. . . | . . . | . . .


so this one can be covered completely by three rows like this:

Code: Select all
. . . | . . . | . . .
. 1 . | . 1 . | . 1 .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. 2 . | . 2 . | . 2 .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. 3 . | . 3 . | . 3 .
. . . | . . . | . . .

(the numbers shows what sectors get overlayed in what order)

and hence you can eliminate any other candidates in those three rows...

now with an extra candidate:
Code: Select all
. . . | . . . | . . .
. X . | . X . | . X .
. | . | . | . | . X .
--|---+---|---+---|--
. | . | . | . | . | .
. X . | . X . | . X .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. X . | . X . | . X .
. . . | . . . | . . .


you get:
Code: Select all
. . . | . . . | . . .
. 1 . | . 1 . | . 1 .
. | . | . | . | . 4 .
--|---+---|---+---|--
. | . | . | . | . | .
. 2 . | . 2 . | . 2 .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. 3 . | . 3 . | . 3 .
. . . | . . . | . . .

1=row 2
2=row 5
3=row 7
4= single
where 4 now is our "leftover", which we then can eliminate any cells common to both one of our sectors, and itself, in other words:
Code: Select all
. . . | . . . | . . .
. 1 . | . 1 . | * 1 *
. | . | . | . | . 4 .
--|---+---|---+---|--
. | . | . | . | . | .
. 2 . | . 2 . | . 2 .
. | . | . | . | . | .
--|---+---|---+---|--
. | . | . | . | . | .
. 3 . | . 3 . | . 3 .
. . . | . | . | . . .


Now slightly more interesting:
Code: Select all
. . . | . . . | X X .
. . . | . X . | X X .
. . . | . | . | X X .
------+---|---+-|-|--
. . . | . | . | | | .
. . . | . X . | X X .
. . . | . | . | | | .
------+---|---+-|-|-
. . . | . | . | | | .
. . . | . X . | X X .
. . . | . . . | . . .


following the overlay-rules you get:
Code: Select all
. . . | . . . | 1 1 .
. . . | . 4 . | 1 1 *
. . . | . | . | 1 1 .
------+---|---+-|-|--
. . . | . | . | | | .
. . . | . 2 . | 2 2 .
. . . | . | . | | | .
------+---|---+-|-|-
. . . | . | . | | | .
. . . | . 3 . | 3 3 .
. . . | . . . | . . .

1=box 3
2=row 5
3=row 7
4=single
notice that Box 3 contains 6 candidates, so it get picked first! Now eliminations are what our single 4 can see in any of our sectors, which in this case is in the 1'st sector. (box 3)

a Frankenfish would look like this:
Code: Select all
. . . | . . . | X X .
. . . | . X . | X X .
. . . | . | . | X X .
------+---|---+-|-|--
. . . | . | . | | | .
. . . | . X . | X X .
. . . | . . . | | | .
------+-------+-|-|--
. . . | . . . | X X .
. . . | . . . | X X .
. . . | . . . | X X .

Code: Select all
. . . | . . . | 1 1 .
. . . | . 4 . | 1 1 *
. . . | . | . | 1 1 .
------+---|---+-|-|--
. . . | . | . | | | .
. . . | . 3 . | 3 3 .
. . . | . . . | | | .
------+-------+-|-|--
. . . | . . . | 2 2 .
. . . | . . . | 2 2 .
. . . | . . . | 2 2 .

1=box 3
2=box 9
3=row 6
4=single

Now let's look at how this has applied to some of the "fish" I have posted:
Code: Select all
1  .  .  | 1X .  .  | .  .  .
.  1X 1  | .  1- .  | .  .  1X
1  1X .  | 1X .  .  | .  1X .
---------+----------+---------
.  1X .  | 1X 1  .  | .  .  .
.  .  .  | .  .  .  | 1  .  .
.  .  1  | .  1  .  | .  .  .
---------+----------+---------
.  .  .  | .  .  1  | .  1X .
1  .  1  | .  .  .  | .  1X 1X
1  .  1  | .  .  1  | .  .  1X

Code: Select all
1  .  .  | 15 .  .  | .  .  .
.  13 1  | .  1- .  | .  .  13
1  12 .  | 12 .  .  | .  12 .
---------+----------+---------
.  14 .  | 14 1  .  | .  .  .
.  .  .  | .  .  .  | 1  .  .
.  .  1  | .  1  .  | .  .  .
---------+----------+---------
.  .  .  | .  .  1  | .  11 .
1  .  1  | .  .  .  | .  11 11
1  .  1  | .  .  1  | .  .  11

1=box 9 (4 candidates)
2=row 3 (3 candidates)
3=row 2 (2 candidates)
4=row 4 (2 candidates)
5=single
and we see that the candidate in r2c5 is part of our 3rd overlay sector, and is also seen by our single!

and this one:
Code: Select all
Cannibalistic Franken-Whale in columns: 3 4 5 6 7 9
19     159    37     | 1368X  1578X  4      | 2      356789 1358X
8      125    37     | 1236X  1257X  9      | 1346X  3567   1345X
129    6      4      | 1238X  1578X  178X   | 1389X  35789  1358X
---------------------+----------------------+---------------------
3      4      128X   | 7      1268X  5      | 168X   268    9
5      7      128X   | 9      4      16X-   | 1368X  2368   138X
129    289    6      | 128X   128X   3      | 5      4      7
---------------------+----------------------+---------------------
4      18     9      | 5      368    168X   | 7      38     2
6      3      128X   | 18X    1789X  278    | 489    589    458
7      28     5      | 4      39     28     | 39     1      6

1   1   .   | 1X  1X  .   | .   .   1X
.   1   .   | 1X  1X  .   | 1X  .   1X
1   .   .   | 1X  1X  1X  | 1X  .   1X
------------+-------------+------------
.   .   1X  | .   1X  .   | 1X  .   .
.   .   1X  | .   .   1X- | 1X  .   1X
1   .   .   | 1X  1X  .   | .   .   .
------------+-------------+------------
.   1   .   | .   .   1X  | .   .   .
.   .   1X  | 1X  1X  .   | .   .   .
.   .   .   | .   .   .   | .   1   .

would look like this:
Code: Select all
1   1   .   | 11  11  .   | .   .   12
.   1   .   | 11  11  .   | 12  .   12
1   .   .   | 11  11  11  | 12  .   12
------------+-------------+------------
.   .   14  | .   14  .   | 14  .   .
.   .   13  | .   .   13- | 13  .   13
1   .   .   | 16  16  .   | .   .   .
------------+-------------+------------
.   1   .   | .   .   17  | .   .   .
.   .   15  | 15  15  .   | .   .   .
.   .   .   | .   .   .   | .   1   .

1=box 2 (7 candidates)
2=box 3 (5 candidates)
3=row 5 (4 candidates)
4=row 4 (3 candidates)
5=row 8 (3 candidates)
6=box 5/row 6 (2 candidates)
7=single

Now why suddenly allow cannibalistic behavior? If the argument was that our single (7) sees our overlay-sector 3, this is not valid, because that candiate is part of the "fish" here. (row 5) However, since we can make the argument hold with sector 6 (box 5) and our single, the elimination is valid after all! So even if the elimination (r5c6) is part of the "fish", it is not part of the fish in our sector 6, and then we can do the elimination anyway!

finally this one:
Code: Select all
Franken-Squirmbag in columns: 1 2 4 5 7
258X  28X   3     | 6     1458X 14    | 48X   9     7
1     78X   4578  | 58X   9     45    | 6     2     3
6     9     48    | 2     7     3     | 1     48    5
------------------+-------------------+------------------
3     128X  6     | 1458X 2458X 245   | 7     145   9
28X   5     278-  | 147   3     9     | 248X  6     1248
4     1278X 9     | 1578X 258X  6     | 3     15    128
------------------+-------------------+------------------
9     3     1     | 45    245   8     | 245   7     6
7     4     258   | 3     6     125   | 9     18    128
258X  6     258   | 9     1245  7     | 2458X 3     1248

8X 8X .  | .  8X .  | 8X .  .
.  8X 8  | 8X .  .  | .  .  .
.  .  8  | .  .  .  | .  8  .
---------+----------+---------
.  8X .  | 8X 8X .  | .  .  .
8X .  8- | .  .  .  | 8X .  8
.  8X .  | 8X 8X .  | .  .  8
---------+----------+---------
.  .  .  | .  .  8  | .  .  .
.  .  8  | .  .  .  | .  8  8
8X .  8  | .  .  .  | 8X .  8


Code: Select all
81 81 .  | .  81 .  | 81 .  .
.  84 8  | 84 .  .  | .  .  .
.  .  8  | .  .  .  | .  8  .
---------+----------+---------
.  83 .  | 82 82 .  | .  .  .
83 .  8- | .  .  .  | 86 .  8
.  83 .  | 82 82 .  | .  .  8
---------+----------+---------
.  .  .  | .  .  8  | .  .  .
.  .  8  | .  .  .  | .  8  8
85 .  8  | .  .  .  | 85 .  8

1=row 1 (4 candiates)
2=box 5 (4 candidates)
3=box 4 (3 candidates)
4=row 2 (2 candidates)
5=row 9 (2 candidates)
6=single

Here our single interacts with our sector 3 (box 4), and we can do the elimination!

So that's it! The principle picks up on a lot of stuff, and could easily be extended to fish of size 8... I have only ever searched for size 6, but they do seem to pop up...

The rules about choosing rows and columns before boxes, and by picking them after their size is something that I have found generally gives better results. While you could number your sectors any way you like, "wrong" numbering would very often give no eliminations. However, I would not be surprised to find that in some special cases, a better procedure might be chosen!

Have fun with it!:)

Havard
Havard
 
Posts: 378
Joined: 25 December 2005

Postby daj95376 » Mon Jun 12, 2006 2:29 am

Skip!!!
Last edited by daj95376 on Sun Jun 11, 2006 10:37 pm, edited 1 time in total.
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Postby ronk » Mon Jun 12, 2006 2:32 am

Havard wrote:The main principle is this: Find a numbers of rows or columns and try and "cover" them with other sectors...

First some terminology to ease the explanation... There are three types of "sectors": rows, columns and boxes. So when I talk of the "other two sectors" while talking about rows, this means columns and boxes...:)

The collection of candidates made up by the intial rows or columns is called "the fish"!

So the idea is that if you have three rows of candidates, you have to try and "cover" these three rows with "the other two sectors", hence boxes and columns.

Now there are a set of rules that my "fishing-kit" uses: These are:

Covering rules:
1. always try to apply the "other sector" that will cover the most canidates.
2. if two sectors compete for the same amount of candidates to cover, uses boxes last!

Elimination rules:
1. If the amount of sectors used to cover "the fish" is equal to the amount of sectors gone into making it, you can eliminate any other candidates in the sectors used to cover it!
2. If, when having used the same amount of covering sectors as there are lines in the fish, there is one candidate left, you can eliminate any candidates common to that candidate and any of the covering sectors.
3. If, in the same scenario as 2, instead are several candidates "left", you can eliminate any candidates common to these candidates and the covering sectors!


And that's it!
I added the underlines in the quote.

Congratulations! We're 210+ posts into this thread, and this is the first time you've used the word "cover" -- in this context anywhere on Players' Forum ... and in this post you've already used it six times!:)
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Steve R » Mon Jun 12, 2006 2:45 am

Very interesting, Havard. Thanks.

Our approaches are very close. A couple of points come to mind on a quick read through.

One concerns frankenfish. I am grateful for the explanation of what they are. It has been a gap inn my knowledge for too long. The only problem left is why they have been given a name: the eliminations are essentially the same as for any old finned fish, I think.

However, your definition of finned fish generally seems to be a little broader than mine in elimination rules 2 and 3. My version (with a fish based on columns) is;
- tr = the number of target rows (same as covering rows, I think)
- tb = the number of target boxes(same as covering boxes, I think)
- elimination rules 2 & 3: tb + tr = number of base columns + 1
The doubt about the whale arose because it does not meet this requirement. The smaller fish based on columns 3, 4, 5, 7 and 9 (that is leaving out column 6) meets both our criteria and makes the same elimination.

There is no right or wrong choice of definition as far as I can see. For what it’s worth, the reasons I set the criteria a little tighter were
- I could then prove what eliminations followed in a simple way
- It appeared to me that it prevented cannibalism (so all eliminations were off the fins)
- It gave rise to a simple mechanical method for finding the dual fish (otherwise I had to work out which base column to remove, use the simple mechanism and then add back a row).
The theory could probably be developed just as well on your basis and in practice I cannot see any difference in the eliminations. Your approach may be quicker in computational terms.

I shall try and read your post in detail in the next few days.

Steve
Steve R
 
Posts: 74
Joined: 03 April 2006

Postby ronk » Mon Jun 12, 2006 2:49 am

Steve R wrote:Ron observes that the same eliminations apply if the fin in box 2 is removed.

I don't think I said that. Perhaps you would be kind enough to provide a quote of where you think I did ... so that I might clarify my statement.
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Steve R » Mon Jun 12, 2006 7:53 am

Ron

I must have misunderstood the phrase

Except for the fin in r1c4, candidates in r1, r6, and b7 are covered by c1, c3, and c5. Whether the fin is true or false, exclusions r23c5<>1 apply.

Sorry

Steve
Steve R
 
Posts: 74
Joined: 03 April 2006

Postby Havard » Mon Jun 12, 2006 8:32 am

Steve R wrote:The doubt about the whale arose because it does not meet this requirement. The smaller fish based on columns 3, 4, 5, 7 and 9 (that is leaving out column 6) meets both our criteria and makes the same elimination.


I think you will find that the whale does meet that requirement( tr=4, 5 and 8, tb=2,3 and 5, (=6 target units=6 columns in whale) + single=r7c6 and hence you get tb+tr=number of base columns+1)) but you are right about the smaller frankensquirmbag!:) I actually think that any time my algorithm picks up on any cannibalistic behavior, this actually means there is a smaller fish... In this case, with the same numbering the whale would look like this:
Code: Select all
1   1   .   | 11  11  .   | .   .   12
.   1   .   | 11  11  .   | 12  .   12
1   .   .   | 11  11  1   | 12  .   12
------------+-------------+------------
.   .   14  | .   14  .   | 14  .   .
.   .   13  | .   .   1 - | 13  .   13
1   .   .   | 16  16  .   | .   .   .
------------+-------------+------------
.   1   .   | .   .   1   | .   .   .
.   .   15  | 15  15  .   | .   .   .
.   .   .   | .   .   .   | .   1   .

Which is a good example of the elimination rule 3 (which I suspect is not working properly in my program...)
The "extras" or "fins" if you like, are here the 6's (in box 5), and they can both see a non-fish-candidate in one of the overlay sectors (nr. 3 here), and hence the elimination is valid.

The frankenfish name came from the idea that a fish with 6 fins and no head would surly not be a creation of nature, rather by some mad scientist...:)

Havard
Havard
 
Posts: 378
Joined: 25 December 2005

Postby Steve R » Mon Jun 12, 2006 2:22 pm

You are quite right, Havard. I mixed up your whale with another fish when writing early this morning and apologise for it.

I think the squirmbag you found to make the same elimination is the one I set out in my May 28 post. The dual on rows 1, 2, 3, 6 and 7 is also given there. The theory preceding the examples covers the squirmbag eliminations but not that of the whale.

As I now look at it it, we are using the same approach except that you permit cannibalism and I do not. Since I cannot see how to start on a general approach to the cannibalistic eliminations which may arise I am happy to pass on the baton.

Regards

Steve
Steve R
 
Posts: 74
Joined: 03 April 2006

Postby Mike Barker » Thu Aug 03, 2006 2:52 am

I know I'm 0 for 3 in proposed squirm bags, but here's another set. They came as somewhat of a surprise when I implemented a fishy form of almost constraint subsets (set A is n rows or columns and set B is a combination of n boxes and columns or rows). The result are super Franken fish which, according to Havard, include 2 boxes in the "B" set instead of the usual one which is why I haven't seen them before. So what do you fishermen think?

Code: Select all
#1 Constraint Squirmbag:
Base={r34789}, Cover={c478,b78}, fin=r4c9
r3c478|r4c479|r7c24678|r8c37|r9c24567 => r56c8<>5,r6c7<>5
.3.4..9..5......8..74.81....2..37.4....9..2..7..2....9..3.6...8.8.723..1.......6.
+------------------+-------------------+------------------+
|  168     3   128 |     4    57   256 |      9   17  567 |
|    5    16    12 |    36    79   269 |   1467    8   34 |
|    9     7     4 |  *356     8     1 |   *356 *235   23 |
+------------------+-------------------+------------------+
|  168     2     9 | *1568     3     7 |  *1568    4  *56 |
|    3  1456  1568 |     9   145  4568 |      2 -157  567 |
|    7  1456  1568 |     2   145  4568 | -13568 -135    9 |
+------------------+-------------------+------------------+
|  124  *159     3 |   *15     6  *459 |   *457 *257    8 |
|   46     8   *56 |     7     2     3 |    *45    9    1 |
|  124  *159     7 |  *158 *1459 *4589 |   *345    6  234 |
+------------------+-------------------+------------------+

#2 Constraint Squirmbag: r1c345|r5c346|r7c28|r8c57|r9c145 => r4c4<>7
Base={r15789}, Cover={c345,b79}, fin=r5c6
5....2...........493..4.6.7....9....2.....5.3..9..14.....2.8..6.5.4......98..6...
+----------------+-----------------+--------------+
|    5  468 *467 | *137  *167    2 |  138  138  9 |
|   78    2   67 |    9  1367   37 |  138    5  4 |
|    9    3    1 |    8     4    5 |    6    2  7 |
+----------------+-----------------+--------------+
|  478  468    5 | -367     9  347 |   17   16  2 |
|    2    1 *467 |  *67     8  *47 |    5    9  3 |
|    3   67    9 |    5     2    1 |    4   67  8 |
+----------------+-----------------+--------------+
|    1  *47    3 |    2     5    8 |    9  *47  6 |
|    6    5    2 |    4   *37    9 | *378   38  1 |
|  *47    9    8 | *137  *137    6 |    2   34  5 |
+----------------+-----------------+--------------+

#3 Constraint Squirmbag: r1c389|r4c378|r7c1469|r8c12489|r9c249 => r6c8<>1
Base={r14789}, Cover={c389,b78}, fin=r4c7
8....9...2..75..9...4...32..9.47........6..72..7.....5..2....3...5...8......86...
+------------------+---------------+------------------+
|     8     7 *136 |    2  34    9 |     5 *146  *146 |
|     2   136  136 |    7   5   34 |   146    9     8 |
|     9     5    4 |    6   1    8 |     3    2     7 |
+------------------+---------------+------------------+
|     5     9 *168 |    4   7    2 |   *16 *168     3 |
|   134   134  138 |  589   6  135 |   149    7     2 |
|  1346     2    7 |  189  39   13 |  1469 -148     5 |
+------------------+---------------+------------------+
|   *16     8    2 | *159  49 *145 |     7    3  *169 |
| *1346 *1346    5 | *139   2    7 |     8 *146 *1469 |
|     7  *134    9 |  *13   8    6 |     2    5   *14 |
+------------------+---------------+------------------+

#4 Constraint Squirmbag: r1c69|r3c5689|r4c478|r7c2389|r8c349 => r6c8<>7, r56c9<>7
Base={r13478}, Cover={c489,b27}, fin=r4c7
9...3..1.7.5.8.......5..6...42..5......8...6.6..9..2..4...2.1...8...439..56....2.
+------------------+----------------+---------------------+
|    9    26    48 |   24    3  *67 |    5      1    *278 |
|    7    16     5 |   24    8   16 |   49     34    2349 |
|  138   123   348 |    5 *179 *179 |    6   *478   *2478 |
+------------------+----------------+---------------------+
|  138     4     2 | *137    6    5 | *789   *378     139 |
|    5  1379   139 |    8  147    2 |   47      6    -137 |
|    6   137  1378 |    9  147  137 |    2 -34578 -134578 |
+------------------+----------------+---------------------+
|    4  *379  *379 |   36    2   38 |    1   *578    *567 |
|    2     8   *17 | *167    5    4 |    3      9     *67 |
|   13     5     6 |  137  179  389 |  478      2      47 |
+------------------+----------------+---------------------+

#5 Constraint Squirmbag: r35678c1|r1367c3|r367c5|r1235c6|r57c9 => r7c2<>5
Base={c13569}, Cover={c567,b12}, fin=r8c1
3..8...296...7.....7......8....2...4..9.1..7....7..3.2......1....1.86...8...92.43
+----------------------+-----------------+---------------+
|      3    145    *45 |    8    6  *145 |    7    2   9 |
|      6    289     28 |   29    7  *345 |   45   35   1 |
| *12459      7   *245 |   29 *345 *1345 |  456  356   8 |
+----------------------+-----------------+---------------+
|      7    135     36 |   56    2     8 |    9  156   4 |
|   *245     24      9 |  346    1  *345 |    8    7 *56 |
|    *15   4568  *4568 |    7  *45     9 |    3  156   2 |
+----------------------+-----------------+---------------+
|  *2459 -23569 *23456 |   34 *345     7 |    1    8 *56 |
|    *45    345      1 |  345    8     6 |    2    9   7 |
|      8     56      7 |    1    9     2 |   56    4   3 |
+----------------------+-----------------+---------------+

#6 Constraint Squirmbag: r467c3|r12347c4|r1346c5|r234c8|r12378c9 => r7c7<>1
Base={c34589}, Cover={r467,b23}, fin=r8c9
..6....2...4.3.8....5...3.......3......96..7..3.2...5..4...8...9....726.2.359...4
+--------------------+---------------------+--------------------+
|      3   1789    6 |  *1478 *1578   1459 |  14579    2  *1579 |
|     17   1279    4 |   *167     3  12569 |      8  *19 *15679 |
|    178  12789    5 | *14678  *178   1269 |      3 *149  *1679 |
+--------------------+---------------------+--------------------+
|  14567    167 *179 |  *1478 *1578      3 |   1469 *149      2 |
|   1458    158    2 |      9     6    145 |     14    7      3 |
|   1467      3 *179 |      2   *17     14 |    469    5      8 |
+--------------------+---------------------+--------------------+
|   1567      4  *17 |    *16     2      8 |  -1579    3  *1579 |
|      9     15    8 |      3     4      7 |      2    6    *15 |
|      2    167    3 |      5     9     16 |     17    8      4 |
+--------------------+---------------------+--------------------+

#7 Constraint Squirmbag: r1c239|r4c358|r5c24|r6c57|r9c129 => r7c3<>3,r8c2<>3
Base={r14569}, Cover={c239,b56}, fin=r9c1
9..1.765..8......7.....3.1.1....89..4.5.9..7....5....2...9.....7...2...6..4.7..9.
+------------------+------------------+-----------------+
|     9  *234  *23 |    1    48     7 |    6     5 *348 |
|   356     8    1 |  246    45     9 |  234    23    7 |
|    56   457   67 |   26  4568     3 |  248     1    9 |
+------------------+------------------+-----------------+
|     1    26 *236 |    7  *346     8 |    9   *34    5 |
|     4   *36    5 |  *36     9     2 |   18     7   18 |
|     8    79   79 |    5  *134    14 |  *34     6    2 |
+------------------+------------------+-----------------+
|  2356   156 -368 |    9   134  1456 |    7  2348  134 |
|     7 -1359   89 |   34     2   145 |  145   348    6 |
| *2356 *1356    4 |    8     7   156 |  125     9  *13 |
+------------------+------------------+-----------------+

#8 Constraint Squirmbag: r1c3489|r2c458|r5c356|r7c57|r8c49 => r4c5<>3
Base={r12578}, Cover={c345,b39}, fin=r5c6
Dual Base={c26,b6}, Dual Cover={r346}, fin=r5c6
.....62....8..4......52.6..5.....9.29......57..1......4.59...7.....6..1.37.......
+--------------+----------------+----------------+
|  1    5 *349 |  *38    7    6 |   2 *3489 *348 |
|  6    2    8 |  *13 *139    4 |   7   *39    5 |
|  7   34  349 |    5    2  389 |   6  3489    1 |
+--------------+----------------+----------------+
|  5  348    7 |    6 -134   13 |   9   348    2 |
|  9    6  *34 |    2 *348  *38 |   1     5    7 |
|  2  348    1 |    7   59   59 |  34     6  348 |
+--------------+----------------+----------------+
|  4    1    5 |    9  *38    2 | *38     7    6 |
|  8    9    2 |  *34    6    7 |   5     1  *34 |
|  3    7    6 |  148  158  158 |  48     2    9 |
+--------------+----------------+----------------+
Last edited by Mike Barker on Sat Aug 05, 2006 3:05 pm, edited 8 times in total.
Mike Barker
 
Posts: 458
Joined: 22 January 2006

Postby Steve R » Thu Aug 03, 2006 5:30 pm

Well done indeed, Mike.

According to my way of thinking all your fish target three boxes in the sense that there is potential for eliminations in three boxes. It would be helpful to know which columns and boxes you see as targets for elimination in, say, the first example.

Apart from examples 5 and 6, all are based on five rows and target three columns as well as three boxes. Their duals based on five columns. So m + m* (= fish base + dual base) = 5 + 5 = 10, equalling Havard’s record. As to the exceptions:

Example 5

Base columns: 1, 3, 5, 6, and 9
Target rows: 5, 6 and 7
Target boxes: 1, 2 and 7
Dual fish
Base rows: 1, 2, 3, 4, 8, and 9
Target columns: 2, 4, 7 and 8
Target boxes: 1, 2 and 7


Example 6

Base columns: 3, 4, 5, 8 and 9
Target rows: 2, 3 and 9
Target boxes: 4, 6 and 7
Dual fish
Base rows: 1, 2, 3, 5, 8 and 9
Target columns: 1, 2, 6 and 7
Target boxes: 4, 6 and 7


In these two cases m + m* = 5 + 6 = 11. I cannot find a smaller fish within either so to the best of my belief this establishes a new benchmark of the gargantuan on a 9x9 grid. Congratulations!

Steve
Steve R
 
Posts: 74
Joined: 03 April 2006

Postby ronk » Thu Aug 03, 2006 10:00 pm

Steve R wrote:Well done indeed, Mike.

Absolutely well done.

Steve R wrote:As to the exceptions:

Example 5

Base columns: 1, 3, 5, 6, and 9
Target rows: 5, 6 and 7
Target boxes: 1, 2 and 7
Dual fish
Base rows: 1, 2, 3, 4, 8, and 9
Target columns: 2, 4, 7 and 8
Target boxes: 1, 2 and 7


Example 6

Base columns: 3, 4, 5, 8 and 9
Target rows: 2, 3 and 9
Target boxes: 4, 6 and 7
Dual fish
Base rows: 1, 2, 3, 5, 8 and 9
Target columns: 1, 2, 6 and 7
Target boxes: 4, 6 and 7


In these two cases m + m* = 5 + 6 = 11. I cannot find a smaller fish within either so to the best of my belief this establishes a new benchmark of the gargantuan on a 9x9 grid.

As long we insist on having only rows or only columns in the base, we won't get to the true dual count M = 9 - P - N ... where P is the number of placements. I see these two puzzles as:

Example 5

Base: columns 1, 3, 5, 6, and 9
Target: rows 5, 6 and 7 AND boxes 1 and 2
Fin: r8c1
Dual fish
Base: rows 4, 8, and 9 AND box 3
Target: columns 2, 4, 7 and 8
Fin: r8c1


Example 6

Base: columns 3, 4, 5, 8 and 9
Target: rows 4, 6 and 7 AND boxes 2 and 3
Fin: r8c9
Dual fish
Base: rows 5, 8 and 9 AND box 1
Target: columns 1, 2, 6 and 7
Fin: r8c9


There are no placements in either puzzle ... and M + N = 9.
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Havard » Thu Aug 03, 2006 10:38 pm

ronk wrote:
Example 5
Base: columns 1, 3, 5, 6, and 9
Target: rows 5, 6 and 7 AND boxes 1 and 2
Fin: r8c1

Example 6
Base: columns 3, 4, 5, 8 and 9
Target: rows 4, 6 and 7 AND boxes 2 and 3
Fin: r8c9


This is the same way as I see it.:) All the squirmbags Mike posted has this "three lines, two boxes, one fin" - structure.

Havard
Havard
 
Posts: 378
Joined: 25 December 2005

PreviousNext

Return to Advanced solving techniques