我要解决这个问题,我必须用Numberjack解决这个问题,这是CSP中python的一个库。 我们有n x m个正方形,边有彩色。这些正方形必须以n×m网格排列,使得正方形的相邻边具有相同的颜色。方块可以旋转和移动。一个例子:
我想过使用4个矩阵(一个用于nord,一个用于sud,一个用于西,一个用于东侧)和一个数字用于颜色。 Nord(i,j),West(i,j),East(i,j),Sud(i,j)描述网格上的方形i,j。 我必须考虑哪些限制?
答案 0 :(得分:0)
这听起来像是家庭作业,让我概述一个有效的模型:
将每种给定类型的图块描述为五元组(Type,N,E,S,W)
,其中
Type
是此类磁贴的标识符,N,E,S,W
是
北,东,南,西两侧的颜色。对于每种类型的瓷砖,
有四个这样的元组用于不同的旋转。
用n x m个类似元组(Type,N,E,S,W)
表示网格,其中
Type
范围超出了图块类型标识符,N,E,S,W
覆盖了颜色。
然后你需要三种类型的约束,所有这些约束都应该可以在Numberjack(以及其他有限域样式求解器)中轻松表示: