Hi Allan and strmckr,
I keep that post as prepared although part of the content is overlapping edit of Allan in the last post and strmckr remarks. I add at the end a partial answer to strmckr.
Allan Barker wrote:
It sounds like you have something more specific in mind and perhaps something with specific properties. Can you better describe your meaning of hard core logic?
Nothing really clear up to now, but some ideas.
1 when you have a group of sets leading to actions (clearings or assignments), you can add any set, the already found clearing will stay valid.
2) Reversely, you can check whether you have the minimal set trying to suppress sets one by one. If you still have the same actions. For sure, sets bearing actions must stay. At the end, you have a kind of “minimal set” for these actions
3) You still have the possibility at that point to find subsets leading to a reduced “actions capability”. If so, you go to one minimal subset per “reduced actions capability”.I have no example of that (out of what you said regarding “Fata Morgana”, but this seems granted.
Starting from that and having in mind that blind search of “active groups of sets” is horrible, I am thinking of specific strategies.
A specific strategy should fit with the human capability to recognize patterns, but it is to early to include this as a constraint.The overall strategy would be to test big groups of sets and to apply a “slim fast” program to come to smaller patterns. I will give numbers later.
“Fishy patterns”The simplest test is to consider a “rookery” (I use the word mentioned by "ronk" as qualifying all candidates of the same digit). A “rookery” includes all “fishy patterns” if I don’t misuse that qualification (XWing, Swordfish… but also Turbots …)
Testing a rookery is some milliseconds work. You know immediately if there is something to do out of it. You have to test 9 groups to focus (if needed) on the “active rookeries”.
Any rookery is limited to 27 sets, so it will be easy to apply the “slim fast” program.
Multiple rookeries strategyIf we try to do more form here, we can apply a “focusing” strategy including full rookeries. Let see on three examples how I think it could work. First of all, a multi rookery should be limited to 5 rookeries, less if some digits are missing (half of the lot). We will see that I am thinking of testing 5 rookeries for EM first loop;
Bi rookery.Assuming all digits have still candidates, we have 36 bi-rookery possibilities. The process would be the following:
1) includes both rookeries
2) Add all nodes having one or both digits
3) Test that situation
4) If “action”, start the “slim fast” program.Alternatively, you could in priority test bi rookeries having bi value nodes of the two digits. This is very often in “easy” puzzles where chains are crossing rookeries.
Three rookeriesWe have 84 possibilities in a blind mode search. It becomes significant, but still very small compared to a step by step blind search.
We have a good example of a three rookery loop with “Fata Morgana”. The process would be basically the same as for two rookeries. Here, we can have the temptation to add a filter to improve the logic, or to be closer of human players detection of interesting patterns. I see several possibilities:
- At least one ternary node having the three digits,
- At least n ternary nodes having the three digits
- At least two such ternary nodes belonging to the same unit.I am convinced, but this will be my next test, that a test on Fata Morgana rookeriess 136 will give very good results.
Easter Monster.EM is an interesting case. Your loop is limited to rookeries 1267. If I am looking for clues to study it, I see nearly nothing. Just one node having only these four digits.
We have 126 possibilities in a blind mode search with 4 or 5 rookeries. Still manageable.
If I had to consider filters, a 5 rookeries in EM would be more attractive. Complementary rookeries to 1267 is the rest of the EM SK loop. But we have a better incentive to consider that group due to four nodes that could be sets (N1,7 N3,9 N7,9 N9,7)
I suspect that we could extract another “active group of sets” using these rookeries as you did using “1267”.
That’s all for the time being.Allan Barker wrote:Using permutations and solving a puzzle with sets are the two biggest ideas behind the solver. In addition, there are a couple of procedures I found that are useful for dealing with the complexity. One is the choice of the next set in a sequence of sets. In a similar way, the performance of Algorithm X depends on choosing the next step.
I think it would be best for me to describe the whole process including how to find eliminations and put it on my website. I might get it uploaded early next week.
That would be a good idea.
champagne
ps to Strmckr.
I think you shoul not be afraid whether this search is far from your way to focus on the interesting part of the puzzle.
First of all, the human logic is nearly impossible to apply as such.
Selecting the "appropriate strategy" as I said several times is meaningless if it does not fit with human behaviour. I am convinced that in several steps, we will be much closer to you.
Last but not least, I will restart the "supercandidate" implementation as soon as I have finished that attempt to understand how Allan logic works.