采用改良免疫遗传算法的柔性作业车间调度方法与流程

文档序号:17776828发布日期:2019-05-28 20:19阅读:237来源:国知局
采用改良免疫遗传算法的柔性作业车间调度方法与流程

本发明涉及一种解决柔性作业车间调度问题的方法,特别是一种采用改良免疫遗传算法的柔性作业车间调度方法。



背景技术:

柔性作业车间调度问题是经典作业车间调度问题的延伸,调度的目标是为每项作业的每道工序分配适当的机器,并确定各机器上工序的加工顺序,使作业的完工时间最短或其他指标达到最优。由于柔性作业车间的灵活性较高,使得柔性作业车间调度问题的求解需要非常大的组合搜索空间,且问题的复杂度较高。计算机编程采用免疫遗传算法(iga)解决柔性作业车间调度问题时,存在易陷入局部最优的缺点。



技术实现要素:

本发明的目的在于,提供一种采用改良免疫遗传算法的柔性作业车间调度方法。本发明将免疫遗传算法(iga)与模拟退火算法(sa)进行了结合,提出一种应用于车间作业调度的混合免疫遗传算法,效率更高,偏差更小。

本发明的技术方案:采用改良免疫遗传算法的柔性作业车间调度方法,包括以下步骤,

步骤1:建立车间作业调度问题数学模型,基于作业车间调度问题的基本信息,利用直接编码方式,将车间调度问题转化为求解遗传算法中个体优良染色体问题,从而确定种群中个体的染色体基因序列;设置种群规模sizepop,退火初始温度t0,退火终止温度tend,退火系数γ,以及最大迭代次数maxgen的大小;

步骤2:初始化种群进化次数gen,计算种群中各个个体的适应度agv、平均适应度浓度cv值以及期望繁殖概率ev,再对优良的个体染色体进行破碎处理,提取其基因片段作为疫苗;

步骤3:计算种群进化成熟度m以及精英保留个数ne,并从种群中选择适应度最高的ne个个体进行精英保留,并对种群中一部分个体进行疫苗接种;

步骤4:对父代种群个体进行交叉操作;

步骤5:对临时子代种群中的个体适应度与平均适应度比较,若个体适应度大于平均适应度,则采用换位变异方式变异;反之,则采取反转变异方式进行变异,根据自适应变异公式计算变异概率,开始变异操作;

步骤6:模拟退火选择,通过退火初始温度t0以及退火系数γ计算当前退火温度tk,利用tk计算接受概率p,检测注射疫苗的抗体的适应度并将其适应度值与旧抗体的适应度值进行比较,若新抗体适应度更高,则以抗体的繁殖概率ev选取新抗体进入下一代;若旧抗体适应度更高,接受新的抗体的概率为p*ev,更新种群;

步骤7:判断迭代次数是否大于最大迭代次数maxgen,若是,则进入下一步;若不是,则返回步骤3;

步骤8:判断当前退火温度tk与终止温度tend的大小,若大于终止温度,则返回步骤3;反之,则输出最优结果。

上述的采用改良免疫遗传算法的柔性作业车间调度方法,所述步骤1的直接编码方式为:首先按照染色体上加工工序的从左到右依次降低工序的优先权重,然后安排染色体上的工序序列的第1道工序进行加工,再然后依次安排各工件剩余工序,并将其插入到对应机器上可行的最佳加工时刻加工,最终达到所有的加工工序都安排在对应机器上最佳可行的时刻加工,得到加工时间。

上述的采用改良免疫遗传算法的柔性作业车间调度方法,步骤3中,所述种群进化成熟度m以及精英保留个数ne计算方法为:

单个抗体v的适应度和浓度分别为agv,cv,则成熟度为:

m=α∑agv+(1-α)∑cv;

保留精英个体数的公式为:

式中:ne—精英保留个体数;n—抗体总数;b—预设正整数;ceil—向上取整。

上述的采用改良免疫遗传算法的柔性作业车间调度方法,所述步骤5中,自适应变异公式为:

