Implication chains with multi-cell links

Advanced methods and approaches for solving Sudoku puzzles

Implication chains with multi-cell links

Postby tso » Sun Jan 01, 2006 7:29 pm

Does this fit an existing tactic?
Or is it just comprehensive forcing chains in which one link is a double cell?

Simpler tactics brought me to here:

Code: Select all
 4 6 5 | 8 1 3 | 7 2 9
 2 . 7 | 4 9 6 | . . .
 9 8 . | 5 2 7 | 6 4 .
-------+-------+------
 . . 6 | 1 8 5 | 2 . .
 . . . | 9 3 2 | . . 6
 . . 2 | 7 6 4 | 3 . .
-------+-------+------
 . 2 . | 6 7 9 | . 8 .
 6 . 8 | 2 5 1 | 9 . .
 5 7 9 | 3 4 8 | 1 6 2


Code: Select all
  4     6     5     | 8     1     3     | 7     2     9     
  2     13    7     | 4     9     6     | 58    135   1358 
  9     8     13    | 5     2     7     | 6     4     13   
 -------------------+-------------------+-------------------
  37    349   6     | 1     8     5     | 2     79    47   
  178   15    14    | 9     3     2     | 458   157   6     
  18    159   2     | 7     6     4     | 3     159   158   
 -------------------+-------------------+-------------------
  13    2     134   | 6     7     9     | 45    8     35   
  6     34    8     | 2     5     1     | 9     37    47   
  5     7     9     | 3     4     8     | 1     6     2     


All values of r6c1 imply r5c7=8, therefore r5c7=8, solving the puzzle.

r6c1=8 -> r5c1<>8 -> r5c7=8
Code: Select all
  4     6     5     | 8     1     3     | 7     2     9     
  2     13    7     | 4     9     6     | 58    135   1358 
  9     8     13    | 5     2     7     | 6     4     13   
 -------------------+-------------------+-------------------
  37    349   6     | 1     8     5     | 2     79    47   
  17x8x 15    14    | 9     3     2     | 45[8]  157   6     
  1[8]  159   2     | 7     6     4     | 3     159   158   
 -------------------+-------------------+-------------------
  13    2     134   | 6     7     9     | 45    8     35   
  6     34    8     | 2     5     1     | 9     37    47   
  5     7     9     | 3     4     8     | 1     6     2     


r6c1=1 -> (r5c2=5 and r5c3=4) -> r5c7=8
Code: Select all
  4     6     5     | 8     1     3     | 7     2     9     
  2     13    7     | 4     9     6     | 58    135   1358 
  9     8     13    | 5     2     7     | 6     4     13   
 -------------------+-------------------+-------------------
  37    349   6     | 1     8     5     | 2     79    47   
  178   1[5]  1[4]  | 9     3     2     | 45[8]   157   6     
 [1]8   159   2     | 7     6     4     | 3     159   158   
 -------------------+-------------------+-------------------
  13    2     134   | 6     7     9     | 45    8     35   
  6     34    8     | 2     5     1     | 9     37    47   
  5     7     9     | 3     4     8     | 1     6     2     


This second chain is of this form:

A -> (B+C) -> D

This doesn't seem much more complex than the typical chain of the form:

A -> B -> C -> D

... and certainly less complex than a 'forcing net' form:

A -> B -> C; (B+C) -> D
tso
 
Posts: 798
Joined: 22 June 2005

Postby rubylips » Sun Jan 01, 2006 8:02 pm

tso wrote:r6c1=1 -> (r5c2=5 and r5c3=4) -> r5c7=8

This is an example of what I would call an extended disjoint subsets link. The Almost Locked Set {r5c2,r5c3,r5c7} has just a single 8 and all of its 1s in Box 4, so if any other cell in Box 4 takes the value 1, the set is locked and r5c7 takes the value 8. I would currently write the link r6c1=<1|8>=r5c7, though I intend to update the notation in order to highlight the set of intermediate cells used to construct the link. There is a reverse relationship: r5c7<>8 => (r5c2 or r5c3)=1 => r6c1<>1.
rubylips
 
Posts: 149
Joined: 01 November 2005

Postby Carcul » Sun Jan 01, 2006 10:40 pm

The following chain is equivalent to the deduction of Tso:

[r6c1]=8=[r6c9]-8-[r5c7]=8|1=[r5c2|r5c3]-1-[r6c1]

(where the link =8|1= refers to the ALS pointed out by Rubylips)
which implies r6c1<>1 => r6c1=8.

Carcul
Carcul
 
Posts: 724
Joined: 04 November 2005

Postby Jeff » Mon Jan 02, 2006 2:28 am

Hi Carcul, would it be more equivalent to express the deduction as a weak grouped nice loop?

[r5c7]=8=[r5c1]-8-[r6c1]-1-[r5c2|r5c3]-4|5-[r5c7]
Implies r5c7<>4 and r5c7<>4 => r5c7=8
Jeff
 
