数学建模 装箱问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
装箱问题的其他一些提法:
1、在装箱时,不仅考虑长度,同时考虑重量或面积、 体积 etc . 即二维、三维、…装箱问题;
2、对每个箱子的负荷限制不是常数 C ; 而是 Ci, i1: n.
3、物品J1,J2,…,Jn 的负荷事先并不知道,来货是 随到随装;即 在线(On-Line)装箱问题;
4、由于场地的限制,在同一时间只能允许一定数量的 箱子停留现场可供使用, etc .
则
L(a)I1I2m ax 0, (j I3w j(I2Cj I2w j))C
是最优解的一个下界 .
第八章 装箱问题
C
Proof : 仅考虑对 I1,I2,I3中物品No的te:装w 箱可能. 小C-于a 零
Q I1UI2 中物品的长度大于C/2 ,
C/2
又是 Q最优I每这L 3 (中解就个a )每的 需物I 个一要品1 物个需II1品2 下单 长界独m I 2度a 放.个x 至入箱0 ,少一 子(为j个 I.3w 箱aj, 子(,I2C aj I2w jI)1)C I2 I3
若 B2 能放得下,则 J3 放入 B2 , 否则启用 B3, J3 放入 B3.
第八章 装箱问题
一般地,J1,…,Jj 已放入 B1,…,Bi 箱子,对于 Jj+1, 则依次检查 B1,B2,…,Bi,将 Jj+1 放入首先找到的能 放得下的箱子,如果都放不下,则启用箱子 Bi+1 ,将 Jj+1 放入 Bi+1 ,如此继续,直到所有物品装完为止 .
则装箱问题的整数线性规划模型为:
(BP )
n
min z yi
n
i1
s.t. wjxij Cyi i1: n (1)
j1
n
xij 1 j 1: n (2)
i1
y i 0 o r 1 ,x i j 0 o r 1i ,j 1 :n .
第八章 装箱问题
上述装箱问题是这类问题最最早优被目标研可究如的何,提也?是提 法上最简单的问题,称为一维装箱问题 . 但 BPNPC.
它不能与 I1 中的物品共用箱子, 但可能与 I2 中的
物品共用箱子,由于放 I2 中物品的 I 2 个箱子的剩余
总长度为 C I2 C wj jI2
在最好的情形下,C 被 I3 中的物品全部充满,故剩
下总长度
w
wj
jI3
C
将另外至少与
Iw 2 C
中个的附物品加如的何?箱子
.
§2 装箱问题的最优解值下界
不能分成几部分存贮,如何用最少的磁盘张数完成 .
第八章 装箱问题
§2 装箱问题的最优解值下界
改进显简由然单于的BP穷x ii是举 1 搜N,P索x -ijC法 问0 ,题( 减i, 少所j) 搜,以n 索y 求i工 解w C 作i考,量虑i,.j一如 1 是::尽分n可支.能
定是界它法的;一二个是最启优发mi解式n (. z近 似nz o py)ti 算i 1C法w i .
§1 装箱问题的描述
Go back
BP 的应用举例:
1 .4 4 7 1 0 .0 8 1 0
1、下料问题 轧钢厂生产的线材一般为同一长度, 而用
户所需的线材则可能具有各种不同的尺寸, 如何根据用
户4、提生出产的流要水求线,的用平最衡少问的题线材给截定出流所水需节的拍定C货, 如;何设置 2最、少二的维工作BP站,玻(璃厂按生一产定出的长紧宽前一约定束的)大沿的着平流板水玻线璃将,任
§1 装箱问题的描述
设有许多具有同样结构和负荷的箱子 B1,B2,… 其数量足够供所达到目的之用 . 每个箱子的负荷(可为 长度、重量 etc.)为 C ,今有 n 个负荷为 wj,0 < wj < C j = 1,2,…,n 的物品 J1,J2,…,Jn 需要装入箱内. 装箱问题:
是指寻找一种方法,使得能以最小数量的箱子数将 J1,J2,…,Jn 全部装入箱内.
zFF(I)1170zopt(I)1
而且存在 z o p t ( I ) 任意大的实例 I ,使
zFF(I)1170(zopt(I)1)
因而
R
FF
17 10
.
第八章 装箱问题
Example 2 Solution :
I : C = 10
百度文库
物品 J1 J2 J3 J4 J5 J6
wj 6 7 4 2 8 3
B1
B2
B3 B4
B5
用 NF 算法 zNF (I) 4 用 FF 算法
zFF (I) 4
J1
J2
J3
J6
B1
B2
B3 B4
B5
第八章 装箱问题
三、BF ( Best Fit ) 算法
与 FF 算法相似,按物品给定的顺序装箱,区别在
于对于每个物品 Jj 是放在一个使得 Jj 放入之后,Bi 所 剩余长度为最小者 .
n
i1
C((BBPP)) s.t. wjxij Cyi i1: n (1)
j1
n
xij 1
j 1: n (2)
i1
y i 0 0 y i o r 1 1 , ,0 x i j x i 0 j o 1 r 1 i ,j i , j 1 : 1 n : . n .
§2 装箱问题的最优解值下界
§1 装箱问题的描述
由于 wi < C,所以 BP 的最优解的箱子数不超过 n .
设约的束物条品y件i总(负 1 01荷)箱不否表子超则示B过:i 被一C使;旦用箱i子1:Bni ;被使用,放入 Bi
约束条xi件j ( 1 0 2)物否表品 则示J:j 放每入个箱物子品Bi 恰中好放i,入j 一1:个n 箱. 子中 .
§3 装箱问题的近似算法
Example 3 I : C = 10 Solution :
物品 J1 J2 J3 J4 J5 J6
wj 6 7 8 3 2 4
J6
J1 J2
J3
J4
J5
J6
参J1见 EJ2X .3J3
用JF5 F 算法装箱, J4
当放入 J4 时,
B1 能容纳
J4 就放入 B1 ,而事实上,放入 BJ24 更好J5 .
先证 RNF 2
再说明不可改进
Proof : 设 I 为任一实例,zopt (I ) k. (要证 zNF(I)2k)
n
显易 然,证 由 z ko p t( zoI pt) (I ) N i1C wi1 得
z n N wF i ( I C) k 2 N
i1
由反于证起z 用z o N 如p F t 第( (I I 果) ) 2 i 个zN N2 F箱N (I1 子) 是22 k因,( 为N 第 则 2 对i -) 1任得 个意箱iR 子=N F 1放 , 2不2 ,…下,第k 2i
第八章 装箱问题
§3 装箱问题的近似算法
一、NF ( Next Fit ) 算法 设对物当品前J要1,装J的2,…物,品JJn i的只长关度心分具别有为最w大1,下w标2,的…已,使wn
箱用子过B的1,箱B子2,B…j 能的否长装均得为下C?,按物品给定的顺序装箱 . 能.先则将JJi 1放放入入BBj ;1, 如否果. 关w1闭wB2j,CJi则放将入J新2 放箱入子 BB1j+…1 . 如果 w 1 w 2 L w j C 而 w 1 w 2 L w j w j 1 C 则 B1 已放入 J1,J2,…,Jj,将其关闭,将 Jj+1 放入 B2 .
n
w
i
Theorem 3.1
BP 最优值的一个下界为 L 1
i1
C
.
a 表示不小于 a 的最小整数.
Theorem 3.2
设 a 是任意满足 0 a C 2的整数,对 BP 的任一实例 I ,
记 I1物 品 jw jC a, I2物 品 jC a w j C 2,
I3物 品 jC 2w ja,
Go back
问 L(a) ? L1 未必! 如 (w ja, j1:n)
Corollary 3.1 记 L 2 m a x L ( a )0 a C 2 ,a 为 整 数
则 L2 是装箱问题的最优解的一个下界,且 L2 L1 .
Proof : L2 为最优解的下界是显然的 .
(若证明 L(0) L1 ,则可得 L2 L1 )
设物品 J1,J2,…,Jn 的长度分别为 w1,w2,…,wn 箱子 B1,B2,…的长均为 C ,按物品给定的顺序装箱 .
先将 J1 放入 B1,若 w1 w2 C, 则 J2 放入 B1 , 否 则,J2 放入 B2 ; 若 J2 已放入 B2,对于 J3 则依次检查
B1、B2 , 若 B1 能放得下, 则 J3 放入 B1 , 否则查看 B2 ,
但务用 分户配所到各需工玻作璃站的上长宽. 称可为能带有附许加多优差先异约,束如的何根BP据. 用
户提出的要求,用最少的平板玻璃截出所需的定货;
3、计B算P 机是的容存量贮限问制题的工如厂要选把址大问小题不的同特的例共之一10.MB 的
文件拷贝到磁盘中去,而每张磁盘的容量为 1. 44 MB ,
已知每个文件的字节数不超过 1.44 MB , 而且一个文件
同法进行,直到所有物品装完为止 . 计算复杂性为 O(n).
特点: 1、按物品给定的顺序装箱; 2、关闭原则 .
§3 装箱问题的近似算法
Example 1 Solution :
I : C = 10
物品 J1 J2 J3 J4 J5 J6
wj 6 7 4 2 8 3
首先,将 J1 放入 B1;
由于 J2 在 B1 中放不下, 所 以关闭 B1 , 将 J2 放入 B2 ,
个箱子中第一个物品,因此这两个箱子中物品的总长度
大于 C ,所以前 2k 个箱子中物品的总长度大于 Ck .
n
这与 w i
i1
考虑实例
I
Ck
:C
=矛1,盾w .1 ,w 2 ,L ,zzw o Np4 FtN ((II )) 1 2 ,22 ,1 N 从 ,1 2 ,而 2 1 N ,R L N,F1 2 ,2 1 N 2.
J1
J2
J3
J5 J6
J4
J3 在 B2 中放不下(不考虑
B1 是否能装), 所以关闭 B2
J4
将 J3 放入 B3,…
J1
J2
J3
J5 J6
解为:
B1
B2
B3 B4
B5
x 1 1 x 2 2 x 3 3 x 3 4 x 4 5 x 5 6 1 其余为零,zNF (I) 5.
第八章 装箱问题 Theorem 3.3 RNF 2
§3 装箱问题的近似算法
I : C如=何1修0 正 NF 算
二、FF ( First Fit ) 算法
物品 法J1 J2 J3 J4 J5 J
参见 EX .1 用 NF 算法装 wj 6 7 4 2 8 3
箱, 当放入 J3 时, 仅看 B2 是否能放入,因 B1 已关闭, 但事实上,B1 此时是能放得下 J3 的 .
组合优化理论
Combinatorial Optimization Theory
第八章 装箱问题
第八章 装箱问题
§1 装箱问题的描述 §2 装箱问题的最优解值下界 §3 装箱问题的近似算法
第八章 装箱问题
装箱问题(Bin Packing)是一个经典的组合优化 问题,有着广泛的应用,在日常生活中也屡见不鲜 .
特点: 1、按物品给定的顺序装箱;
2、对于每个物品 Jj 总是放在能容纳它的具 有最小标号的箱子 .
计算复杂性为 O(nlogn).
但精度比NF 算法更高
§3 装箱问题的近似算法
Theorem 3.4
zFF (I ) 7 . zopt (I ) 4
7 17 1 4 10 20
Theorem 3.5 对任意实例 I ,
即在处理 Jj 时,若 B1,B2,…,Bi 非空,而 Bi+1 尚
未启用,设 B1,B2,…,Bi 所余的长度为
L(0)0I2
max0,(jn1wj
I2
C) C
当L I(2 a aL ) 2 = m I01a L x 时(0 I2 ),0 ,L m IL 1 1a 1 x I0 2 ,, (I j 2 I3 U w mIja3 x(是I2I所C 2 , 有L j 1I2 物w j品)L)C 1 .
首先,将 J1 放入 B1; 由于 J2 在 B1 中放不下, 所 以将 J2 放入 B2 , 对于 J3 , 先检查 B1 是否能 容纳下, 能 . 所以将 J3 放 入 B1,…
J1
J2
J3
J5 J6
J4
J3
J4
J1
J2
J5
J6
解为:
B1
B2
B3 B4
B5
x 1 1 x 2 2 x 1 3 x 2 4 x 3 5 x 4 6 1 其余为零,zFF (I) 4.
1、在装箱时,不仅考虑长度,同时考虑重量或面积、 体积 etc . 即二维、三维、…装箱问题;
2、对每个箱子的负荷限制不是常数 C ; 而是 Ci, i1: n.
3、物品J1,J2,…,Jn 的负荷事先并不知道,来货是 随到随装;即 在线(On-Line)装箱问题;
4、由于场地的限制,在同一时间只能允许一定数量的 箱子停留现场可供使用, etc .
则
L(a)I1I2m ax 0, (j I3w j(I2Cj I2w j))C
是最优解的一个下界 .
第八章 装箱问题
C
Proof : 仅考虑对 I1,I2,I3中物品No的te:装w 箱可能. 小C-于a 零
Q I1UI2 中物品的长度大于C/2 ,
C/2
又是 Q最优I每这L 3 (中解就个a )每的 需物I 个一要品1 物个需II1品2 下单 长界独m I 2度a 放.个x 至入箱0 ,少一 子(为j个 I.3w 箱aj, 子(,I2C aj I2w jI)1)C I2 I3
若 B2 能放得下,则 J3 放入 B2 , 否则启用 B3, J3 放入 B3.
第八章 装箱问题
一般地,J1,…,Jj 已放入 B1,…,Bi 箱子,对于 Jj+1, 则依次检查 B1,B2,…,Bi,将 Jj+1 放入首先找到的能 放得下的箱子,如果都放不下,则启用箱子 Bi+1 ,将 Jj+1 放入 Bi+1 ,如此继续,直到所有物品装完为止 .
则装箱问题的整数线性规划模型为:
(BP )
n
min z yi
n
i1
s.t. wjxij Cyi i1: n (1)
j1
n
xij 1 j 1: n (2)
i1
y i 0 o r 1 ,x i j 0 o r 1i ,j 1 :n .
第八章 装箱问题
上述装箱问题是这类问题最最早优被目标研可究如的何,提也?是提 法上最简单的问题,称为一维装箱问题 . 但 BPNPC.
它不能与 I1 中的物品共用箱子, 但可能与 I2 中的
物品共用箱子,由于放 I2 中物品的 I 2 个箱子的剩余
总长度为 C I2 C wj jI2
在最好的情形下,C 被 I3 中的物品全部充满,故剩
下总长度
w
wj
jI3
C
将另外至少与
Iw 2 C
中个的附物品加如的何?箱子
.
§2 装箱问题的最优解值下界
不能分成几部分存贮,如何用最少的磁盘张数完成 .
第八章 装箱问题
§2 装箱问题的最优解值下界
改进显简由然单于的BP穷x ii是举 1 搜N,P索x -ijC法 问0 ,题( 减i, 少所j) 搜,以n 索y 求i工 解w C 作i考,量虑i,.j一如 1 是::尽分n可支.能
定是界它法的;一二个是最启优发mi解式n (. z近 似nz o py)ti 算i 1C法w i .
§1 装箱问题的描述
Go back
BP 的应用举例:
1 .4 4 7 1 0 .0 8 1 0
1、下料问题 轧钢厂生产的线材一般为同一长度, 而用
户所需的线材则可能具有各种不同的尺寸, 如何根据用
户4、提生出产的流要水求线,的用平最衡少问的题线材给截定出流所水需节的拍定C货, 如;何设置 2最、少二的维工作BP站,玻(璃厂按生一产定出的长紧宽前一约定束的)大沿的着平流板水玻线璃将,任
§1 装箱问题的描述
设有许多具有同样结构和负荷的箱子 B1,B2,… 其数量足够供所达到目的之用 . 每个箱子的负荷(可为 长度、重量 etc.)为 C ,今有 n 个负荷为 wj,0 < wj < C j = 1,2,…,n 的物品 J1,J2,…,Jn 需要装入箱内. 装箱问题:
是指寻找一种方法,使得能以最小数量的箱子数将 J1,J2,…,Jn 全部装入箱内.
zFF(I)1170zopt(I)1
而且存在 z o p t ( I ) 任意大的实例 I ,使
zFF(I)1170(zopt(I)1)
因而
R
FF
17 10
.
第八章 装箱问题
Example 2 Solution :
I : C = 10
百度文库
物品 J1 J2 J3 J4 J5 J6
wj 6 7 4 2 8 3
B1
B2
B3 B4
B5
用 NF 算法 zNF (I) 4 用 FF 算法
zFF (I) 4
J1
J2
J3
J6
B1
B2
B3 B4
B5
第八章 装箱问题
三、BF ( Best Fit ) 算法
与 FF 算法相似,按物品给定的顺序装箱,区别在
于对于每个物品 Jj 是放在一个使得 Jj 放入之后,Bi 所 剩余长度为最小者 .
n
i1
C((BBPP)) s.t. wjxij Cyi i1: n (1)
j1
n
xij 1
j 1: n (2)
i1
y i 0 0 y i o r 1 1 , ,0 x i j x i 0 j o 1 r 1 i ,j i , j 1 : 1 n : . n .
§2 装箱问题的最优解值下界
§1 装箱问题的描述
由于 wi < C,所以 BP 的最优解的箱子数不超过 n .
设约的束物条品y件i总(负 1 01荷)箱不否表子超则示B过:i 被一C使;旦用箱i子1:Bni ;被使用,放入 Bi
约束条xi件j ( 1 0 2)物否表品 则示J:j 放每入个箱物子品Bi 恰中好放i,入j 一1:个n 箱. 子中 .
§3 装箱问题的近似算法
Example 3 I : C = 10 Solution :
物品 J1 J2 J3 J4 J5 J6
wj 6 7 8 3 2 4
J6
J1 J2
J3
J4
J5
J6
参J1见 EJ2X .3J3
用JF5 F 算法装箱, J4
当放入 J4 时,
B1 能容纳
J4 就放入 B1 ,而事实上,放入 BJ24 更好J5 .
先证 RNF 2
再说明不可改进
Proof : 设 I 为任一实例,zopt (I ) k. (要证 zNF(I)2k)
n
显易 然,证 由 z ko p t( zoI pt) (I ) N i1C wi1 得
z n N wF i ( I C) k 2 N
i1
由反于证起z 用z o N 如p F t 第( (I I 果) ) 2 i 个zN N2 F箱N (I1 子) 是22 k因,( 为N 第 则 2 对i -) 1任得 个意箱iR 子=N F 1放 , 2不2 ,…下,第k 2i
第八章 装箱问题
§3 装箱问题的近似算法
一、NF ( Next Fit ) 算法 设对物当品前J要1,装J的2,…物,品JJn i的只长关度心分具别有为最w大1,下w标2,的…已,使wn
箱用子过B的1,箱B子2,B…j 能的否长装均得为下C?,按物品给定的顺序装箱 . 能.先则将JJi 1放放入入BBj ;1, 如否果. 关w1闭wB2j,CJi则放将入J新2 放箱入子 BB1j+…1 . 如果 w 1 w 2 L w j C 而 w 1 w 2 L w j w j 1 C 则 B1 已放入 J1,J2,…,Jj,将其关闭,将 Jj+1 放入 B2 .
n
w
i
Theorem 3.1
BP 最优值的一个下界为 L 1
i1
C
.
a 表示不小于 a 的最小整数.
Theorem 3.2
设 a 是任意满足 0 a C 2的整数,对 BP 的任一实例 I ,
记 I1物 品 jw jC a, I2物 品 jC a w j C 2,
I3物 品 jC 2w ja,
Go back
问 L(a) ? L1 未必! 如 (w ja, j1:n)
Corollary 3.1 记 L 2 m a x L ( a )0 a C 2 ,a 为 整 数
则 L2 是装箱问题的最优解的一个下界,且 L2 L1 .
Proof : L2 为最优解的下界是显然的 .
(若证明 L(0) L1 ,则可得 L2 L1 )
设物品 J1,J2,…,Jn 的长度分别为 w1,w2,…,wn 箱子 B1,B2,…的长均为 C ,按物品给定的顺序装箱 .
先将 J1 放入 B1,若 w1 w2 C, 则 J2 放入 B1 , 否 则,J2 放入 B2 ; 若 J2 已放入 B2,对于 J3 则依次检查
B1、B2 , 若 B1 能放得下, 则 J3 放入 B1 , 否则查看 B2 ,
但务用 分户配所到各需工玻作璃站的上长宽. 称可为能带有附许加多优差先异约,束如的何根BP据. 用
户提出的要求,用最少的平板玻璃截出所需的定货;
3、计B算P 机是的容存量贮限问制题的工如厂要选把址大问小题不的同特的例共之一10.MB 的
文件拷贝到磁盘中去,而每张磁盘的容量为 1. 44 MB ,
已知每个文件的字节数不超过 1.44 MB , 而且一个文件
同法进行,直到所有物品装完为止 . 计算复杂性为 O(n).
特点: 1、按物品给定的顺序装箱; 2、关闭原则 .
§3 装箱问题的近似算法
Example 1 Solution :
I : C = 10
物品 J1 J2 J3 J4 J5 J6
wj 6 7 4 2 8 3
首先,将 J1 放入 B1;
由于 J2 在 B1 中放不下, 所 以关闭 B1 , 将 J2 放入 B2 ,
个箱子中第一个物品,因此这两个箱子中物品的总长度
大于 C ,所以前 2k 个箱子中物品的总长度大于 Ck .
n
这与 w i
i1
考虑实例
I
Ck
:C
=矛1,盾w .1 ,w 2 ,L ,zzw o Np4 FtN ((II )) 1 2 ,22 ,1 N 从 ,1 2 ,而 2 1 N ,R L N,F1 2 ,2 1 N 2.
J1
J2
J3
J5 J6
J4
J3 在 B2 中放不下(不考虑
B1 是否能装), 所以关闭 B2
J4
将 J3 放入 B3,…
J1
J2
J3
J5 J6
解为:
B1
B2
B3 B4
B5
x 1 1 x 2 2 x 3 3 x 3 4 x 4 5 x 5 6 1 其余为零,zNF (I) 5.
第八章 装箱问题 Theorem 3.3 RNF 2
§3 装箱问题的近似算法
I : C如=何1修0 正 NF 算
二、FF ( First Fit ) 算法
物品 法J1 J2 J3 J4 J5 J
参见 EX .1 用 NF 算法装 wj 6 7 4 2 8 3
箱, 当放入 J3 时, 仅看 B2 是否能放入,因 B1 已关闭, 但事实上,B1 此时是能放得下 J3 的 .
组合优化理论
Combinatorial Optimization Theory
第八章 装箱问题
第八章 装箱问题
§1 装箱问题的描述 §2 装箱问题的最优解值下界 §3 装箱问题的近似算法
第八章 装箱问题
装箱问题(Bin Packing)是一个经典的组合优化 问题,有着广泛的应用,在日常生活中也屡见不鲜 .
特点: 1、按物品给定的顺序装箱;
2、对于每个物品 Jj 总是放在能容纳它的具 有最小标号的箱子 .
计算复杂性为 O(nlogn).
但精度比NF 算法更高
§3 装箱问题的近似算法
Theorem 3.4
zFF (I ) 7 . zopt (I ) 4
7 17 1 4 10 20
Theorem 3.5 对任意实例 I ,
即在处理 Jj 时,若 B1,B2,…,Bi 非空,而 Bi+1 尚
未启用,设 B1,B2,…,Bi 所余的长度为
L(0)0I2
max0,(jn1wj
I2
C) C
当L I(2 a aL ) 2 = m I01a L x 时(0 I2 ),0 ,L m IL 1 1a 1 x I0 2 ,, (I j 2 I3 U w mIja3 x(是I2I所C 2 , 有L j 1I2 物w j品)L)C 1 .
首先,将 J1 放入 B1; 由于 J2 在 B1 中放不下, 所 以将 J2 放入 B2 , 对于 J3 , 先检查 B1 是否能 容纳下, 能 . 所以将 J3 放 入 B1,…
J1
J2
J3
J5 J6
J4
J3
J4
J1
J2
J5
J6
解为:
B1
B2
B3 B4
B5
x 1 1 x 2 2 x 1 3 x 2 4 x 3 5 x 4 6 1 其余为零,zFF (I) 4.