式中:pm—变异概率;farg—群体的平均适应度值;fmax—群体最大适应度值;f—变异个体适应度值;取pc1=0.1,pc2=0.001。

上述的采用改良免疫遗传算法的柔性作业车间调度方法,所述步骤6中,繁殖概率ev计算公式为:

式中:χ—常数,agv—抗体与抗原的亲和力即结合程度,agv的计算公式为:

式中:gv—抗体v对应的目标函数,agv值越大,表明抗原与抗体的结合程度越高;cv—抗体v浓度,cv的计算公式为:

式中:n—抗体总数,acxy—抗体x与抗体y的相似度;t(一般取值0.9~1)—预先设定的阙值;abxy—抗体x与抗体y之间的亲和力,其计算公式为:

式中:l—染色体基因的长度,l—染色体x与y的同一位置相同编码基因的个数。

上述的采用改良免疫遗传算法的柔性作业车间调度方法,所述步骤6过程中,概率p的公式为:

tk=γk-1t0

式中:t0—退火初始温度;γ∈(0,1)—降温系数;tk—当前退火温度;p—tk温度下的接受概率;δfv—新个体适应度与旧体适应度之差;fvs—新个体适应度值;fv(s-1)—上一次迭代中旧个体适应度值。

有益效果:本专利算法将免疫遗传算法(iga)与模拟退火算法(sa)进行了结合,提出一种应用于车间作业调度的混合免疫遗传算法。

此算法设计了一种基于适应度和浓度的自适应精英保留策略且重新设置了变异算子,即将变尺度变异和自适应变异算子进行了融合。将模拟退火算法的局部搜索理论与免疫遗传算法的全局性、多样性和自适应性结合起来,互相取长补短,形成性能优良的全局寻优的混合免疫遗传算法,并设置了自适应精英选择操作,最后将其应用在作业车间调度问题的求解中。

为验证算法的有效性与高效性,下面用muth和thompson提出的著名的mt06作为该算法的测试基准。

利用该算法不同参数对mt06问题仿真试验20次,取最优的算法参数,参数设置如下:种群规模为47;交叉概率0.6~0.9,初始值为0.9;变异概率为0.01;阙值t为0.95;初始温度为10000;衰减系数为0.90;迭代次数为110。

从表3中可见,就mt06问题而言本算法比一般的iga,sa算法得到最优解的概率要高很多,而且平均偏差仅为2.03%;由表4可知,对于mt20问题,本专利算法比其他算法得到的结果更优,对mt06和mt10问题,虽然各个算法都能得到最优值,但本专利算法的出错率更低。综上所述,本专利算法前期能够快速收敛,后期能够跳出局部收敛,防止“早熟”,显示了其良好的全局寻优能力。

表3基于mt06问题的不同算法的比较

表4不同算法性能比较

由上可知:

(1)本发明算法通过对mt06问题的仿真,生成了最优的调度方案。其中,最大完成时间达到了最优的55s,说明了算法的可行性;算法在第四十次就达到了收敛,如图2所示,说明了算法的高效性,图3为本发明算法对mt06问题得到的工件加工甘特图。

(2)就mt06问题而言,混合iga算法比普通的sa算法和iga算法击中最优解的概率更高,而且偏差更小。

(3)在求解相对复杂的mt10问题时,混合iga算法比普通的sa算法和iga算法离最优解更近,离最优解相差只有1秒。

附图说明

附图1为本发明解码方法的调度方案图;

附图2为对mt06问题的免疫遗传算法收敛曲线图;

附图3为mt06问题得到的工件加工甘特图。

具体实施方式

下面结合实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。

实施例:

jsp数学描述

车间作业调度问题(jsp)主要研究:n个工件,在m台机器上加工完成,每个工件i的工序数为oi,每个工件的不同工序在不同的机器上加工完成,其相应的加工时间也各不相同。假设:a.同一机器,可以加工多道工序,但是同一时刻最多只有一个工件在上面加工。b.每个工件的每道工序加工机器和时间已知。c.工序开始加工后,不能中断加工。d.不同工件的工序加工没有先后顺序的要求。e.同一工件在加工过程中,有预设的加工顺序。

