September 26, 2019

Post puzzles for others to solve here.

Re: September 26, 2019

Postby SCLT » Sat Sep 28, 2019 8:38 am

SpAce wrote:Of course I can only speak for myself, but somehow I bet the process is not all that different for most human players capable of solving non-basic puzzles.


I concur. Any of my chaining solutions which use a named technique such as "M-Wing" are found first and foremost as a general AIC. I only stick the name on afterwards when I realise the chain is short.
SCLT
 
Posts: 171
Joined: 06 August 2013

Re: September 26, 2019

Postby SpAce » Sat Sep 28, 2019 9:06 am

SCLT wrote:I concur. Any of my chaining solutions which use a named technique such as "M-Wing" are found first and foremost as a general AIC. I only stick the name on afterwards when I realise the chain is short.

Thanks for confirming that, SCLT! Glad to know it's not just me.
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: September 26, 2019

Postby SpAce » Sat Sep 28, 2019 9:59 am

Speaking of wings, there's another one in the same cells:

Code: Select all
.----------------.---------------------.----------------.
| 1    459  456  |  8      569  5679   | 3     579   2  |
| 56   2    568  |  4      3    5679   | 5789  1     59 |
| 3    589  7    |  1      2    59     | 589   4     6  |
:----------------+---------------------+----------------:
| 57   357  1    | b39    c89   2      | 6     5789  4  |
| 8    6    9    |  5      7    4      | 2     3     1  |
| 4    357  2    |  6      1    389    | 579   5789  59 |
:----------------+---------------------+----------------:
| 9    1    356  |  7      56   356    | 4     2     8  |
| 257  578  58   | a2[9]   4   e5(8)-9 | 1     6     3  |
| 26   48   3468 |  23    d68   1      | 59    59    7  |
'----------------'---------------------'----------------'

S-Wing: (9)r8c4 = r4c4 - (9=8)r4c45 - r9c5 = (8)r8c6 => -9 r8c6; stte
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: September 26, 2019

Postby rjamil » Sat Sep 28, 2019 3:14 pm

Hi SpAce and SCLT,

SpAce wrote:I guess that makes me and a lot of other players non-human, then.

Well, certainly not. Actually, I consider myself as novice player in Sudoku world. And always need guidance from experts. A human-style means having common-man capabilities.

SpAce wrote:As far as I know, you don't do any manual solving yourself, so what makes you think you have any idea what "human style techniques" actually are? Do you think WXYZ-Wing is a human style technique? M-Wing? H-Wings? S-Wing? L-Wings? Do you think most human players easily spot them with a naked eye or look for them specifically, just because they happen to be named patterns?

True. I am basically a programmer i/o Sudoku player.

SpAce wrote:I can tell you right now that I've almost never spotted any of them directly (except in p&p solving where I have better visual cues) nor looked for them specifically. Yet I've found plenty of them and presented them as such (after learning their names), but I also find much longer unnamed chains with the same exact process. Most of the time those named patterns aren't any easier to find manually despite being simpler in principle. The process that reveals both kinds is exactly the same, at least for me, which makes pretty much all chains equally "human style techniques", regardless of their length and (to some degree) complexity. Chains of any length are actually very easy to find for a human player if you just have a proper technique (like coloring) for that. And when you do, then it makes no difference if the chain is a short wing or something way longer and more complicated. The logic is exactly the same, and both kinds are best expressed in Eureka.

I consider yourself as expert player. How do a novice programmer be compared with an expert player?

SpAce wrote:Only a few small patterns are relatively easy to spot directly (such as Remote Pair, X-Wing and other Turbot Fishes, Y-Wing, XYZ-Wing, W-Wing, and especially various DPs), and I may look for those first before attempting more generic and effective methods. However, to look for something like an M-Wing specifically makes zero sense to me, because it doesn't really have easily spottable tell-tale signs with the mediocre filtering capability of Hodoku, for example (in p&p I'd be much more likely to spot one, however). It would be mostly a wasted effort. It's much more efficient to use a generic method that finds any chain, including those short wings if they happen to be available.

