河北工程大学数学建模初赛二等奖作品.docx
《河北工程大学数学建模初赛二等奖作品.docx》由会员分享,可在线阅读,更多相关《河北工程大学数学建模初赛二等奖作品.docx(12页珍藏版)》请在冰豆网上搜索。
河北工程大学数学建模初赛二等奖作品
2012河北工程大学数学建模竞赛
承诺书
我们仔细阅读了河北工程大学数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从C/D中选择一项填写):
D
我们的参赛序号为:
所属学院(请填写完整的全名):
水电学院
参赛队员(打印并签名):
1.
2.
3.
日期:
2012年5月13日
打孔机生产效能的提高
摘要
本题研究的是如何提高某类打孔机的生产效能。
题目要求我们根据不同的目标建立数学模型。
给出了某块印刷版过孔中心的坐标数据。
首先对刀具路径进行建模,应用蚁群算法对刀具路径进行求解,然后引入双钻头对孔群同时加工,并对双钻头的孔群加工优化路径进行数学建模,采用遗传算法得到基于单钻头的孔群加工优化路径。
选择单钻头对环境进行简单建模,根据单钻头模型得出打孔机工作最优路线,且行进时间等于作业最短距离除以钻头的行进速度再减去刀具转换总时间,根据钻头行进总成本和刀具转换总成本,可以得出单钻头作业成本。
再则,利用分析单钻头的行进时间和作业成本,得出双钻头在最优化作业路径条件下的行进时间和作业成本,并与传统单钻头打孔机进行比较,同时考滤打孔机的两钻头的合作间距对作业路线和生产效能的影响。
实验结果表明,双钻头最优加工路径与单钻头的最优加工路径相比,在不同钻孔速度下使用双钻头同时加工的新算法能节省加工时间,有效提高了打孔机的加工质量、生产效能。
关键词:
生产效能;蚁群算法;遗传算法;最优路径
一、问题的重述
过孔的加工费用通常占制板费用的30%到40%,打孔机主要用于在制造印刷线路板流程中的打孔作业。
本问题旨在提高某类打孔机的生产效能。
打孔机的生产效能主要取决于以下几方面:
(1)单个过孔的钻孔作业时间,这是由生产工艺决定,为了简化问题,这里假定对于同一孔型钻孔作业时间都是相同的;
(2)打孔机在加工作业时,钻头的行进时间;(3)针对不同孔型加工作业时,刀具的转换时间。
目前,实际采用的打孔机普遍是单钻头作业,即一个钻头进行打孔。
现有某种钻头,上面装有8种刀具a,b,c,…,h,次排列呈圆环状而且8种刀具的顺序固定,不能调换。
在加工作业时,一种刀具使用完毕后,可以转换使用另一种刀具。
相邻两刀具的转换时间是18s。
作业时,可以采用顺时针旋转的方式转换刀具,而且任一刀具转换至其它刀具处,所需时间是相应转换时间的累加,为了简化问题,假定钻头的行进速度是相同的,为180mm/s,行进成本为0.06元/mm,刀具转换的时间成本为7元/min。
刀具在行进过程中可以同时进行刀具转换,但相应费用不减。
不同的刀具加工不同的孔型,有的孔型只需一种刀具来完成,有的孔型需要多种刀具及规定的加工次序来完成。
一块线路板上的过孔全部加工完成后,再制作另一线路板。
但在同一线路板上的过孔不要求加工完毕一个孔,再加工另一个孔,即对于须用两种或两种以上刀具加工的过孔,只要保证所需刀具加工次序正确即可。
问题1(附件1)提供了某块印刷线路板过孔中心坐标的数据,单位是密尔(mil)(也称为毫英寸,1inch=1000mil),请给出单钻头作业的最优作业线路(包括刀具转换方案)、行进时间和作业成本。
问题2为提高打孔机效能,现在设计一种双钻头的打孔机(每个钻头的形状与单钻头相同),两钻头可以同时作业,且作业是独立的,即可以两个钻头同时进行打孔,也可以一个钻头打孔,另一个钻头行进或转换刀具。
为避免钻头间的触碰和干扰,在过孔加工的任何时刻必须保持两钻头间距不小于3cm(称为两钻头合作间距)。
为使问题简化,可以将钻头看作质点。
(i)针对附件1的数据,给出双钻头作业时的最优作业线路、行进时间和作业成本,并与传统单钻头打孔机进行比较,其生产效能提高多少。
(ii)研究打孔机的两钻头合作间距对作业路线和生产效能产生的影响。
二、模型的基本假设
(1)假定对于同一孔型加工作业时间都是相同的。
(2)假定钻头的行进速度是相通的。
(3)假定在过孔加工的任何时刻必须保持两钻头间距等于3cm。
(4)假定钻头是个质点。
三、变量及符号声明
Pkij(t):
在t时刻蚂蚁k由i转移到元素j的概率;
Allowedk:
表示蚂蚁k下一步允许选择的城市;
α:
信息启发式因子,表示轨迹的相对重要性;
β:
期望启发式因子,表示能见度的相对重要性;
ηik(t):
启发函数,ηik(t)=1/dij;
τij:
残留信息量;
ρ:
信息素挥发系数;
Δτkij(t):
表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息量;
Q:
信息素强度,设为常数;
Lk:
第k只蚂蚁在本次循环中所走的路径的长度。
四、问题的分析
我们的目标是提高某类打孔机的生产效率:
(1)通过缩短钻头的加工路径长度来降低钻头的移动时间。
(2)对于单钻头的孔群路径优化问题多利用蚁群算法进行计算,双钻头加工中的两条路径去掉刀点合并后也都是一个代加工孔的序列,并用遗传算法分析。
(3)根据数学知识求单钻头问题,行进时间等于作业最短距离除以钻头的行进速度再减去刀具的转换时间,根据钻头行进总成本和刀具转换总时间可的单钻头作业成本。
(4)双钻头作业可看做质点的作业,假设在过孔作业的任何时间必须有两钻头合作间距,利用上述遗传算法做出最优作业线路图,可知双钻头最短工作路线。
(5)利用分析单钻头的行进时间和作业成本方法得出双钻头的在最有优路线行进时间和成本并与传统单钻头作业进行比,得出生产效率的提高值。
(6)研究打孔机的两钻头的合作间距对作业线路和生产效能的影响。
五、模型的建立和求解
5.1基于问题1:
单钻头的模型
5.1.1模型的建立
依据前面的分析,把问题描述成以下优化模型:
目标函数:
Mmin=∑d(Ti,Tj)
约束条件:
加工路径从一个孔出发,对每一个孔制加工一次遍历每一个孔,最后回到起点,包括刀具转换在内。
5.1.2目标函数说明
目标函数使得在满足约束条件下钻头加工路径最短,设又n个孔T={T1,T2,T3,...Tn}在孔集合V中不重复的全排列。
5.1.3模型的求解
①蚁群算法的简述
蚁群算法本质上是一种随机搜索算法,它是通过对候选解组成的群体的进化来寻求最优解,算法有许多蚂蚁共同完成,每只蚂蚁在候选解的空间中独立搜索解,并在所寻得的解上留下一定的信息素。
解的性能越好,蚂蚁留在其上的信息素就越多,信息素越多的解被选择的可能性也就越大。
在算法的初级阶段所有解上的信息是相同的,随着算法的推进,较优解上的信息素将越来越多,算法逐渐趋于收敛。
②算法的实现
(一)状态转移规制
Pijk(t)=
0,else
(1)式
式中Pijk(t)——在t时刻蚂蚁k由元素i转移到元素j的概率;Allowedk——表蚂蚁k下一步允许选择的城市;
——信息启发式因子,表示轨迹的相对重要性;
——期望启发式因子,表示能见度的相对重要性;ηij(t)——启发函数;ηij(t)——残留信息量。
(二)局部调整规制
局部调整是每只蚂蚁在建立一个解的过程中进行的,经过h个时刻,两个元素状态之间的局部信息素数量要根据下式作调整:
τij(t+h)=(1-ξ)τij(t)+ξτ0
τ0=1/(nlmin)
式中ξ
,lmin表示所有坐标集合中两个最近元素之间的距离。
(三)全局调整准则
只有生成了全局最优解的蚂蚁才有机会进行全局调整,全局调整规则为
τij(t+n)=(1+p)τij(t)+
τij(t)
τij(t)=
kij(t)
(2)式
τkij(t)=
,第k只在本次循环(i,j)(3)式
式中p——信息素挥发系数;
τkij(t)——表示第k只蚂蚁在本次循环中留在径(i,j)上的信息量;Q——信息素强度,设为常数;LK——第k只蚂蚁在本次循环中所走的路径的长度。
本文编写蚁群算法程序的步骤如下:
1)初始化问题的集合规模n,蚂蚁的数量m,并将m只蚂蚁放到n个城市(过孔)上;
2)程序执行需要循环MC=MC+1次;
3)执行循环时蚂蚁的个数K=K+1;
4)对其中第K只蚂蚁,根据公式
(1)选择城市(过孔)j,并继续进行前进;
5)把蚂蚁选择的城市(过孔)j加入到第k只蚂蚁的表tabu中,并修改表Allowed;
6)对于第K只蚂蚁如果没有行走完所有n个城市(过孔),则转到第四步,若所有城市(过孔)均已走完,则继续往下执行;
7)如果蚂蚁数K小于蚂蚁总数m,则转到第三步,直到m只蚂蚁都走完n个城市,继续往下执行;
8)由式
(2)、式(3)随时更新蚂蚁行走时的信息量,且找出m只蚂蚁中,所走路径最短的值,并保存;
9)若循环的总次数没有达到最大的循环次数,则将继续转到第二步进行执行,若满足结束条件循环将结束,同时输出结果数据。
③算法的流程:
绘制出流程图如图
(1)所示
5.2基于问题2:
双钻头的模型
5.2.1模型的建立
T1T1>T2
目标函数:
minT=(0)式
T2T1
T2
相应的加工时间分别为T1和T2。
约束条件:
任意一个待定加工的孔必须包括在其中一条工作路径中,加工过程中两个钻头不相碰。
5.2.2函数说明:
双钻头在孔群加工中,两个钻头同时加工,每个钻头加工时间并不确定,则单一工件的加工时间由耗时最长钻头确定。
5.2.3模型的求解
遗传算法的介绍
遗传算法是一种优化技术,其目的是提高解决问题的能力,保持最佳组合输入变量。
从代表问题的潜在解集的一个种群开始,而一个种群则由经过基因编码的一定数目的个体组成。
每个个体实际上是染色体带有特征的实体。
染色体作为遗传物质的主要载体,几多个基因的集合,其基因型是某种基因组合决定的。
在一开始需要实现从表现行到基因型的映射即编码工作。
由于仿照基因编码的工作很复杂,往往对其进行简化,原始种群产生后,按照适者生存和优胜掠汰的原则逐代演化出越来越好的近似解。
在每一代,根据问题域中个体的适应能力大小挑选个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新解集的种群。
这个过程将导致种群向自然进化一样,其后代种族比前一代更加适应环境,末代种族中的最优个体经过解码,可以作为问题近似解最优化解,遗传算法对于组合优化中的NP问题非常有效。
②算法的实现
遗传算法在优化孔群加工路径中,染色体一般为一个待加工孔的序列,所以染色体长度与孔的数量相等。
直接采用孔的编号编码在运算中可能出现某些孔未加工的情况,因此可采用编码方式如下:
每加工一个孔就将其从未加工列表
T中删除,并将该孔在T中的位置序号放入顺序列表R中,依次进行同样操作直到T中所有孔被删除,则列表R作为一个染色体表示一个待加工孔的序列。
而对于双钻头孔群加工路径问题,每个孔的加工序列都是两条加工路径去掉对刀点后合并的结果,所以还需要把这个序列分为两个子序列。
序列中每两个相邻孔之间断开后都可形成两个子序列,根据钻头行走时间和钻孔所需时间可算出对应加工时间为T1和T2。
由前面(0)式可求得对应的加工时间T,比较不同断点对应的T值,T值最小的两个子序列就是这一染色体代表的双钻头孔群加工方案。
在遗传算法中,适应度值是判断个体是否优良和解是否较优的依据。
孔群加工最优路径是以加工时间最短为目标函数,因此,对于任意不发生碰撞的双钻头加工路径U1和U2对应顺序列表R所表示染色体的适应度为:
F(T)=1/T(4)式
对于发生碰撞的双钻头加工路径U1和U2,适应度为0。
③算法的流程如图表
(2)所示
六、模型分析
6.1问题1结果分析
对于单钻头的假设,工作时采用蚁群算法由MATLAB进行数据处理,得出路径最优图形、平均距离和最短距离分别;且由图可知在单钻头作业的最优作业线路(包括刀具转换方案)的条件下,可以得到作业最短距离为:
Shortest_Length=4.7023e+008(mil)
所有钻头的行进速度是相同的,为180mm/s,且所有钻头的刀具转换时间为:
36*270+18*212+3*18*95+18*64+4*18*20+2*18*10+3*18*29=23184(s)
所以,行进时间=作业总时间-钻头转换时间;作业总时间=最短距离/钻头行进速度。
即:
4.7023e+008(mil)=1.1943842e+007(mm)
作业总时间=1.1943842e+007(mm)/180mm/s=6.6354e+004(s)
行进时间=6.6354e+004(s)-23184(s)=43170.7(s)
综上所述:
作业成本=行进成本+刀具转换时间成本
即:
行进成本=1.1943842e+007(mm)*0.06元/mm=7.166e+005(元)
刀具转换时间成本=23184(s)*7(元/min)/60=2704.8(元)
作业成本=7.166e+005(元)+2704.8(元)=7.1933e+005(元)
6.2问题2结果分析
同理,由双钻头的假设,利用遗传算法对双钻头进行计算,结果如
其中包括:
(i)根据假定可知,双钻头过孔加工的任何时刻保证两钻头间距为3cm,则由最优作业路线图可知双钻头作业最短为
Shortest_Length=4.6790e+008(mil)
钻头的行进速度依旧为180mm/s,刀具转换时间与单钻头相同为23184s,同理,行进时间=作业总时间—钻头转换时间,作业总时间=最短距离/钻头行进速度
即:
4.6790e+008(mil)=1.1884660*e+007(mm)
作业总时间=1.1884660*e+007(mm)/180(mm/s)=6.6026e+004(s)
行进时间=6.6026e+004(s)-23184(s)=4.2842e+004(s)
同理:
作业成本=行进成本+刀具转换时间成本
行进成本=1.1884660*e+007(mm)*0.06元/mm=7.131e+004(元)
刀具转换时间成本=23184(s)*7(元/min)/60/2=1352.4(元)
作业成本=7.131e+004(元)+1352.4(元)=7.2692e+004(元)
双钻头与传统单钻头进行比较:
(1)孔机缩短的作业时间=6.6354e+004(s)-6.6026e+004(s)=328(s)
(2)刀具转换缩短的时间=23184(s)/2=11592(s)
(3)钻头行进缩短的时间=43170.7(s)-4.2842e+004(s)=328.7(s)
由
(1)~(3)可知,双钻头打孔机与传统单钻头打孔机进行比较,其生产效能有提高。
(ii)研究打孔机的两钻头合作间距对作业路线和生产效能产生的影响
由题意可知,打孔机的双钻头合作间距不小于3厘米,在保证此要求的前提下还需缩短打孔机的作业、刀具转换的、钻头行进时间,以提高生产效能及优化业路线,则需选择一个合适的打孔机的两钻头合作间距,以得到最优路径,进而减少行进成本以及作业成本。
由于,打孔机的双钻头合作间距会影响作业路线,合作间距控制不合理将会浪费资源,即而会导致两个钻头不同时作业,使加工效率、加工质量降低,以使整体工作时间加长、产品质量下降,且作业总时间与作业成本有直接联系,作业成本与生产效能亦息息相关。
综合上述的作业成本与作业时间的关系式,间距的合理性将会对整个系统起到至关重要的作用。
则必须选择最合理的合作间距以提高工作效率、工作质量、打孔速度、缩短时间成本,即而缩短作业成本,以达到提高生产效能目的。
路径的最优是缩短钻头的加工路径长度来降低钻头移动时间,其与间距的合理设置密切相关。
综上所述,生产效能的提高归根结底是合作间距的合理性。
七、模型的评价与改进
为了提高打孔机过孔效能,我们使打孔机作业路线最优,作业费用最小,而且加工总费用
=刀具行进费用
+刀具转换费用
,我们建立了优化模型,该模型能够很好的描述NP不可解问题。
但是对于模型的求解,理论上是把非线性模型化为线性模型,但是实际操作发现无法做到,我们又运用“遗传算法”程序求解,又发现结果不是非常的准确。
为此,我们对优化模型进行改进。
我们通过查阅资料,得知“贪婪算法”
对此类问题模型的求解较为准确,因此采用该算法对模型进行求解并检验。
八、参考文献
[1]宋来中,王志明,数学建模与实验,科学技术出版社,2005
[2]杨启帆,何勇,谈之奕.数学建模竞赛,杭州:
浙江大学出版社,2005
[3]高子兰,杨群星,蚁群算法及应用,同济大学出版社,2006
[4]蒋昌华,胡友华,一种求解旅行商问题高效混合遗传法,高等教育出版社,2004
[5]周正武,丁同梅,基于TSP和GA孔群加工路径优化问题的研究,组合机床与自动化加工技术,2007(7):
30-32.
[6]周明,孙树栋,遗传算法原理及应用,北京:
国防工业出版社,1999.