表1数学符号定义

jsp问题数学模型通常可以做如下描述:

(1)目标函数:最小化最大完成时间。

相关约束:

(2)工艺约束下的各工件的加工顺序。同一工件必须在前一道工序加工完成后才能加工后一道工序。

cik-pik+ξ(1-aihk)≥cih(2)

(3)工件加工顺序。保证同一时刻,不同工件不会出现在同一台机器上。

cjk-pjk+ξ(1-xijk)≥cik(3)

(4)工件各工序完成时间需大于等于零,即:

cik≥0(4)

(5)指示系数数值的分配情况。

(6)指示变量数值分配情况。

求解jsp问题的改进iga算法

编码与解码

考虑到直接编码方式编码和解码方式简单、柔性高和防死锁等优点,采用一种基于工序的直接编码方式。直接编码过程就是:在求解有m台机器加工n个工件的jsp问题时,假设每个工件有m道工序,这些工序分别在m台机器上加工,所以编码的染色体组成的基因个数为n*m,每条染色体都可视为一个调度方案,染色体中同一工件的加工工序序号相同。在一条染色体中,若同一工件的加工工序序号第k次出现,则这个第k次出现的基因表示这一工件的第k道工序。例如:一个3×3的jsp问题如表2所示,可将它的一个工序序列设为[311232231]。其中,1,2,3分别表示工件wp1,wp2和wp3,工序序列中从左到右三个1分别表示工件wp1的第一道工序,第二道工序和第三道工序,2和3同1类似。

表2一个3*3的jsp问题

解码就是将计算机语言转化到实际问题的一种映射过程,在车间作业调度问题中,解码就是将染色体转化成一个调度方案。本专利采用的解码方法是一种插入式贪婪解码算法。贪婪解码过程为:首先按照染色体上加工工序的从左到右依次降低工序的优先权重,然后安排染色体上的工序序列的第1道工序进行加工,再然后依次安排各工件剩余工序,并将其插入到对应机器上可行的最佳加工时刻加工,最终达到所有的加工工序都安排在对应机器上最佳可行的时刻加工。例如:上述的3×3的调度问题,其中一条染色体为[311232231],对应加工时间序列为[132232334],机器序列表述为[213231312],该染色体通过贪婪式解码后可得到:机器1上的工件加工顺序为1-3-2,机器2上的工件加工顺序为2-1-3,机器3上的工件加工顺序为2-3-1。使用贪婪解码方法为图1所示。由图可知使用贪婪解码的时间为10。

精英保留策略

在抗体评价过程中,一方面提高了适应度高的个体的选择概率,而另一方面又降低了浓度高的个体的选择概率。而在抑制高浓度的个体过程中,很容易丢失最优解。所以利用精英保留策略来保留已获得的优质的进化成果。传统的精英保留策略只保留某一固定数量适应度最高的个体,这种保留策略不利于算法的收敛,且容易导致算法陷入局部最优。基于此问题本专利提出了一种自适应精英保留策略。

为了确定种群进化程度,引入了成熟度的概念。若单个抗体v的适应度和浓度分别为agv,cv,则成熟度为:

m=α∑agv+(1-α)∑cv(7)

式中:m—种群进化的成熟度;α—常数,为了加权适应度与浓度的响。

精英保留在种群的成熟度较低的时候应该保留较多的精英个体,加快收敛速度,成熟度较高时,选择较少精英个体,提高种群的多样性。所以,其保留精英个体数的公式为:

式中:ne—精英保留个体数;n—抗体总数;b—预设正整数,防止初期保留太多精英个体,导致算法陷入局部最优;ceil—向上取整。

变异算子

为了有效的提高算法的收敛速度和避免算法陷入局部最优,该算法将变尺度变异与自适应概率变异进行了融合,提出了混合变异算子。其中,自适应变异概率为:

