收藏 分享(赏)

基于遗传算法求解作业车间调度问题-生产运作实践.doc

上传人:tangtianxu1 文档编号:3107241 上传时间:2018-10-03 格式:DOC 页数:25 大小:561KB
下载 相关 举报
基于遗传算法求解作业车间调度问题-生产运作实践.doc_第1页
第1页 / 共25页
基于遗传算法求解作业车间调度问题-生产运作实践.doc_第2页
第2页 / 共25页
基于遗传算法求解作业车间调度问题-生产运作实践.doc_第3页
第3页 / 共25页
基于遗传算法求解作业车间调度问题-生产运作实践.doc_第4页
第4页 / 共25页
基于遗传算法求解作业车间调度问题-生产运作实践.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、生产运作实践大作业1目录目录 0问题一:基于遗传算法求解作业车间调度问题 21问题介绍 .21.1 作业车间调度问题表述 .21.2 作业车间调度问题研究的假设条件 .21.3 车间作业调度问题的数学模型 .32 .基本遗传算法 42.1 遗传算法的基本思路 .42.2 基本遗传算法参数说明 .43 .用遗传算法对具体问题的解决 53.1 参数编码 .53.2 初始种群的生成 .63.3 个体的适应度函数 .63.4 遗传算子的设计 .73.5 遗传算法终止条件 .84模型的求解 .85结论总结 .106 . 附录 10问题二:邮政运输网络中的邮路规划和邮车调度 181.问题描述 .182.模

2、型建立 .182.1 模型的基本假设 182.2 符号说明 192.3 模型分析 202.4 模型的建立 203.模型的求解 .213.1 求解思路 213.2 求解算法 222问题一:基于遗传算法求解作业车间调度问题1问题介绍1.1 作业车间调度问题表述作业车间是指利用车间资源完成的某项任务,在 实际生产 中, 这项任务可能是装配一种产品,也可能是完成一批工件的加工,为了研究方便,我 们将这项任 务限定为加工一批工件。在此基础上,可对作业车间调度问题进行一般性的描述:假定有 N 个工件,要经过 M 台机器加工,一个工件在一台机器上的加工程序称为一道“工序”,相应的加工时间称为该工序的“加工时

3、间”,用事先给定的“加工路线”表示工件加工时技术上的约束,即工件的加工工 艺过程,用 “加工顺序”表示各台机器上各个工件加工的先后顺序。在车间作业调度问题中,每个工件都有独特的加工路线,我们要解决的问题就是如何分配 N 个零件在 M 个机器上的加工顺序以使得总的加工时间最短。1.2 作业车间调度问题研究的假设条件在研究一般的作业车间调度问题中往往需要明确两类重要假设条件:1.工艺路径约束:工件的任一工序必 须在其前道工序完成后才能开始,并保证同一工件不会同时在两台机器上加工,反映了工件不同工序间的时序关系;2.资源独占性约束:任一台机器每次只能加工一个工件,且一旦开工就不能中断,反映了加工队列

4、中工件间的时序关系。根据上面以及求解方便,我们 做出以下具体假设: 1. 每一台机器每次只能加工一个工件,每一个工件在机器上的加工被成为一道工序。2. 不同工件的加工工序可以不同;3. 所有工件的工序数不大于设备数;4. 每道工序必须在指定的某种设备上加工,所有机器 处理的加工 类型均不同;5. 在作业优化过程中既没有新的工件加入也没有取消的工件;6. 不考虑工件加工的优先权,即工件之 间没有优先约束关系限制的;7. 工序允许等待,即前一个工序未完成,则后面工序需要等待;8. 工件的加工时间事先给定,且在整个加工 过程中保持不 变。31.3 车间作业调度问题的数学模型建立车间作业调度问题的数学

5、模型,是我 们研究该问题的出 发点,同 时也为其后的研究奠定了基础。假设有 n 个工件,要在 m 台机器上加工,每个工件有 Pi 道工序,每台机器上总共要加工 Lj 道工序。我们定义以下基本数学符号 6:J:所有工件的集合, ; 12,nJJM:所有机器的集合, ;,mM:工件 Ji 的工序集合, ;ijP12iiiijjjpPPP:所有工序的集合,此 为 矩阵。P(i,j)表示 i 工件的第 j 道工序。ax,nn,表示 i 工件的所有工序按优先顺序的排列。不足 ,那么其空余的位(,)iji 12ax,nP置用 0 填满。(1.1)11111212()0inniiiPjjjjpP :机器顺序

