CN104021437B - 一种基于有向图适应度评估的混合差分进化算法 - Google Patents
一种基于有向图适应度评估的混合差分进化算法 Download PDFInfo
- Publication number
- CN104021437B CN104021437B CN201410210741.2A CN201410210741A CN104021437B CN 104021437 B CN104021437 B CN 104021437B CN 201410210741 A CN201410210741 A CN 201410210741A CN 104021437 B CN104021437 B CN 104021437B
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- workpiece
- mtd
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 25
- 230000036962 time dependent Effects 0.000 claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 230000035772 mutation Effects 0.000 claims abstract description 15
- 239000013598 vector Substances 0.000 claims description 56
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 14
- 238000003754 machining Methods 0.000 claims description 13
- 238000011156 evaluation Methods 0.000 claims description 12
- 230000001174 ascending effect Effects 0.000 claims description 6
- 230000003111 delayed effect Effects 0.000 claims description 3
- 210000000349 chromosome Anatomy 0.000 claims description 2
- 238000005070 sampling Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 13
- 238000004519 manufacturing process Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于有向图适应度评估的混合差分进化算法来解决一个同时结合了时间依赖转换时间、选择与调度结合和时间依赖收益特点的调度问题,包括编码及种群初始化、变异操作、交叉操作、选择操作,本发明所述的算法在能够在不同阶段循序渐进不断调整自身的值,具有优化性能;本发明在算例上取得的收益明显优于其他算法;本发明能够处理任何形式的转换时间表现形式,具有很强的灵活性。
Description
技术领域
本发明涉及一种用于解决时间依赖转换时间调度问题的基于有向图适应度评估的混合差分进化算法。
背景技术
订单受理与调度问题来源于面向订单生产的加工制造业。企业按照订单生产加工,可以满足用户个性化、差异化的产品定制需求,降低产品的库存成本,从而提高企业的竞争力。但与此同时,面向订单生产也给企业带来一定的挑战:客户的订单通常具有时效性,如果企业不能在用户期望的时间段内提交产品,则必然降低客户的满意度,长此以往将会损害企业的利益。而由于生产能力的限制,企业如果无法按期完成所有加工订单的生产,则必须从接收的订单中选择一部分进行生产并且为各订单安排加工时间。在企业中,受理订单通常是市场部门的工作,而生产加工则由生产部门负责。如果市场部门不考虑所受理的订单对生产部门工作的影响,则很容易造成订单过量、企业无法按期交付的情况发生。因此,订单的选择与生产调度必须统一考虑。在订单受理与调度问题中,同时存在选择和调度两个决策问题,工件延期加工会产生延期惩罚。时间依赖转换时间调度问题中工件不仅存在延期惩罚,还存在提早惩罚,并且还考虑了时间依赖的转换时间,时间依赖转换时间调度问题是在订单受理与调度问题的基础上,引入时间依赖转换时间以及提早-延期惩罚,非常复杂、难以求解。
差分进化算法是由Storn和Price于上世纪90年代年提出的一种简单而有效的随机优化算法,最初被设计用于实值优化问题,又有许多其他学者陆续对差分进化算法进行了改进,上述这些方法原本是为函数优化问题而设计,在函数优化问题上,有显著优异性,但在解决时间依赖转换时间调度问题上,通过初步实验表明该结论并不成立,针对不同的算例已有方法各有所长。因此,根据解决时间依赖转换时间调度问题的特点,设计除了具有针对性的求解算法。
发明内容
本发明的目的在于提供一种基于有向图适应度评估的混合差分进化算法来解决一个同时结合了时间依赖转换时间、选择与调度结合和时间依赖收益特点的调度问题。
为了实现上述目的,本发明的技术方案是:
一种用于解决时间依赖转换时间调度问题的基于有向图适应度评估的混合差分进化算法,其采用有向图进行适应度评估,根据给定的实值向量,计算各工件的完工时间、开工时间和收益,将各工件按照开工时间升序排列,构建一个有向无环图,图中最长路径上的节点即为被安排加工的工件,路径的长度即为该实值向量对应的目标函数。所述算法包括以下步骤:
采用如下步骤建立有向无环图:
Step1.根据给定的Xi,g=(x1,i,g,x2,i,g,...,xn,i,g),计算各工件的完工时间、开工时间以及收益:
cj=(rj+pj)+xj,i,g·(dlj-rj-pj),
bj=cj-pj,
rej=max{ej-hj·max{0,dj-cj},ej-wj·max{0,cj-dj}},j=1,2,...,n;
Step2.将所有工件按照各自开工时间升序排列,设排序后的工件序列为σ,工件j表示在σ中排在位置j的工件,则满足bi≤bj;
Step3.设有向图G=(V,E),V为顶点集合,E为边集合,初始化设 向V中加入顶点0表示始点,加入顶点n+1表示终点,再向V中依次加入其他表示各工件的顶点j,j=1,2,...,n;
Step4.对集合σ中所有i∈σ,向E中加入长度为的有向边<0,σi>和长度为0的有向边<σi,n+1>;
Step5.对于如果满足则向E中加入一条长度为reσ(j)的有向边<σ(i),σ(j)>;”
基于所述有向无环图进行适应度评估,步骤如下:
步骤1).编码及种群初始化:采用位于0和1之间的实数作为编码方式,生成一组实值向量Xi,g=(x1,i,g,x2,i,g,...,xD,i,g),其中:g表示第g代种群,i表示第i个个体,每个向量构成一个染色体,每个实数表示工件的实际完工时间占整个时间窗口长度的比率,根据向量中的各实数预先确定对应工件的开工时间和完工时间,并且根据工件的开工和完工时间计算不同工件之间需要的转换时间;
种群初始化时使实值向量对应的工件完工时间初始化时在其交货期附近随机采样;
步骤2).变异操作:从当前种群中随机选择三个个体,利用其中两个生成一个差分向量,再将差分向量乘以缩放因子之后加到第三个向量上,即得到一个向量,按如下操作:
其中,mp的初始值设为0.5,在每次迭代过程中,记录采用第一种和第二种变异操作生成成功进入下一代的个体个数分别为ns1和ns2,而不能进入下一代的个体个数记为nf1和nf2,当这两组数字积累50代之后,采用如下方式更新mp:
每次mp更新之后,将ns1,ns2,nf1和nf2置为0进入下一次统计过程。
步骤3).交叉操作:对当前种群中的目标向量和经变异操作生成的向量进行重组生成新的向量Ui,g=(u1,i,g,u2,i,g,...,uD,i,g),按如下操作:
其中randi,j是0到1之间满足均匀分布的随机数,在每次调用时重新生成;jrand∈[1,2,...,D]是一个随机选择的索引以确保Ui,g至少从经变异操作生成的向量中获得一位基因而不会与Xi,g完全重复,对每个向量生成一次;Cr∈(0,1)是交叉概率。
步骤4).选择操作:若交叉操作后生成的向量小于或等于变异操作前向量,则在下一代中用交叉操作后生成的向量替换掉变异操作前向量;
优点及有益效果:
1.本发明所述的算法在能够在不同阶段循序渐进不断调整自身的值,具有优化性能;
2.本发明在算例上取得的收益明显优于其他算法;
3.本发明能够处理任何形式的转换时间表现形式,具有很强的灵活性。
附图说明
图1为本发明的基本流程图。
图2为构造有向图的工件示例图。
图3为有向图示例图。
具体实施方式
为便于具体描述,首先引入相关元素:
n待加工工件的数量;
ri工件i的释放时间,i=1,2,...,n;
pi工件i需要的加工时间,i=1,2,...,n;
di工件i的交货期,i=1,2,...,n;
dli工件i的截止期,i=1,2,...,n;
ei工件i严格按照交货期完工所能获得的收益,i=1,2,...,n;
rei加工工件i所能获得的实际收益,i=1,2,...,n;
hi工件i的提前完工惩罚系数,i=1,2,...,n;
wi工件i的延期完工惩罚系数,i=1,2,...,n;
bi工件i的开工时间,i=1,2,...,n;
ci工件i的完工时间,i=1,2,...,n;
Ei工件i的提早完工时间,i=1,2,...,n;
Ti工件i的延期完工时间,i=1,2,...,n;
机器在ci时刻完成对工件i的加工至在bi时刻开始对工件j加工之间需所要的转换时间,i,j=1,2,...,n,i≠j,依赖与前一工件的完工时间和后一工件的开工时间。
单机环境下考虑时间依赖转换时间的调度问题(S-TDSTS)可以如下描述:存在n个备选工件需要在在单机环境下加工,工件之间不存在偏序关系,机器在同一时刻最多只能加工一个工件,机器在加工任意两个工件之间可以存在空闲时刻。每个工件i只要在其释放期之后才能开始加工,需要的加工时间为pi,如果刚好在其交货期di时刻完工,则能够从该工件上获得的收益为ei。如果工件早于交货期完工,则称该工件提前完工,每提前1个时间单位完工收益减少hi,加工该工件获得的收益随着工件的提早完工线性递减;如果工件晚于交货期完工,则称该工件延期完工,每延期1个时间单位完工收益减少wi,加工该工件获得的收益随着工件的延期完工线性递减,如果完工时间超过了截止期dli,则加工该工件不会产生任何收益。工件i的提早完工时间Ei=max{0,di-ci},延期完工时间Ti=max{0,ci-di},加工工件i获得的收益与其完工时间ci之间的关系为:
rei=max{ei-hi·max{0,di-ci},ei-wi·max{0,ci-di}},
问题的优化目标是最大化所有加工工件的收益之和。机器在连续加工任意两个工件之间需要的转换时间取决于前一工件的完工时间与后一工件的开工时间,即
时间依赖转换时间的调度问题与订单受理与调度问题存在两点不同:一是工件不仅存在延期惩罚,还存在提早惩罚;二是考虑了时间依赖的转换时间。因此,本发明研究的问题的数学模型与订单受理与调度问题的数学模型并不完全相同。
引入0-1变量yij,i=1,...,n,j=1,...,n,i≠j,如果工件j紧接着工件i之后加工,则yij=1,否则yij=0;引入虚拟工件0和虚拟工件n+1,分别表示早于所有其他真实工件加工的第一个工件和晚于所有其他真实工件加工的最后一个工件,r0=0,p0=0,d0=0,dl0=0,e0=0,rn+1=0,pn+1=0,dn+1=0,dln+1=0,en+1=0。OAS的数学模型如下:
s.t.
ci≤dlixi,i=0,...,n+1 (3)
rei≤eixi-hi·Ei-wi·Ti,i=0,...,n+1 (4)
rei>0,i=0,...,n+1 (5)
Ei≥di-ci,i=0,...,n+1 (6)
Ei≤di-ri-pi,i=0,...,n+1 (7)
Ei≥0,i=0,...,n+1 (8)
Ti≥ci-di,i=0,...,n+1 (9)
Ti≤(dli-di)xi,i=0,...,n+1 (10)
Ti≥0,i=0,...,n+1 (11)
bi+pi=ci,i=0,...,n+1 (12)
x0=1,xn+1=1; (17)
xi∈{0,1},i=0,...,n+1; (18)
yij∈{0,1},i=0,...,n,j=1,...,n+1,i≠j; (19)
其中,(1)表示如果工件j紧接着工件i之后加工,则工件i的完工时间加上转换时间sij,再加上工件j的加工时间不大于工件j的完工时间,如果工件j并没有紧接着工件i之后加工,则该约束不起作用,xi为0-1变量,i=1,...,n,如果工件i被选择加工,则xi=1,否则xi=0;(2)表示如果工件j被选中加工,则工件j的完工时间至少为该工件的释放期加上加工时间,如果工件j的紧前加工工件为i,则工件j的完工时间至少为该工件的释放期加上工件i到工件j的转换时间再加上工件j的加工时间,如果工件j没有被选中加工则该约束不起作用,yij为0-1变量,i=1,...,n,j=1,...,n,i≠j,如果工件j紧接着工件i之后加工,则yij=1,否则yij=0;(3)表示如果一个工件被选中加工,则该工件的完工时间不晚于截止期;(4)和(5)表示工件i的收益rei的计算方式;(6)、(7)和(8)确定了工件i的提早完工时间Ei的计算方式;(9)、(10)和(11)确定了工件i的延期Ti的计算方式;(12)确定了工件的完工时间等于加工时间加上开工时间;(13)和(14)限定了每个工件最多只有一个紧前工件和后序工件;(15)确定了时间依赖转换时间的计算方式;(16)限定了虚拟工件的完工时间;(17)设定虚拟工件0和n+1必须完工;(18)和(19)设定xi和yij为0-1变量。
在时间依赖转换时间的调度问题中,时间依赖的转换时间的表现形式可以是一个数学公式,或者一张数据表,还可能是一段计算机程序。这种不确定的形式,使得该问题很难用传统的数学规划方法求解。本发明提出一种基于有向图适应度评估的混合差分进化的计算方法,该方法能够处理任何形式的转换时间表现形式,具有很强的灵活性。
基本的差分进化算法是于上世纪90年代年提出的一种简单而有效的随机优化算法,最初被设计用于实值优化问题。以最小化优化目标为例,一个优化问题可以表示为:
其中f为目标函数,X={x1,x2,...,xD}表示一组变量(向量),C={c1,c2,...,cm}表示X必须满足的一组约束,D和m分别表示问题的维度和约束的数量,R、E和I分别表示实数集、等式约束索引集和不等式约束索引集。优化的目标是找到一个满足约束的向量X*,使得对所有其他满足约束的X,f(X*)≤f(X)恒成立。
差分进化算法是一种群体搜索算法,在求解优化问题时,首先随机生成一组向量,在算法的每次迭代过程中,针对种群中的每一个目标向量,采取变异操作生成一个变异向量,再对变异向量和目标向量采用交叉和选择操作生成新的个体进入下一代。
编码方式:
对于含有n个工件的S-TDSTS问题,每个个体Xi,g=(x1,i,g,x2,i,g,...,xn,i,g)采用n维实值向量表示,xj,i,g∈[0,1],j∈[1,n]。在初始化时xj,i,0=rand[0,1],为0到1之间服从均匀分布的随机实数。xj,i,g表示从rj+pj时刻点到完工时间cj持续的时间占时间窗口[rj+pj,dlj]的比例。当给定了xj,i,g的值之后,可以确定在第g代种群中第i个个体的工件j的完工时间cj=(rj+pj)+xj,i,g·(dlj-rj-pj)。比如假设工件j的释放期rj=10,加工时间pj=30,截止期dlj=100,如果xj,i,g=0.5,则工件j的完工时间cj=10+30+0.5×(100-10-30)=70。在这种表示方法中,每个工件的完工时间一直处在时间窗口[rj+pj,dlj]内。
适应度评估:
(1)有向无环图的构建
当给定一个n维实值向量Xi,g=(x1,i,g,x2,i,g,...,xn,i,g)之后,就可以通过cj=(rj+pj)+xj,i,g·(dlj-rj-pj)来确定各工件的完工时间,进而可以确定加工各工件所能获得的收益rej=max{ej-hj·max{0,dj-cj},ej-wj·max{0,cj-dj}}。此时如果机器按照各工件的完工时间加工所有工件,则可能违反如下两个约束:一是机器在同一时刻只能加工一个工件;二是机器在加工不同工件之间需要一定的转换时间,该时间取决于前一工件的完工时间和后一工件的开工时间。
因此,在确定各工件完工时间的情况下需要从所有工件中寻找一个满足以上两个约束的可行子集使得对任意一个其他可行子集Ω≠Ω*,成立。为寻找可行子集,采用如下步骤先建立一个有向无环图:
Step1.根据给定的Xi,g=(x1,i,g,x2,i,g,...,xn,i,g),计算各工件的完工时间、开工时间以及收益:cj=(rj+pj)+xj,i,g·(dlj-rj-pj),bj=cj-pj,rej=max{ej-hj·max{0,dj-cj},ej-wj·max{0,cj-dj}},j=1,2,...,n;
Step2.将所有工件按照各自开工时间升序排列,设排序后的工件序列为σ,工件j表示在σ中排在位置j的工件,则满足bi≤bj;
Step3.设有向图G=(V,E),V为顶点集合,E为边集合,初始化设 向V中加入顶点0表示始点,加入顶点n+1表示终点,再向V中依次加入其他表示各工件的顶点j,j=1,2,...,n;
Step4.对集合σ中所有i∈σ,向E中加入长度为的有向边<0,σi>和长度为0的有向边<σi,n+1>;
Step5.对于如果满足则向E中加入一条长度为reσ(j)的有向边<σ(i),σ(j)>;
注意到在Step5中,由于工件i的完工工时间ci和工件j的开工时间bj已经确定,因此不管时间依赖函数f(ci,sj)是以何种形式给出,都可以很方便的根据可以计算出时间依赖的转换时间。
下面以一个简单的示例说明该有向无环图的构造过程。假设存在四个工件,各工件的释放期、加工时间、截止期如下:
r1=5,p1=5,dl1=44;
r2=10,p2=13,dl2=63;
r3=13,p3=10,dl3=54;
r4=20,p4=12,dl4=57;
设给定的向量x=(0.3,0.4,0.6,0.8),可以计算出各工件的开工时间和完工时间:
b1=10,c1=15;
b2=13,c2=26;
b3=22,c3=32;
b4=28,c4=57;
假设依据完工时间计算出各工件的收益如下:
re1=1.5,re2=3.2,re3=0.7,re4=2.6;
将各工件按照加工开始时间升序排列如图2所示。将四个工件按照加工开始时间排序后的序列为1,2,3,4。假设转换时间在构造有向图时,共有6个节点,其中节点0为源节点,从节点0到节点1,2,3,4各存在一条有向边,边的长度分别为1.5,3.2,0.7和2.6,从节点1,2,3,4到终点5也各存在一条有向边,长度均为0。检查工件1和位于其后加工的其它工件,由于c1>b2,因此节点1和2之间不存在有向边,由于 因此节点1和节点3,4分别存在一条有向边,长度分别为0.7和2.6;检查工件2和位于其后加工的其它工件,由于c2>b3,因此节点2和节点3之间不存在边,由于因此节点2和4之间存在一条长度为2.6的边;检查工件3和位于其后加工的其它工件,由于c3>b4,因此节点3和节点4之间不存在边。最终形成的有向图如图3所示。
(2)最长路径算法
当依据给定的向量Xi,g=(x1,i,g,x2,i,g,...,xn,i,g)构造出有向无环图G=(V,E)之后,从所有工件之中找出一个可行子集以最大化收益之和等同于从G=(V,E)中寻找一条从源节点0至终节点n+1的最长路径。这是因为当确定了各工件的加工开始时间和结束时间之后,该问题就变成了一个以最大化完工工件权重之和为目标的固定开工和完工时间非抢占式调度问题,这等同于从构造的有向无环图中寻找一条最长路径,路径的长度等于工件的权重[164]。这里将所有边的长度乘以-1,采用Bellman-Ford最短路算法寻找从源点到终点的最短路,寻找到的最短路的绝对值即为G=(V,E)中最长路径的长度,除了源点和终点之外,出现在路径中的节点即为被安排加工的工件。如图2中,粗线表示的路径0-2-4-5就是图中由源点0到终点5的最长路径,工件2和工件4是被安排加工的两个工件。
基于有向无环图的适应度评估:
(1)种群初始化
在函数优化问题中,通常要求初始种群中的个体均匀分布于搜索空间,初始种群第i个个体的第j维变量xj,i,0=lb(j)+rand(0,1)·(ub(j)-lb(j)),其中rand(0,1)表示生成0和1之间满足均匀分布的随机数,lb(j)和ub(j)分别为第j维变量的下界和上界。当无法利用问题本身的先验知识时,采用完全随机的方式生成初始种群是一种很自然的方式。但是在S-TDSTS问题中,对于单个工件j来说,希望其完工时间cj尽量靠近交货期dj,极端情况下,当问题中只有一个工件时,直接令该工件的完工时间等于交货期即为最优结果。因此利用该先验知识,在GFEHDE中,采用如下初始化方式:
do xj,i,0=Gauss(xej,0.1)while(xj,i,0<0||xj,i,0>1)
其中xej=(dj-rj-pj)/(dlj-rj-pj),Gauss(xej,0.1)为服从均值与标准差分别为xej和0.1的高斯随机数。该方法让个体中第j个变量所对应的工件完工时间初始化时在其交货期附近随机采样。
(2)变异操作
JADE中采用DE/Current-to-pbest变异操作,既能够利用种群中优良个体的特性,又避免了DE/Current-to-best过于“贪婪”的变异方式。但是Yang[165]认为,DE/Current-to-pbest无法让选择到种群中前100p%之外的个体,这对于复杂的多峰值函数优化问题来说,显得不够具有鲁棒性。为此,Yang[165]提出了一种DE/Current-to-lpbest方法,每次将种群中的个体随机分为K组,将每组中的最优个体作为lpbest个体。这种方法里,尽管仍然倾向选择较优的个体,但同时又使每个个体均有机会被选择。考虑到S-TDSTS是复杂的组合优化问题,难以确切知道哪种变异方式适合问题,这里借鉴SaDE的思想,让算法在搜索过程中从两种变异操作中自适应选择:
其中,mp的初始值设为0.5,在每次迭代过程中,记录采用第一种和第二种变异操作生成成功进入下一代的个体个数分别为ns1和ns2,而不能进入下一代的个体个数记为nf1和nf2,当这两组数字积累50代之后,采用如下方式更新mp:
每次mp更新之后,将ns1,ns2,nf1和nf2置为0进入下一次统计过程。
(3)交叉操作
试用向量Ui,g=(u1,i,g,u2,i,g,...,uD,i,g)的生成过程如下:
其中randi,j是0到1之间满足均匀分布的随机数,在每次调用时重新生成;jrand∈[1,2,...,D]是一个随机选择的索引以确保Ui,g至少从Vi,g中获得一位基因而不会与Xi,g完全重复,对每个向量生成一次;Cr∈(0,1)是交叉概率,
(4)参数调整
当统计样本数量小于某一阈值时,GFEHDE不采用自适应调整机制来设置μF和μCr。GFEHDE采取如下方法调整参数:
(1)缩放因子:每次为目标个体Xi,g生成一个位置和规模参数分别为μF和0.1的柯西随机数作为缩放因子Fi:
其中,μF初始值设为0.5,设SF为在第g代成功生成进入下一代个体的缩放因子集合,以后每次迭代后采用如下方法更新:
其中c为0到1之间的常数,这里设为0.1。fp的初始值设为0.5,在每次迭代过程中,记录采用高斯随机数和柯西随机数生成成功进入下一代的个体个数分别为nfs1和nfs2,而不能进入下一代的个体个数记为nff1和nff2,当这两组数字积累50代之后,采用如下方式更新fp:
每次fp更新之后,将nfs1,nfs2,nff1和nff2置为0进入下一次统计过程。
(2)交叉概率:每次为目标个体Xi,g生成一个均值和标准差分别为μCr和0.1的高斯随机数作为交叉概率Cri:
Cri=Gaussi(μCr,0.1)
如果Cri≤0则重新生成Cri,如果Cri≥1则令Cri=1。设SCr为在第g代成功生成进入下一代个体的交叉概率集合,μCr的初始值设为0.5,以后每次迭代采用如下方法更新:
其中c为0到1之间的常数,设为0.1。
本发明所述的实施例仅仅是对本发明的优选实施方式进行的描述,并非对本发明构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中工程技术人员对本发明的技术方案作出的各种变型和改进,均应落入本发明的保护范围,本发明请求保护的技术内容,已经全部记载在权利要求书中。
Claims (2)
1.一种用于解决时间依赖转换时间调度问题的基于有向图适应度评估的混合差分进化算法,其特征在于,采用有向图进行适应度评估,根据给定的实值向量,计算各工件的完工时间、开工时间和收益,将各工件按照开工时间升序排列,构建一个有向无环图,图中最长路径上的节点即为被安排加工的工件,路径的长度即为该实值向量对应的目标函数,所述算法包括以下步骤:
采用如下步骤建立有向无环图:
Step1.根据给定的Xi,g=(x1,i,g,x2,i,g,...,xn,i,g),计算各工件的完工时间、开工时间以及收益:
cj=(rj+pj)+xj,i,g·(dlj-rj-pj),
bj=cj-pj,
rej=max{ej-hj·max{0,dj-cj},ej-wj·max{0,cj-dj}},j=1,2,...,n;
其中,
rj为工件j的释放时间,j=1,2,...,n;
pj为工件j需要的加工时间,j=1,2,...,n;
dlj为工件j的截止期,j=1,2,...,n;
ej为工件j严格按照交货期完工所能获得的收益,j=1,2,...,n;
hj为工件j的提前完工惩罚系数,j=1,2,...,n;
dj为工件j的交货期,j=1,2,...,n;
wj为工件j的延期完工惩罚系数,j=1,2,...,n;Step2.将所有工件按照各自开工时间升序排列,设排序后的工件序列为σ,工件j表示在σ中排在位置j的工件,则满足bi≤bj;
Step3.设有向图G=(V,E),V为顶点集合,E为边集合,初始化设向V中加入顶点0表示始点,加入顶点n+1表示终点,再向V中依次加入其他表示各工件的顶点j,j=1,2,...,n;
Step4.对集合σ中所有i∈σ,向E中加入长度为的有向边<0,σi>和长度为0的有向边<σi,n+1>;
Step5.对于j∈σ,i<j,如果满足则向E中加入一条长度为reσ(j)的有向边<σ(i),σ(j)>;其中,为机器在ci时刻完成对工件i的加工至在bi时刻开始对工件j加工之间所需要的转换时间,
基于所述有向无环图进行适应度评估,步骤如下:
步骤1).编码及种群初始化:采用位于0和1之间的实数作为编码方式,生成一组实值向量Xi,g=(x1,i,g,x2,i,g,...,xD,i,g),其中:g表示第g代种群,i表示第i个个体,每个向量构成一个染色体,每个实数表示工件的实际完工时间占整个时间窗口长度的比率,根据向量中的各实数预先确定对应工件的开工时间和完工时间,并且根据工件的开工和完工时间计算不同工件之间需要的转换时间;
种群初始化时使实值向量对应的工件完工时间初始化时在其交货期附近随机采样;
步骤2).变异操作:从当前种群中随机选择三个个体,利用其中两个生成一个差分向量,再将差分向量乘以缩放因子之后加到第三个向量上,即得到一个向量,按如下操作:
<mrow>
<msub>
<mi>V</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>X</mi>
<mrow>
<mi>l</mi>
<mi>p</mi>
<mi>b</mi>
<mi>e</mi>
<mi>s</mi>
<mi>t</mi>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mi>F</mi>
<mi>i</mi>
</msub>
<mo>&CenterDot;</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>X</mi>
<mrow>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>X</mi>
<mrow>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mi> </mi>
<mi>r</mi>
<mi>a</mi>
<mi>n</mi>
<mi>d</mi>
<mrow>
<mo>(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo><</mo>
<mi>m</mi>
<mi>p</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>X</mi>
<mrow>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mi>F</mi>
<mi>i</mi>
</msub>
<mo>&CenterDot;</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>X</mi>
<mrow>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>X</mi>
<mrow>
<msub>
<mi>r</mi>
<mn>3</mn>
</msub>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>o</mi>
<mi>t</mi>
<mi>h</mi>
<mi>e</mi>
<mi>r</mi>
<mi>w</mi>
<mi>i</mi>
<mi>s</mi>
<mi>e</mi>
<mo>.</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中,Xlpbest,g为最优个体对应的向量,mp的初始值设为0.5,在每次迭代过程中,记录采用第一种和第二种变异操作生成成功进入下一代的个体个数分别为ns1和ns2,而不能进入下一代的个体个数记为nf1和nf2,当这两组数字积累50代之后,采用如下方式更新mp:
<mrow>
<mi>m</mi>
<mi>p</mi>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<msub>
<mi>ns</mi>
<mn>1</mn>
</msub>
<mo>&CenterDot;</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>ns</mi>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mi>nf</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>ns</mi>
<mn>2</mn>
</msub>
<mo>&CenterDot;</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>ns</mi>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mi>nf</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>ns</mi>
<mn>1</mn>
</msub>
<mo>&CenterDot;</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>ns</mi>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mi>nf</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mi> </mi>
<msub>
<mi>ns</mi>
<mn>1</mn>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>ns</mi>
<mn>2</mn>
</msub>
<mo>></mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mn>0.5</mn>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>o</mi>
<mi>t</mi>
<mi>h</mi>
<mi>e</mi>
<mi>r</mi>
<mi>w</mi>
<mi>i</mi>
<mi>s</mi>
<mi>e</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
每次mp更新之后,将ns1,ns2,nf1和nf2置为0进入下一次统计过程,
步骤3).交叉操作:对当前种群中的目标向量和经变异操作生成的向量进行重组生成新的向量Ui,g=(u1,i,g,u2,i,g,...,uD,i,g),按如下操作:
<mrow>
<msub>
<mi>u</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>i</mi>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<msub>
<mi>v</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>i</mi>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
</mtd>
<mtd>
<mrow>
<mi>i</mi>
<mi>f</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>rand</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo>(</mo>
<mrow>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
</mrow>
<mo>)</mo>
<mo><</mo>
<mi>C</mi>
<mi>r</mi>
<mi> </mi>
<mi>o</mi>
<mi>r</mi>
<mi> </mi>
<mi>j</mi>
<mo>=</mo>
<msub>
<mi>j</mi>
<mrow>
<mi>r</mi>
<mi>a</mi>
<mi>n</mi>
<mi>d</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>x</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mi>i</mi>
<mo>,</mo>
<mi>g</mi>
</mrow>
</msub>
</mtd>
<mtd>
<mrow>
<mi>o</mi>
<mi>t</mi>
<mi>h</mi>
<mi>e</mi>
<mi>r</mi>
<mi>w</mi>
<mi>i</mi>
<mi>s</mi>
<mi>e</mi>
<mo>.</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
其中randi,j是0到1之间满足均匀分布的随机数,在每次调用时重新生成;
jrand∈[1,2,...,D]是一个随机选择的索引以确保Ui,g至少从经变异操作生成的向量中获得一位基因而不会与Xi,g完全重复,对每个向量生成一次;Cr∈(0,1)是交叉概率,
步骤4).选择操作:若交叉操作后生成的向量小于或等于变异操作前向量,则在下一代中用交叉操作后生成的向量替换掉变异操作前向量。
2.根据权利要求1所述的基于有向图适应度评估的混合差分进化算法,其特征在于采用如下初始化方式生成初始种群:
do xj,i,0=Gauss(xej,0.1)while(xj,i,0<0||xj,i,0>1)
其中xej=(dj-rj-pj)/(dlj-rj-pj),Gauss(xej,0.1)为服从均值与标准差分别为xej和0.1的高斯随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410210741.2A CN104021437B (zh) | 2014-05-19 | 2014-05-19 | 一种基于有向图适应度评估的混合差分进化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410210741.2A CN104021437B (zh) | 2014-05-19 | 2014-05-19 | 一种基于有向图适应度评估的混合差分进化算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021437A CN104021437A (zh) | 2014-09-03 |
CN104021437B true CN104021437B (zh) | 2017-09-08 |
Family
ID=51438177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410210741.2A Expired - Fee Related CN104021437B (zh) | 2014-05-19 | 2014-05-19 | 一种基于有向图适应度评估的混合差分进化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021437B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147268B (zh) * | 2019-04-16 | 2020-05-08 | 清华大学无锡应用技术研究院 | 处理并发事务的方法、装置、并发控制系统及存储介质 |
CN110580390B (zh) * | 2019-09-04 | 2021-05-11 | 电子科技大学 | 基于改进遗传算法与信息熵的地质统计学随机反演方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566423A (zh) * | 2011-12-09 | 2012-07-11 | 西南交通大学 | 一种单边装配线的平衡控制方法 |
-
2014
- 2014-05-19 CN CN201410210741.2A patent/CN104021437B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566423A (zh) * | 2011-12-09 | 2012-07-11 | 西南交通大学 | 一种单边装配线的平衡控制方法 |
Non-Patent Citations (4)
Title |
---|
Diversity Controlling Genetic Algorithm for Order Acceptance and Scheduling Problem;Cheng Chen,et al.;《Mathematical Problems in Engineering》;20140223;第2014卷;第1-11页 * |
Self-adaptive Differential Evolution Algorithm for Numerical Optimization;A.K.QIN等;《2005 IEEE congress on evolutionary computation》;20051231;第1785-1791页 * |
具有优先约束和加工时间依赖开工时间的单机排序问题;王吉波;《中国管理科学》;20050430;第13卷(第2期);第51-55页 * |
基于遗传算法与有向图拓扑排序的工艺路线优化;黄伟军 等;《计算机集成制造系统》;20090930;第15卷(第9期);第1770-1778页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104021437A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106647262B (zh) | 一种面向敏捷卫星多目标任务规划的差分进化方法 | |
CN107168267B (zh) | 基于改进粒子群与启发式策略的生产排产方法及系统 | |
US20190311309A1 (en) | System and Method for Solving Large Scale Supply Chain Planning Problems with Integer Constraints | |
Zhang et al. | An efficient multiobjective genetic algorithm for mixed-model assembly line balancing problem considering demand ratio-based cycle time | |
CN109902873A (zh) | 一种基于改进型鲸鱼算法的云制造资源配置的方法 | |
CN111340345B (zh) | 一种基于改进粒子群算法的刀具调度方法 | |
CN113988396B (zh) | 一种基于nsga-iii算法的工序排序多目标优化方法 | |
CN104636871A (zh) | 一种基于数据的单阶段多产品批处理的控制方法 | |
CN110471274A (zh) | 基于改进统一粒子群算法的机械零件加工流水线调度方法 | |
CN107831740A (zh) | 一种应用于笔记本零件的分布式生产制造过程中的优化调度方法 | |
CN106611275A (zh) | 针对作业车间生产问题的排产算法 | |
CN115130789A (zh) | 一种基于改进灰狼优化算法的分布式制造智能调度方法 | |
CN114881504B (zh) | 一种基于订单选择的电子精密件全自动柔性生产线调度方法 | |
CN114970345A (zh) | 短期负荷预测模型构建方法、装置、设备及可读存储介质 | |
Sahin et al. | Better optimization of nonlinear uncertain systems (BONUS): A new algorithm for stochastic programming using reweighting through kernel density estimation | |
CN104021437B (zh) | 一种基于有向图适应度评估的混合差分进化算法 | |
CN114819355A (zh) | 基于改进灰狼算法的多目标柔性作业车间节能调度方法 | |
CN115730799A (zh) | 一种柔性装配作业车间生产任务调度方法、系统及设备 | |
Chamnanlor et al. | Hybrid genetic algorithms for solving reentrant flow-shop scheduling with time windows | |
CN104281917A (zh) | 基于自适应遗传和克隆选择算法的模糊作业车间调度方法 | |
Vaghefinezhad et al. | A genetic algorithm approach for solving a flexible job shop scheduling problem | |
Zhang et al. | Evolutionary algorithm incorporating reinforcement learning for energy-conscious flexible job-shop scheduling problem with transportation and setup times | |
Zheng et al. | Solving multi-objective two-sided assembly line balancing problems by harmony search algorithm based on pareto entropy | |
CN110705844B (zh) | 基于非强制空闲时间的作业车间调度方案鲁棒优化方法 | |
CN117273319A (zh) | 一种基于DIFFormer和深度强化学习求解动态FJSP的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170908 Termination date: 20210519 |