.
OK, time for a performance review!
I have run some benchmark tests with a variety of Samurai puzzles, conventional and exotic (mixed-modes). The bottom line is that 4CS, despite my best efforts, is much, much slower than MSAT (MiniSAT),
when used as a minimality checker. The benchmark test was to take a minimal puzzle and verify it by testing each clue for redundancy.
The only puzzle type where 4CS was as fast as SAT, was for conventional Samurai puzzles (standard Sudoku in all grids).
Also, there is a
flaw in the algorithm description given above. When testing a corner box setting, we can't use "Corner Puzzle has US" as the condition for inclusion/exclusion. I found one example where a multi-solution setting for the first corner eventually led to a case of multiple solutions for the complete puzzle (thus proving the clue being tested was NOT redundant). Excluding that first corner setting fooled the method into thinking the whole puzzle had only one solution, so it falsely claimed that the clue was redundant.
We have to test
all corner-box settings that are valid, ie produce 1 or more corner puzzle solution(s). This increases the iteration / recursion counts considerably …