1、印刷电路板打孔的效能摘 要本文就打孔机生产效能的提高,运用 Matlab 和穷举法建立数学模型,针对实际问题,分别考虑两条原则:路径和转换方式最优原则,时间最优原则建立模型。由于两个问题都为优化问题,我们用 TSP 模型求解钻头行进路程的最短路径,以穷举法分析最优刀具转换方式。针对问题一,根据题目提供的印刷线路板过孔中心坐标数据,我们利用Matlab 画出了坐标分布图。分析其点分布,发现 dcbahgfec 这种刀具转换方式不仅能保证每个点都打到且转换次数最少,这样就不仅降低了转换成本,而且也使转换时间缩小到最少的。经过我们的反复计算,最终行进总路程为 1633.72cm,行进时间为 1727
2、.21,作业成本为 1001.23 元。对于双钻头的打孔机,它的作业是独立的,但为避免钻头间的触碰和干扰,我们采取了分区域的做法,即两个钻头分开作业。根据分析,决定将其分为四个区域并根据各个区域各种孔型分布特点,求出最短刀具转换方式。经过统计和计算,最终行进总路程为 1407.86cm,行进时间为 1534.32s,作业成本为924.516 元。与单钻头比较时间效率提高了 552.01s,缩短了钻头的行进路程,成本降低了 24.06 元。针对问题二,我们对问题一进行了优化,用牺牲刀具的转动时间来做到减短钻头所行总路线,将其划分为四个区域,钻头根据区域依次行走,经过计算得出最终行进总路程为 14
3、75.96 cm,行进时间为 2086.33s,作业成本为 948.58元,相比原本的方法,此种方法虽时间稍微多一些,但钻头行进路程变短了,也降低了成本。关键字:Matlab TSP 穷举法 一问题重述打孔机主要用于制造印刷线路板流程中的打孔作业。为提高生产效能,需进行合理的作业安排,设计加工一块线路板的最优计划,需考虑以下几个方面:(1)单个过孔的钻孔作业时间,这是由生产工艺决定;(2)打孔机在加工作业时,钻头的行进时间;(3)针对不同孔型加工作业时,刀具的转换时间。在给定的某种砖头,上面装有 8 种刀具 a,b.c ,h,依次排列呈圆环状,如图 1 所示:bcdefgha图 1:某种钻头
4、8 种刀具的分布情况而且 8 种刀具的顺序固定,不能调换。加工作业时,一种刀具使用完毕后,可以转换使用另一种刀具。相邻两刀具的转换时间为 18s。作业时,可采用顺(逆)时针旋转的方式转换刀具。将任一刀具转换至其它刀具处,所需时间是相应转换时间的累加。为简化问题,假定钻头的行进速度是相同的,为 180mm/s,行进成本为 0.06 元/mm,刀具转换的时间成本为 7 元/min。刀具在行进过程中可以同时进行刀具转换,但相应费用不减。不同刀具加工不同孔型,表一列出了 10 种孔型所需加工刀具及加工次序(标*者表示该孔型对刀具加工次序没有限制) 。表 1:10 种孔型所需加工刀具及加工次序孔型 A
5、B C D E F G H I J所需刀具 a b a, c d, e* c, f g, h* d, g, f h e, c f, c同一线路板上的过孔不要求加工完毕一个孔,再加工令一个孔,即对于须用两种或两种以上刀具加工的过孔,只要保证所需刀具加工次序正确即可。要求:根据提供的数据给出单钻头的最优作业线路(包括刀具转换方案) 、行进时间和作业成本;(2)设计一种双钻头的打孔机, (每个钻头的形状与单钻头相同) ,两钻头可以同时作业,且作业是独立的,即可以两个钻头同时进行打孔,也可以一个钻头打孔,另一个钻头行进或转换刀具。为避免钻头间的触碰和干扰,在过孔加工的任何时刻必须保持两钻头间距不小于
6、3cm(称为两钻头合作间距) 。为使问题简化,可以将钻头看作质点。(i)针对附件 1 的数据,给出双钻头作业时的最优作业线路、行进时间和作业成本,并与传统单钻头打孔机进行比较,其生产效能提高多少?(ii)研究打孔机的两钻头合作间距对作业路线和生产效能产生的影响。二、问题分析问题 1 的分析问题 1 所求的是单钻头作业最优生产效能,本题目要求综合刀具转换方案、行进时间和作业成本给出单钻头作业的最优加工线路。结合附件 1 给出的数据,我们初步确定用图论中的最短路径进行求解,而求解最短路径的是退火算法。对单钻头作业生产效能的影响因素进行分析,可以得到以下因素:1、每个钻头在印刷电路板的前进时间;2、
7、对于每个钻孔,过孔的钻孔作孔时间;3、对于不同孔型加工作业,刀具的转换时间所消耗的时间。因此,我们对以上三个影响因素进行综合分析,得出两种解决方法:(1) 、减少钻头的转换时间;(2) 、减少钻头的前进时间,即找到各钻头在钻头前进的最短路径。考虑到钻孔类型和钻头的种类不是一一对应的,因此,我们先确定刀具的最短转换顺序,然后再对应每一个刀具分别分析钻孔的最短路径。对于刀具的最短转换顺序,在考虑十种刀具所对应的孔型顺序时,我们利用枚举法进行求解,以得到最优的孔型顺序。在对每一个刀具进行最短路径的分析时,我们利用最优化问题的普遍求解算法模拟退火算法进行求解,从而对最有生产效能下最优化路线进行分析和求
8、解。问题 2 分析问题 2 将情况分为双钻头情况下的打孔机工作,要求求解最高生产效能以及工作效率的提高率。在求解最高生产效能问题中,我们沿用了问题 1 的思路,采用区域的思想,按照孔型分布情况将线路分为四个区域,再分别对每一个区域确定刀具的转换方式和打孔顺序,然后综合考虑两组钻头打孔的时间和费用,再进行调整,以此找出最优路径图。此外,我们还可以考虑“磨刀不误砍柴工”的思想,使得钻头 1 在线路板上行进时候钻头 2 在转换刀具,待钻头 2 转换刀具结束开始进入线路板进行打孔,钻头 1 退出线路板 3cm,以此往复。最终我们拿两种求解结果进行比较,以获得最优的工作效能。三、模型的假设1、对于同一孔
9、型钻孔作业时间都是相同的;2、钻头的行进速度是相同的;3、刀具在行进过程中可以同时进行刀具转换;4、对于须用两种或两种以上刀具加工的过孔,只要保证所需刀具加工次序正确即可;5、在计算两孔之间距离时,为简化问题,假设打孔机的钻头为一质点;6、为避免钻头间的触碰和干扰,假定保持两钻头间距不小于 3cm;四、符号的定义符号 表示含义N 城市编号X 城市 x 轴坐标Y 城市 y 轴坐标Dij i 城市到 j 城市的距离矩阵S 访问所有城市的路径总长度kT最优作业线路下刀具行进的总时间,ij最优作业线路下刀具从 i 转换到 j 所消耗的时间T 总时间W 作业成本1,ij钻头从 钻头转换到 钻头所需的费用
10、ij2k第 个钻头在线路板上前进的总费用kQ钻头转换所需要的费用,Tij从 钻头转换到 钻头所需要的时间ijs刀具转换的时间成本1t区域 1 中钻头行进所消耗的时间2区域 1 中钻头转换时消耗的时间五、模型的建立于求解5.1.1 刀具的最佳转换方案因为道具可以有顺时针旋转和逆时针旋转,通过穷举法得到全部方案:方案 1: abcdefghfedc方案 2: hgfcbagf方案 3: edh方案 4: cdefhcdef方案 5: bagfebagf方案 6: efabcef方案 7: dchfdhf方案 8: bgec方案 9: efgabfgf方案 10: dchfedc方案 11: fhc
11、dhedc方案 12: ebagf方案 13: gaceec方案 14: fedhfd方案 15: hbcefgec方案 16: gfbaf通过分析各方案的转换次数可以发现,最佳的刀具转换方案,也就是转换次数最小的方案,是方案 8: 。根据dchgfedc方案 8,可以求得每种刀具所能打的孔型的最佳方案。针对方案 8,每次转化钻头所需打的孔型见表 1:表 1 钻头对应的钻孔孔型序列步骤 刀具 每一步对应刀具所能打的孔型1 d、DG2 cE3 b B4 aA、 C5 h、FH6 gF、 G7 f G、 J、 E8 eI、 D9 c C、 J、 I5.1.2 线路板钻孔分布对于问题一,我们首先做出
12、钻孔在线路板的分布情况,如图 1 所示图 1 线路板钻孔分布图5.2.1 最优路径模型通过穷举法,我们得到了刀具转化的最优方案。我们把孔中心看做城市,钻头看做商人,那么钻头打好一种孔型就如同商人遍访每一个城市,商人行进路程 S 即为钻头的作业距离。若问题的解空间 M 可表示为 的所有排列的集合,即1,2n12,|,1,2nccn 为 的 排 列其中,每个排列 Mi 表示遍访 n 个城市的一个路径, 表示第 i 次访问城市ic=jj。原始数据矩阵为 3ncorNXYN 为城市编号,X 为城市的 x 轴坐标,Y 为城市的 y 轴坐标。那么3_01ncorxrNXYy即可得到原始数据矩阵的 x 坐标
13、,y 轴坐标。要算出每个点和其他所有点的距离,需要将 , 延拓成 n 阶_corxry方阵,定义一个 n 阶方阵 :nO1nn 3_01nn ncorxcorNXYOy应为要通过向量化的方法计算距离矩阵,所以要进行转置记为:,_TncorxTncory于是有 i 城市到 j 城市的距离矩阵:2 2_T Tij nnnnDr corx那么我们可以得到一个访问所有城市的路径总长度: ijijDS=、通过模拟退火算法得到函数 C 的一个最优值。下面我们以孔型 G 和刀具 g 为例进行说明,虽然钻孔型 G 时,要用到d、g、f 三种刀具,在这里我们只选取打孔型 G 时,使用刀具 g 这一步骤。在附录中
14、我们可以得到孔型 G 的中心坐标数据,将它编号如下表 2:表 2 孔型 G 的中心坐标X Y X Y1 -301300 -19200 11 -321300 -424002 -301300 23400 12 -321300 434003 -301300 -42400 13 -321300 -624004 -301300 43400 14 -321300 643005 -301300 -62400 15 -321300 8006 -301300 64300 16 -321300 843007 -301300 800 17 153000 8926008 -301300 84300 18 173000
15、 8926009 -321300 -19200 19 193000 89260010 -321300 23400 20 213000 892600根据模型我们得到 这一个距离矩阵ijD表 3 矩阵里的数据表(105 mil)ijD1 2 201 0 0.4260 5.24612 0.4260 0 5.1789 .20 5.2461 5.1789 0在这里 i=20, j=20。由于数据太多,就不在具体写出矩阵 中数据时每个点和其他的所有点的距离即关系矩阵。对角线上,因ijD为是各点到自己本身的距离,所以值为 0。然后第一行表示点 1 到其他各点的距离,如点 1 到 2 点的距离是 0.4260
16、105 mil.第一列表示各点到点 1 的距离,如点 20 到点 1 的距离是 5.2461105 mil.进而我们得到我们的目标函数,假设 为总的距离。开始按照原始数据的S路径来行进,即顺序 1,2,3,20。我们将这个顺序集合表示为:D=1,2,20目标函数是这个总的距离达到最小值即: min1,200,12,0ijijDS=j 、下面我们通过随机选择两个点或三个点,交换他们的顺序,得到一个新解记为长度 ,比较 S 和 的大小,将小的程度保留。然后继续进行随机选取点和求总长度,比较得较小者。经过多次的随机选择,得到最优的即最小的总长度并记录最优的路径。这样就得到了最短路径通过上面的模型我们
17、得到了在打 G 孔型时 g 刀具的最优路径及最短距离。最优路径: 135172417892086051最短距离:2.3017e+006由图 2 可以看出,使用退火算法模拟最优路径,很好地求解了钻头打孔的最短路径,使得个坐标点之间距离最优化,最后结果得到的路径长度比较满意。路径图 2:图 2 “g”钻头最优打孔路线图通过以上对“f”钻头的分析与求解,我们采用相同的方法对九个序列分别进行求解,可得各钻头在线路板上最短路径如表 4 所示。表 4 各钻头在线路板上路径起终点以及路径长度(mil)钻头 起点坐标 终点坐标 长度d -27400,54100 -17400,54100 6.2075 610c
18、 126200,845600 106800,837200 4.57b -88200,370000 -61800,390400 28a -54200,205000 -6400,221600 73.190h -311300,-52400 69000,-1800 64g -301300,-62400 -311300,74300 .25f -321300,64300 -321300,43400 67810e -2900,54100 235855,832162 .3c -65800,473600 -65400,473600 724通过上表的起点和终点坐标,可以求出刀具转换过程中路径长度,如表 5所示表
19、5 单钻头下刀具转换过程中的移动路径长度(mil)起点 终点起点坐标 终点坐标 移动路径长度dc-17400,54100 126200,845600 58.0421b106800,837200 -88200,370000 6a-61800,390400 -54200,205000 5.h-6400,221600 -311300,-52400 40931g69000,-1800 -301300,-62400 5.72g f -311300,74300 -321300,64300 4e-321300,43400 -2900,54100 53.180c235855,832162 -65800,473
20、600 467通过表 2 中数据我们可以得到,各钻头在线路板上最优总路径长度(单位:mil)为: 642.810()iSsmil5.2.2 单钻钻头打孔费用、作业时间及作业成本通过以上对模型的分析,可以得到最优作业线路下行进时间的关系表达式为: ,kijT其中 代表最优作业线路下刀具行进的总时间, 代表最优作业线kT ,ijT路下刀具从 i 转换到 j 所消耗的时间由于刀具行进总时间可由总路径长度 S 求得,因此,我们接下来对刀具转换时间进行考虑,刀具转换的时间为 18s,大部分的刀具转换都在移动路径中转换好了,除去 ,它的移动路径中所需时间小于刀具转换时间,那么将他记为gf18s。最后得出总
21、时间=6814s,kijT2、单钻头打孔机在线路板最优费用求解通过对题目的分析,可以得出作业成本的关系式如下:12,WijkQ其中, 代表钻头从 钻头转换到 钻头所需的费用(单位:元) ;1,ij j代表第 个钻头在线路板上前进的总费用; 表示钻头转换所需要的2Wk k费用(单位:元) 。在模型 2 对钻头模型分析可知,1,WijTijs其中, 代表从 钻头转换到 钻头所需要的时间(单位:秒) ; 代,Tiji s表刀具转换的时间成本(单位:元) 。因此,钻头转换过程中前进所需的费用(单位:元)为:QkSt总 行钻头转换过程中转换所需要的费用(单位:元)为:1i,WjTijs,所以,最后所需的
22、费用(单位:元)为:=64416(元)12,ijkQ5.2 问题二的求解双钻头作业的最优生产效应分析1 研究双钻头协同工作时对线路板区域的分块在考虑双钻头协同工作的模型时,由于两个钻头同时工作,且相距不小于3cm,因此,我们考虑将 22.8m30.48m 线路板分成四块,换分区域的要求考虑如下:1、在任何情况下都要满足两钻头直接的距离小于 3cm;2、考虑四个区域钻孔密集程度相当;3、考虑双钻头工作时转换区域时候时间相对较短。因此,我们综合考虑上述情况,最终得到处理分块方式如图 3 所示:图 3 双钻头作业时区域分块图上图三条线分别代表的直线方程是: 。555210,.8,610xxy(2)双
23、钻头作业时线路板各区域钻孔路径分析对于区域 1,我们依然采用问题一的方法对其进行研究。其刀具的最短转换顺序仍为: ,因此,我们使用edcbahgfedc模拟退火算法对区域 1 的孔型进行最短路径求解,可得各钻孔行进时的最短路径如表 6 所示:表 6 双钻头作业时区域 1 各钻头行进最短路径钻头 起点坐标 终点坐标 路径长度d -220525,556200 -301300,43400 1.584104c -244200,278000 -271900,426500 1.494106b -249800,758600 -215000,-27200 5.090105a -244400,258600 -2
24、98800,919000 3.401105h -311300,-52400 -319400,456500 2.310105g -301300,84300 -321300,-42400 1.862106f -268400,-65200 -298800,908000 1.640106e -276996,259221 -220525,556200 2112106c -309800,908000 -279400,-65200 1.643106由上表可得区域 1 的最短行进长度为 71.40S2、区域 1 在最优化效应下最短时间求解由各钻头前进最短路径数据,可以得到区域 1 打孔路径示意图 4图 4 分
25、块后区域 1 最优化路线示意图由此,我们对区域 1 钻头转换过程中的路径长度进行求解,可以得到数据表 7 所示:表 7 区域 1 刀具转换过程中的路径长度起点终点 起点坐标 终点坐标 路径长度dc -301300,43400 -244200,278000 241105cb -271900,426500 -249800,758600 3.32105ba -215000,-27200 -244400,258600 2.87105ah -298800,919000 -311300,-52400 9.71105hg -319400,456500 -301300,84300 3.73105gf -321
26、300,-42400 -268400,-65200 5.76104fe -298800,908000 -276996,259221 9.71105ec -220525,556200 -309800,908000 3.63105由上表可以得出区域 1 早刀具转换中行进的距离为 2.93106mil综上在区域 1 中作业过程中花费的是时间 为:1T12t其中, 代表区域 1 中钻头行进所消耗的时间, 代表区域 1 中钻头转1t 12t换时消耗的时间。1Stv综上,可一得到区域 1 作业过程中花费的时间 =18061T3、区域 1 在最优生产效应下费用求解由于区域 1 沿用问题 1 中的求解方法,因
27、此把数据带入=195612,WijkQ(3)区域 2、3 和 4 最优化路径分析通过上述区域 1 的分析,我们采用相同的思路对区域 2、3 和 4 进行分析求解,最终获得处理数据和结果如下所示:表 8 双钻头作业时区域 2 各钻头行进最短路径钻头 起点坐标 终点坐标 路径长度d 22500,662300 312200,898200 1.18106c 30200,720200 137000,899400 8.08105b -600,812200 92300,816300 7.01105a -38800,648800 447700,896900 1.32106h 4980,706900 29780
28、,892600 4.90105g -4980,706900 21300,892600 6.29105f 193000,892600 447700,907900 1.53106e -225600,662300 489989,612870 1.52106c 27800,659800 489989,611870 1.76106表 9 双钻头作业时区域 3 钻头行进最短路径钻头 起点坐标 终点坐标 长度c66118,111992 -5400,469200 8.28105b-136600,-52800 39300,449800 6.67106a22800,84200 35200,485800 4.341
29、06h69000,-1800 -5285,525900 5.51105g69000,-1800 69000,60700 6.25104f 62600,15800 -5400,469200 1.13106e53200,60800 -182000,321049 5.92105d-182000,321049 53200,60800 5.92105c-60600,41400 35200,485800 1.72106表 10 双钻头作业时区域 4 各钻头行进最短路径钻头 起点坐标 终点坐标 长度d332900,2800 169000,417000 9.91105c143000,16600 114600,
30、45400 2.30105b220400,-30500 169100,545400 3.05106a226953,133142 203331,125268 2.01106h165000,-1200 177500,61300 5.09105g165000,-1800 81500,60700 2.80105f 100447,511188 219600,28400 1.52106e293800,-50200 169000,417000 1.03106c317000,217200 340400, -54200 1.65106表 11 区域 2 刀具转换过程中的路径长度起点 终点起点坐标 终点坐标 路径
31、长度dc312200,898200 30200,720200 3.68105b137000,899400 -600,812200 1.63105a92300,816300 -38800,648800 5.15105h447700,896900 4980,706900 4.82105g29780,787100 4980,706900 8.03104g f 21300,892600 193000,892600 1.72105f e447700,907900 -225600,662300 7.17105c489989,612870 -27800,659800 2.85105表 12 区域 3 刀具转
32、换过程中的路径长度起点 终点起点坐标 终点坐标 路径长度dc-5400,469200 -136600,-52800 5.38105b39300,449800 22800,84200 3.66105a35200,485800 69000,-1800 4.89105h-5285,525900 69000,-1800 5.33105g 69000,60700 62600,60800 4.54105g f-5400,469200 53200,60800 4.13105f e-182000,321049 -182000,321049 0c53200,60800 -60600,41400 1.15105表
33、 13 区域 4 刀具转换过程中的路径长度起点 终点起点坐标 终点坐标 路径长度dc16900,0,417000 143000,16600 4.01105b114600,45400 220400,-30500 1.30105a169100,545400 226953,133142 4.16105h20333,1,125268 165000,-1200 1.32105a g177500,61300 106500-1800 9.50105g f 81500,60700 100447,511188 4.51105f e219600,28400 293800,-50200 1.08105c169000
34、,417000 317000,217200 2.491052.区域 2、3 和 4 最优化路径分析通过表 9-表 14,可以得到区域 2、3、4 刀具转换的路径长度和行进的路径长度关系如下表:表 14 各区域刀具行进和转换路径长度表汇总区域序号 区域 2 区域 3 区域 4刀具转换的路径长度 4.43106 2.38106 1.98106行进的路径长度 9.95106 1.69106 1.15106由表 可知,打孔机在区域 2、3、4 分别打孔所需的时间为:208912Tt28133319574142t打孔机在区域 2、3、4 分别打孔所需的费用(单位:元)为:2196121,+Wwijkq2
35、9508322612441,ijk3.双钻头下四区域转换方案分析通过对双钻头下刀具转换时间 、 、 和 的分析,综合考虑划区域的要1T234T求,最终我们选择一开始在区域 1 和区域 4 两钻头协同工作,接下来通过各区域转换钻头的起点和终点,对区域 1、4 转换区域的方案进行分析,得到各区域起终点关系如下:表 15 区域转换方案分析区域转换方案 钻头行进路径长度(单位:mil )区域 1 区域 25.89105区域 4 区域 3 2.80105区域 1 区域 3 8.80105区域 4 区域 2 6.19105通过表 的分析,我们得出双钻头下区域选取方案为:区域 1 区域 2 和区域 4 区域
36、 3。接下来,我们对此方案下的生产效能进行分析。4、双钻头四区域模型下生产效能计算通过以上的分析,可得转换后总时间为: =8865T最后的费用为 116947W5.2.3.双钻头四区域模型的评价首先,我们对题意进行了详细分析,得出了双钻头行进路线下对钻头进行的要求,然后,为满足双钻头直接距离不小于 3cm 我们采用了分区域模型,通过分别对各区域钻孔数据采用模拟退火算法,求出各个区域钻头行进的时间以及费用,最后得出钻换后的时间为 T=8865 费用为 W=116947通过与但钻头结果的对比,发现 TT, WW ,得出双钻头四区域模型并不能很好地处理双钻头问题,分析原因,归结于各钻头转换所需要的时
37、间太长(18s) ,而四区域模型对双钻头的转换时间要求比较高,因此,我们接下来基于双钻头四区域模型的思想对该模型进行改进,即减少钻头转换的次数,最终以获得更优化的生产效能。5.2.4.模型 3:双钻头工作下最优化效能处理模型1.模型 3 的建立由双钻头钻孔下四区域分块模型不能很好地解决工作的最优化问题,因此,接下来我们考虑线路板整体分析,最终采用如下思路进行模型搭建:首先考虑双钻头打孔机下如何合理利用两个钻头协同使得工作效率进一步提高,我们考虑采用双钻头分别独立工作的思路,即钻头 1 在线路板上行进的时候钻头 2 在转换道具,待钻头 2 转换道具结束开始进入线路板进行打孔,带钻头 1 打孔结束
38、退出线路板处 3cm,钻头 2 进入线路板,以此往复。最后对表1 分析得到道具加工序列(假设两钻头分别用钻头 1 和钻头 2 表示)为:dheabgcf其中各刀具所对应的钻头如下所示: 12212各刀具对于孔型如下表所示:表 16 模型 3 下刀具与孔型对应关系d h e a b g c f cDG HF DI AC B GF E GEJ CIJ图 5 双钻头最优化模型处理(初始状态)通过初始位置(图 6),接下来刀具 1 在线路板上进行钻孔,刀具 2 在线路板外进行转换刀具,然后等刀具 2 转换完成,得到此时刀具路径如图 6 所示:图 6 双钻头最优化模型处理(中间状态)利用相同的思路,我们
39、对每一个刀具进行如上分析,最后得到各刀具在线路板上行进数据如下:表 17 模型 3 下刀具与孔型对应分析钻头 刀具转换 行进时间 起点坐标 终点坐标1 dg 7.8 (88800,919800)2 hf 3.7 (-311300,-52400) (202500,724400)1 di 7.7 (233100,647300) (-301600,724400)2 ac 18.3 (-91400,306600) (-232600,873000)2 b 17.24 (-164700,40510) (255600,-55500)1 gf 3.3 (-311300,-9200) (213000,89260
40、0)2 e 5.2 (106800,837200) (233000,557600)1 egj 9.3 (-268400,-65200) (-199800,203200)2 cij 12.7 (894747,87300) (-38800,89447)因此,我们采用模型 2 的思路使用模拟退火算法,求得在此模型下总费用的大小为: 103645W钻孔工作的总时间为 837Ts由此可以得到在双钻头协同工作时时间花费大为减少,而所需的费用差别不大,效率提高 。通过对比上一个模型,我们可以看出,分治法的应用使两钻头协同工作时的时间花费更小,因此,我们有理由相信,双钻头工作更有利于打孔机减小生产费用,更有利
41、于提高打孔机的效能。5.2.4.两钻头艰巨对产生效能的影响分析模型为了研究打孔机的两钻头合作间距对作业路线和生产效能产生的影响,我们分别对钻头间距为 2、3、4 和 5 厘米进行总作业费用和总作业时间的求解,然后建立两钻头合作间距与作业的时间、作业时的成本的关系,如表 18 所示:表 18 两钻头合作间距与生产效应关系表两钻头间距(cm)2 3 4 5 6 7 10总费用(元) 100498 103645 107829 114563 118346 121947 125683总时间(s) 8161 8437 8732 9214 9456 9741 12101通过以上表格分析,随着两钻头合作间距的
42、增加,打孔机工作时的总费用和总时间都随之增加,两钻头合作间距每增加 1cm,总费用约增加 3000 元,因此,两钻头间距对生产效应有一定影响,因此,在实际生产中,我们要更多地考虑两钻头合作间距的大小,以获得最优生产效应。六、模型的优缺点6.1、模型优点(1)我们在建立模型的过程中用到了穷举法,它的算法很简单。(3)运用 Matlab 进行编程计算,严格的对模型进行求解,具有科学性。(4)对模型的合理性进行了讨论,为模型的推广和解决同类型问题提供了有价值的参考。6.2 模型的缺点求解过程中为了使结果更加理想化,忽略了一些次要因素。例如:将所有打孔时间看作同一常量,并且没有考虑打孔设备在工作过程中
43、出现的问题以及刀具的磨损对作业的影响,因而得出的结果不能精确的反应钻孔作业的真实情况。七、模型的推广与评价(1)我们对题意进行了详细的分析,得出了双钻头行进路线下对钻头行进的要求。然后,为满足双钻头直接距离不小于 3com,我们采用了分区域模型,通过分别对各区域钻孔数据采用模拟退火算法,求出各区域钻头行进的时间以及费用,最后得出转换后的时间为 =8437 ,费用 =103645 元。通过与单TsW钻头结果的对比,发现 , ,得出双钻头四区域模型并不能很好的处W理双钻头问题。分析原因,归结于各钻头转换所需的时间太长(18s) ,而四区域模型对钻头的转换时间要求比较高,因此,我们接下来基于双钻头四
44、区域模型的思想对模型进行改进,即减少钻头转换的次数,最终以获得更优化的生产效能。(2)模拟退火算法不仅能用在工业处理最佳效能问题上,还可以用在机器学习、信号处理等等其他领域的问题,具有很好的推广价值。(2)本模型求解思路可以推广到求解更一般的最优化问题模型。参考文献1 姜启源,谢金星 .大学数学实验.北京:清华出版社,2011,97-110。2 杨启帆.数学建模 .M.北京:高等教育出版社,2004.57 -59。3 韩中庚.数学建模方法及其应用,北京:高等教育出版社,2005。4 朱道元.数学建模案例精选,北京:科学出版社,2003。5 田贵超,黎明,韦雪洁.旅行商问题(TSP)的几种求解方
45、法 J.计算机仿真,2006.23(8):153-157。6 王霄PCB 数控钻孔最佳走刀路线的建模与求解J计算机辅助设计与图形学学报,2001,13(7) :590593。附录:clearclca=0.99;%t0=97;tf=3;t=t0;Markov_length=1000;%Markovcoordinates=;coordinates(:,1)=;amount=size(coordinates,1);%dist_matrix=zeros(amount,amount);coor_x_tmp1=coordinates(:,1)*ones(1,amount);coor_x_tmp2=coor
46、_x_tmp1;coor_y_tmp1=coordinates(:,2)*ones(1,amount);coor_y_tmp2=coor_y_tmp1;dist_matrix=sqrt(coor_x_tmp1-coor_x_tmp2).2+(coor_y_tmp1-coor_y_tmp2).2);sol_new=1:amount;%sol_newsol_currentsol_bestE_current=inf;E_best=inf;%E_current%E_new%E_bestsol_current=sol_new;sol_best=sol_new;p=1;while ttffor r=1:M
47、arkov_length%Markov%if(rand0.5)%ind1=0;ind2=0;while(ind1=ind2);ind1=ceil(rand.*amount);ind2=ceil(rand.*amount);endtmp1=sol_new(ind1);sol_new(ind1)=sol_new(ind2);sol_new(ind2)=tmp1;else%ind1=0;ind2=0;ind3=0;while(ind1=ind2)|(ind1=ind3)|(ind2=ind3)|(abs(ind1-ind2)=1);ind1=ceil(rand.*amount);ind2=ceil(rand.*amount);ind3=ceil(rand.*amount);endtmp1=ind1;tmp2=ind2;tmp3=ind3;%ind1ind2ind3if(ind1ind2)elseif(ind1ind3)ind2=tmp3;ind3=tmp2;elseif(ind2ind1)ind1=tmp2;ind2=tmp1;elseif(ind2ind3)ind1=tmp2;ind2=tmp3;ind3=tmp1;elseif(ind3ind1)ind1=tmp3;ind2=tmp1;ind3=tmp2;elseif(ind3ind2)ind1=tmp