式中:pm—变异概率;farg—群体的平均适应度值;fmax—群体最大适应度值;f—变异个体适应度值;取pc1=0.1,pc2=0.001。

在算法早期,种群大多数是由随机产生的,离最优解相差甚远,种群中的大多数抗体的适应度低,大概率的采用反转变异可以提高算法在早期的查找效率。在算法后期,种群抗体的适应度高,如果也采用反转法变异将会产生过多的冗余信息。为了避免盲目搜索,提高算法执行效率,又不至于陷入局部最优,该算法采用基于自适应变异概率的小步成熟机制的换位变异法进行变异操作。

混合变异算子的流程为:

i.计算当代种群平均适应度与需要变异抗体的适应度。

ii.比较i中两适应度的大小,若变异抗体适应度大于平均适应度,选择小步成熟机制的换位法变异;若变异抗体适应度小于等于平均适应度,则采用反转变异法

iii.根据自适应变异公式计算变异概率,开始变异操作。

免疫算子

疫苗的提取与接种

免疫操作分两步进行,即提取疫苗和接种疫苗。适当的进行疫苗注射可以有效的避免种群退化和提高种群的适应度,从而大大加快了算法的收敛速度和提高算法的寻优能力。

本专利算法所采用的疫苗提取方法为基于加工机器的基因片段提取疫苗。

提取疫苗的流程为:

①将上代抗体中亲和力最大的若干个体抽取出来。

②将抽取出来的抗体按加工机器打碎成基因片段,将所得到的基因片段保存在疫苗库中。

接种疫苗是利用前面提取的疫苗来修改所选的部分个体染色体的某些位置的某些基因,从而有效的避免种群退化和提高种群的适应能力。

疫苗接种操作如下:

1)将父代种群的部分个体选取出来。

2)随机选取疫苗库中的疫苗作为注射疫苗。

3)取第1)步操作中的未注射疫苗的一个个体作为疫苗注射对象。

4)将疫苗的基因顺序代替注射对象同一机器所对应位置基因的顺序。

5)重复2)到4)步操作,直到第1)步操作所选取出来的个体全部注射疫苗。

抗体评价及退火免疫选择

本专利以抗体v的繁殖概率ev即免疫选择率作为个体的评价标准。繁殖概率是由抗体的亲和度与该抗体的浓度共同决定的。利用繁殖概率这种选择机制选择抗体既有效的鼓励了适应度高的个体,又适当的抑制了浓度高的抗体,其计算公式为:

式中:χ—常数,agv—抗体与抗原的亲和力即结合程度,agv的计算公式为:

式中:gv—抗体v对应的目标函数,agv值越大,表明抗原与抗体的结合程度越高;cv—抗体v浓度,cv的计算公式为:

式中:n—抗体总数,acxy—抗体x与抗体y的相似度;t(一般取值0.9~1)—预先设定的阙值;abxy—抗体x与抗体y之间的亲和力,其计算公式为:

式中:l—染色体基因的长度,l—染色体x与y的同一位置相同编码基因的个数。

为了更好地接受适应度高的抗体,并且适当的抑制浓度高的抗体,提出了基于抗体评价的模拟退火选择。

模拟退火选择可以分为检测抗体和选择抗体两步来进行。第一步,检测抗体,检测注射疫苗的抗体的适应度并将其适应度值与旧抗体的适应度值进行比较,若新抗体适应度更高,则以抗体的繁殖概率选取新抗体进入下一代;若旧抗体适应度更高,则说明出现了种群退化现象,需要进入第二步操作。第二步是利用模拟退火的metropolis接受准则来决定接受新抗体的概率。即①若δfv=(fvs-fv(s-1))≥0,则接受新抗体的概率为ev;②若δfv=(fvs-fv(s-1))<0,则接受新的抗体的概率为p*ev。其中,概率p的公式为:

tk=γk-1t0(16)

