These variants imposes constraints on pairs of cells, known as binary constraints, a subject well studied in Constraint Satifaction Problems (CSP). Whenever one cell gets solved, the relation is automatically propagated to the other unsolved cell. So these solvers are not used for this simple case known as Forward Checking. You may turn off this automatic propagation in Options > Update Combinations after Solve.

This solver will lower the maximum value and/or raise the minimum value for each pair of cells constrained by a Greater/Less Than relation. It repeats until no change is made.

Note: it only consider two cells at a time. When some cell should be greater than several neighbourgh cells, its minimum should be above the combined minimum of the neighbourgh cells. Similarly the other way. For example:

R1C1 < R1C2 > R1C3

R1C2 should be >= 3 since 2 would force both R1C1=1 and R1C3=1 which is not possible.

This solver does not detect such cases and will leave the minimum below the valid combined minimum. For this example, it will set R1C2 >= 2, not 3.

This solver restricts the possibilities for a pair of unsolved cells constrained by a consecutive or non-consecutive relation.

For non-consecutive it checks the following cases:

A single cell with only two consecutive candidates {X,X+1} -> eliminate {X,X+1} from the adjacent cells

eg R5C5 = {45} -> R46C5 & R5C46 <> {45}

Note: This is applicable only for cells which are buddies. This is always the case for adjacent non-consecutive, but may not be the case for some chess-non-consecutive like Knight-non-consecutive.

A single cell with only two 'doubly' consecutive candidates {X-1,X+1} -> eliminate X from the adjacent cells

eg R5C5 = {46} -> R46C5 & R5C46 <> 5

Note: This is always applicable, even for chess-non-consecutive when the cells are not buddies.

A single cell with only three consecutive candidates {X-1,X,X+1} -> eliminate X from the adjacent cells

eg R5C5 = {456} -> R46C5 & R5C46 <> 5

Note: This is applicable only for cells which are buddies. This is always the case for adjacent non-consecutive, but may not be the case for some chess-non-consecutive like Knight-non-consecutive.

For consecutive pairs of cells, it restricts the cell to the union of consecutives possibilities of the other cell. For example:

Some cell = {45} -> consecutive cell(s) = {35} U {46} = {3456}

Some cell = {125} -> consecutive cell(s) = {2} U {13} U {46}= {12346}

This is used only for non-consecutive pairs of cells. Not applicable to pairs of consecutive cells.

If some candidate X for some house is locked in two adjacent cells -> eliminate {X-1,X+1} from these two cells

eg 5 of R5 locked in R5C45 -> R5C45 <> {46}

If some candidate X for some house is locked in two 'nearby' non adjacent cells -> eliminate {X-1,X+1} from the cells adjacents to both of them

The cells may be in a row or column with one cell in between, we can eliminate candidates from the cell in between

eg 5 of C5 locked in R24C5 -> R3C5 <> {46}

The cells may be in the same block/nonet touching at their corners, we can eliminate candidates from the 2 cells adjacent to both of them.

eg 5 of N5 locked in R4C4,R5C5 -> R4C5 & R5C4 <> {46}

This works also for diagonal non consecutive when some candidate is locked in 2 nearby cells.

eg 5 of D\ locked in R3C3,R4C4 -> R3C4 & R4C3 <> {46}

If some candidate X for some house is locked in three adjacent cells -> eliminate {X-1,X+1} from the middle cell

eg 5 of R5 locked in R5C345 -> R5C4 <> {46}

eg 5 of N5 locked in R5C45,R6C4 -> R5C4 <> {46}

If some candidate X for some block/nonet is locked in three 'nearby' non adjacent cells -> eliminate {X-1,X+1} from the cells adjacents to all of them

For this to be useful, the cells should be in the same block/nonet in a check pattern, in a V shape.

eg 5 of N5 locked in R4C46,R5C5 -> R4C5 <> {46}

This check pattern is frequent, but seldom productive

See also: Mandatory Inclusions

When several adjacent cells forms a chain of consecutive cells, the middle cell(s) are more restricted.

For example:

R1C1 | R1C2 | R1C3

R1C2 should be <> {19} since 1 would force both R1C1=2 and R1C3=2 which is not possible. Similarly for 9.

This is not yet implemented as an automated technique. You may select the chain of consecutive cells and alt-right-click to Update Combinations > Selected Cells

All these advanced techniques for Killer are also applicable to (non)-consecutive.

Simple Techniques | Fishes & Single Digit | Wings | XY-Chains, Loops & ALS | Uniqueness | Jigsaw, Windoku & Gatai | Greater/Less Than & Non-Consecutive | Killer | Innies/Outies | Advanced Killer | Square Wisdom | Contents

Copyright (C) 2006-2008 Jean-Christophe Godart. All rights reserved.