Posts: 708
Joined: 01 August 2005

Postby Carcul » Mon Jan 02, 2006 3:39 pm

Hi Jeff.

Yes, your loop is more equivalent. However, both loops make the same deduction.

Regards, Carcul
Carcul
 
Posts: 724
Joined: 04 November 2005

Postby ronk » Mon Jan 02, 2006 4:03 pm

Carcul wrote:The following chain is equivalent to the deduction of Tso:

[r6c1]=8=[r6c9]-8-[r5c7]=8|1=[r5c2|r5c3]-1-[r6c1]


Jeff wrote:... would it be more equivalent to express the deduction as a weak grouped nice loop?
[r5c7]=8=[r5c1]-8-[r6c1]-1-[r5c2|r5c3]-4|5-[r5c7]


Without knowing he was using bennys' xz-rule, tso's deduction was r5c1<>8. For equivalency, therefore, it seems to me the 'nice loop' should begin and end with "[r5c1]". I have no idea where the '-' and '=' belong, but I think the equivalent chain would look something like ...

[r5c1]=8=[r6c1]-1-[r5c2|r5c3]-1|8-[r5c7]-8-[r5c1]

With implication chains ...

(r5c2=1 or r5c3=1) => r6c1<>1 => r6c1=8 => r5c1<>8
(r5c2<>1 and r5c3<>1) => r5c7=8 =>r5c1<>8
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Jeff » Mon Jan 02, 2006 5:42 pm

ronk wrote:Without knowing he was using bennys' xz-rule, tso's deduction was r5c1<>8. For equivalency, therefore, it seems to me the 'nice loop' should begin and end with "[r5c1]". I have no idea where the '-' and '=' belong, but I think the equivalent chain would look something like ...

[r5c1]=8=[r6c1]-1-[r5c2|r5c3]-1|8-[r5c7]-8-[r5c1]

Happy New Year, ronk.

Your nice loop notation is incorrect because:

  1. The nice loop propagation rule between [r5c2|r5c3] and [r5c7] is broken.
  2. The link labels at the ends don't reflect the implications. Nice loop notation, if used correctly, should not require to list the implications at all.
To express the deduction r5c1<>8, the nice loop should have been:

[r5c1]-8-[r6c1]-1-[r5c2|r5c3]-4|5-[r5c7]-8-[r5c1] => r5c1<>8
Jeff
 
Posts: 708
Joined: 01 August 2005

Re: Implication chains with multi-cell links

Postby Crazy Girl » Mon Jan 02, 2006 5:55 pm

tso wrote:
Code: Select all
  4     6     5     | 8    1    3   | 7     2     9     
  2     13    7     | 4    9    6   | 58    135   1358 
  9     8     13    | 5    2    7   | 6     4     13   
 -------------------+---------------+-------------------
  3[7]  349   6     | 1    8    5   | 2     79    47   
  17[8] 1[5]  1[4]  | 9    3    2   | 458*  157   6     
  [1]8  159   2     | 7    6    4   | 3     159   158   
 -------------------+---------------+-------------------
  1[3]  2     134   | 6    7    9   | 45    8     35   
  6     34    8     | 2    5    1   | 9     37    47   
  5     7     9     | 3    4    8   | 1     6     2     



surely from tso's second assumption on cell r6c1=1 you get r5c1=8. and leaving no candidate for r5c7:!: so r6c1<>1
(r6c1=1 => r7c1=1 => r4c1=3 => r5c1=8)

is this right or did i miss something:?:
Crazy Girl
 
Posts: 189
Joined: 08 November 2005

Postby ronk » Mon Jan 02, 2006 9:38 pm

Jeff wrote:Your nice loop notation is incorrect because ...

Let me put our loops side-by-side and highlight the difference.
  1. [r5c1]-8-[r6c1]-1-[r5c2|r5c3]-4|5-[r5c7]-8-[r5c1]
  2. [r5c1]=8=[r6c1]-1-[r5c2|r5c3]-1|8-[r5c7]-8-[r5c1]
What are the differences?
  1. There's your '-' versus my '=' on the first link, but I acknowledged I didn't know where an '=' went before I ever wrote the equation.
  2. Instead of your "4|5" notation, I used the "1|8" notation for the almost locked set ... just like Carcul did (except he used '=' instead of '-'). Since you didn't tell Carcul his "nice loop propagation rule between [r5c2|r5c3] and [r5c7] is broken" ... I decided to use it too.
Despite your correction, I have no better idea now than before when the '=' is applicable. And despite your correction, I can only only guess that your "[r5c2|r5c3]-4|5-" notation is meant to illustrate that r5c2 and r5c3 take on the values '4' and '5' in some order. If so, do we add cells and values to the "lists" for larger almost locked sets?

