我正在尝试了解 MiniZincsgeost约束,这在 docs的打包约束部分中进行了描述。我正在尝试使用旋转来实现矩形的 2D 包装:所以我想将矩形放在给定长度和宽度的板上,但我很难理解预期的输入格式。
我有以下模型,我在其中读取了要放入nParts. nShapes是这些矩形可以采用的形状数。
include "globals.mzn";
int: nParts;
set of int: PARTS = 1..nParts;
int: nShapes;
set of int: SHAPES = 1..nShapes;
int: plateLength;
int: plateWidth;
set of int: LEN = 0..plateLength;
set of int: WID = 0..plateWidth;
int: k = 2;
set of int: DIM = 1..k;
array[SHAPES,DIM] of int: rect_size;
array[SHAPES,DIM] of 0..0: rect_offset;
array[PARTS] of set of SHAPES: shape;
array[PARTS,DIM] of …Run Code Online (Sandbox Code Playgroud)