0

CLINGO を使用して、指定された一連の正方形を指定された長方形領域にオーバーラップなしでパックします。たとえば、正方形をパックします。

Aサイズ4、Bサイズ3、C&Dサイズ2、Eサイズ1

5 x 8 の領域に。

 #const x = 8.
  #const y = 5.

square(a,4; b,3; c,2; d,2; e,1).

%generate a grid:
1 { pos(X,Y) } 1 :- x(X), y(Y).

%generate placement of the squares
1 { placement(P, SQ) } 1 :- square(SQ), pos(P).

%throw out overlaps

重なり合った正方形を捨てることへの制約が何であるか、またはこれを正しく行っているかどうかはわかりません。

4

1 に答える 1