0

我对必须用 Numberjack 解决的这个问题感到抓狂,这是一个用于 CSP 的 python 库。我们有 nxm 个带有彩色边的正方形。这些方格必须以anxm 网格排列,使方格的相邻边具有相同的颜色。正方形可以旋转和移动。一个例子:

在此处输入图像描述

我考虑过使用 4 个矩阵(一个用于 nord,一个用于 sud,一个用于西,一个用于东侧)和一个颜色的数字。Nord(i,j)、West(i,j)、East(i,j)、Sud(i,j) 描述网格上的正方形 i,j。我必须考虑哪些限制?

4

1 回答 1

0

由于这听起来像是作业,让我概述一个有效的模型:

将每种给定类型的瓷砖描述为五元组(Type,N,E,S,W),其中 Type是此类瓷砖的标识符,并且N,E,S,W是北,东,南和西侧的颜色。对于每种类型的瓷砖,有四个这样的元组用于不同的旋转。

用 nxm 相似元组表示网格(Type,N,E,S,W),其中 Type范围在图块类型标识符和N,E,S,W颜色之上。

然后,您需要三种类型的约束,所有这些都应该在 Numberjack(和其他有限域样式求解器)中很容易表示:

  • 每个网格元组匹配一个图块描述符元组
  • 相邻颜色匹配
  • 网格包含每种类型的正确数量的图块
于 2018-04-06T12:26:14.613 回答