Well, being programmer, after reading StrmCkr given step by step recognition of M-Wings and M-Rings, am able to add a routine to detect the same in my program. And that's it.

SpAce wrote:Of course I can only speak for myself, but somehow I bet the process is not all that different for most human players capable of solving non-basic puzzles. If I'm correct about that, it pretty much breaks your apparent idea of "human style techniques". As far as I'm concerned, the easiest and the most effective human style technique for puzzles in the semi-advanced SE 6.0-8.9 range is coloring, not pattern spotting, and its results are best expressed with Eureka. On the other hand, pattern spotting works well for easier puzzles, and harder puzzles pretty much require some form of it (with much harder patterns). Most of the named mid-range patterns you're concentrating on aren't any more or less human style techniques than longer chains, as far as I'm concerned.

SCLT wrote:I concur. Any of my chaining solutions which use a named technique such as "M-Wing" are found first and foremost as a general AIC. I only stick the name on afterwards when I realise the chain is short.

I have no comments about the matter as SCLT also detect general AIC first (definitely via program) and labelled if chain is short and has a name. I wish I will definitely do the same if able to program general AIC...

However, I would like to thank SpAce for providing such helping six distinct configurations having exactly three strong links.

R. Jamil
rjamil
 
Posts: 730
Joined: 15 October 2014
Location: Karachi, Pakistan

Re: September 26, 2019

Postby SCLT » Sat Sep 28, 2019 3:30 pm

rjamil wrote:I have no comments about the matter as SCLT also detect general AIC first (definitely via program)


I'd be interested to hear what makes you think I solve these puzzles using a program!
SCLT
 
Posts: 171
Joined: 06 August 2013

Re: September 26, 2019

Postby rjamil » Sat Sep 28, 2019 3:49 pm

Hi SCLT,

SCLT wrote:I'd be interested to hear what makes you think I solve these puzzles using a program!

Well, if not then I consider yourself as expert too.

R. Jamil
rjamil
 
Posts: 730
Joined: 15 October 2014
Location: Karachi, Pakistan

Re: September 26, 2019

Postby SpAce » Sun Sep 29, 2019 5:28 am

rjamil wrote:Actually, I consider myself as novice player in Sudoku world. And always need guidance from experts. A human-style means having common-man capabilities.

I understood what you meant, but I tried to tell you that many of the patterns you've added to your solver don't in fact reflect "common-man" capabilities, at least if you're assuming that typical players can spot them directly. Apparently they're not even expert capabilities, if you consider myself and SCLT experts as you said. Yes, we can find them and usually pretty easily, but not via direct pattern-recognition. That would take a much higher-level expert! The actual techniques we (or at least I) use to find our solutions are easier and at the same time much more powerful. Despite being more powerful, they're much closer to common-man capabilities because they don't require any special pattern-recognition skills or memorization of patterns. I'm pretty sure almost anyone can learn them, and they shouldn't be that hard to program either.

Btw, something picked up from your link:

nap.edu wrote:The idea that experts recognize features and patterns that are not noticed by novices is potentially important for improving instruction. When viewing instructional texts, slides, and videotapes, for example, the information noticed by novices can be quite different from what is noticed by experts. One dimension of acquiring greater competence appears to be the increased ability to segment the perceptual field (learning how to see).

Indeed. My real expertise is in learning, and it means that even with totally new subjects I can often identify the relevant bits quite early and create a learning strategy that gives the highest payoff in the shortest amount of time. In sudoku it meant that I skipped all the named patterns and focused on coloring and chaining right away, when I started studying non-basic techniques. In hindsight it was clearly the right decision, because I turned from a mediocre basic player into a decent advanced player in a few months during the spring and summer of 2017. If I'd chosen a pattern-focused strategy I'm sure I'd still be struggling. Furthermore, after I'd built a strong chaining foundation all the common patterns were much easier to pick up as well, because they actually made sense and didn't require memorization at all.