6、阵,此为 矩阵。 (i,j)表示 i 工件的第 j 道工序的机器号,MJ12max,nP MJ表示 i 工件的所有工序按 优先顺序加工的各机器号的排列。注意:(,)i如果某工件的工序数不足 ,那么其空余的位置用 0 填满。12,n(1.2)1 121121(1)10ijPjjjpjjnjPn iii PPMPJM T:加工 时间阵,此为 矩阵。 T(i, j)表示工件 i 的第 j 道工序在 (i,j)上的12max,n MJ加工时间。同样地,如果某工件的工序数不足 ,那么其空余的位置用 0 填满。12ax,n(1.3) 1121121(1)10ijPjjjpjjnjPniii PPT 4:工

7、件排列阵,此为 矩阵。 表示在 i 机器上排在第 j 位加工的jM12max,nP (,)jMi工件号, 表示 i 机器上依次加工的各工件的排列。同上,如果某工件的工序数不足(,)ji,那么其空余的位置用 0 填满。事 实上,工件排列阵就是调度的一种表示形式。12maxnP由此,我们可以给出一般性的 车间作业调度数学模型的定 义:如果对应于一个确定的 ,满足 或j*12()in(),()nj jjjffff。即 使得目 标函数 取值最小(或最大),且与*12()ax(),nj jjjfMffM jjM相容,则称 为车间作业调 度问题在此目标函数下的最 优解。Jj2 .基本遗传算法遗传算法是一种

8、基于自然群体遗传演化机制的高效探索算法,由美国学者 Holland 于 1975 年首先提出来的,通过模拟达尔文的 遗传选择和自然淘汰的生物 进化过程来求解。它将 问题域中的可能解看作是群体的一个个体或染色体,并将每一个体编码成符号串形式,对群体反复进行基于遗传学的操作(遗传,交叉和变异),根据预定的目标适应度函数对 每个个体进行评价,依据适者生存, 优胜劣汰的进化规则,不断得到更 优的群体,同 时以全局并行搜索方式来搜索 优化群体中的最优个体,求得满足要求的最优解。2.1 遗传算法的基本思路1.首先确定问题的求解空间;2.将求解空间中的每一个点进行编码,并从求解空 间中任 选 N 个点组成初

9、始群体;3.计算当前群体中每个个体的适应度函数值,然后运用 选择 、交叉、变异算子产生新一代群体;4.对新一代群体中的每个个体进行评价,若找到 满足问题 的最优解则结束;否则, 转步骤 3。2.2 基本遗传算法参数说明对遗传算法性能有影响的参数主要有:种群数目 N、交 换概率 Pc、变异概率 Pm、代沟 G、尺度窗口 W、和选择策略 S 等。1.种群数目种群数目 N 的多少直接影响到 遗传算法的优化性能和效率。种群选择太小时,不能提供足够多的个体,致使算法性能较差,易产生早熟收敛,甚至不能得到可行解;种群选择过大时,虽然能避免早熟收敛,但是增加了计算量。2.交换概率交换概率 Pc 用于控制交换

10、操作的 频率。交 换概率太大的时 ,易产生更新过快,从而破坏掉高适应度个体的现象;交换概率太小的 时候又容易产生搜索停滞不前的现象。53.变异概率变异概率 Pm对于增加种群多样性具有重要意义。如果变异概率太大的时,遗传算法易变成随机搜索,如果变异概率太小,则不能产生新个体,不利于种群的多样性。4.代沟代沟 G 用于控制每一代群体被替 换的比例,每代有 N(1-G)个父代个体选中进入下一代种群中,该参数和交换、变异概率以及 选择策略有很大关系,它并不是一个初始参数,而是 评价遗传算法的一个参数。5.尺度窗口该参数用于作出由目标值到适应度函数值的调整。6.选择策略一般来说有两种选择策略,一种 为纯

11、选择,种群中每个个体根据其适应度值进行比例选择,即个体被选择的概率与其适应度值成正比。另一种 为保优策略,首先进行纯选择,把目前最优个体直接加入下一代种群中,该策略是为 了防止最优解的丢失,但在 实际应 用中往往采取这两种选择策略结合的方法,并做适当的变型。3 .用遗传算法对具体问题的解决遗传算法在解决作业车间调度问题上比经典的启发式算法好,同时遗传算法比传统的搜索技术有更强的优越性,因为它不仅 能解决某一特定问题,而且可以适应不同的问题形式。3.1 参数编码遗传编码技术是实施遗传算法的核心。 遗传算法的工作基 础是选择适当的方法表示个体和问题的解,对于同一问题可以有不同的 编码表示方法。由于

12、 遗传 算法不能直接处理空间解的数据,在解决此车间调度问题上把它们转换成遗传空间的基因按一定结构组成的染色体或个体,也就是通 过编码将它们表示成遗传空间的基因型串结构数据。我们采用了基于操作的编码来解此车间调度问题,其基本思想是将所有工件的操作 进行编码,不同的工件用不同的编码表示,而同一工件的所有操作在染色体中 则用相同的编码表示,其解 码原则是将染色体上的基因按照从左到右的顺序解释为相应工件的操作顺序,具有相同编码的基因按照其在整个染色体中的位置解释为工件相应顺序的操作。表 3.1 加工时间和工艺约束操作序列项目 工件1 2 3操作时间 J1J23135236J3 3 2 3机器J1J2J

13、3M1M1M2M2M3M1M3M2M33.2 初始种群的生成在 N 个工件 M 台机器的排序问题中,对每个机器的加工存在加工工艺顺约束,这个工艺约束表示为工件的加工顺序矩阵:M11 M12 M1MM(J,M)= M21 M22 M2M: : : : (3.2)Mn1 Mn2 MnM其中第 J 行表示第 J 个工件的机器顺序.机器号为零表示工件加工结束。相应的每个加工操作有时间矩阵:T11 T12 T1MT21 T22 T2MT(J,M)= : : : : (3.3)TN1 TN2 TNM 其中第 J 行表示第 J 个工件的机器加工时间,时间为零表示工件不在机器上加工。因为群体中的个体都是由工件

14、的符号组成的,而且工件任意排列总能产生可行调度,所以可以采用随机方法产生初始种群。3.3 个体的适应度函数在遗传算法中,适应度是描述个体性能的主要指标。根据适应度的大小,对个体进行优胜劣汰。适应度是驱动遗传算法的动力。从生物学角度 讲,适应度相当于 “生存竞争,适者生存”的生物生存能力,在遗传过程中具有重要意义。适应度函数就是目标函数,在用 遗传算法解决车间调度问题 里,定 义个体的适应度函数为在 M台机器上排序加工完 N 个工件所需的 时间,根据染色体编码的思想提出的适应度算法如下:STEP1:定义 ti(n)为每个工件的可加工时间,初始化向量为零向量。STEP2:chrom(i)对应相应工

15、序的加工机器 为 machiner(i)。ti(chrom(1)=ti(chrom(1),machine(1)STEP3:for i=2 to nFor k=1 to n7ti(chrom(i)=ti(chrom(i-1)+max(ti(chrom(i-k),machine(i-k)+k) 其中若当 i-k trace(1,gen)Val1=PVal;Val2=P;MinVal=trace(1,gen);endendPVal=Val1; %工序时间P=Val2; %工序MinVal=MinVal %最小时间%计算解的变化hold on;plot(0,0,0,0);plot(trace(1,:)

16、;hold on;plot(trace(2,:),-.);grid;legend(解的变化 ,种群均值的变化);%显示结果figure(2);for i=1:WNumberval= P(1,i);a=(mod(val,10)+1;b=(val-a+1)/10);mText=M(b,a);PlotRec(PVal(1,i),PVal(2,i),mText);hold on;mPoint1=PVal(1,i);mPoint2=PVal(2,i);x1=mPoint1;y1=mText-0.5;x2=mPoint2;y2=mText-0.5;x3=mPoint2;y3=mText;x4=mPoint

17、1;y4=mText;fill(x1,x2,x3,x4,y1,y2,y3,y4,1,0.5,1);word=num2str(P(1,i);%text(0.5*mPoint1+0.5*mPoint2,mText-0.5,word); text(mPoint1,mText-0.7,word); 13end M 文件如下:aberrance.mfunction ChromNew=aberrance(Chrom,NIND,MUTR,WNumber)%新群ChromNew=Chrom;for i=1:NIND %是否变异a=rand;if MUTRa;%变异位置Pos1=unidrnd(WNumber)

18、;Pos2=unidrnd(WNumber);%变异位置不相同while Pos1=Pos2 Pos2=unidrnd(WNumber);end %取数据S=Chrom(i,:);%交换temp=S(Pos1);S(Pos1)=S(Pos2);S(Pos2)=temp;ChromNew(i,:)=S;endendacross.m:function ChromNew=across(Chrom,NIND,XOVR,WNumber)%新群ChromNew=Chrom;% %交叉位置% Pos1=fix(1-XOVR)*WNumber);% Pos2=fix(XOVR*WNumber);%随机选择交叉

19、个体SelNum=randperm(NIND);% for i=1:NIND% SelNum(i)=unidrnd(NIND);% end14%交叉个体组个数Num=NIND/2;Num=2*fix(Num);for i=1:2:Numa=rand;if XOVRa;%变异位置Pos1=unidrnd(WNumber);Pos2=unidrnd(WNumber);Pos3=unidrnd(WNumber);Pos4=unidrnd(WNumber);%变异位置不相同while Pos1=Pos2 Pos2=unidrnd(WNumber);end if Pos1Pos2 temp=Pos1;P

20、os1=Pos2;Pos2=temp;endwhile Pos3=Pos4 Pos3=unidrnd(WNumber);end if Pos3Pos4 temp=Pos3;Pos3=Pos4;Pos4=temp;end%取交换的个体S1=Chrom(SelNum(i),:);S2=Chrom(SelNum(i+1),:);%初始化新 2 个体S11=zeros(1,WNumber);S22=zeros(1,WNumber);%新个体中间部分的 COPYfor j=Pos1:Pos2 S11(j)=S1(j);% S22(j)=S2(j);endfor j=Pos3:Pos4 S22(j)=S2

21、(j);end%交换个体 1for j=1:WNumber flag=ismember(S2(j),S11); if flag=015k=1;while k ObjV(i,1)Val1=PVal;Val2=P;MinVal=ObjV(i,1);endend PVal=Val1;P=Val2;calp.mfunction P=calp(S,PNumber,WPNumber)%初始化temp=zeros(1,PNumber);val=max(WPNumber);PS=zeros(PNumber,val);%转化成 二维 数组val=0;for i=1: PNumberfor j=1: WPNumb

22、er(1,i) PS(i,j)=S(1,val+j);end val=val+WPNumber(1,i);end%工序个数WNumber=0;for i=1:PNumberWNumber=WNumber+WPNumber(1,i); endfor i=1: WNumber %计算工序 val,pos=max(PS);P(1,i)=pos(1,1)*10+temp(1,pos(1,1);temp(1,pos(1,1)=temp(1,pos(1,1)+1;%移动 PS 的位置for j=1: WPNumber(1,pos(1,1)-1 PS(pos(1,1),j)=PS(pos(1,1),j+1)

23、;endPS(pos(1,1),WPNumber(1,pos(1,1)=0; endcaltime.m:17function PVal=caltime(P,T,M,PNumber,MNumber,WPNumber)%工序个数WNumber=0;for i=1:PNumberWNumber=WNumber+WPNumber(1,i); endTM=zeros(1,MNumber);TP=zeros(1,PNumber);PVal=zeros(2,WNumber);for i=1: WNumber % 机器号val= P(1,i);a=(mod(val,10)+1;b=(val-a+1)/10);

24、m=M(b,a);%时间t=T(b,a);%取这工序的机器的时间和先工序的时间val1=TM(1,m);val2=TP(1,b);%交换if val1val2val=val1;elseval=val2;end%计算时间PVal(1,i)=val;PVal(2,i)=val+t;%记录机器时间和工序时间TM(1,m)=PVal(2,i);TP(1,b)=PVal(2,i); endplotRec.m:function PlotRec(mPoint1,mPoint2,mText)vPoint =zeros(4,2);vPoint(1,:)=mPoint1,mText-0.5;vPoint(2,:)

25、=mPoint2,mText-0.5;vPoint(3,:)=mPoint1,mText;vPoint(4,:)=mPoint2,mText;plot(vPoint(1,1),vPoint(2,1),vPoint(1,2),vPoint(2,2)hold on;plot(vPoint(1,1),vPoint(3,1),vPoint(1,2),vPoint(3,2)plot(vPoint(2,1),vPoint(4,1),vPoint(2,2),vPoint(4,2)plot(vPoint(3,1),vPoint(4,1),vPoint(3,2),vPoint(4,2)18end问题二:邮政运输

26、网络中的邮路规划和邮车调度1.问题描述某地区的邮政局、所分为地市中心局、县级中心局和支局三 级机构,该地区的邮政运输网络由区级邮政运输网和县级邮政运输网构成。 为使邮政企业实现 低成本运营和较高的服务质量,我 们需要对该地区的邮政运输网络进行重构,确定合适的 邮路规划方案并 进行邮车的合理调度。 该地区的邮政运输流程及时限规定如下:Step1:区 级第一班次 邮车从地市局D出发将邮件运送到各县局X i和沿途支局,并将各 县局Xi和沿途支局收寄的邮件运送回地市局D ;区级第一班次邮车出发时间必须在06:00之后,返回地市局D时间必须在11:00之前。Step2:县 局Xi将当天区 级第一班次邮车

27、及前一天的区级第二班次邮车所送达的本县邮件进行集中处理,按寄达支局装上相应 的县级邮车;县局Xi对邮件的集中 处理时间为1小时(包括邮件的卸装、分拣封发等处理时间)。Step3:各 县级邮车 将邮件运送到其负责的支局并将这些支局收寄的邮件运送回县局Xi;Step4: 区级第二班次邮车从地市局D 出发将邮件运送到各 县局Xi和沿途支局,并将各县局Xi收寄的邮件(包括当日各县级邮车运回县局Xi的邮件)和沿途支局收寄的邮件运送回地市局D;区级第二班次邮车在县局Xi卸装完邮件后的出发时间必须在县局X i的全部县级邮车返回县局并集中处理1小时以后,最终返回地市局D的时间必须在18:00 之前。现在预解决

28、以下问题:以县局 X1 及其所辖的 16 个支局 Z1, Z2, , Z16为研究对象,假设区级第一班次邮车 08:00 到达县局 X1,区级第二班次邮车 16:00 从县局 X1 再出发返回地市局 D,若每辆县级邮车最多容纳 65袋邮件,试问最少需要多少辆邮车 才能满足该县的邮件运 输需求?同时, 为提高邮政运输效益,应如何规划邮路和如何安排邮车的运行?2.模型建立2.1 模型的基本假设(1( 所有车辆均在区局或县局出发;(2( 区局两个班次邮车的行驶路线相同;(3( 区局使用的邮车各个参数相同, 县局使用的邮车各个参数也相同;19(4( 各点都有一定量的邮件待运;(5( 邮车在各支局停留时

29、间均为 5 分钟,在各 县局停留 时间均为 10 分钟;(6( 邮车保持一定速度均速行驶,县级邮车平均速度为 30km/h,区级邮车平均速度为 65km/m,邮车行驶过程中无需考虑道路等级、信号等待、会车、路面清洁程度等因素;(7( 一辆邮车只用于一条路由;每个支局有且只有一辆邮车寄送邮件,允 许其他邮车经过该 支局,但不 负责该支局的邮件的寄送,不做停留。2.2 符号说明M: 从县局 X1 寄达 16 个支局的邮件总量m: 每辆县级邮车最多容纳的 邮件数x:对实数 x 上取整R: 由于空车率而减少的收入gjr:支局 j 需要寄达的邮件数gjs:支局 j 需要运走的邮件数cij: 各个局之间的

30、距离tmax:县局邮车出行时限q: 邮车的最大承运能力S: 县局到各支局的距离向量cij: 表示对应路段(i,j)的长度C: 邻接矩阵T: 支局连接标志矩阵Wijk:通过路段(i,j)时邮车 k 已收到的邮件数Zijk: 通过路段(i,j)时邮车 k 上还未寄达的邮件数 j:各支局邮件收发量之差v1: 县局邮车的行驶速度t1: 邮车在各支局停留的时间sxy:从支局 Zx 到支局 Zy邮路合并后的里程节余l: 判断支局 Zx 和 Zy 是否能合并的变量2.3 模型分析时限与成本是邮政运输问题的两个重要指标,时限关系到 邮政通讯质量的好坏,成本影响着企20业的经营。分别考虑这两方面因素,我们将问题

31、一做了如下分析:首先,由该地区邮政运输流程及 时限的规定可以得出, 县级邮车 每天的发车时间最早是早九点,返回时间最迟是下午三点,即 邮车的出行时限最多为 6 小 时。其次,一般认为,派出一辆车的固定费用远远高于该车辆行 驶的费用,因此为了降低成本,设计模型的目标是使用的车辆数最少。由于从 县局 X1 寄达 16 个支局的邮件量总 M 为 176 袋,而每辆县级邮车最多容纳邮件数 m 为 65 袋,故得出若要 满足该县 的邮件运输需求所需车辆的下限/3nM辆。又由空车率=(邮车最大承运的邮件量 (袋)-邮车运载的邮件量(袋)/ 邮车最大承运的邮件量( 袋)可知,要想提高运 输效益,需要使空车率

32、达最小。第三,关于邮路结构的选择。辐射形邮路和环形邮路各有优 缺点:辐射形邮路可以缩短运递时间,加快邮运速度,但是其联系点 较少,效率低耗 费大;环形邮 路联系点较多,效率高运费省,但是时效性稍差。考虑到该县邮车的出行 时限最长为 6 小时,在不影响时限标准的前提下,应尽可能地降低成本,且该县各支局的连通网络中不存在最小割为 1 的点(若存在最小割为 1 的点,则该点与其临近点的连接只能选择辐射形邮路),故我 们优先选择环形邮路。2.4 模型的建立为了更好的描述问题,将其定 义为网络 G=(V,A,C),其中 V=OP 为一点集, O 表示县局 X1,编号为 0,P 表示各个支局, 编号分 别

33、为 1,2,16,支局 j 需要寄达的邮件数为 gjr,需要运走的邮件数为 gjs,j=gjr-gjs; A 为一距离集合,表示邮车可能走过 的路线集合;C 为邻接矩阵,用以表示邮路规划方案,可构造为: 000nnnccCcc cij 表示对应路段(i,j)的长度,即局与局之间的距离;对于所有的支局,要求邮车在时限 tmax 内遍历。为构造数学模型,定义决策变 量: 10ki iky支 局 的 邮 件 由 邮 车 送 达否 则ijkxi,j邮 车 通 过 路 段 ( )否 则21Wijk为通过路段(i,j)时邮车 k 已收到的邮件数, Zijk为通过路段(i,j )时邮车 k 上还未寄达的邮件

34、数。由于设计模型的首要目标是使用的邮车数最少,故我 们先以 k=3 入手,其数学模型可表示 为如下形式: 316()min2 (1.)kijqWZijkijjR xcikj ,1max,1. ,1,6(.2) y,2.;(1.3) ,1,.6;(.4)( )(1.5),(.6)0or,0,16kijijij ist foriixfjkjkiforiiWZxqijkijjikxcijtytforkkivxforjijijk ;(1.7)1,;.8yfiki 式(1.1)表示空车率带来的收入损失最小;式(1.2)表示一个支局由一辆邮车寄送邮件;式(1.3)和式(1.4)表示每个支局被访问一次;式(

35、1.5)保证在整个回路中运载邮件的数量不超过邮车的运 载能力;式(1.6)保证了满足时限的要求;式(1.7)和(1.8)为变量取值约束。3.模型的求解3.1 求解思路问题一类似于车辆路径问题(VRP),常采用的是启 发式算法中的 C-W 算法, 该算法的基本思想是:首先将各支局点与县局点相连,构成 N 条初始邮路, 计 算各邮路里程,然后以 邮路里程节余为判据,进行邮路的合并,直到没有邮路再能合并为止,形成最终的几条邮路。邮路合并的同时考虑到时限与邮车承运能力的问题。命题 1. 两条辐射形邮路合并为一条环形邮路可大大减少邮路里程。证明:如图 1 所示,两条辐射形 邮路分别为 X1ZxX1 和

36、X1ZyX1,在这里我们给出里程节余的说法,22关于邮路里程节余的计算参考图 1,从 县局 X1 到支局 Zx 和 Zy 各有一条邮路,如有邮车既访问 Zx 又访问 Zy 而不破坏时限和负载约束条件的话, 则可将上述两条邮路合并为一条,此时,其所 节约的里程为: sddxyoyxZxX1Zydx ydo xdo y图 1 节余计算示意图sxy一般为正值,故将两条辐射形邮路合并为一条环形邮路可减少邮路里程,从而降低成本。3.2 求解算法为了优化邮路的设计,以节余最大的 为判据,将其所 对应的两条 邮路优先进行合并,C-W 改良算法的主要步骤如下:Step1:初始化初始邮路,寻找从点 iZ到 1X

37、的最短路由,并建立该邮路;Step2:计算 his, i的计算方法如下所示:若支局 h 和支局 i 均在己构成的 邮路上,按照下述方法 计算:某点 iZ与 1X相连损失的效益130g265irswcxijkij,某点 h与 1相连损失的效益 hrscxhjjk,若把 iZ与 连在一起,根据邮车行驶方向的不同,有两个取值,分别为65g65g65g222irhishr ishijk i hjkjk jkcxccxirhirhs ishhjk i ijkjk jk两个值取最小值,并记为 hiw,则减少的损失 hiihiw;Step3:将所有 his按由大到小的 顺序排列组成 is;23Step4:设

38、一指针 p 指向 his中最大的一个 his,若 i,则转 step11;否则转下步;Step5:对 p 指向的 i考察对应 的 h 和 i,若满足下列条件:支局 i 和支局 h 在已构成的不同邮路上,h 为在已构成的邮路上的始点或 终点,或者 满足 i 为在己构成的邮路上的始点或终点,则转下步;否则转 step10;Step6:考察 ,()ijWZxijkijjik,若 ,()ijWZxqijkjik则转下步,若,()ijZxqijki则转 step10;Step7:考察 1ijickjtykiv,若 1maxijixckjtytkiv则转下步,若1maxijixckjtytkiv则转 st

39、ep10;Step8: 连接支局 i 和 h,Step9: 按进出两个顺序计 算损失的效益,取其中 损失小的 为该路新的损失的效益;Step10:指针 p 指向下一个 sxy,若指向空, 则转下一步,否 则转step5;Step11:算法结束。结合问题本身,我们构造出该县 的邻接矩阵如表 1 所示,其中不能直接相连的局之间的距离值设置为1。表 1 各局之间的距离X1 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11 Z12 Z13 Z14 Z15 Z16X1 0 27 44 17 11 27 42 -1 -1 -1 20 25 21 21 18 27 -1Z1 27 0 3

40、1 27 49 -1 -1 -1 -1 -1 -1 -1 52 21 41 -1 -1Z2 44 31 0 19 -1 27 32 -1 -1 -1 47 -1 -1 -1 50 -1 -1Z3 17 27 19 0 14 -1 -1 -1 -1 -1 30 -1 -1 -1 31 -1 -1Z4 11 49 -1 14 0 13 20 -1 -1 28 15 -1 -1 -1 15 25 30Z5 27 -1 27 -1 13 0 9 21 -1 26 26 -1 -1 -1 28 29 -1Z6 42 -1 32 -1 20 9 0 13 -1 32 -1 -1 -1 -1 -1 33 -

41、1Z7 -1 -1 -1 -1 -1 21 13 0 19 -1 -1 -1 -1 -1 -1 -1 -1Z8 -1 -1 -1 -1 -1 -1 -1 19 0 11 20 -1 -1 -1 -1 33 21Z9 -1 -1 -1 -1 28 26 32 -1 11 0 10 20 -1 -1 29 14 13Z10 20 -1 47 30 15 26 -1 -1 20 10 0 18 -1 -1 14 9 20Z11 25 -1 -1 -1 -1 -1 -1 -1 -1 20 18 0 23 -1 -1 14 -1Z12 21 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 2

42、3 0 27 28 -1 -1Z13 21 21 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 27 0 -1 -1 -1Z14 18 41 50 31 15 28 -1 -1 -1 29 14 -1 28 -1 0 11 -1Z15 27 -1 -1 -1 25 29 33 -1 33 14 9 14 -1 -1 11 0 924Z16 -1 -1 -1 -1 30 -1 -1 -1 21 13 20 -1 -1 -1 -1 9 0开始 判断 k 与 j 支局点是否满足合并条件 ?判断是否满足时限要求 ?判断是否满足承载能力要求 ?Sk i排序 , 指针 p 指向最大值指针 p 指向 Sk i中的下一个值合并 Z k 、 Z j 到一条邮路中连接标志矩阵 T 相应位置 1更新该邮路的损失效益去掉对应的 Sk i的值指针 p 对 Sk i的值遍历结束 ?输出 T 矩阵循环条件 S t o p 指示结束或 Sk i已没有值结束YYYYNNNNY连接标志矩阵 T 清零N初始化 ci j、 q 、 T = 0 、 循环结束条件 S t o p 等 , 计算 Sk i图 2 算法流程图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报