一种基于遗传算法的水泥生产线施工作业调度方法与流程

文档序号:35872072发布日期:2023-10-28 07:08阅读:40来源:国知局
一种基于遗传算法的水泥生产线施工作业调度方法与流程

本发明涉及水泥生产调度,尤其是涉及一种基于遗传算法的水泥生产线施工作业调度方法。


背景技术:

1、水泥生产线建设施工过程涉及大量施工作业,作业之间存在紧前约束关系,作业对资源需求量与资源总量之间存在数量约束关系,因此本发明构建了资源受限下施工作业调度模型,属于典型的资源受限的项目调度优化问题(resource constrained projectscheduling problem,rcpsp)。

2、rcpsp已被证明是np-hard问题,该问题很难用一种算法解决所有实例。解决rcpsp问题的方法大致分为两类。

3、一是使用精确算法,例如有学者利用分支定界的方法解决rcpsp,但是随着作业数量的增加,此类算法的求解时间将会呈指数型增长,对于水泥生产线这种大型建设项目并不适用。

4、二是使用启发式算法解决rcpsp问题,由于启发式算法能够用相对短的时间搜索到最优解或近似最优解,所以本发明采用启发算法进行寻优。在将启发式算法应用于水泥生产线作业调度时,不仅需要考虑算法的更新迭代,还需要考虑以何种表现形式表示实体,一般而言,有三种表形式:1)基于作业列表编码;2)基于随机生成的优先数编码;3)基于优先规则(优先权)编码。

5、基于作业链表编码的方式操作简单,因此得到了广泛的运用,但是由于随机生成的作业链表往往不满足作业间约束关系,导致在在初始化时花费大量时间构造可行解,在染色体进化阶段重复判断染色体基因位置的可行性。为了确保算法在初始化种群阶段生成有效染色体,提升算法运行效率和提高算法求解质量,本发明提出了一种新的作业链表编码方式,用于生成满足作业约束关系的染色体,使染色体上的基因在运算过程中始中保持约束关系。


技术实现思路

1、本发明的目的在于提供一种基于遗传算法的水泥生产线施工作业调度方法。

2、为实现上述目的,本发明采用以下内容:

3、一种基于遗传算法的水泥生产线施工作业调度方法,包括:步骤一:基于项目需求,规划项目中的各个子项系统;对各个子项系统向下细分得到作业基本信息、作业间的紧前关系和每个作业每天在人力资源与机具资源下各种资源的需求量;

4、步骤二:将各个作业间的紧前关系进行汇总,得到项目的紧前约束集合;

5、步骤三:针对项目的需求量,设定各种资源每日动用总量,作为整个项目运行时的资源约束;

6、步骤四:根据水泥生产线项目的作业基本信息,对其进行数学建模,得到改进后的调度建模;

7、步骤五:利用染色体作业链生成策略,将所有的作业划分在有限个紧前约束集合中,再依据该紧前约束集合,编制出改进遗传算法进化策略,通过该改进遗传算法进化策略,遗传算法的种群初始化生成过程与后续的交叉变异过程将不会产生违反紧前约束集合的个体;

8、步骤六:基于步骤五中的染色体作业链生成策略,随机初始化种群,开始改进遗传算法进化策略的迭代过程;得到相对工期最短的水泥生产线作业调度方案和得到目前基因型对应最短总工期的方案。

9、实现了:

10、优选的是,步骤六中的迭代过程为:

11、1)对种群使用正逆向解码方法,得到每个个体对应编制方案的总工期,并淘汰掉总工期相对较长的部分个体;

12、2)根据步骤五中的进化方案作为基因算子的交叉、变异方案,先在群体中随机选择大部分个体两两成对进行交叉,再随机选择少部分个体进行变异;在迭代若干次数后,种群趋于同一个相对最优的个体,将该个体进行解码,得到相对工期最短的水泥生产线作业调度方案。

13、优选的是,步骤五中的改进遗传算法进化策略的改进遗传算法所使用的基因型为:对整个项目中的作业,根据作业编码按照顺序排列在一个集合全部中,所得到的顺序集合;

14、改进遗传算法使用的表现型为:将该集合所有作业,顺序安排在时间轴上,若满足资源约束条件,同一时间安排多个作业,最终得到当前基因型对应最短总工期的方案。

15、优选的是,步骤四中的调度建模中的调度算法基于人力资源和机具资源,设水泥生产线建设共有n个子项系统,用hi(i=1,...,n)来表示;每个子项系统包含j项作业,令虚拟作业“开始”为编号1,各个作业依次按照从2到的顺序进行编号;aij表示子项系统i中第j项作业,工期为dij,stij表示aij的开始时间,ftij表示aij的完工时间;pij为作业aij的紧前作业集合;项目共有k种资源,用rk表示k资源在项目中的总量,rijk表示作业aij对资源k的需求量;

16、设dij,rijk,rk为非负参数,可构建以下数学模型:

17、f=min{max{ftij}},i=1,2,...,n

18、约束条件为:

19、

20、

21、