What I'm saying is that my relatively quickly acquired sudoku abilities are much more due to a good learning strategy than exceptional learning skills. I'm also quite certain that the same strategy would benefit anyone who wants to advance more quickly or write a more powerful program. With so much available information and limited time, it's all about focusing on the relevant bits that have the most generic value.

I consider yourself as expert player. How do a novice programmer be compared with an expert player?

This is not about meaningless comparisons. If you consider me an expert, then use that expertise to your benefit. As I explained above, my sudoku skills are mostly due to good strategic choices when picking what to learn and in what order. Those same choices could probably help you as well to improve your understanding of the game and your program too.

Well, being programmer, after reading StrmCkr given step by step recognition of M-Wings and M-Rings, am able to add a routine to detect the same in my program. And that's it.

And that's commendable. I respect your ability to successfully code various patterns into your solver, and surely they all add to its capabilities. However, no matter how many named patterns you add, it will never even approach the solving power of generic AICs, nor would it reflect the way most human players actually solve puzzles. Also, since you're a programmer, understanding AICs should be a piece of cake for you. They're almost like little programs with if-then-else type of logic (similarly krakens are like switch-case types of structures, and nets are like multi-threaded programs -- all of them expressible with Eureka).

I have no comments about the matter as SCLT also detect general AIC first (definitely via program)

I have no idea why you'd think SCLT uses a program to find his solutions. It's not very nice to even suspect that unless it's been admitted or otherwise self-evident. For example, if someone posts a solution less than three minutes after the puzzle has been posted (like Leren sometimes did), then there's not much of a question how the solution was generated. My manual record is 11 minutes, and it's probably close to the practical minimum, because I saw both the puzzle and the solution (an easy BUG+3) almost immediately -- still it took that much time to write the solution and the grid markings.

I wish I will definitely do the same if able to program general AIC...

I'm sure you can do that, if you decide to put your focus on it. It's a strategic choice. Do you want to keep hard-coding patterns or make a one-time investment in learning and programming generic chains? The latter would give you everything the first does plus much more.

However, I would like to thank SpAce for providing such helping six distinct configurations having exactly three strong links.

No problem. Glad if it helped. I know it helped me because I would have never bothered to learn to recognize the more exotic wing types if there weren't any unifying logic making it easy. I avoid meaningless memorization at all costs.
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: September 26, 2019

Postby rjamil » Sun Sep 29, 2019 12:42 pm

Hi SpAce,

SpAce wrote:I understood what you meant, but I tried to tell you that many of the patterns you've added to your solver don't in fact reflect "common-man" capabilities, at least if you're assuming that typical players can spot them directly. Apparently they're not even expert capabilities, if you consider myself and SCLT experts as you said. Yes, we can find them and usually pretty easily, but not via direct pattern-recognition. That would take a much higher-level expert! The actual techniques we (or at least I) use to find our solutions are easier and at the same time much more powerful. Despite being more powerful, they're much closer to common-man capabilities because they don't require any special pattern-recognition skills or memorization of patterns. I'm pretty sure almost anyone can learn them, and they shouldn't be that hard to program either.

Well, I consider those patterns that I understand for programming. Few of the hurdles that I faced for gaining sudoku abilities are language barrier and analysis.

I do prefer to program only those techniques that are either not defined as rocket science; or at least understandable for me. Let for example, in The Ultimate Fish Guide, I am unable to understand the whole except basic fishes due to my limited capacities.

By the way, I can't imagine whole Turbot Fish technique, but I will include Loader Crane and Tower Crane pattern names in to my to do list as how it defined is clear for me to understand. :roll:

However, no matter how many named patterns you add, it will never even approach the solving power of generic AICs, nor would it reflect the way most human players actually solve puzzles. Also, since you're a programmer, understanding AICs should be a piece of cake for you. They're almost like little programs with if-then-else type of logic (similarly krakens are like switch-case types of structures, and nets are like multi-threaded programs -- all of them expressible with Eureka).

Well, I wish I will understand those techniques too. But, given/available materials are not either sufficient or understandable for at least me at the moment.

At least I understand the six distinct configurations having exactly three strong links provided by your good-self but not all single letter wings techniques.