式中:t0—退火初始温度;γ∈(0,1)—降温系数;tk—当前退火温度;p—tk温度下的接受概率;δfv—新个体适应度与旧体适应度之差;fvs—新个体适应度值;fv(s-1)—上一次迭代中旧个体适应度值。

由上述分析得出:采用改良免疫遗传算法的柔性作业车间调度方法,其具体实施步骤如下:采用改良免疫遗传算法的柔性作业车间调度方法,包括以下步骤,

步骤1:建立车间作业调度问题数学模型,基于作业车间调度问题的基本信息,利用直接编码方式,将车间调度问题转化为求解遗传算法中个体优良染色体问题,从而确定种群中个体的染色体基因序列;设置种群规模sizepop,退火初始温度t0,退火终止温度tend,退火系数γ,以及最大迭代次数maxgen的大小;

步骤2:初始化种群进化次数gen,计算种群中各个个体的适应度agv、平均适应度浓度cv值以及期望繁殖概率ev,再对优良的个体染色体进行破碎处理,提取其基因片段作为疫苗;

步骤3:计算种群进化成熟度m以及精英保留个数ne,并从种群中选择适应度最高的ne个个体进行精英保留,并对种群中一部分个体进行疫苗接种;

步骤4:对父代种群个体进行交叉操作;

步骤5:对临时子代种群中的个体适应度与平均适应度比较,若个体适应度大于平均适应度,则采用换位变异方式变异;反之,则采取反转变异方式进行变异,根据自适应变异公式计算变异概率,开始变异操作;

步骤6:模拟退火选择,通过退火初始温度t0以及退火系数γ计算当前退火温度tk,利用tk计算接受概率p,检测注射疫苗的抗体的适应度并将其适应度值与旧抗体的适应度值进行比较,若新抗体适应度更高,则以抗体的繁殖概率ev选取新抗体进入下一代;若旧抗体适应度更高,接受新的抗体的概率为p*ev,更新种群;

步骤7:判断迭代次数是否大于最大迭代次数maxgen,若是,则进入下一步;若不是,则返回步骤3;

步骤8:判断当前退火温度tk与终止温度tend的大小,若大于终止温度,则返回步骤3;反之,则输出最优结果。

所述步骤1的直接编码方式为:首先按照染色体上加工工序的从左到右依次降低工序的优先权重,然后安排染色体上的工序序列的第1道工序进行加工,再然后依次安排各工件剩余工序,并将其插入到对应机器上可行的最佳加工时刻加工,最终达到所有的加工工序都安排在对应机器上最佳可行的时刻加工,得到加工时间。

步骤3中,所述种群进化成熟度m以及精英保留个数ne计算方法为:

单个抗体v的适应度和浓度分别为agv,cv,则成熟度为:

m=α∑agv+(1-α)∑cv;

保留精英个体数的公式为:

式中:ne—精英保留个体数;n—抗体总数;b—预设正整数;ceil—向上取整。

所述步骤5中,自适应变异公式为:

式中:pm—变异概率;farg—群体的平均适应度值;fmax—群体最大适应度值;f—变异个体适应度值;取pc1=0.1,pc2=0.001。

所述步骤6中,繁殖概率ev计算公式为:

式中:χ—常数,agv—抗体与抗原的亲和力即结合程度,agv的计算公式为:

式中:gv—抗体v对应的目标函数,agv值越大,表明抗原与抗体的结合程度越高;cv—抗体v浓度,cv的计算公式为:

式中:n—抗体总数,acxy—抗体x与抗体y的相似度;t(一般取值0.9~1)—预先设定的阙值;abxy—抗体x与抗体y之间的亲和力,其计算公式为:

式中:l—染色体基因的长度,l—染色体x与y的同一位置相同编码基因的个数。

所述步骤6过程中,概率p的公式为:

tk=γk-1t0

式中:t0—退火初始温度;γ∈(0,1)—降温系数;tk—当前退火温度;p—tk温度下的接受概率;δfv—新个体适应度与旧体适应度之差;fvs—新个体适应度值;fv(s-1)—上一次迭代中旧个体适应度值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1