So could we use a new forcing chain notation?

Advanced methods and approaches for solving Sudoku puzzles

So could we use a new forcing chain notation?

Postby Myth Jellies » Thu Feb 09, 2006 10:48 am

Coupling my own experiences with the following...

tso wrote:Could you explain some of the notation -- specificaly, the use of paranthesis and the vertical bar? Maybe you could spell out the first loop for the layperson? Should I be able to look at nice loop #1 and be able to see that r4c0<>3,7,8? How? Could you spell out or point to the rule that allows the reader to make the deduction from the notation?


and

Wolfgang wrote:...sometimes its easier for me to solve it myself than to read the nice loop notation:)


...I don't think I am alone in this.

Personally, I have a list of issues with the current notation:

1.) It looks very much like one has assumed that a node is a specific value, when that is not necessarily the case at all.

2.) It hides the internodal links, and, in doing so, it hides the alternating link/strong link structure which basically enables one to make these deductions without assuming anything about the content of a particular node. It also hides the fact that in essence all of these loops (bivalue, bilocation, mixed, continuous, discontinuous, x-cycle, xy-cycle, grouped, using BUGs or AURs) are all exactly the same thing.

3.) You have to refer back to the puzzle's candidate list to figure out what reductions can be made and if the loop is of correct form.

4.) It is not all that intuitive. It is complicated to read and getting worse as loops become more complex.

For a jumping off place, I would like to propose a prototype notation that addresses some of these issues, and do a comparison between the old method and the new.