R. Jamil
rjamil
 
Posts: 730
Joined: 15 October 2014
Location: Karachi, Pakistan

Re: September 26, 2019

Postby SpAce » Mon Sep 30, 2019 5:36 am

rjamil wrote:Well, I consider those patterns that I understand for programming.

That's understandable.

I do prefer to program only those techniques that are either not defined as rocket science; or at least understandable for me. Let for example, in The Ultimate Fish Guide, I am unable to understand the whole except basic fishes due to my limited capacities.

Fishes are more difficult to understand, much more difficult to spot, and generally way less useful than chains. That's why I postponed studying them until much later, and you should too. In normal solving fishes have marginal value, and complex fishes even less, because they can almost always be worked around. For example, most Franken and Mutant fishes are also grouped X-Chains and much simpler to see as such -- at least for someone adept in chaining. The real value of understanding fishes, or more generally set logic, becomes apparent with much more advanced techniques required for really difficult puzzles.

By the way, I can't imagine whole Turbot Fish technique

What part of it don't you understand? If you want to eventually understand AICs, the Turbot Fish family (and X-Chains in general) is the best place to start, because they're the simplest kinds of AICs. X-Chains only use one digit and one strong link type (bilocal), and Turbots only have two strong links making them the simplest kind of X-Chains. In other words, their strong link configuration is LL, and they can be expressed with this pseudo-AIC with two strong links and one weak link:

a = a - a = a => -a (any cell that sees both start and end cell)

The only difference between the different types of Turbot Fishes is where the two strong links ('=') occur. If both are rows or columns, you have either a Skyscraper or an X-Wing (loop). If one is a row and the other column, you have a 2-String Kite. If one is a box and the other a row or a column, you have a Turbot Crane. That's it. Other X-Chains are just longer versions of Turbots with more links.

but I will include Loader Crane and Tower Crane pattern names in to my to do list as how it defined is clear for me to understand. :roll:

I have mixed feelings about that. I think we should have stuck to using "Turbot Crane" for the missing type (blue gave his thumbs up for that, and I think it's a good sign) and kept the normal "ER" for the grouped case. That would have been simplest, but then I let StrmCkr bring in his deep love of unnecessary complexity. His "Loader Crane" idea was clever and made sense in principle, but it has no obvious connection to the Turbot Fish family. My extension of it with the "Tower Crane" was even worse. They would have been great names if given originally to those patterns, but there's little chance anyone (except you, it seems) would adopt them now. I shouldn't have let that happen. Sometimes clever ideas just don't work.

At least I understand the six distinct configurations having exactly three strong links provided by your good-self but not all single letter wings techniques.

That's a very good start. Once you understand the logic of the different wing types and their Eureka representations, you can pretty much understand every (basic) AIC. The link structure of every AIC can be described with such configurations. For example, Clement's chain from here:

Ngisa wrote:(3=5)r6c3 - r4c3 = r4c4 - r1c4 = (5-1)r1c6 = (1-6)r5c6 = (6)r6c5 => - 3r6c5; stte

It has a total of five strong links ('='), one of which is bivalue (the first) and the rest bilocal. In other words, its link structure is: VLLLL. Basically it's an elongated H2-Wing (VLL) using four digits (3,5,1,6). As a pseudo-AIC:

(a=b) - b = b - b = (b-c) = (c-d) = d => -a (end cell)

Anyway, I repeat myself, but I strongly suggest you start with X-Chains if you want to understand AICs. That's what I did. It's much easier to deal with a single digit and a single strong (and weak) link type at first, yet it teaches all the fundamentals of chaining (like strong vs weak). Once you have a grasp of that, then move on to chains that use multiple digits and cell-based links. The single-letter wings are a good place to start with those, because they pretty much cover all the different variants of basic chains in compact forms. Yet, learn X-Chains first! (Btw, X-Chains of length 6, i.e. those that have three strong links, are logically L1-Wings (i.e. LLL with a single digit). No one calls them that, though.)
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Previous

Return to Puzzles