问题
在一个尺寸为L×WL \times WL×W 的大矩形(object)内,正交摆放尺寸为 a×ba \times ba×b 的小矩形(items)。小矩形的边界必须平行于大矩形的边界,任何小矩形之间不可以重叠,且任何小矩形的边界不可以超出大矩形的边界。问如何摆放才能使得托盘上承载的零件最多。
建模
变量
二值变量X1pqX1_{pq}X1pq表示在(p,q)(p,q)(p,q)点是否有横放的矩形((p,q)(p,q)(p,q)位于矩形左下角),X2pqX2_{pq}X2pq表示是否纵放。
目标
max∑p=1L−a+1∑q=1W−b+1X1pq+∑p=1L−b+1∑q=1W−a+1X2pqmax \sum_{p=1}^{L-a+1}\sum_{q=1}^{W-b+1}X1_{pq}+\sum_{p=1}^{L-b+1}\sum_{q=1}^{W-a+1}X2_{pq}maxp=1∑L−a+1q=1∑W−b+1X1pq+p=1∑L−b+1q=1∑W−a+1X2pq
约束
∑p=max{1,r−a+1}min{r,L−a+1}∑q=max{1,s−b+1}min{s,W−b+1}X1pq+∑p=max{1,r−b+1}min{r,L−b+1}∑q=max{1,s−a+1}min{s,W−a+1}X2pq≤1 (r=1,...,L;s=1,...,W)
\sum_{p=max \lbrace 1,r-a+1 \rbrace}^{min \lbrace r,L-a+1\rbrace} \sum_{q=max \lbrace 1,s-b+1 \rbrace}^{min \lbrace s,W-b+1\rbrace} X1_{pq}+ \sum_{p=max \lbrace 1,r-b+1 \rbrace}^{min \lbrace r,L-b+1\rbrace} \sum_{q=max \lbrace 1,s-a+1 \rbrace}^{min \lbrace s,W-a+1\rbrace}X2_{pq} \le 1 \space (r =1 ,...,L;s=1,...,W)
p=max{1,r−a+1}∑min{r,L−a+1}q=max{1,s−b+1}∑min{s,W−b+1}X1pq+p=max{1,r−b+1}∑min{r,L−b+1}q=max{1,s−a+1}∑min{s,W−a+1}X2pq≤1 (r=1,...,L;s=1,...,W)
X1pq∈{0,1} (1≤p≤L−a+1;1≤q≤W−b+1)X1_{pq} \in \lbrace 0,1 \rbrace \space (1 \le p \le L-a+1;1 \le q \le W-b+1)X1pq∈{0,1} (1≤p≤L−a+1;1≤q≤W−b+1)
X2pq∈{0,1} (1≤p≤L−b+1;1≤q≤W−a+1)X2_{pq} \in \lbrace 0,1 \rbrace \space (1 \le p \le L-b+1;1 \le q \le W-a+1)X2pq∈{0,1} (1≤p≤L−b+1;1≤q≤W−a+1)