“深圳杯”全国大学生数学建模D题答案

发布时间:   来源:文档文库   
字号:

个人资料整理 仅限学习使用
打孔机生产效能的提咼
中文摘要:
基于过孔是印刷线路板 <也称为印刷电路板)的重要组成部分之一,过孔的 加工费用通常占制板费用的30V 40%打孔机主要用于在制造印刷线路板流程 中的打孔作业。打孔机在加工作业时,钻头的行进时间和刀具的转换时间是影 响生产效益的两个因素。因此在完成一个电路板的过孔加工时,钻头行进时间 和刀具转换总时间越短,生产效益就越高。钻头行进总时间由钻头进行路线决 定,而刀具转换总时间由线路板上由各孔的位置以及钻头行进方案决定。首先 对刀具行进路径进行建模,应用蚁群算法对行进的最优线路进行求解,并得出 刀具行进时间。考虑刀具转换一次的时间均大于一块电路板上任意某个孔型的 打孔总时间,而若对所有的孔求最优路线,刀具转换的总时间将非常大 < 不符合 实际生产),故采用刀具转换次数最少的方案作为刀具转换方案,通过刀具转 换方案求的最优行进路经的总和,同时求得刀具转换的最优时间。再根据钻头 行进总成本和刀具转换总成本,可得单钻头作业成本。
b5E2RGbCAP 当打孔机设计成双钻头时,由于作业时各钻头相互独立,且有合作间距的 限制,因此在解决双钻头最优作业方案时,我们在单钻头作业的基础上,对双 钻头的孔群加工优化路径进行数学建模,采用遗传算法双质点操作对行进的最 优线路进行求解,得出双转头行进的最优时间,同时保证两转头行进间距在要 求范围之内。利用分析单钻头的行进时间和作业成本的方法,得出双钻头的在 最优作业路线条件下的行进时间和作业成本。 plEanqFDPw 关键字:打孔机生产效能蚁群算法最短路径 问题重述:
1. 附件1提供了某块印刷线路板过孔中心坐标的数据,单位是 1/100密尔
vmil <也称为毫英寸,1 inch=1000 mil ),请给出单钻头作业的最优作业线
<包括刀具转换方案)、行进时间和作业成本。
DXDiTa9E3d 2. 为提高打孔机效能,现在设计一种双钻头的打孔机
<每个钻头的形状与单
钻头相同),两钻头可以同时作业,且作业是独立的,即可以两个钻头同时进 行打孔,也可以一个钻头打孔,另一个钻头行进或转换刀具。为避免钻头间的 触碰和干扰,在过孔加工的任何时刻必须保持两钻头间距不小于 3cm<#为两钻 头合作间距)。为使问题简化,可以将钻头看作质点。
RTCrpUDGiT )针对附件1的数据,给出双钻头作业时的最优作业线路、行进时间和 作业成本,并与传统单钻头打孔机进行比较,其生产效能提高多少?
5PCzVD7HxA )研究打孔机的两钻头合作间距对作业路线和生产效能产生的影响。1 / 10



个人资料整理 仅限学习使用
打孔机生产效能的提咼
1•问题分析
本文就提高某打孔机的生产效能而做出分析,所谓生产效能就是指单位时 间内的生产能力、加工效率。 所以要提高打孔机的生产效能,我们可以使钻头 行进时间和刀具转换总时间尽量短,所得到的生产效益会更高。 jLBHrnAILg 对于单钻头,我们首先画出所有点的分布图,确定该电路板的对角线大概 I而且行进速度是 ,粗略估计行进的时间不会很长。对行进的 速度和刀具的转换时间考虑,发现刀具的转换时间要比行进时间大得多,所以 我们便想做到刀具的转换时间最短,才是最优的方法。所以我们使用蚁群算 法,计算出所有点的最短距离和刀具转换次数最少所要走的最短距离 ,将两者 进行比较,得到最优结果。XHAQX74J0X 对于双钻头,因为两钻头可以同时作业,且作业是独立的,即可以两个钻 头同时进行打孔,也可以一个钻头打孔,另一个钻头行进或转换刀具。为避免 钻头间的触碰和干扰,现假设在过孔加工的任何时刻必须保持两钻头间距等于
称为两钻头合作间距,我们运用遗传算法做出最优作业线路图,计算得 出最优结果。LDAYtRyKfE 2. 模型假设
单个过孔的钻孔作业时间,这是由生产工艺决定,为了简化问
题,现假定对于同一孔型钻孔作业时间都是相同的;
2 为了计算行进费用,需要计算行进时间,为了简化问题,这里假 定打孔机的行进是匀速的运动。
3 假定针对不同孔型加工作业时,刀具的转换时间相同;
1
4 5
在计算两孔之间距离时,为简化问题,假设打孔机的钻头为一质 点。 为避免钻头间的触碰和干扰,假定保持两钻头间距不小于
3. 模型建立
1、单钻头模型:对于其一给定尺寸的孔,调整好对应的刀具后,从下刀点
开始沿着使该刀具总路程最短的轨迹,从一个孔移动到另一个孔,直到该类孔
中的所有对象都被加工完毕,再转换刀具进行下一尺寸的其它孔的加工,如此 安排。把问题描述成以下优化模型:Zzz6ZB2Ltk 1 变量设计。设有n个孔的集合 ……0 W表示集合中任
意两孔、表示集合中两孔之间的距离、M为行进总路程。
2
目标函数。需要在孔集合 中,找到一个不重复的全排列
,求M的最小值。
I ,令 _ AC ] 3
约束条件:加工路径从一个孔出发,对每一个孔只加工一次遍历
每一个
孔,最后回到起点,包括刀具转换在内。



个人资料整理 仅限学习使用
4
优化算法:蚁群算法
1
1
3图一:刀具的转換流程及刀具对应的打孔孔型- 图一:刀具的转換流程及刀具对应的打孔?
个钻头同时加工,每个钻头加 时间11 2、双钻头模型n钻头在孔群加工中两
并不确定,那么单一工间的加工时间由耗时较长的钻头决定
dvzfvkwl 假设两个钻头的对刀点分别为

FFH 1
1分别表示第一个钻头加
工的第i个孔和第2个钻头加工的第j个孔,则两条加工路径、分别为
rqyn14ZNXI

约束条件:任意一个待加工的孔必须包括在其中一条加工路径中,且加工 过程中两个钻头不发生碰撞。
4.模型求解
4.1单钻头问题结果分析
对于单钻头生产方式,钻孔方式上米用一种刀具钻完对应的全部孔在转换 刀具进行下一种刀具对其对应孔型的钻取方式,工作路线采用蚁群算法,通过 MATLA进行数据处理,得出相应路径最优图形如下 < 按顺序依次为Emxvxotoc 刀具:d e f ghabcf 孔型DG DI J FG HF AC B CEIJ EG
i酰彳亍丙冋题优化结x

1-DG孔型路
线2 / 10



个人资料整理 仅限学习使用

n 1 -1

