我正在尝试通过 Prolog CLP FD 使用限制编程来解决提出的难题。这个谜题包含以下简单规则:
现在,在我的代码中,我已经涵盖了 2x2 网格的限制,并且必须将其中一个连接到至少一个相同颜色的网格。
问题是我找不到一种方法来建立限制,即一件必须有一个路径(连接)到所有其他相同颜色的部分,而不通过相反颜色的部分,所以我得到了这种输出:
0 0 0 0
0 1 0 1
0 1 0 1
0 1 0 0
0 0 0 0
0 1 0 1
0 1 0 1
0 1 0 1
其中 1 并非全部相互连接。
如何在 CLP FD 中编写这种图形限制?
编辑:我正在使用 SICStus Prolog。