[Disclaimer: this is a question related to the programming of a solver. The "Solver Programs" forum states that it is meant only for posting notifications for new solvers available and how to access them, so I thought this forum is more appropriate]
I am wondering about how to code a matcher for swordfish or bigger fishes
efficiently.
If you programm in "normal topology" (9x9) this seems difficult enough for
me (e. g. 84 choices to pick 3 columns with 3 or less (!) candidates, picking
one of 84 choices for the overlapping 3 rows, check if all candidates are
only in the intersection with respect to the columns, ...).
Perhaps there is a more efficient way?
In my case the situation is even worse. I programmed a generic solver,
which works on arbitrary topologies. So there is no concept of rows or
columns, these are just "special cases" the solver kernel does not know
about.
Its a shame that most of the time I run the beast on standard sudoku:-)
Standard sudoku has 27 houses, so there are 2925 choices to just pick
three of them (some less, if you dont allow them to overlap) and for
each of them another 2024 choices to pick approproate overlapping
rows from the remaining 24 houses. The last choices can be limited
if the intersection constraints which build a swordfish are checked on
every choice.
I implemented this for X-Wing (works well) I dont started for swordfish,
and at least a jellyfish seems out of reach of this naive approach.
Any clues?