[册彳亍閒题忧T七结
x
K qc/F 土匀足巨列年口氓矩靠巨和
rJ
oi



”髒彳亍it戸]趣(尢1 3-J孔型路线
3 9 3.8
3B
3_4
GA ■Oc—
3.2
1 50 200
4-FG孔型路
线
3 / 10


个人资料整理 仅限学习使用



们芥土匀距莊和晟短巨蕊
x5-FH孔型路
6-AC孔型路线
■& -> C F
7-B孔型路线
4 / 10



个人资料整理 仅限学习使用



8
10
A B +■
C B
x 105

9-EG孔型路线
x 10 10 旅行商问题优化结果
3.6
7
x 10 平均距离和最短距离
F
3.5

所有孔型的分布图


D

E F &
J
8 +>
'a *
11-所有孔型的分布图 F表为各刀具的行程 <单位: mil
3.1 *

3刀具 行程

H 4r I ■b
J
d 6.
e

++
4.66613.2375 3.0941
a
2.8
9257
4
5.9527 4- T
1821 时间/s 8.36 依上表- "可知, -..
....... 为:62 .989e+004 2 8.399921 6.58 -
.568472 4.366119

11.123

f
11.573 079 15.69579 6.816937 ' 140 160
180
20
12.586 *

a4 .8309
17.76024
d
-
grarf
100000 PMZZM■加:冲学;■吋 十于廿
t
44 l-l II4III1144 M l>l-li
«
1可得各种刀具作业路程总和 <1/100mil f - . h
* * + + + + -267400 -257400 184300 84300 -311300 74300 -202800 190200 2
b -197600 180800
-202800

199800 203200 - 5
上表各点距离和为选取转换前进的路程° 1.247+004",贝U加上前进的路程,
可知该路线总路程为
51 184518 190200 Shortest_Length= 64.2361e+004(mil>=16315.97
所有钻头的行进速度都是相同的,为
一二二,且所有钻头的刀具钻换时间为
5 / 10



个人资料整理 仅限学习使用
12*18=216s
时间方面:作业行进时间=最短距离/钻头行进速度=90.64427s
作业总时间钻头行进时间+钻头转换时间=306.64s 成本方面:行进成本=行进时间*行进成本=978.9594
作业转换成本=转换次数*转换成本=25.2元) 作业总成本=行进成本+作业转换成本=1004.159元)
即:此法生产,需用时 306.64vs),耗费1004.159元)。 4.2双钻头问题结果分析
我们现在在模型建立上有一些想法,但是在利用算法实现想法的过程中遇到一些 困难,因此并没有成功通过算法把更优的解算出。
SixE2yXPq5 5.模型评价与改进
该模型的分析过程清晰、简单易行,且经得住实践的考验。在单钻头问题 上,此模型采取了单刀具对应孔型完成再进入下一道具的方式,即任一种刀 具,先完成其所能钻取的孔型后,再进入下一孔型的钻取,而每种刀具的工作 路线都是通过蚁群算法方式得出的最优解。如此操作,既减少了道具不断转换 带来的时间损耗,提高了作业效率,又可以尽可能降低作业的成本。本模型是 一比较高效率的生产模型,却不是一个十分省钱的生产模型, 1000多元的生产 成本确实是高了些。而对于双钻头模型问题,此模型采用遗传算法,以遗传算 法双质点操作优化的优势,取代了单钻头问题中蚁群算法只能单质点优化路线 的缺陷,是较为优化的。本文只通过一组实验数据分析得出结果,会有误差, 所以在此基础上,用多组数据分析,会更好的减小误差,也可以对做模型进行 进检验。总的来说该模型还是能比较完整的解决问题的!
6ewMyirQFL 参考文献
1 2 3
姜启源等,数学模型 第四版),北京:高等教育出版社,2018 韩明,王家宝等,数学实验,上海:同济大学出版社,
2009 罗万成,大学生数学建模案例精选,成都:西南交通大学出版 社,2007 4 周明,孙树栋,遗传算法原理及应用,北京:国防工业出版
社,2005 5
李士勇,陈永强,蚁群算法及其应用,哈尔滨:哈尔滨工业大 学出版社,2004 6
曾峰等,印刷电路板PCB设计与制作,北京:电子工业出版 社,2002 附录:
m=10Alpha=1Beta=5Rho=0.1NC_max=200 Q=100为使程序运行速度更快,取蚂蚁数 10kavU42VRUs

6 / 10



