装箱问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C
个箱子中第一个物品,因此这两个箱子中物品的总长度
大于 C ,所以前 2k 个箱子中物品的总长度大于 Ck . n z (I ) wi Ck 矛盾 . NF 这与 2, 从而 RNF 2. i 1 zopt ( I ) 1 1 1 1 1 1 w1 , w2 ,, w4 N ห้องสมุดไป่ตู้ , , , ,, , 考虑实例 I : C = 1, 2 2N 2 2N 2 2N
min
n
z yi
i 1
n
( BP)
s.t.
w x
x
i 1
j 1 n
j ij
Cyi
i 1 n
(1)
(2)
ij
1
j 1 n
yi 0 or 1, xij 0 or 1
i, j 1 n.
上述装箱问题是这类问题最早被研究的,也是提
法上最简单的问题,称为一维装箱问题 . 但 BP NP C. 装箱问题的其他一些提法: 1、在装箱时,不仅考虑长度,同时考虑重量或面积、
但用户所需玻璃的长宽可能有许多差异,如何根据用 务分配到各工作站上 . 称为带附加优先约束的 BP . 户提出的要求,用最少的平板玻璃截出所需的定货;
3、计算机的存贮问题 如要把大小不同的共 10 MB 的 BP 是容量限制的工厂选址问题的特例之一. 文件拷贝到磁盘中去,而每张磁盘的容量为 1. 44 MB ,
§3
装箱问题的近似算法 I : C如何修正 NF 算 = 10
物品
二、FF ( First Fit ) 算法
参见 EX .1 用 NF 算法装
法 J1
6
J2
J3
J4
J5
J6
wj
7
4
2
8
3
箱, 当放入 J3 时, 仅看 B2 是否能放入,因 B1 已关闭, 但事实上,B1 此时是能放得下 J3 的 . 设物品 J1,J2,…,Jn 的长度分别为 w1,w2,…,wn
( w j ( I 2 每个物品需单独放入一个箱子,C w j )) jI jI
2
又 I 3 中每个物品长度至少为 a , 是最优解的一个下界 . 它不能与 I1 中的物品共用箱子, 但可能与 I2 中的
C I1 I2 I3
物品共用箱子,由于放 I2 中物品的 I 2 个箱子的剩余 总长度为 C I 2 C w j
优化问题中的装箱问题
装箱问题(Bin Packing)是一个经典的组合优化
问题,有着广泛的应用,在日常生活中也屡见不鲜 .
§1 装箱问题的描述
设有许多具有同样结构和负荷的箱子 B1,B2,…
其数量足够供所达到目的之用 . 每个箱子的负荷(可为
长度、重量 etc.)为 C ,今有 n 个负荷为 wj,0 < wj < C j = 1,2,…,n 的物品 J1,J2,…,Jn 需要装入箱内. 装箱问题: 是指寻找一种方法,使得能以最小数量的箱子数将 J1,J2,…,Jn 全部装入箱内.
n w 1 易证 zopt ( I ) N z NF ( Ck 2 N wi I ) 显然,由 k z ( I ) 得 i 1
i 1 i opt
由于起用第 2i 个箱子是因为第 2i -1 个箱子放不下第2i
z NF ( I ) z 2 NI ) 2k 反证 如果 NF ( 2 ,( N ) 得 i = 1, 2,…, k 则 对任意 RNF 2 zopt ( I ) N 1
I3 物品 j C wj a , 2
I 2 物品 j C a w j C



2
,

( w j ( I 2 C w j )) jI 2 L(a ) I1 I 2 max 0, jI3 C

箱子 B1,B2,…的长均为 C ,按物品给定的顺序装箱 .
先将 J1 放入 B1,若 w1 w2 C , 则 J2 放入 B1 , 否
则,J2 放入 B2 ; 若 J2 已放入 B2,对于 J3 则依次检查
B1、B2 , 若 B1 能放得下, 则 J3 放入 B1 , 否则查看 B2 , 若 B2 能放得下,则 J3 放入 B2 , 否则启用 B3, J3 放入 B3.
2
J5
8
J6
3
wj
首先,将 J1 放入 B1; 由于 J2 在 B1 中放不下, 所
J1 J2 J3 J4 J5 J6
以关闭 B1 , 将 J2 放入 B2 ,
J3 在 B2 中放不下(不考虑
B1 是否能装), 所以关闭 B2
将 J3 放入 B3,…

J1 J2
J4 J3 B3 J5 J6 B5
解为:
有最小标号的箱子 .
计算复杂性为 O(nlogn).
但精度比NF
算法更高
§3
装箱问题的近似算法
Theorem 3.4
zFF ( I ) 7 . zopt ( I ) 4
7 17 1 4 10 20
Theorem 3.5 对任意实例 I ,
17 zFF ( I ) zopt ( I ) 1 10
§1
装箱问题的描述
Go back
BP 的应用举例:
1.44 7 10.08 10
1、下料问题 轧钢厂生产的线材一般为同一长度, 而用
户所需的线材则可能具有各种不同的尺寸, 如何根据用
户提出的要求,用最少的线材截出所需的定货; 4、生产流水线的平衡问题 给定流水节拍 C , 如何设置 2、 二维 BP 玻璃厂生产出长宽一定的大的平板玻璃, 最少的工作站,(按一定的紧前约束)沿着流水线将任
w 定界法;二是启发式(近似)算法i . 是它的一个最优解 . i 1
min z yi
i 1 n opt
分支
z

C
(1)
(2)
C((BP)) BP
s.t.
w x
x
i 1
n
j 1 n
j ij
Cyi
i 1 n
ij
1
j 1 n
yi 0 yor 1, 0 ij ij or 1 i, ji,j1 n. n. 0 i 1, x x0 1 1
Corollary 3.1
记 L2 max L(a) 0 a C 2 , a 为整数


则 L2 是装箱问题的最优解的一个下界,且 L2 L1 . Proof : L2 为最优解的下界是显然的 .

(若证明 L(0) L1 ,则可得 L2 L1 )
§1
装箱问题的描述 由于 wi < C,所以 BP 的最优解的箱子数不超过 n .
约束条件(1)表示:一旦箱子 Bi 被使用,放入 Bi 1 箱子 Bi 被使用 yi i 1 n; 设 0 否则 的物品总负荷不超过 C ; 1 物品 Jj 放入箱子 Bi 中 xij i, j 1 n. 约束条件(2)表示:每个物品恰好放入一个箱子中 . 0 否则 则装箱问题的整数线性规划模型为:
而且存在 zopt ( I ) 任意大的实例 I ,使
17 zFF ( I ) ( zopt ( I ) 1) 10
因而
R
FF
17 . 10
物品
J1
J2
J3
J4
J5
J6
Example 2 Solution :
I : C = 10
wj
6
7
4
2
8
3
首先,将 J1 放入 B1; 由于 J2 在 B1 中放不下, 所 以将 J2 放入 B2 ,
一般地,J1,…,Jj 已放入 B1,…,Bi 箱子,对于 Jj+1,
则依次检查 B1,B2,…,Bi,将 Jj+1 放入首先找到的能 放得下的箱子,如果都放不下,则启用箱子 Bi+1 ,将 Jj+1 放入 Bi+1 ,如此继续,直到所有物品装完为止 . 特点: 1、按物品给定的顺序装箱; 2、对于每个物品 Jj 总是放在能容纳它的具
n ( w j I 2 C ) L(0) 0 I 2 max 0, j 1 C

( w j ( I 2 C w j )) I j LI 2 ) max I 20, L1 I0, j3 max I 2 , LI2 L1 1 ( a I1 max 2 C
j
则 B1 已放入 J1,J2,…,Jj,将其关闭,将 Jj+1 放入 B2 .
同法进行,直到所有物品装完为止 . 计算复杂性为 O(n).
特点: 1、按物品给定的顺序装箱; 2、关闭原则 .
§3
装箱问题的近似算法
物品
Example 1 Solution :
I : C = 10
J1
6
J2
7
J3
4
J4
已知每个文件的字节数不超过 1.44 MB , 而且一个文件
不能分成几部分存贮,如何用最少的磁盘张数完成 .
§2 装箱问题的最优解值下界
显然 BP 是 NP-C 问题,所以求解考虑 一是尽可能 由于 wi
C 改进简单的穷举搜索法,减少搜索工作量 . 如: n xii 1, xij 0 (i j ), yi , i, j 1 n .
B1
B2
B4
x11 x22 x33 x34 x45 x56 1 其余为零,z NF ( I ) 5.
先证 RNF 2
Theorem 3.3
RNF 2
n
再说明不可改进
Proof : 设 I 为任一实例,zopt ( I ) k . (要证 z NF ( I ) 2k )
jI 2
在最好的情形下,C 被 I3 中的物品全部充满,故剩 下总长度 w
wj C
jI 3
与 I2 w 中的物品如何? 将另外至少 个附加的箱子 C
.
§2
装箱问题的最优解值下界
Go back
问 L(a) L1 ? 未必! 如 ( w j a, j 1 n)
§2
n wi i 1 Theorem 3.1 BP 最优值的一个下界为 L1 C . a 表示不小于 a 的最小整数.
装箱问题的最优解值下界
Theorem 3.2 设 a 是任意满足 0 a C 2 的整数,对 BP 的任一实例 I , 记 I1 物品 j w j C a ,
最优目标可如何提?
体积 etc . 即二维、三维、…装箱问题;
2、对每个箱子的负荷限制不是常数 C ; 而是 Ci , i 1 n. 3、物品J1,J2,…,Jn 的负荷事先并不知道,来货是 随到随装;即 在线(On-Line)装箱问题; 4、由于场地的限制,在同一时间只能允许一定数量的
箱子停留现场可供使用, etc .
是最优解的一个下界 .
Proof : 仅考虑对 I1,I2,I3中物品的装箱 .
I1 I 2 中物品的长度大于C/2 ,
3 L(a ) I1 I 2 max 0, 这就需要 I1 I 2 个箱子 .
C C-a Note: w 可能小于零 C/2 a


J1
J2
J3 J4
J5
J6
对于 J3 , 先检查 B1 是否能
容纳下, 能 . 所以将 J3 放 入 B1,…

J3
J4
J1
J2
J5
J6 B4 B5
解为:
B1
B2
B3
x11 x22 x13 x24 x35 x46 1 其余为零,zFF ( I ) 4.




当 a = 0 时,I1 , I 2 I3 是所有物品 .
L2 L(0) L1

§3 装箱问题的近似算法
一、NF ( Next Fit ) 算法 设物品 J1,J2,…,JJi的长度分别为 w1,w2,…,wn 对当前要装的物品 n 只关心具有最大下标的已使 箱子 B1,B2,…的长均为 C ,按物品给定的顺序装箱 . 用过的箱子 B 能否装得下? 先将 J1 放入 B1, 如果 w1 w2 C 则将 J2 放入 B1 … 能. 则 Ji 放入 Bj ;否 . 关闭 Bj ,Ji 放入新箱子 Bj+1 . 如果 w1 w2 w j C 而 w1 w2 w j w j 1 C
相关文档
最新文档