Domicles -- A novel Dominoes puzzle made with CLPFD

Here is a “Domicles” – its a fun and challenging combinatorial puzzle which can be generated/solved with a handful of Prolog + CLPFD. Here are examples, code and analysis:

https://emiruz.com/post/2023-11-13-domicles/

1 Like

Thank you for sharing your CLP(FD) blog post.

This guy suggests dynamic programming for domino problems:

Tiling dominoes | Dynamic programming
https://www.youtube.com/watch?v=yn2jnmlepY8

Do you know whats better, CLP(FD) or dp?

P.S.: I am kind of undecided. Probably depends on the CLP(FD).
For CLP(B) there is something like conflict-driven clause learning
(CDCL) which looks to me as a form of tabling of already obtained

failure results. But CLP(FD) is not so much known for doing the
same. So we might even see a different performance when we
would model dominoes with CLP(B) instead of CLP(FD)?

Edit 20.12.2023
About dominos and CLP(B), Markus Triska even did something
with Minatos ZDDs. But extending the experiment to some CDCL
could be quite interesting. If a solver doesn’t generate a monster

ZDD expression, but keeps multiple sat/1 calls separate, there is
still room for CDCL. Otherwise if the approach is monster ZDD
expressions, there is possibly no point in doing that.

ZDD-based variant of library(clpb)
https://github.com/triska/clpb/tree/master/zdd