AIC Type1:(5=4)r4c1-(4=2)r2c1-r2c4=(2-5)r3c4=5r5c4 => r5c1<>5 r5c3<>5 ;stte
yzfwsf wrote:AIC Type1:(5=4)r4c1-(4=2)r2c1-r2c4=(2-5)r3c4=5r5c4 => r5c1<>5 r5c3<>5 ;stte
SpAce wrote:
- Code: Select all
5r4c1 4r4c1
4r2c1 2r2c1
2r2c4 2r3c4
5r4c4 5r3c4
------------------------
-5r4c13
yzfwsf wrote:I think there should be a typo here -5r4c13 => -5r5c13
SpAce wrote:ghfick wrote:I tried your puzzle with each of these solvers. They each give essentially the same solution path.
Of course, because by default they all use the "simplest first" strategy, just like Denis' solver.
SpAce wrote:ghfick wrote:For me, learning the XY Chain was so valuable. It is definitely usable by humans and it is arguably 'easier' than many steps.
Yes, we know you love them. I almost never use them because nicer options are usually available. XY-Chains are usually long, tedious to read and write, and mostly actually less easy to find than other AIC-types (if you have a good technique to find any AICs). .
SpAce wrote:Btw, in this case, the SudokuWiki's XY-Chain (9 strong links!) is one of the most inefficient chains I've seen in a long time. Most XY-Chains are inefficient anyway but this one is especially dumb:
(2=4)r2c1 - (4=5)r4c1 - (5=4)r4c8 - (4=5)r9c8 - (5=4)r9c9 - (4=5)r6c9 - (5=7)r6c6 - (7=5)r3c6 - (5=2)r3c4 => -2 r2c4,r3c2.
(solve ".....1289....695719.1.8.463...9127.8.9...8.26...6...9.3598246178..1569326127938..")
;;; starting from the PM
biv-chain-rc[3]: r2c1{n4 n2} - r3c2{n2 n7} - r8c2{n7 n4} ==> r1c2 ≠ 4, r2c2 ≠ 4
biv-chain-rc[6]: r3c2{n7 n2} - r2c1{n2 n4} - r4c1{n4 n5} - r4c8{n5 n4} - r6c9{n4 n5} - r6c6{n5 n7} ==> r6c2 ≠ 7, r3c6 ≠ 7
stte
SpAce wrote:That's still 7 strong links and 4 digits. We can further streamline it by mixing in bilocal links:
(2=4)r2c1 - (4=5)r4c1 - r4c8 = r6c9 - r6c6 = r3c6 - (5=2)r3c4 => -2 r2c4,r3c2
That's 5 strong links and 3 digits -- clearly simpler, except for the mixed link types (but that shouldn't be a problem for anyone who uses chains regularly). Easier to read too without so many unnecessarily flip-flopping digits. Yet it's still a bit longer than my chain that had four strong links.compressed variants: Show
denis_berthier wrote:SpAce wrote:ghfick wrote:I tried your puzzle with each of these solvers. They each give essentially the same solution path.
Of course, because by default they all use the "simplest first" strategy, just like Denis' solver.
Same paths, really? Have you looked at the solutions?
xy-chains are the most basic type of chains one can imagine.
They were the starting point for all my more complex chains. They are very easy to find, even the long ones.
Well, I guess it depends on what you are looking for.
I don't understand your point about the length of xy-chains. A few days ago, you said length didn't matter.
SpAce wrote:Your conclusion should be that SudokuWiki is especially dumb here, not that xy-chains are.
Of course, less powerful techniques generally require longer chains and what we get here is indeed longer than my previous solution with 3D bivalue-chains (max length = 4). But the point is, for players who prefer working in the rc-space alone, disregarding bilocation (and this is a normal stance for beginners), this puzzle has a simple solution in it.
I will not go into the details here. The purpose of any language (natural or artificial as in a notation for chains) is communication. This always implies some amount of redundancy and your goal of "compactness before all" seems to result from a misunderstanding of the higher purpose.
The AIC notation is already illegible...
As for your extrapolation that the resulting chain is "shorter", it's only a redefinition of length;
nothing is shorter for real.
SpAce wrote:denis_berthier wrote:xy-chains are the most basic type of chains one can imagine.
Then you should imagine harder X-Chains are the simplest by far, using only a single digit and rcb-houses (no cells) for both strong and weak links, and having quite limited lengths. For a manual solver who's equally skilled in all chain types, they're also by far the easiest to find. [...]The only advantage of XY-Chains is that, without digit highlighting or special pencil marks, bivalue cells are somewhat easier to spot than bilocal links, but even that advantage is gone if one solves without pencil marks.
SpAce wrote:denis_berthier wrote:They were the starting point for all my more complex chains. They are very easy to find, even the long ones.
They're easy to find if you look for them specifically, but why do that? If there are no XY-Chains available, you've just wasted time looking for them.
SpAce wrote:Why limit yourself to a single chain type when you can find all with a single process just as easily? That's my point.
SpAce wrote:denis_berthier wrote:I don't understand your point about the length of xy-chains. A few days ago, you said length didn't matter.
No, I definitely didn't say that. I said: "there's no real difference in the difficulty of finding chains of various lengths", and I stand by that. However, length is surely a factor in determining the efficiency and elegance of a chain. If I can choose between a short and a long chain that do the same job, of course I choose the shorter one, unless it's way more complex otherwise.
SpAce wrote:denis_berthier wrote:Of course, less powerful techniques generally require longer chains and what we get here is indeed longer than my previous solution with 3D bivalue-chains (max length = 4). But the point is, for players who prefer working in the rc-space alone, disregarding bilocation (and this is a normal stance for beginners), this puzzle has a simple solution in it.
Normal perhaps, but it's a very poor stance for beginners too. Since X-Chains are the simplest type, it's best to start with them. Once the player understands and is able to find them, they can move on to multi-digit chains, starting with XY-chains as the simplest type of them. Once they understand those too, it's relatively simple to combine both into mixed-type chains. That process, combined with a good coloring system, pretty much guarantees that all of those chain types are equally easy in no time. Or at least it worked for me extremely well.
SpAce wrote:And no, it certainly doesn't require playing on three or even four simultaneous grids in different spaces,
SpAce wrote:I have no idea what you need the bn-space for.
SpAce wrote: I don't see anyone using your system here, even though you've presented and marketed it heavily many years ago.
SpAce wrote:denis_berthier wrote:nothing is shorter for real.
That's false, of course. The actual text of the chain is definitely shorter, yet it contains the same amount of information. That has some value in most contexts.
denis_berthier wrote:OK for X-chains being simpler than xy-chains. This is one pattern I might add to SudoRules some day.
Actually, I was thinking of generic chains only (i.e. meaningful in any CSP). X-chains are not generic.
SpAce wrote:They're easy to find if you look for them specifically, but why do that? If there are no XY-Chains available, you've just wasted time looking for them.
This is one thing you could say for any pattern.
Why look for XWYZWings if there are none?
And why look for kites?
One just doesn't know in advance.
Supposing one uses PMs, it's obvious to spot the potential components (bivalue rc-cells)
But which single process common to all the chain types are you referring to? If you mean colouring (as I guess),
it's not the same process for whips and for braids. Whips have the immense advantage of continuity.
In practice, the bn-space isn't very useful. But if you look at some of the resolution paths I gave in the 2D-chains thread, some chains do appear in it. In theory, it represents the contents of the CSP-Variables of type bn.
At the time of HLS, I hesitated about writing b4n3{r4c1 r5c3} or b4n3{s1 s6} . The second seems to be simpler. However, it makes it very difficult to see the link with the previous and next CSP-Variables. In the notation I finally chose, you have the 3 coordinates.
Another reason is that the p or s coordinate is of no use. There's no bs (bp for you) duality, contrary to the rc duality.
So, that's it. When someone uses the AIC notation, he merely uses it. But when I use my nrc-notation I market it. The good question should be why should everyone be pressured to use the AIC notation, as has always been the case in the three dead main forums?
SpAce wrote:denis_berthier wrote:OK for X-chains being simpler than xy-chains. This is one pattern I might add to SudoRules some day.
I'm really surprised that you don't already have it. So, how do you find even the simplest Turbot Fishes, i.e. Skyscrapers, Kites, and Cranes? D
SpAce wrote:denis_berthier wrote:Actually, I was thinking of generic chains only (i.e. meaningful in any CSP). X-chains are not generic.
What does that mean? How are XY-Chains any more generic? Sorry, but I'm not an expert in generalized CSP thinking.
SpAce wrote:I still don't know what whips and braids are.
SpAce wrote:For example, to get into your system I'd need to understand the overarching philosophy behind it
SpAce wrote: and how the various components (the zillion chain types)
SpAce wrote:Of course the greatest discovery would be to see that your system actually has some useful concepts and techniques for which we don't have equivalent counterparts.
SpAce wrote:I don't think either of us can know that at the moment, because it requires very intimate understanding of both systems
creint wrote:Well I added pasting the resolution path of SudoRules into my solver.
creint wrote:Some thing are now clear to me:
-Whips are some sort of X-sudo like structures.
creint wrote:You can draw the truths/links in x-sudo and you get the same exclusions (sometimes more).
creint wrote:Other structures are probably the same. Only a subset of all the truth+link combinations are defined, for example hidden pair (2 digit truths + 2 cell links). Maybe this makes it easier to understand.
creint wrote:SudoRules outputs a single elimination while the structure gives more.
because you din't look at the right place. There's a full chapter in PBCS about sk-loops (indeed, not for their interest per se, but as an example of modelling)creint wrote:I could not find any braids/sk-loop notations.
creint wrote:How fast is SudoRules?
creint wrote:How does the solver find the resolution steps?
creint wrote:Can your solver find more resolution steps for the same exclusion?
creint wrote:I still don't understand CSP, searching in your book with 486 pages is probably an option.
denis_berthier wrote:X-chains are a special case of bivalue-chains.
SpAce wrote:I still don't know what whips and braids are.
Probably, if you had spent as much time trying to understand them as you spend saying you don't know what they are, by now you'd know.
No, the logical foundations of my approach are not necessary for understanding whips. You can start PBCS at chapter 5 on whips if you are not interested in logical foundations.
PBCS was not intended as an introduction to Sudoku solving. It is a higher level sequel to HLS. In HLS, all the chains are largely illustrated with multiple examples.
There are a few different types of chains, because, unlike AICs that can be anything, my chains have precise definitions and they fit in a clear hierarchy of complexity.
And when you start reading one, the first thing you read is its name and you know in advance what you must expect.
SpAce wrote:Of course the greatest discovery would be to see that your system actually has some useful concepts and techniques for which we don't have equivalent counterparts.
I can easily claim whips, g-whips ,... satisfy these conditions.
Now, some people use what they call "memory chains"; those are nothing else than whips... disguised under another name and without the proper notation.
whip[1]: r4n3{c3 .} ==> r6c3 ≠ 3, r5c3 ≠ 3, r6c2 ≠ 3
whip[1]: r3n5{c6 .} ==> r1c4 ≠ 5
whip[1]: b5n3{r6c5 .} ==> r1c5 ≠ 3
whip[1]: r4n3{c23 .} ==> r6c3 ≠ 3, r5c3 ≠ 3, r6c2 ≠ 3
whip[1]: r3n5{c46 .} ==> r1c4 ≠ 5
whip[1]: b5n3{r56c5 .} ==> r1c5 ≠ 3
whip[3]: r4c1{n4 n5} - r5c3{n5 n7} - r8c3{n7 .} ==> r6c3 ≠ 4
(4)r6c3 - (4=!)r4c1,r58c3 => -4 r6c3
(4)r6c3 - r4c1,r58c3 = [(4=5)r4c1 - (5=7)r5c3 - (7=!)r8c3] => -4 r6c3
(!=4)r4c1,r58c3 => -4 r6c3
(4)r4c1,r58c3 = [(4=5)r4c1 - (5=7)r5c3 - (7=!)r8c3] => -4 r6c3
(DP=1|6)r4c6,r5c5 - (16=3|5)r2c56 - (35=6)r2c1,r3c4 => -6 r2c5,r3c1; stte
(4=5)r4c1 - (5=74)r58c3 => -4 r6c3
(45)b4p16 = (74)r58c3 => -4 r6c3
In the same way, TDPs are no more than forcing braids without the proper notion of length and the proper notation.
The advantages of whips in terms of resolution power are clear and they are clearly proven in the statistics of PBCS.
I don't know any "other system". In terms of logical approach, there is no other system. Before HLS, nobody had ever tried to explicit the logical foundations of solving.
If you mean AICs vs my rules, then the main difference is clearly reversibility (restricted use of knowledge) vs non-reversibility. As I said before, knowledge is not depleted by being used.
SpAce wrote:denis_berthier wrote:X-chains are a special case of bivalue-chains.
Okay, so you do find them as such (as I thought you must)? In that case I misunderstood what you meant. Of course X-Chains are a special case of biv-chains just like they're a special case of AICs. I still don't understand what you meant by adding them as a pattern, if they're already found as biv-chains. Doesn't that require just labeling them as x-chains?
SpAce wrote:denis_berthier wrote:There are a few different types of chains, because, unlike AICs that can be anything, my chains have precise definitions and they fit in a clear hierarchy of complexity.
Do you have a current picture of that hierarchy? That's exactly what I'd need to grasp the big picture. What is also a bit confusing is that your chains have changed names throughout the years, so it would be great to get an update on which chain types/names are current and which ones are obsolete (and any synonyms between them).
SpAce wrote:denis_berthier wrote:And when you start reading one, the first thing you read is its name and you know in advance what you must expect.
Yeah, but for that you need to know what each of those names means, which is a considerable burden for the reader (and the writer). With a correctly written AIC or any extension of it, the chain itself contains all the necessary information to interpret it as long as you know the syntax. For example, a correctly written memory chain is very easy to recognize, so there's no need to label it specifically. (That said, there could be much better standards for many features.)
SpAce wrote:denis_berthier wrote:Now, some people use what they call "memory chains"; those are nothing else than whips... disguised under another name and without the proper notation.
Seems pretty obvious to me that I really must try to look under the hood myself in order to find the truth.
SpAce wrote: I think I mostly understand the syntax too, except for the whip[1] intersections:
- Code: Select all
whip[1]: r4n3{c3 .} ==> r6c3 ≠ 3, r5c3 ≠ 3, r6c2 ≠ 3
whip[1]: r3n5{c6 .} ==> r1c4 ≠ 5
whip[1]: b5n3{r6c5 .} ==> r1c5 ≠ 3
(The first two are claiming and the last one is a pointing operation, in our terms.) If I've understood anything (and it's possible I haven't), I would think that the '.' in place of a right-linking candidate represents a contradiction.
SpAce wrote:In other words, if any of the targets is assumed, the left-linking candidate(s)
SpAce wrote:the left-linking candidate(s) will get killed making the right-linking candidates true, but since the last (and in this case only) CSP variable has no right-linking candidate it's a contradiction. Hence the target(s) can be eliminated.
SpAce wrote:denis_berthier wrote:The advantages of whips in terms of resolution power are clear and they are clearly proven in the statistics of PBCS.
I don't doubt that. Contradiction (and memory) chains are simple and powerful, obviously. But, unless whips are actually much more than those, I don't see how they're unique to your system.
denis_berthier wrote:They cannot be identified by SudoRules as x-chains if the x-chain pattern is not defined in SudoRules. Of course, on seeing a bivalue-chains that uses a single digit, we can say afterwards it's an x-chain.
SpAce wrote:Th hierarchy is clearly defined in PBCS.
A mapping of names from HLS to PBCS is already written in the CSP-Rules user manual.
Sure, the AIC notation is so clear and universal that half of the talks in the Puzzles forum are about what it means.
The "." itself doesn't represent a contradiction, but the absence of a candidate for this CSP-Variable. The contradiction is only the logical consequence of this factual absence.
There's only one target
and one left-liking candidate, the other candidates are t- or z-or right-linking candidates
Where can you see any definition of "contradiction (and memory) chains" or any theory about them?
(a=b) - (b=c) - (c=d) => -x (seen by a and d)
(a=b*) - (b=c) - (c|*b=d) => -x (seen by a and d)
(a=b*) - (b=c) - (c|*b=d) - (d|*b=e) => -x (seen by a and e)
(a=b*) - (b=c^) - (c=d) - (d|*b|^c=e) => -x (seen by a and e)
(a=b) - (b=c@|d) - (d=e) => -x (seen by a, c, and e)
(a=b) - (b=c@|d) - (d=e@|f) - (f=g) => -x (seen by a, c, e, and g)
SpAce wrote:denis_berthier wrote:A mapping of names from HLS to PBCS is already written in the CSP-Rules user manual.
And where might I find such a user manual?
SpAce wrote:About the evolution of your own notations... I just looked at some of your old chains and thought they were much more readable than the modern ones. The reason is clear too. Why did you switch from the "natural" n-first coordinates to the horrible r/c/b-first style? In other words, why r4n3{c3 .} instead of n3r4{c3 .}??? The latter style I could probably learn to read almost as easily as Eureka but no chance with the mangled coordinates. Also, since you call them nrc-chains, shouldn't it be logically reflected in the default order of the coordinates too?
SpAce wrote:denis_berthier wrote:The "." itself doesn't represent a contradiction, but the absence of a candidate for this CSP-Variable. The contradiction is only the logical consequence of this factual absence.
I understand. Yet for all practical purposes my interpretation works too, right? I think it's simpler to understand and to explain that way, but I accept that it's not precisely what was intended.
SpAce wrote:denis_berthier wrote:There's only one target
Yet you sometimes have multiple eliminations with a single chain/whip, so doesn't that imply multiple targets (or do they form a single target together)?
SpAce wrote:denis_berthier wrote:and one left-liking candidate, the other candidates are t- or z-or right-linking candidates
Ok. Are t-candidates those that I would be tempted to see as extra left-linking candidates that are hit by previous, non-adjacent right-linking candidates
SpAce wrote:(i.e. what we call memories)? Are z-candidates extra right-linking candidates that link directly to the target (i.e. what I would call alternate end-points)?
If so, both of those can be used within a memory chain (that's how they differ from AICs), so that's a direct mapping between your system and ours.
SpAce wrote:denis_berthier wrote:Where can you see any definition of "contradiction (and memory) chains" or any theory about them?
Nowhere,
SpAce wrote:If you're interested (probably not),