针对式(2.37)至(2.39)的加权项目总工期最小化多项目调度问题,设计如图7.9所示的编码方案。该方案采用矩阵形式,基因(i,j)对应多项目中的任务(i,j),其取值即为任务(i,j)的优先值。由于各个项目的任务数量Ji不一定相同,因此取Ji的最大值J=max{Ji}作为基因矩阵的列数。对于任意一行末端未对应实际任务的基因,均赋值0。
图7.9 多项目进度计划编码方案
在解码时,则利用串行多项目SGS根据任务优先值从候选任务集合中选取任务逐步生成多项目进度计划。
根据多项目调度的目标函数,设计本算法的适应值函数为:
其中,f(S)是个体S的适应度,F(S)是个体S的项目加权总工期。
初始种群的质量会显著影响整个遗传算法的效率。好的初始种群要求个体尽量均匀分布在解空间中,因此多数遗传算法都采用随机方式来生成初始种群。为了既保证初始种群的质量,又考虑到算法的效率,采用两种方式来产生初始种群。第一种方式产生POPa个初始个体,第二种方式产生POPb个初始个体,一共得到POP=POPa+POPb个初始个体。
第一种方法即完全随机方式。POPa个初始个体的每一个基因都赋予[0,1]区间内的随机值。(www.xing528.com)
第二种方法按照任务总时差进行赋值。首先根据CPM计算每一个任务的总时差TFij,然后据此计算对应基因的取值:
其中,γ是区间[0,1]内的随机值。
式(7.8)保证总时差较小的任务有较小的优先值,即较高的优先权,但同时又引入了随机数,使得第二类染色体具有一定的多样性。这样的构造方式类似于多项目版本的基于MINSLK的偏倚随机抽样方式。
通过上述设计,可以保证POPa个初始个体有较好的多样性,同时又保证POPb个初始个体有较好的质量。记POPb占总种群的比例为Pb。
遗传算子直接影响算法搜索效率。根据本章前述分析,分别选用二元竞赛选择、2-精英选择、两点交叉及均匀变异。
所设计的多项目遗传算法伪代码如下所示(应瑛等,2009):
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。