22、stij≥0,i=1,2,...,n,j=1,2,...,j

23、

24、max{ftij}为子项系统i中最后一项作业j的完工时间,假设项目从0时刻开始,则max{ftij}就是项目的总工期,f为目标函数,取最小值;约束表示子项系统i中作业j的开始时间须大于紧前约束集合中作业h的完工时间,为作业紧前约束关系表达式;约束表示任意时刻,作业对k需求量不超过k资源;

25、在项目中的总量,为资源约束表达式;约束表示子项系统i中作业j是否被安排在t时刻,是则为1,否则为0;约束stij≥0,i=1,2,...,n,j=1,2,...,j表示作业开始时间的非负性;表示的二进制决策变量,即作业aij若在t时刻完成,则xijt=1,反之则为0。

26、水泥生产线建设项目由有限多个作业组成,部分作业之间需要满足相应的时序关系,例如土方回填作业总是在土方开挖作业完成后才可以进行施工。承建方将根据实际施工计划,对材料资源进行采购和出入库,以避免材料造成积压。因此在本发明的调度算法中只考虑人力资源、机具资源两种可更新资源。为了使问题简化,提出以下假设:人力资源、机具资源均是可更新型资源,材料资源充足;施工任务一旦开始,不能停止,直到任务完成;作业只有在其全部紧前作业完工后才能开始;施工人员唯一性约束,每一个施工人员同一时刻只能服务于一项作业;施工人员、机具在现场的移动过程所花费时间可忽略;每个项目都包含虚拟作业“开始”和“结束”,虚拟作业不占用时间也不消耗资源,仅用来标识项目的开始和结束。

27、优选的是,步骤五中的染色体作业链生成策略为:

28、1)将没有紧前约束关系的作业aij取出放入集合a,进而将集合a中所有作业的紧后作业放入集合b,

29、2)重复操作步骤1),根据项目作业数量和作业关系的限定可以得到若干集合;

30、3)集合之间受紧前紧后关联约束,在实现作业链染色体编码时,按先完成a集合中的作业编码,再取用集合b中的作业编码,同一集合中的作业没有逻辑关系,数据随机排列于集合内;在种群初始化时染色体随机性更强,生成满足紧前约束关系的进度安排。

31、优选的是,步骤五中交叉变异过程的交叉算子改进:

32、本发明提出一种集合控制关系的交叉算子,具体步骤如下:

33、step1:设置交叉概率c,通过随机函数生成n,n∈[0,1];

34、step2:判断c与n的大小,若c>n,则进入步骤3;若c≤n,则进入变异算子运算;

35、step3:随机生成交叉点p,p∈[0,n],n为集合个数,根据p的值,将父体gf分成两部分,p之前集合为f1,p之后的集合为f2,母体gm同样地被分为两部分,p之前集合为f3,p之后集合为f4;

36、step4:由作业紧前约束关系,可以将四个集合组成新的染色体。f1和f4集合可合并为新的子代gc1,将f2和f3合并产生新的子代gc2。

37、上述交叉算子在执行过程中充分考虑了作业之间的约束关系,将集合而非作业作为交叉操作的单元,一方面减少了交叉点的取值范围,另一方面保证了子代染色体的可行性,提高了运算效率。

38、优选的是,步骤五中交叉变异过程的变异算子改进,具体步骤如下:

39、step1:设变异概率为p1,随机生成θ,θ∈[0,1]。判断p1>θ时,执行step2,p1≤θ时,结束;

40、step2:随机生成变异控制参数m,m∈[1,n](n代表集合数),确定发生变异的集合;

41、step3:判断选定集合元素是否超过两个,若是,则在该集合中随机生成两个变异点,交换位置,否则,返回step2。

42、若m=1,此时在集合1中随机生成两个交换点pos1=1,pos2=4,交换两者位置,得到新个体。

43、该变异操作充分考虑了作业之间的约束关系,使变异在集合内进行,既增加了种群的多样性,又充分考虑作业之间紧前约束关系。

44、优选的是,对种群使用正逆向解码方法的种群解码方式:

45、1)对作业链表进行解码时,根据解码方向的不同可分为正向解码和逆向解码;

46、2)正向解码按照作业链表从左至右的顺序依次安排作业开始时间;

47、3)逆向解码按照作业链表从右至左的顺序依次安排作业的完成时间;

48、4)对于同一条染色体,使用正向和逆向解码方法将会得到不同的作业进度计划,反复执行正逆向解码方法;当正向解码与逆向解码获取的总工期相同时,代表优化结束,获取到了该基因型对应的最佳表现型,即最短工期。

49、本发明具有以下优点:

50、1、本发明能够在多重资源约束、作业紧前约束下为项目经理制定水泥生产线作业调度的相对最优施工方案,并且方案生成速度快、效率高。

51、2、交叉算子在执行过程中充分考虑了作业之间的约束关系,将集合而非作业作为交叉操作的单元,一方面减少了交叉点的取值范围,另一方面保证了子代染色体的可行性,提高了运算效率。

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