Simple xy-wing case with 2 reductions.
Code: Select all
Old:
[r1c3]-1-[r3c3]-2-[r3c4]-3-[r1c5]-1-[r1c3], => r1c3 <> 1
[r3c6]-1-[r3c3]-2-[r3c4]-3-[r1c5]-1-[r3c6], => r3c6 <> 1
New:
1] - [1=2 ] - [2=3 ] - [3=1 ] - [1
X] - [r3c3] - [r3c4] - [r1c5] - [X; where X = [r1c123, r3c56] <> 1


A simple mixed case.
Code: Select all
+----------------+----------------+----------------+
| 4    12   13   | 38   5    6    | 28   9    7    |
| 6   *29   5    | 1    89   7    | 238 *23   4    |
| 8    7   *39   |*239  239  4    | 5    1    6    |
+----------------+----------------+----------------+
| 19   3    4    | 5    1279 129  | 1279 6    8    |
| 7    5    169  |*2689 4    189  | 1239*23   39   |
| 2    8    169  | 69   1679 3    | 179  4    5    |
+----------------+----------------+----------------+
| 159  19   2    | 368  368  58   | 4    7    39   |
| 3    4    8    | 7    19   19   | 6    5    2    |
| 59   6    7    | 4    23   25   | 39   8    1    |
+----------------+----------------+----------------+
Old:
[r3c4]=2=[r5c4]-2-[r5c8]-3-[r2c8]-2-[r2c2]-9-[r3c3]-3-[r3c4], => r3c4<>3;
New:
[3-2] = [  2 ] - [2=3 ] - [3=2 ] - [2=9 ] - [9=3 ] - [3]
[ X ] = [r5c4] - [r5c8] - [r2c8] - [r2c2] - [r3c3] - [X]; X = r3c4 <> 3


Now lets get a little more complex with an Almost Unique Rectangle
Code: Select all
 *-----------------------------------------------------------*
 | 478  *57   *579   | 3689 *89    1     | 2     3478  3469  |
 | 178   3     179   | 689   2     4     | 5     178   69    |
 | 148   6     2     | 389   5     7     | 348   1348  349   |
 |-------------------+-------------------+-------------------|
 | 5     48    13    | 189   6     289   | 349   234   7     |
 | 2     17    1367  | 179   4     59    | 369   35    8     |
 | 9     48    67    | 78    3     25    | 46    245   1     |
 |-------------------+-------------------+-------------------|
 | 367  *257  *57    | 4    *78    368   | 1     9     235   |
 | 137   1279  8     | 5     179   39    | 347   6     234   |
 | 1367  1579  4     | 2     179   369   | 378   38    35    |
 *-----------------------------------------------------------*
Old:
[r7c2]=2|9=[r1c3]-9-[r1c5]-8-[r7c5](-7-[r7c2])-7-[r7c3]-5-[r7c2] (using the AUR in cells r1c23/r7c23) which implies r7c2=2
New:
[(5&7)-2] =AUR= [  9  ] - [9=8 ] - [8=7 ] - [(5&7)]
[r7c23  ] =AUR= [r1c23] - [r1c5] - [r7c5] - [r7c23]; => r7c23 <> (5&7), thus r7c2 = 2.

Note that the AUR strong link is represented differently from a normal strong link because the AUR strong link cannot represent an ordinary link (aka weak link or nominal link)

Maybe everyone is not that unhappy with the old notation. Maybe it just needs to be tweaked a little bit. Or maybe it ought to be overhauled for something like this prototype or for something completely different. Opinions and suggestions are welcome.
Myth Jellies
 
Posts: 593
Joined: 19 September 2005

Postby Carcul » Thu Feb 09, 2006 12:03 pm

Hi Myth Jellies.

As a personal opinion:

1. I understand your concern about the "complexity" of some of the notation used. However, don't forget that the notation currently used was introduced, as far as I know, by Jeff some time ago in the first posts featuring nice loops, and, if one follows with attention the posts written by Jeff about nice loops and company, namelly, triple implication chains, weak loops, multiple implication loops, then the current notation should not pose any problems. However, no one is obligated to accept a certain notation: personally, I have a good relation with the current notation and so it would be difficult for me to "jump" to another one.

2. Hence, an important issue is the "personal ideal/meaningfull notation": the notation that you propose in this post is certainly interesting and meaningfull for you (and others), but for me is completely strange: it makes much more sense to me to express the deductions with the "old" notation. And I can say the same thing about Maria45 and Aeb notations for example, which are like Chinese for me, but I am sure that they are completely meaningfull for Maria and Aeb. What I am trying to say is that each one of us should find a notation that is personally meaningfull and confortable.

3. Now, the problem of a common notation is another issue: we have already in this forum a notation that is used by most of us, and so when users like Maria45 and Aeb (or others) came up, legitimaly, with their own notations obviously most of us will not understand a little about them. Is the same thing if I was talking about Chemistry in Portuguese and a Chinese person was doing the same but in Chinese: we would not understand each other. How could this problem be solved? By expressing each other in a common language, English for example. The same thing must happen in this forum, and I think this is your intention Myth Jellies. But, in my opinion, the notation that already exists is very good and simple, and there is no simple way of expressing complex logic deductions, no matter which notation is used.

Myth Jellies wrote:4.) It is not all that intuitive. It is complicated to read and getting worse as loops become more complex.


It is not intuitive for you. Anyone that spends some time studying the nice loop propagation and deduction rules should have no problem in reading a loop and understanding the inference made by it. Its just a question of habit: now, if someone don't want to spend some time in order to understand the notation of the loops and their rules, that is another problem.
Also, I admit that some deductions that I have recently presented in this forum are very complex in notation, but are meaningfull and easy to understand for me: if they were expressed by your proposed notation, I think the complexity would even be greater!

Conclusion: I agree with the idea of a "common/stablished notation" for this forum, but I think the current one is already good and simple to use, and any user should make a try in using it in order for all of us understand each other. Regarding complex logic deductions, I think there is no simple way of expressing them.

Regards, Carcul
Last edited by Carcul on Thu Feb 09, 2006 8:06 am, edited 1 time in total.
Carcul
 
Posts: 724
Joined: 04 November 2005

Re: So could we use a new forcing chain notation?

Postby Jeff » Thu Feb 09, 2006 12:04 pm

