离散数学模型与实验(精品).ppt
《离散数学模型与实验(精品).ppt》由会员分享,可在线阅读,更多相关《离散数学模型与实验(精品).ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、离散模型与实验 第七章:离散模型与实验第七章:离散模型与实验7.1截断切割截断切割7.2锁具装箱锁具装箱7.3钻井布局钻井布局7.4讨论题讨论题下一页上一页下一页上一页下一页上一页7.1 7.1 截断切割截断切割 7.1.1 7.1.1 问题的提出问题的提出 这是这是19971997年全国大学生数学建模竞赛的年全国大学生数学建模竞赛的B B题,问题如下:题,问题如下:某些工业加工部门,经常需要从一个长方体中加工出一个某些工业加工部门,经常需要从一个长方体中加工出一个尺寸已知,位置预定的长方体(设长方体的对应表面是平面),尺寸已知,位置预定的长方体(设长方体的对应表面是平面),通常采用截断切割的
2、加工方式,这里通常采用截断切割的加工方式,这里“截断切割截断切割”是指将物体沿是指将物体沿某个切割平面分成两部分,因此,一般情况下,须经过某个切割平面分成两部分,因此,一般情况下,须经过6 6次截次截断切割,分别截去原长方体的前后、左右、上下断切割,分别截去原长方体的前后、左右、上下6 6个方向多余个方向多余的部分。的部分。下一页上一页下一页上一页下一页上一页 设水平切割单位面积的费用是垂直切割单位面积费用的设水平切割单位面积的费用是垂直切割单位面积费用的r r倍,且当先后两次垂直切割的平面不平行时,因调整刀具需额倍,且当先后两次垂直切割的平面不平行时,因调整刀具需额外费用外费用e e,显然,
3、若截去各个多余小块的先后顺序不同,则加显然,若截去各个多余小块的先后顺序不同,则加工费用不同,试设计一种确定最优加工次序的方法,使加工费工费用不同,试设计一种确定最优加工次序的方法,使加工费用最少。用最少。用以下实例验证你的方法:待加工长方体与成品长方体的用以下实例验证你的方法:待加工长方体与成品长方体的长、宽、高分别为长、宽、高分别为1010;14.514.5;1919和和3 3;2 2;4 4二者左面,前面,二者左面,前面,底面之间的距离分别为底面之间的距离分别为6 6;7 7;9 9(单位(单位cmcm),),垂直切割费用为垂直切割费用为1 1元元/cmcm2 2,r r和和e e的数据
4、有以下的数据有以下4 4组:组:a a)r r=1=1;e e=0=0;b b)r r=1.5=1.5;e e=0=0;c c)r r=8=8;e e=0=0;d d)r r=1.5=1.5;22e e1515下一页上一页下一页上一页下一页上一页7.1.2 7.1.2 模型假设及符号说明模型假设及符号说明(1 1)假设水平工作台接触的长方体底面是事先指定的。)假设水平工作台接触的长方体底面是事先指定的。(2 2)假设第一次切割前调整刀具的费用不计。)假设第一次切割前调整刀具的费用不计。(3 3)假设加工前后,两长方体对应的表面平行。)假设加工前后,两长方体对应的表面平行。(4 4)假设垂直切割
5、费用为)假设垂直切割费用为1 1元元/cmcm2 2,水平切割费用为水平切割费用为r r元元/cmcm2 2。(5 5)假设调整一次刀具的费用为)假设调整一次刀具的费用为e e。(6 6)假设总的加工费用为假设总的加工费用为C C。(7 7)假设待加工长方体的长、宽、高分别为假设待加工长方体的长、宽、高分别为a a、b b、c c,为为 常数,成品长方体的长、宽、高分别为常数,成品长方体的长、宽、高分别为A A、B B、C C,也是也是 常数。常数。(8 8)假设待加工长方体与成品长方体的左面、前面、后面、)假设待加工长方体与成品长方体的左面、前面、后面、下面、上面之间的距离为下面、上面之间的
6、距离为 且为常数。且为常数。下一页上一页下一页上一页下一页上一页 7.1.3 7.1.3 问题分析及数学模型问题分析及数学模型 根根据据所所给给的的实实际际问问题题,从从一一个个长长方方体体加加工工出出一一个个尺尺寸寸位位置置预预定定的的长长方方体体,通通常常情情况况下下,需需要要经经过过6 6次次截截断断切切割割,如如果果我我们们假假定定这这6 6个个切切割割面面分分别别位位于于左左、右右、前前、后后、下下、下下面面,那那么么可可将将它它们们相相应应地地编编号号为为1 1、2 2、3 3、4 4、5 5、6 6。这这样样这这6 6个个数数字字的的一一个个全全排排列列代代表表着着一一种种切切割
7、割顺顺序序。例例如如,排排列列1 1 2 2 3 3 4 4 5 5 6 6代代表表的的的的切切割割顺顺序序为为“左左前前后后右右下下上上”。我我们们将将这这6 6个个数数字字的的所有全排列记为集合所有全排列记为集合S S,即:即:因此问题转化为求总的切割费用因此问题转化为求总的切割费用C C在在S S上的最小值问题。上的最小值问题。下一页上一页下一页上一页下一页上一页 总总的的切切割割费费用用应应包包含含二二部部分分,一一部部分分为为加加权权的的切切割割面面积积之和,另一部分是刀具调整费用之和之和,另一部分是刀具调整费用之和,因此,数学模型为:因此,数学模型为:其中其中 :表表示示 进进行行
8、切切割割后后,加工面加工面 的切割面积;的切割面积;:为相应切割面的权,由题意有:为相应切割面的权,由题意有:为调整刀具的次数。:为调整刀具的次数。下一页上一页下一页上一页下一页上一页 7.1.4 7.1.4 模型的分析及计算模型的分析及计算 当当e e=0=0时(时(1 1)式成为:)式成为:由由于于集集合合S S为为有有限限集集,只只有有 个个元元素素,代代表表着着720720种种切切割割方方式式,r r给给定定,切切割割顺顺序序固固定定则则很很容容易易计计算算出出加加工工费费用用。比比较较出出所所有有不不同同切切割割方方式式下下的的费费用用,便便可可得得到到最最小小费费用用下下的的切切割
9、方式。下面给出割方式。下面给出MATLABMATLAB计算程序。计算程序。1 1)建立可行的加工顺序表。)建立可行的加工顺序表。2 2)用穷举法求出)用穷举法求出720720种切割方式下的费用。种切割方式下的费用。3 3)求最小费用及其对应的切割方式。)求最小费用及其对应的切割方式。下一页上一页下一页上一页下一页上一页在在MATLAB编辑器中建立如下文件。编辑器中建立如下文件。%截断切割截断切割ch711%文件名:文件名:ch711.ma0=10 14.5 19;a1=3 2 4;d1=6 7 9;r=1;d2=a0-a1-d1;d=d1,d2;d=d(1,4,2,5,3,6);p=0;for
10、 i=1:6 for j=1:6,if(j-i)=0,for k=1:6,if(k-i)*(k-j)=0,for l=1:6,if(l-i)*(l-j)*(l-k)=0,for m=1:6,if(m-i)*(m-j)*(m-k)*(m-l)=0,for n=1:6,if(n-i)*(n-j)*(n-k)*(n-l)*(n-m)=0,p=p+1;x(p,:)=i j k l m n;end end end end end end 下一页上一页下一页上一页下一页上一页 end end end end end end end end end endf=1 1 2 2 3 3;f=1 1 2 2 3
11、3;for p=1:720for p=1:720 o=x(p,:);cost=0;a=a0;o=x(p,:);cost=0;a=a0;for i=1:6 for i=1:6 j=j=o(i);aao(i);aa=a;aa(f(ja;aa(f(j)=;)=;if f(j)=3 if f(j)=3 cost=cost+r*aa(1)*aa(2);cost=cost+r*aa(1)*aa(2);else else cost=cost+aa(1)*aa(2);cost=cost+aa(1)*aa(2);end end a(f(j)=a(f(j)-d(j);a(f(j)=a(f(j)-d(j);end
12、end c(p)=cost;c(p)=cost;endendmincminc=min(c),find(c=min(c),find(c=mincminc););minx=minx=x(ansx(ans,:),:)下一页上一页下一页上一页下一页上一页执行后输出执行后输出最小切割费用最小切割费用mincminc=374 374最优切割顺序最优切割顺序minx=minx=5 3 1 6 4 2 5 3 1 6 4 2 5 3 6 1 4 2 5 3 6 1 4 2即当即当r=1,e=0r=1,e=0时最优切割顺序有两条,它们分别是时最优切割顺序有两条,它们分别是“下前左上后右下前左上后右”和和“下前上
13、左后右下前上左后右”,最小切割费用为,最小切割费用为374374元。元。当当e e00时,模型为(时,模型为(1 1)式,即)式,即下一页上一页下一页上一页下一页上一页 由由于于垂垂直直切切割割的的方方向向有有两两个个,因因此此至至少少调调整整一一次次刀刀具具,而而垂垂直直切切割割共共进进行行四四次次,故故调调整整刀刀具具的的次次数数至至多多,于于是是额额外外费费用用有有e e,2 2e e,3 3e e,三三种种可可能能。所所以以我我们们把把全全体体切切割割顺顺序序按按刀刀具具的的调调整整费费用用分分类类,共共分分三三类类,同同类类的的刀刀具具调调整整费费用用是是相相等等的的,故故可可先先分
14、分别别求求出出在在e e=0=0时时每每一一类类的的最最小小费费用用及及加加工工顺顺序序,再再将将每每一一类类的的最最小小切切割割费费用用加加上上相相应应的的刀刀具具调调整整费费用用,便便得得到到总总的的加加工工费费用用,从从而而比比较较各各类类加加工工顺顺序序求求出出整整体体最最优优的加工顺序。下面给出的加工顺序。下面给出MATLABMATLAB计算程序。计算程序。1 1)计算出三类可行的加工顺序及相应的切割费用表;)计算出三类可行的加工顺序及相应的切割费用表;2 2)对对每每一一个个最最小小费费用用的的切切割割顺顺序序,与与刀刀具具调调整整费费用用结结合考虑;合考虑;3 3)求出总的费用最
15、小时的切割顺序及调整刀具次数。)求出总的费用最小时的切割顺序及调整刀具次数。下一页上一页下一页上一页下一页上一页%截断切割截断切割ch712ch712%文件名:文件名:ch712.mch712.mfunction minc,minx1,minx2,minx3=cutorde(a0,a1,d1,r)function minc,minx1,minx2,minx3=cutorde(a0,a1,d1,r)mincminc=inf,inf,inf;minx1=;minx2=;minx3=;=inf,inf,inf;minx1=;minx2=;minx3=;k1=0;k2=0;k3=0;k1=0;k2=0
16、;k3=0;v1=1 2 3 4 5 6;v1=1 2 3 4 5 6;%建立可行的加工顺序表建立可行的加工顺序表 x x1,1,x x2,2,x x3 3及相应的切割费用表及相应的切割费用表for i1=1:6,o1=v1(i1);v2=v1;v2(i1)=;for i1=1:6,o1=v1(i1);v2=v1;v2(i1)=;for i2=1:5,o2=v2(i2);v3=v2;v3(i2)=;for i2=1:5,o2=v2(i2);v3=v2;v3(i2)=;for i3=1:4,o3=v3(i3);v4=v3;v4(i3)=;for i3=1:4,o3=v3(i3);v4=v3;v4
17、(i3)=;for i4=1:3,o4=v4(i4);v5=v4;v5(i4)=;for i4=1:3,o4=v4(i4);v5=v4;v5(i4)=;for i5=1:2,o5=v5(i5);o6=v5(3-i5);for i5=1:2,o5=v5(i5);o6=v5(3-i5);x=o1,o2 o3 o4 o5 o6;x=o1,o2 o3 o4 o5 o6;c=cost(x,a0,a1,d1,r);c=cost(x,a0,a1,d1,r);z=z=adjustnum(xadjustnum(x););switch z switch z case 1,k1=k1+1;x1(k1,:)=x;c1
18、(k1)=c;case 1,k1=k1+1;x1(k1,:)=x;c1(k1)=c;case 2,k2=k2+1;x2(k2,:)=x;c2(k2)=c;case 2,k2=k2+1;x2(k2,:)=x;c2(k2)=c;case 3,k3=k3+1;x3(k3,:)=x;c3(k3)=c;case 3,k3=k3+1;x3(k3,:)=x;c3(k3)=c;下一页上一页下一页上一页下一页上一页 end end end end end end end end end endendendmincminc=min(c1)min(c2)min(c3);find(c1=minc(1);=min(c1
19、)min(c2)min(c3);find(c1=minc(1);minx1=x1(ans,:);find(c2=minc(2);minx1=x1(ans,:);find(c2=minc(2);minx2=x2(ans,:);find(c3=minc(3);minx2=x2(ans,:);find(c3=minc(3);minx3=x3(ans,:);minx3=x3(ans,:);下一页上一页下一页上一页下一页上一页%求切割费用的子函求切割费用的子函ch713.mch713.mfunction c=cost(x,a0,a1,d1,r)function c=cost(x,a0,a1,d1,r)c
20、=0;c=0;d2=a0-a1-d1;a=a0;d2=a0-a1-d1;a=a0;for p=1:6for p=1:6 switch x(p)switch x(p)case 1,c=c+a(2)*a(3);a(1)=a(1)-d1(1);case 1,c=c+a(2)*a(3);a(1)=a(1)-d1(1);case 2,c=c+a(2)*a(3);a(1)=a(1)-d2(1);case 2,c=c+a(2)*a(3);a(1)=a(1)-d2(1);case 3,c=c+a(1)*a(3);a(2)=a(2)-d1(2);case 3,c=c+a(1)*a(3);a(2)=a(2)-d1
21、(2);case 4,c=c+a(1)*a(3);a(2)=a(2)-d2(2);case 4,c=c+a(1)*a(3);a(2)=a(2)-d2(2);case 5,c=c+r*a(1)*a(2);a(3)=a(3)-d1(3);case 5,c=c+r*a(1)*a(2);a(3)=a(3)-d1(3);case 6,c=c+r*a(1)*a(2);a(3)=a(3)-d2(3);case 6,c=c+r*a(1)*a(2);a(3)=a(3)-d2(3);end endendend下一页上一页下一页上一页下一页上一页%求调整刀具次数的子函数求调整刀具次数的子函数ch714.mch714
22、.mfunction z=function z=adjustnum(xadjustnum(x)z=-1;v0=0;z=-1;v0=0;for p=1:6for p=1:6 if x(p)5 if x(p)5 if x(p)3 if x(p)3 v=1;v=1;else else v=2;v=2;end end if(v0-v)=0 if(v0-v)=0 z=z+1;v0=v;z=z+1;v0=v;end end end endend end 下一页上一页下一页上一页下一页上一页在窗口中输入主程序在窗口中输入主程序ch715.mch715.ma0=10,14.5,19;a1=3,2,4;d1=6
23、,7,9;r=1.5;a0=10,14.5,19;a1=3,2,4;d1=6,7,9;r=1.5;mincminc,minx1,minx2,minx3=cutorde(a0,a1,d1,r),minx1,minx2,minx3=cutorde(a0,a1,d1,r)执行后输出执行后输出mincminc=442.5000 456.5000 437.5000 442.5000 456.5000 437.5000minx1=minx1=3 5 4 1 6 2 3 5 4 1 6 2minx2=minx2=1 3 5 4 6 2 1 3 5 4 6 2minx3=minx3=3 1 5 4 6 2 3
24、 1 5 4 6 2 3 5 1 4 6 2 3 5 1 4 6 2下一页上一页下一页上一页下一页上一页 每一类的最小费用为:每一类的最小费用为:调整一次刀具:调整一次刀具:切割顺序为切割顺序为:3 5 4 1 6 2:3 5 4 1 6 2 调整二次刀具:调整二次刀具:切割顺序为切割顺序为:1 3 5 4 6 2:1 3 5 4 6 2 调整三次刀具:调整三次刀具:切割顺序为切割顺序为:3 1 5 4 6 2:3 1 5 4 6 2 3 5 1 4 6 2 3 5 1 4 6 2 在坐标系中,画出三条曲线在坐标系中,画出三条曲线l l1 1,l l2 2,l l3 3,求出它们的求出它们的交
25、点,如图交点,如图7-17-1。由图可得全体加工顺序中最小费用为:。由图可得全体加工顺序中最小费用为:下一页上一页下一页上一页下一页上一页 当当 时,最小费用为时,最小费用为437.5+3437.5+3e e。对应的加工顺对应的加工顺序为序为3 3、1 1、5 5、4 4、6 6、2 2和和3 3、5 5、1 1、4 4、6 6、2 2。当当 时,最小费用为时,最小费用为442.5+442.5+e e。对应的加工顺序对应的加工顺序为为3 3、5 5、4 4、1 1、6 6、2 2。图图71图图71下一页上一页下一页上一页下一页上一页 7.1.5 7.1.5 问题的进一步讨论问题的进一步讨论 在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散数学 模型 实验 精品
限制150内