denis wrote

About your solution, I don't understand any step in it.

I can see lots of tags on your candidates. You say we can forget tags. But is it so sure? If we can forget them, why do you have to put them?

Aren't you using some form of tagging/colouring, i.e. some form of uncontrolled constraints propagation which would amount to T&E?

(I must say that the algorithm you described so succinctly in your first post gave me that impression and this may be an unconscious reason for my late answer).

To make this clear, could you state the rules you are using?

Could you give a complete step by step sequence of eliminations for this puzzle, each justified by a precise rule?

I hope you'll find herebelow a first set of answer allowing differed more detailed explainations.

denis wrote

Finally, what does your solver give for the following puzzle:

260000001

719000030

043007200

006503080

000060000

000700060

100004900

030908000

007000300

It was really a tough job to solve it (forced to enter step 3 and 10 seconds solving time), but we are far from the toughest solved on my side : 42 seconds.

I think it would not be appropriate to publish any partial print before I could have prepared a new version of prints following local rules.

denis wrote

Finally bis, what's the address of the French forum?

Here is the forum where your xyzt chain are under discussion. It is probably the best french forum investigating new tools.

http://www.sudoku-factory.com/forumsudoku/I am personnaly working with a small group on the Figaro Sudoku forum mainly with puzzles at the level of step1.

re'born wrote:

- Code: Select all
`#1H9 `

[]9H5/9F5_1F5/1F1_1H1/1H9

[]9H9/1H9

[]9H8/6H8_6H9/1H9

becomes

Code:

r5c8=9 => r5c6=1 => r1c6<>1 => r1c8=1 => r9c8<>1

r9c8=9 => r9c8<>1

r8c8=9 => r8c8<>6 => r9c8=6 => r9c8<>1

Since 9 can only appear in rows 5,8,9 in column 8, we conclude that r9c8<>1.

This is OK, but I will add comments to comply with Denis view that rules have to be clearly stated. (I fully agree)

Here are three Alternate chains beginning and ending by a weak link.

Theese chain are defining a derived weak link (or distant weak link) between both ends.

eg: 9(r5c8) and 1(r9c8) can not be both in the solution.

The final shortcut can be written

9(r5c8)/1(r9c8)

9(r9c8)/1(r9c8)

9(r8c8)/1(r9c8)

9(r5c8);9(r9c8);9(r8c8) is a set of candidates (could be groups) in which at least one is valid.

If each component of such a set has a weak link with another candidate (or group of candidates) then that candidate (group of candidates) can be cleared.

In fact, up to now, i am only using sets with one and only one valid candidate/group.

re'born wrote

champagne wrote:

#4(E2E3E6)

[]4(E2E3E6)/1(E3E6)|*E2E3E6 _1E4/1F5_9F5/9H5_9(H8H9)/4(H8H9)|*H8H9 _4H7/4(D7F7)_4(E7E8E9)/4(E2E3E6)

First note the almost hidden set in r2346c5 with hidden candidates 1,3,5. A 4 in r234c5 will force the hidden candidates into the other cells of r2346c5, and hence we would have r4c5=1. Next note that r89c8 is an almost hidden set with hidden candidate 6. Therefore if, for instance r89c8=9, then we would have r89c8=<69>. We can now write down champagne's forcing chain:

Code:

r236c5=4 => r4c5=1 => r5c6=9 => r5c8<>9 => r89c8=9 => r89c8=<69> => r7c8=4 => r7c46<>4 => r789c5=4 => r236c5<>4

and therefore, r236c5<>4.

To paraphrase what champagne already said, whenever he uses the notation |*A, the set A of cells is an almost hidden set, i.e., it contains n cells and n-1 hidden candidates. This way when he writes something like

4(E2E3E6)/1(E3E6)|*E2E3E6

In principle, you got it. Let me describe the way I process the pattern in column 5.

- Code: Select all
`C5: _ 2345 12345 | 147 __ 13457 |247 2479 249 `

r4r7r8 147 247 2479 249

is an ALS (four cells digits 12479, one digit in excess)

complementary cells

r2r3r6 2345 12345 13457 (three cell digits 123457 digits 3 and 5 will be in the solution)

are forming what I call an

"almost cell". Only one digit has still to be found.

all intances of the same digit in one of theese entities are groupped unless they are compulsory.

eg 2(r2c5 r3c5) is a group, but we forget digits 3,5,9.

Groups of the same digit are new strong links.

In the second entitie (Almost cell) each pair of groups is forming a weak-link.By the way, a cell is the smallest "almost cell" and we are doing exactly what is done in a cell.

re'born wrote

I imagine we are supposed to be saying "if 4 is in r236c5, then due to the almost hidden set in r236c5

(and the placement of the hidden candidates in that set) we can exclude 1 from r36c5."

We could, but it's not in the philosophy of weak links and alternate chains.

This is a pure weak link, thats it.re'born wrote

Edit2:(A different ending) After step 2 and cleaning up the grid we get the following ALS xz-rule application, which we state in terms of subset counting.

I am short in time, but i'll go deeper in your point.

The nice loop is also very impressive. One remark; if you do the clearing, you'll notice than regarding ALS/'Almost cells", all is done in "almost cells"

ronk wrote

That's a complex, but very clever step. It has two almost-locked-sets (ALSs), grouped candidates, and overlapping endpoints of the chain.

I would only add comments on complexity, other comments are here above.

In fact, in that process, you are only keeping track of weak links. I'll clarify that point later on .

Here, in step one, there was 57 relevant weak links. Very often, they are about 20 which put the puzzle in a position to be solved easily in hand processing.

In step two, we have close to 2000 weak links.

The process in itself is not changed, but we have exceeded human capability to do it.

I have ways to enter partially in the process using the most relevant ALS.