Hi MJ, I hope you are not suggesting replacing the nice loop notation altogether. I can't help to think this way due to the fact that all 3 examples are related to notation for nice loops. Certainly node inferences in a nice loop are important, but these can be read from the link labels and link inferences. What you did was to remove the link labels and express them as node inferences in a second line. I just can’t see any improvement. Sorry I can't be any more supportive, and having said this, I have no objection for anyone to use the new notation on other techniques though.

Myth Jellies wrote:It looks very much like one has assumed that a node is a specific value, when that is not necessarily the case at all.

A nice loop notation allows each node, except the node where a deduction is to be made, to take on all possibilities.

Myth Jellies wrote:It hides the internodal links, and, in doing so, it hides the alternating link/strong link structure which basically enables one to make these deductions without assuming anything about the content of a particular node. It also hides the fact that in essence all of these loops (bivalue, bilocation, mixed, continuous, discontinuous, x-cycle, xy-cycle, grouped, using BUGs or AURs) are all exactly the same thing.

As mentioned above, node inferences in a nice loop can be read from the link labels and link inferences. Like any shorthand notations, nice loop notation is meant to be as concise as possible. One, who uses the nice loop notation, would have to learn how to extract the information for node inferences. If s/he doesn't want to do this, then there are other choices such as the proof type 2-line notation.

Myth Jellies wrote:You have to refer back to the puzzle's candidate list to figure out what reductions can be made and if the loop is of correct form.

In nice loop notation, the deduction(s) is/are always spelled out. Checking the candidate list is merely for the purpose of verifying the deduction is correct. On the other hand, if a new notation is to be verified, you still have to refer to the candidate list, unless you trust the notation wholeheartedly, therefore it makes little difference.

Myth Jellies wrote:It is complicated to read and getting worse as loops become more complex.

This is true for all type of notations.
Jeff
 
Posts: 708
Joined: 01 August 2005

Postby maria45 » Thu Feb 09, 2006 5:43 pm

Of course, everyone would prefer his/her own notation style. That is the one which is familiar.

So I prefer mine, of course.:D
maria45
 
Posts: 54
Joined: 23 October 2005

Re: So could we use a new forcing chain notation?

Postby aeb » Thu Feb 09, 2006 7:38 pm

Wolfgang wrote:...sometimes its easier for me to solve it myself than to read the nice loop notation:)