个人资料整理 仅限学习使用
c=[x,y] n=size(c,1>
%康示问题的规模 < 电路板上孔的个数
y6v3ALoS89 D=zeros(n,n> for i=1:n for j=1:n if i~=j D(i,j>=((c(i,1>-c(j,1>>A2+(c(i,2>-c(j,2>>A2>A0.5 else D(i,j>=eps [表示完全图的赋权邻接矩阵
M2ub6vSTnP

OYujCfmUCw %i=j时不计算,应该为0,但后面的启发
因子要取倒数,用eps<浮点相对精度表示
end D(j,i>=D(i,j> end end
%对称矩阵
%Eta为启发因子,这里设为距离的倒数
Eta=1./D
eUts8ZQVRd Tau=ones(n,n> Tabu=zeros(m,n> NC=1
R_best=zeros(NC_max,n> L_best=i nf.*o nes(NC_max,1> while NC<=NC_max %TaU为信息素矩阵sQsAEJkW5T %存储并记录路径的生成
GMslasNXkA
TlrRGchYzg %迭代计数器,记录迭代次数 %各代最佳路线7EqZcWLZNX %各代最佳路线的长度lzq7IGf02E
%各代路线的平均长度zvpgeqJIhk %亭止条件之一:达到最大迭代次数,停止
NrpoJac3v1 %%蚁群算法MATLAB!序第二步:将n只蚂蚁放到n个孔上 Ra ndpos=[] for i=1:(ceil(m/n>> 随即存取

Ran dpos=[Ra ndpos,ra ndperm (n>]
7 / 10



个人资料整理 仅限学习使用
end Tabu(:,1>=(Ra ndpos(1,1:m>>' %%蚁群
o 算法MATLAB!序第三步: for j=2:n n只蚂蚁按概率函数选择下一个孔,完成各自的周游
%所在孔不计算
for i=1:m
visited=Tabu(i,1:(j-1>> J=zeros(1,( n-j+1>> P=J

%待打的孔
记录已打过的孔,避免重复访问

%待打孔的选择概率分布
Jc=1
for k=1:n
if length(find(visited==k>>==0 J(Jc>=k Jc=Jc+1

end


%开始时置0 8 / 10% 丁过的孔个数自加1


个人资料整理 仅限学习使用
%%下面计算蚁群算法MATLA程序待打孔的概率分布
for k=1:length(J> P(k>=(Tau(visited(e nd>,J(k>>AAlpha>*(Eta(visited(e nd>,J(k>>ABeta> 1nowfTG4KI end P=P/(sum(P>>
%%按概率原则选取下一个孔
Pcum=cumsum(P> cumsum 元素累加即求和
Select=fi nd(Pcum>=ra nd> 若计算的概率大于原来的就选择这条路
线
fjnFLDa5Zo to_visit=J(Select(1>>
Tabu(i,j>=to_visit
end end if NC>=2 Tabu(1,:>=R_best(NC-1,:>
end %%蚁群算法MATLA程序第四步:记录本次迭代最佳路线
L=zeros(m,1> %开始距离为0, m*1的列向量tfnNhnE6e5 for i=1:m R=Tabu(i,:>
for j=1:(n-1>
L(i>=L(i>+D(R(j>,R(j+1>> %原距离加上第j个孔到第j+1个孔的距离HbmVN777sL end L(i>=L(i>+D(R(1>,R( n>>
%一轮下来后走过的距离
end L_best(NC>=mi n(L> %最佳距离取最小
pos=fi nd(L==L_best(NC>> %此轮迭代后的最佳路线 V7l4jRB8Hs R_best(NC,:>=Tabu(pos(1>,:> %此轮迭代后的平均距离
83lcPA59W9 L_ave(NC>=mea n(L>
%迭代继续
NC=NC+1 %%蚁群算法MATLA程序第五步:更新信息素 %开始时信息素为 n*n0矩阵mZkklkzaaP Delta_Tau=zeros( n,n>
for i=1:m

Delta_Tau(Tabu(i,j>,Tabu(i,j+1»=Delta_Tau (Tabu(i,j>,Tabu(i,j+1»+Q/L(i>
次循环在路径j>上的信息素增量AVktR43bpw end Delta_Tau(Tabu(i, n>,Tabu(i,1>>=Delta_Tau (T abu(i, n>,Tabu(i,1>>+Q/L(i> %此次循环在整个路径上的信息素增量
ORjBnOwcEd 9 / 10

%




个人资料整理 仅限学习使用
end
10 /



个人资料整理 仅限学习使用

Tau=(1-Rho>.*Tau+Delta_Tau
2MiJTy0dTT

%%
蚁群算法MATLAB!序第六步:禁忌表清零 Tabu=zeros( m,n> end %% 蚁群算法MATLAB!序第七步:输岀结果 Pos=fi nd(L_best==mi n( L_best>>

Shortest_Route=R_best(Pos(1>,:>
Shortest_Le ngth=L_best(Pos(1>> subplot(1,2,1> DrawRoute(c,Shortest_Route>
subplot(1,2,2>
plot(L_best>

hold on
plot(L_ave, 'r' >
title('平均距离和最短距离’>

%
蚁群算法MATLA程序子函数 fun cti on DrawRoute(c,R> N=length(R>

scatter(c(:,1>,c(:,2>>
hold on

plot([c(R(1>,1>,c(R(N>,1>],[c(R(1>,2>,c(R(N>,2>],

hold on
for ii=2:N plot([c(R(ii-1>,1>,c(R(ii>,1>],[c(R(ii-

1>,2>,c(R(ii>,2>], hold on end
title(' 旅行商问题优化结果 ’>


%考虑信息素挥发,更新后的信息素
%直到最大迭代次数
%找到最佳路径40为真)gliSpiue7A %最大迭代次数后最佳路径 uEh0U1Yfmh %最大迭代次数后最短距离 IAg9qLsgBX %绘制第一个子图形
WwghWvVhPE %画路线图的子函数 asfpsfpi4k %绘制第二个子图形ooeyYZTjj1 渝题
'g' >BkeGuInkxI 'g' >PgdO0sRlMo
11 /

本文来源:https://www.2haoxitong.net/k/doc/5bbfdc32acf8941ea76e58fafab069dc512247d5.html

《“深圳杯”全国大学生数学建模D题答案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式