The "1|8" notation was meant by me, and I suspect Carcul as well, to illustrate the primary property of the almost locked set, namely that if cellA<>value1, then cellB=value2. (Both cellA and cellB can be cell subsets.)

Jeff wrote:Nice loop notation, if used correctly, should not require to list the implications at all.

I'm aware of that, but reading nice loop notation (or rubylips' chain notation, for that matter) is second nature to only a few reading these threads ... so I included it for clarity. That's everyone's prerogative IMO, the exercise of which does not warrant correction, or even comment.

And a Happy New Year to you too, Ron
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Jeff » Mon Jan 02, 2006 11:00 pm

I apologise in advance if you find my reply offensive which surely is not my intension. I am just trying to monitor the correct use of nice loop notations for the benefit of other readers.

ronk wrote:Let me put our loops side-by-side and highlight the difference.
  1. [r5c1]-8-[r6c1]-1-[r5c2|r5c3]-4|5-[r5c7]-8-[r5c1]
  2. [r5c1]=8=[r6c1]-1-[r5c2|r5c3]-1|8-[r5c7]-8-[r5c1]
What are the differences? [list=1][*]There's your '-' versus my '=' on the first link, but I acknowledged I didn't know where an '=' went before I ever wrote the equation.

Hi Ronk, that's where the problem is. You publish something that you are not sure of. In doing so, you are running the risk of misleading and confusing other elementary readers. Please make sure you know the notation before you use them. In my notation, the '-8-' at both ends implies that r5c1<>8. In your notation, the '=8=' and '-8-' at the ends implies a continuous loop which it is not the case. According to your notation, an 8 cannot be eliminated from r5c1.

ronk wrote:Instead of your "4|5" notation, I used the "1|8" notation for the almost locked set ... just like Carcul did (except he used '=' instead of '-'). Since you didn't tell Carcul his "nice loop propagation rule between [r5c2|r5c3] and [r5c7] is broken" ... I decided to use it too.

Carcul's used notation '=8|1=' (not '-8|1'). It is an indication rather than a true reflection of an implication, but at least the basic nice loop propagation rules are observed. Yours is totally wrong.:D I didn't make comment on Carcul's notation because the propagation in his loop is not broken. It is just not ideal.

ronk wrote:Despite your correction, I have no better idea now than before when the '=' is applicable. And despite your correction, I can only only guess that your "[r5c2|r5c3]-4|5-" notation is meant to illustrate that r5c2 and r5c3 take on the values '4' and '5' in some order. If so, do we add cells and values to the "lists" for larger almost locked sets?

I think you should read the post I referred to you earlier. In brief, -1- is an unconditional link with label 1; it means if A is 1, then B is not 1. Likewise -4|5- means if A=4 and 5 (A are cells [r5c2|r5c3]), then B is not 4 and 5. We could have -a|b|c|d- if the almost lock set has 4 cells.

ronk wrote:The "1|8" notation was meant by me, and I suspect Carcul as well, to illustrate the primary property of the almost locked set, namely that if cellA<>value1, then cellB=value2. (Both cellA and cellB can be cell subsets.)

When you use nice loop, you should follow the rules for nice loop or don't use the term nice loop at all.

ronk wrote:
Jeff wrote:Nice loop notation, if used correctly, should not require to list the implications at all.

I'm aware of that, but reading nice loop notation (or rubylips' chain notation, for that matter) is second nature to only a few reading these threads ... so I included it for clarity. That's everyone's prerogative, the exercise of which does not warrant correction, or even comment IMO.

I don't think you understand how to read nice loop notation at all because you have no idea about the significance of -x- and =x=. You should stick to the proof type 2 line implications that you have been using so well.:D
Jeff
 
Posts: 708
Joined: 01 August 2005

Postby ronk » Mon Jan 02, 2006 11:35 pm

Jeff wrote:I don't think you understand how to read nice loop notation at all because you have no idea about the significance of -x- and =x=. You should stick to the proof type 2 line implications that you have been using so well.:D

Thanks for the explanation, but I'm glad my calculus teacher didn't tell me I should stick to algebra.:D
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Re: Implication chains with multi-cell links

Postby Jeff » Tue Jan 03, 2006 5:49 am

Crazy Girl wrote:surely from tso's second assumption on cell r6c1=1 you get r5c1=8. and leaving no candidate for r5c7:!: so r6c1<>1
(r6c1=1 => r7c1=1 => r4c1=3 => r5c1=8)

is this right or did i miss something:?:

Hi, Crazy Girl. Yes, you are right. Letting r6c1=1 will eliminate all candidates in r5c7. This is a condition called 'empty cell contradiction' first introduced by bennys. It is equivalent to a triple implication chain.

r5c7=4 => ................=> r6c1<>1
r5c7=5 => ................=> r6c1<>1
r5c7=8 => ................=> r6c1<>1
all imply r6c1<>1
Jeff
 
Posts: 708
Joined: 01 August 2005


Return to Advanced solving techniques

cron