Myth Jellies wrote:Personally, I have a list of issues with the current notation:
Proposal:
Simple xy-wing case with 2 reductions.
Code: Select all
Old:
[r1c3]-1-[r3c3]-2-[r3c4]-3-[r1c5]-1-[r1c3], => r1c3 <> 1
[r3c6]-1-[r3c3]-2-[r3c4]-3-[r1c5]-1-[r3c6], => r3c6 <> 1
New:
1] - [1=2 ] - [2=3 ] - [3=1 ] - [1
X] - [r3c3] - [r3c4] - [r1c5] - [X; where X = [r1c123, r3c56] <> 1


Carcul wrote:I have a good relation with the current notation

maria45 wrote:Of course, everyone would prefer his/her own notation style.

Yes, indeed.

Common language
Now Carcul talks about the need for a common language, and about Portuguese and Chinese, but in this case it is perhaps more like dialects than like languages, it is not very difficult to understand roughly what the other is saying. If everybody writes what is most natural to them, the other will understand (or ask if they want more explanation).

Need both concise and more explicit notations
We do not need a single notation. We need a variety of notations. If a puzzle needs singles only, then you can say to an experienced solver "trivial", or, more precisely, "singles only", but if you want to show the series of steps taken you might list them one by one, for example like a series of steps of the form (i,j)d (position (i,j) has digit d; some people here would write ricj=d). For somebody who needs more explanation you might add (r), (c), (b), (d) to explain what kind of single: the only place in a row, column, etc. In different circumstances a different amount of detail is appropriate.

The kind of information coded into a forcing chain description
Similarly, if one wants to describe a forcing net of some kind, then one can give the barebones information about the steps as in (6,9)1, (6,3)7, (8,3)3, (8,2)2, (6,2)3, where the only claim is that each step follows in some unspecified way from all that was said earlier, or specify more precisely how much of the past is needed, as in (6,2)2 > (5,1)8 > (5,6)3 >> (5,9)4 >>> (5,7)2, where > says that only the previous step is used, and >>> says that the foregoing three statements are needed, or specify more precisely what kind of reasoning is used, using =d= for a link where at least one of the ends is d, and -d- for a link where at most one of the ends is d.

More information is not better
MJ proposes a rather detailed notation that might be good for him, or for everybody in certain situations, but generally one wants a concise notation, just sufficient to reconstruct the reasoning. Of course, how concise a notation suffices might depend on experience.

English is also a good notation
Lots of reasonings exist, and having only - and = is not enough to indicate the reasoning. One might invent appropriate labels like ALS or ADS or CDS or so, but there is a danger that posts become unreadable to people who do not remember CDS. It is not forbidden to use English words like "Uniqueness Rectangle" or "since ... and ... it follows that...".

Superstition
(Sorry - have to go - later.)
aeb
 
Posts: 83
Joined: 29 January 2006

Postby tso » Fri Feb 10, 2006 3:11 am

I have no problem with multiple co-existing notations. But while parts of some notations are relatively obvious and can be likely be understood by the majority in context -- a lot of it is not -- even for those of us who are regulars here. There's no easy way to look up the usage. (I can search for "swordfish", but not for "[r2c7]-1-[r1c9](-7-[r4c9|r5c9])") There is no official index or glossary. New visitors posting for the first time with a question are often given answers far more difficult than the puzzles they posted.

There are plenty of electrons available -- there's no need to conserve forum space. Many people include a few lines of signature at the bottom of all their posts. It wouldn't hurt for those using more complex notation that isn't readable by a bright newcomer (or slow regular) to include a few lines of explanation and/or a link to a full explanation of the notation, especialy when replying to a request from a novice.
tso
 
Posts: 798
Joined: 22 June 2005

Postby Carcul » Fri Feb 10, 2006 9:48 am

Tso wrote:It wouldn't hurt for those using more complex notation that isn't readable by a bright newcomer (or slow regular) to include a few lines of explanation and/or a link to a full explanation of the notation, especialy when replying to a request from a novice.


Obviously, I feel that I am one of "those". However, I have the habit of not provide explanations because I am accostumated, in my life, to find or understand things by myself, and so I have a tendency to suppose that others should do the same, because that is (for me) the best way to learn. But you are right: from now on I will try to provide some explanation when I post my deductions. But don't forget that, many times, trying to explain a deduction is more time consuming (and harder) than finding the deduction itself.

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

Postby Wolfgang » Fri Feb 10, 2006 10:18 am

Wolfgang wrote:...sometimes its easier for me to solve it myself than to read the nice loop notation:)

I dare say that in the meantime with some practice im able to read the notation nearly as fast than aeb's or my own. And its a bit more informative. But i still have some problems to write one correctly, so i stick to my own for now.
MJ's proposed notation at the first glance looks that chinese for me as the nice loops did the first time. But if he wants to use it, im willing to learn to read it too, cause im interested in his deductions.
Wolfgang
 
Posts: 208
Joined: 22 June 2005

Postby Jeff » Mon Feb 27, 2006 6:15 am

Carcul wrote:But you are right: from now on I will try to provide some explanation when I post my deductions. But don't forget that, many times, trying to explain a deduction is more time consuming (and harder) than finding the deduction itself.

Hi Carcul, Explanation on notations for 'strong inference' and 'weak inference' has been added to the "Forcing chains: Terminology and Definition" post, to which you may simply refer. This would narrow your footnote to such complicated notations as ‘multiple inference’, ‘almost pattern’, etc.
Jeff
 
Posts: 708
Joined: 01 August 2005

Postby Carcul » Mon Feb 27, 2006 11:07 am

Hi Jeff.

Ok, thanks. That post of yours is a really good reference tool for any nice guy.:D

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


Return to Advanced solving techniques