CN112148446A - 一种用于多技能资源受限项目调度的进化策略算法 - Google Patents
一种用于多技能资源受限项目调度的进化策略算法 Download PDFInfo
- Publication number
- CN112148446A CN112148446A CN202011001300.3A CN202011001300A CN112148446A CN 112148446 A CN112148446 A CN 112148446A CN 202011001300 A CN202011001300 A CN 202011001300A CN 112148446 A CN112148446 A CN 112148446A
- Authority
- CN
- China
- Prior art keywords
- resource
- population
- individuals
- task
- skill
- 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.)
- Granted
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 57
- 238000010276 construction Methods 0.000 claims abstract description 16
- 238000005457 optimization Methods 0.000 claims description 16
- 230000035772 mutation Effects 0.000 claims description 14
- 230000001174 ascending effect Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 241001334134 Rugopharynx epsilon Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000008775 paternal effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于多技能资源受限项目调度的进化策略算法,包括设置算法参数及初始化变量、初始化种群、对种群中的个体执行变异操作、评估种群适应度、更新帕累托种群、选择下一代的父代种群、判断是否满足迭代的终止条件,若满足条件,则终止程序并输出帕累托种群等步骤;本发明进一步考虑了资源在使用不同技能时的切换情况,更切合实际的应用场景。新的个体编码结构仅表示任务的资源指派,减少搜索空间。新的计划生成方案,采用贪婪策略,将任务分为两个集合依次安排其开始时间,并尽量减少不必要的技能切换,使得生成的调度方案的工期和成本大大减少。在解集的延展性、多样性和收敛性上好于目前已有的同类算法。
Description
技术领域
本发明涉及智能优化算法技术领域,尤其涉及一种用于考虑技能切换背景下多技能资源受限项目调度的进化策略算法。
背景技术
资源受限项目调度(Resource Constrained Project Scheduling Problem,RCPSP)是运筹学和项目管理中最经典的组合优化问题。最基本的RCPSP问题研究在资源有限的情况下,安排各任务的开始时间,并且满足资源用量上限及任务间的紧前约束。问题的目标函数常为项目的工期类指标或成本类指标最短。资源受限项目调度问题并不能完全适用于各类实际场景中。
多技能资源受限项目调度问题(Multi-skill Resource Constrained ProjectScheduling Problem,MS-RCPSP)是RCPSP的一类扩展问题。相较于RCPSP中假设的同质化资源,该问题假设资源具有一种(或多种)技能,不同的任务需要由具有特定技能的资源完成。这类问题常用于人力资源调度或柔性制造车间中。考虑技能的人力资源调度常见于复杂产品的众包研发或软件开发行业中,任务的技能需求差异较大,需要由具有该技能的人员完成。在柔性制造车间中,工件的某道工序可由具备加工条件的某个机器完成。
求解调度类问题的方法大体可分为精确式算法(Exact Algorithm)、启发式算法(Heuristics)和智能优化算法(Intelligent Optimization Algorithm)三大类。精确式算法以分支定界算法为主,可以求得问题的最优解,但可求解的问题规模小,面对实际应用中的大规模问题显得无能为力。启发式算法基于优先规则(Priority Rule,PR)和计划生成方案(Schedule Generator Scheme,SGS)。其生成的解的质量极大地依赖于优先规则的设计和选取。针对不同的实际问题,往往所适用的最佳规则也有所不同。智能优化算法以随机搜索为基础,利用计算机强大运算能力尝试在有限的时间内寻找较优的解。这类算法的设计思路简单,且能够求解的问题广泛。常见的智能优化算法有遗传算法(GeneticAlgorithm)、模拟退火(Simulated Annealing)、粒子群算法(Particle SwarmOptimization)等。科研人员也常在这些经典的算法上,对某些执行步骤进行细微的改进,设计出新的算法。一般而而言,智能优化算法包含以下要素:(1)编码,按照某种对应规则与调度生成计划相对应的一组代码;(2)解码,采用一定规则将编码转换为可行的调度方案;(3)初始解,采用其他方法得到的一组编码,对应初始的可行调度方案;(4)邻域解,一组编码经过邻域搜索算子(local search operator)得到的所有新的编码的集合。
目前已有的多技能资源受限项目调度问题及算法存在以下不足:
1)在多技能受限项目调度中,大部分的调度问题假设资源在不同技能间切换是不需要花费时间的,但在实际应用中,技能的切换所花费的时间往往也较为可观。如员工在执行不同技能类型的任务时,需要做些准备工作,如前往不同配置的工作台,获取适合的工具等。在制造车间中,加工不同要求的工件可能意为着更换不同类型的刀具、原料或者夹紧装置。上述的这些操作都会花费额外的时间,且频繁的切换会延长项目的完成时间。因此,合理地安排资源上任务的执行顺序也显得尤为重要。
2)目前针对多技能资源受限项目调度的智能优化算法以单目标为主,多目标的研究相对较少。且目前已有的算法中,个体的编码常采用双列表的形式,导致其搜索空间较大,求解效率低,获得的非支配解集质量不高。
3)目前已提出的智能优化算法并没有针对技能切换场景做专门的优化,因此其求解效率较低,难以在较大范围的解空间中寻得较有的解。目前已有的智能计算算法中,也没有讨论针对该问题的有效的编码和解码方案,局部搜索算子等。
发明内容
本发明的目的就在于为了解决上述问题而提供一种用于多技能资源受限项目调度的进化策略算法。
本发明通过以下技术方案来实现上述目的:
本发明包括以下步骤:
S1:设置算法参数及初始化变量;
S2:初始化种群;
S3:对种群中的个体执行变异操作;
S4:评估种群适应度;
S5:更新帕累托种群;
S6:选择下一代的父代种群;
S7:判断是否满足迭代的终止条件,若满足条件,则终止程序并输出帕累托种群,否则继续执行步骤三。
进一步,所述步骤S1具体为:设置种群大小Psize,子代生成数λ,资源平衡强度∈,最大迭代次数Gmax;初始化当前迭代次数g=0,父代种群集合子代种群集合帕累托解集帕累托解集的定义为:在多目标优化问题中,对于两个解S1和S2,如果S1的每个目标都不差于S2且至少一个目标优于S2,则S1支配S2,如果S1没有被种群其它解支配,则称S1为种群非支配解,一个种群所有的非支配解组成种群的Pareto解集。
所述步骤S2:种群中的个体采用长度为N的整数编码,其表示为RL={R(1),R(2),…,R(N)};其中N为待求解问题的任务集规模;R(i)表示任务Ti所指派的资源序号;该步骤分为两个子步骤:
S2.1:在初始化阶段,种群按照“最低成本-最长工期”策略仅生成一个个体;具体而言,为每一个任务,在能够执行该任务的资源集合中,为其分配工时成本最低的资源,如果存在工时成本多个工时成本最低的资源,则取资源序号小的资源,即
S2.2:在适应度评估阶段,计划生成方案(SGS)将个体p的编码转换为可行的调度方案,并计算其目标函数。
将待调度的任务分为两个集合:集合一A1中包含拥有紧前约束关系的任务;集合二A2中包含其余无紧前约束关系的任务。贪婪策略体现在先对安排集合一中的任务,再安排集合二中的任务。集合一中的任务Tj∈A1按照其序号升序排列,各个任务按照个体编码RL中指定的资源,安排其开始时间sj,并且将任务完成指派的任务添加至相应资源的执行队列πr中。对于集合二A2中任务,将其按照所指定的资源(个体编码RL的信息)进行归类,并且将在同一资源上执行的任务按照技能切换的时间代价采用贪婪策略排序,之后再安排各个任务的开始时间,并将安排好的任务添加至相应资源的执行队列πr中。最后,所有的任务都被安排完毕,根据式(5)和(6)计算整个项目的工期和成本。个体p的适应度分别为工期和成本,分别记为fitnessp,1和fitnessp,2。
所述步骤S3:以种群P中的每个个体作为父体,每个父体(p∈P)生成λ个子代个体,从而形成子代集合Q;变异操作由资源平衡算子执行,其步骤如下:
S3.1:读取父体生成的调度方案,根据方案中每个资源所分配到的任务πr(r∈R),计算每个资源的实际工作时长ur(r∈R);初始化计数变量n=0;复制父体p的编码,并命名为q;
S3.2:以资源的时间工作时长ur为权重,根据轮盘赌规则(Roulette Selection)选出一个资源Rs(s∈R);权重越高,被选中的概率越大;
S3.3:针对选出的资源Rs,随机选出该资源上的某个任务(Ti∈πr),并将其重新分配给其他资源Rx(x∈Ri),
S3.4:将新指派资源的更改应用到新的个体编码上;
S3.5:计数变量自增n=n+1;如果n≤∈,则转至步骤A2;否则,输出新生成的个体q并加入到子代集合Q中,算子执行结束。
所述步骤S4为:评估子代种群中的每个个体q∈Q的适应度,求得每个个体的所生成的工期(fitnessq,1)和成本适应度(fitnessq,2)。
所述步骤S6:
S6.1:对PA中的个体进行排序,顺序首先按照个体的支配等级升序排列;如果个体的支配等级相同,则再按照拥挤度降序排列;具体而言,假设有两个个体(p,q∈PA),其排列顺序由下式决定:
p>q if(prank<qrank)∨((prank=qrank)∧(pdistance>qdistance))
S6.2:迭代次数自增g=g+1。
所述步骤S7:判断是否满足迭代的终止条件(g<G_max),若满足条件,则终止程序并输出PA集合中的非支配个体,否则继续执行步骤S3。
本发明的有益效果在于:
本发明是一种用于多技能资源受限项目调度的进化策略算法,与现有技术相比,本发明具有如下优点:
1.相较于经典的多技能资源受限项目调度问题,本发明进一步考虑了资源在使用不同技能时的切换情况,更切合实际的应用场景。
2.本发明提出了新的个体编码结构和计划生成方案。新的个体编码结构仅表示任务的资源指派,减少搜索空间。新的计划生成方案,采用贪婪策略,将任务分为两个集合依次安排其开始时间,并尽量减少不必要的技能切换,使得生成的调度方案的工期和成本大大减少。
3.本发明提出了基于资源平衡的变异算子,通过对父代个体生成的调度方案进行资源平衡操作,减少不同资源使用时间的差异,进而减少子代个体的工期,生成质量更高的子代个体。
4.本发明提出了求解上述问题的多目标进化策略算法,应用个体编码结构和计划生成方案,以及基于资源平衡的变异算子,能够显著地提高求解质量。在解集的延展性、多样性和收敛性上好于目前已有的同类算法。
附图说明
图1是本发明的技能切换矩阵;
图2是本发明的算法流程图;
图3是本发明的变异算子执行示意图;
图4是本发明的算法效果对比图。
具体实施方式
下面结合附图对本发明作进一步说明:
考虑技能切换的多技能资源受限项目调度问题可以详细描述为:某项目包含任务集合J、技能集合Q以及资源集合R。对于每个任务Tj(j=1,2,…,N),其工期为dj且不可中断。任务间存在“结束-开始”紧前约束,即任务Tj仅能在其紧前集Pj内所有任务结束后才能开始执行。技能集合中有K个技能,即Q={Q1,Q2,…,QK}。对于资源集中的每个资源Rr(r=1,2,…,M),其提供一组技能Qr={qr,1,qr,2,…,qr,h},其中每个技能的等级为{lr,1,lr,2,…,lr,h}。每个任务仅需要一个具有qj∈Q且技能等级不小于lj的资源执行。资源Rr的工时成本为cr,其同一时刻仅能执行一个任务。
资源在执行需要不同技能的任务时需要额外的时间来进行技能切换。具体而言,技能的切换时间由矩阵W=(ωk,l)决定,表示由技能Qk切换到Ql时所需要的额外时间。同一技能间切换时间为0,进一步地,根据技能切换矩阵可以生成任务间的切换矩阵B=(bi,j),表示不同任务间的切换时间。该时间与资源无关,仅代表不同任务间的由于技能类型差异所带来的切换关系。
未不失一般性,项目中引入了虚开始任务(dummy start)和虚结束任务(dummyend)。这两个任务的工期均为0(d0=dE=0),虚任务到所有任务间的切换时间为0。在项目开始前,所有的资源都集中在虚开始任务处,在项目结束后,所有的资源都要集中在虚结束任务处。
该问题的目标在于生成一种调度方案:在满足技能约束、紧前约束和切换时间的情况下,安排任务集中每个任务该由哪个资源在何时执行。
该问题的目标函数有两个:项目的执行工期和项目的总执行成本。项目执行工期由项目中的虚结束任务的结束时间决定。项目总执行成本由资源的单位成本和资源工作时长决定。工作时长分为两部分:①资源在执行任务时花费的时间;②资源在技能间进行切换所花费的时间。
根据上文描述的问题,建立数学模型,其中包括决策变量,目标函数和约束条件。
决策变量:
sj≥0;(任务j的结束时间) (1)
目标函数:式(5)为项目的执行工期,式(6)为项目的总执行成本。
Minimize Makespan=sE (5)
其中,fE为虚结束任务(dummy end)的结束时间。
约束条件:
式(7)表示任务间的“结束-开始”约束。
其中Pj表示任务Tj的紧前任务集合。
式(8)表示在相同资源上执行的任务间的技能切换时间约束。
式(9)表示资源的能力约束,即资源Rr需要具有任务要求的技能(qr,h=qj)且技能等级不小于任务要求的等级(lr,h≥lj)。
式(10)表示,如果任务Tj在资源Rr上执行,则必然有任务Ti在其前面先执行。
式(11)表示,如果任务Ti在资源Rr上执行,则必然有任务Tj在其后面执行。
式(12)表示每个任务都应当由一个资源执行。
式(13)表示同一时刻,一个资源仅能执行一个任务。
式(14)表示在开始阶段,所有的资源集中在虚开始任务处。
式(15)表示在结束阶段,所有的资源都集中在虚结束任务处。
算法求解:
本发明基于进化策略(Evolution Strategy,ES)算法提出了新的个体编码和解码机制,设计了新的变异算子和选择选择。
该算法的调度求解主要包括以下几个步骤:步骤一:设置算法参数及初始化变量;步骤二:初始化种群;步骤三:对种群中的个体执行变异操作;步骤四:评估种群适应度;步骤五:更新帕累托种群;步骤六:选择下一代的父代种群;步骤七:判断是否满足迭代的终止条件,若满足条件,则终止程序并输出帕累托种群,否则继续执行步骤三。具体流程图如,以下分别进行详细说明:
步骤一:设置算法参数及初始化变量。
帕累托解集的定义为:在多目标优化问题中,对于两个解S1和S2,如果S1的每个目标都不差于S2且至少一个目标优于S2,则S1支配S2,如果S1没有被种群其它解支配,则称S1为种群非支配解,一个种群所有的非支配解组成种群的Pareto解集。
步骤二:初始化种群并计算适应度。
种群中的个体采用长度为N的整数编码,其表示为RL={R(1),R(2),…,R(N)}。其中N为待求解问题的任务集规模。R(i)表示任务Ti所指派的资源序号。该步骤分为两个子步骤。
步骤2.1:在初始化阶段,种群按照“最低成本-最长工期”策略仅生成一个个体。具体而言,为每一个任务,在能够执行该任务的资源集合中,为其分配工时成本最低的资源,如果存在工时成本多个工时成本最低的资源,则取资源序号小的资源,即
步骤2.2:在适应度评估阶段,计划生成方案(SGS)将个体p的编码转换为可行的调度方案,并计算其目标函数。
将待调度的任务分为两个集合:集合一A1中包含拥有紧前约束关系的任务;集合二A2中包含其余无紧前约束关系的任务。贪婪策略体现在先对安排集合一中的任务,再安排集合二中的任务。集合一中的任务Tj∈A1按照其序号升序排列,各个任务按照个体编码RL中指定的资源,安排其开始时间sj,并且将任务完成指派的任务添加至相应资源的执行队列πr中。对于集合二A2中任务,将其按照所指定的资源(个体编码RL的信息)进行归类,并且将在同一资源上执行的任务按照技能切换的时间代价采用贪婪策略排序,之后再安排各个任务的开始时间,并将安排好的任务添加至相应资源的执行队列πr中。最后,所有的任务都被安排完毕,根据式(5)和(6)计算整个项目的工期和成本。个体p的适应度分别为工期和成本,分别记为fitnessp,1和fitnessp,2。
步骤三:对种群中的个体执行变异操作。
以种群P中的每个个体作为父体,每个父体(p∈P)生成λ个子代个体,从而形成子代集合Q。
变异操作由资源平衡算子执行,其步骤如下:
步骤A1:读取父体生成的调度方案,根据方案中每个资源所分配到的任务πr(r∈R),计算每个资源的实际工作时长ur(r∈R)。初始化计数变量n=0。复制父体p的编码,并命名为q。
步骤A2:以资源的时间工作时长ur为权重,根据轮盘赌规则(RouletteSelection)选出一个资源Rs(s∈R)。权重越高,被选中的概率越大。
步骤A3:针对选出的资源RS,随机选出该资源上的某个任务(Ti∈πr),并将其重新分配给其他资源Rx(x∈Ri),
步骤A4:将新指派资源的更改应用到新的个体编码上。
步骤A5:计数变量自增n=n+1。如果n≤∈,则转至步骤A2;否则,输出新生成的个体q并加入到子代集合Q中,算子执行结束。
步骤四:评估种群适应度。
评估子代种群中的每个个体q∈Q的适应度,其计算方法参照上述的步骤2.2,求得每个个体的所生成的工期(fitnessq,1)和成本适应度(finessq,2)。
步骤五:更新帕累托种群。
步骤5.1:将子代集合Q添加到帕累托集合中,即PA=PA∪Q。
步骤5.2:去除集合PA中重复的个体,即编码相同的个体。
步骤5.3:采用快速非支配排序算法,将集合PA中的个体分为不同支配等级prank,并计算每一层中个体的拥挤度pdistance。其中非支配个体的等级为1,依次类推,等级越高,则意味着该个体被其他个体支配的个数越多。
步骤六:选择下一代的父代种群。
步骤6.1:对PA中的个体进行排序,顺序首先按照个体的支配等级升序排列。如果个体的支配等级相同,则再按照拥挤度降序排列。具体而言,假设有两个个体(p,q∈PA),其排列顺序由下式决定:
p>q if(prank<qrank)∨((prank=qrank)∧(pdistance>qdistance))
步骤6.2:迭代次数自增。g=g+1
步骤七:判断是否满足迭代的终止条件(g<Gmax),若满足条件,则终止程序并输出PA集合中的非支配个体,否则继续执行步骤三。
实施例:
一个项目由100个任务,5个资源和9个技能组成。任务的序号,工期dj,需要的技能qj及等级lj,紧前任务集Pj由表1所示。资源的序号,工时成本cr和掌握的技能集Qr如表2所示。技能间切换时间矩阵B如图1所示。
表1任务集属性
表2资源集属性
资源序号 | 工时成本 | 掌握的技能 |
1 | 86.1 | Q0:2 Q8:2 Q5:1 Q6:2 Q7:2 Q3:0 |
2 | 86.6 | Q3:0 Q7:0 Q8:2 Q5:2 Q2:2 Q1:1 |
3 | 92.7 | Q3:2 Q1:0 Q2:1 Q5:1 Q8:2 Q4:0 |
4 | 75.3 | Q5:2 Q6:0 Q1:0 Q4:1 Q3:0 Q8:1 |
5 | 58.7 | Q8:2 Q3:0 Q6:1 Q0:1 Q2:0 Q7:1 |
B=针对上述案例,一种基于多目标进化策略的考虑技能切换的多技能资源受限项目调度方法,包括以下实施步骤:
步骤一:设置算法参数及初始化变量。
设置种群大小Psize=20,子代生成数λ=2,资源平衡强度∈=5,最大迭代次数Gmax=625。
步骤二:初始化种群。
种群中的个体采用长度为N的整数编码,其表示为RL={R(1),R(2),…,R(N)}。其中N为待求解问题的任务集规模。R(i)表示任务Ti所指派的资源序号。该步骤分为两个子步骤。
步骤2.1:在初始化阶段,种群按照“最低成本-最长工期”策略仅生成一个个体。具体而言,为每一个任务,在能够执行该任务的资源集合中,为其分配工时成本最低的资源,如果存在工时成本多个工时成本最低的资源,则取资源序号小的资源,即如下所示为根据该策略生成的个体p*编码:
步骤2.2:在适应度评估阶段,计划生成方案(SGS)将个体p的编码转换为可行的调度方案,并计算其目标函数。
将待调度的任务分为两个集合:集合一A1中包含拥有紧前约束关系的任务;集合二A2中包含其余无紧前约束关系的任务。贪婪策略体现在先对安排集合一中的任务,再安排集合二中的任务。集合一中的任务Tj∈A1按照其序号升序排列,各个任务按照个体编码RL中指定的资源,安排其开始时间sj,并且将任务完成指派的任务添加至相应资源的执行队列πr中。对于集合二A2中任务,将其按照所指定的资源(个体编码RL的信息)进行归类,并且将在同一资源上执行的任务按照技能切换的时间代价采用贪婪策略排序,之后再安排各个任务的开始时间,并将安排好的任务添加至相应资源的执行队列πr中。最后,所有的任务都被安排完毕,根据式(5)和(6)计算整个项目的工期和成本。
个体p的适应度分别为工期和成本,分别记为fitnessp,1和fitnessp,2。
在该案例中,集合A1和A2中包含的任务如下所示:
A1={12,19,29,30,35,36,37,39,43,46,47,50,52,53,54,55,56,57,58,61,63,64,65,67,71,72,75,78,79,83,85,91,92,96,97}
A2={1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,31,32,33,34,38,40,41,42,44,45,48,49,51,59,60,62,66,68,69,70,73,74,76,77,80,81,82,84,86,87,88,89,90,93,94,95,98,99,100}
以个体p*的编码生成调度计划后,各个资源的执行序列πr如下所示:
个体p*的适应度分别为工期和成本,分别记为fitnessp,1=1118和fitnessp,2=187797。
步骤三:对种群中的个体执行变异操作。
以种群P中的每个个体作为父体,每个父体(p∈P)生成λ个子代个体,从而形成子代集合Q。
变异操作由资源平衡算子执行,其步骤如下:
步骤A1:读取父体生成的调度方案,根据方案中每个资源所分配到的任务πr(r∈R),计算每个资源的实际工作时长ur(r∈R)。初始化计数变量n=0。复制父体p的编码,并命名为q。
步骤A2:以资源的时间工作时长ur为权重,根据轮盘赌规则(RouletteSelection)选出一个资源Rs(s∈R)。权重越高,被选中的概率越大。
步骤A3:针对选出的资源Rs,随机选出该资源上的某个任务(Ti∈πr),并将其重新分配给其他资源Rx(x∈Ri),
步骤A4:将新指派资源的更改应用到新的个体编码上。
步骤A5:计数变量自增n=n+1。如果n≤∈,则转至步骤A2;否则,输出新生成的个体q并加入到子代集合Q中,算子执行结束。
以个体p*为例,变异操作如图3所示。在步骤A1中读取了个体p*的编码调度方案中资源的工作时长μr和任务序列πr。在步骤A2中,以实际工作时长ur为权重,进行轮盘赌,假设资源R5被选中。在步骤A3中,假设在资源R5的工作执行序列中选中了任务T91,将该任务分配给其他资源,如资源R2。在步骤A4中,将这一重新分配应用到子代个体q的编码中,即将索引位91的编码改为2。步骤五,计数变量n自增。如果n≤∈,则转至步骤A2;否则,输出新生成的个体q并加入到子代集合Q中,算子执行结束。
步骤四:评估种群适应度。
评估子代种群中的每个个体q∈Q的适应度,其计算方法参照上述的步骤2.2,求得每个个体的所生成的工期(fitnessq,1)和成本适应度(fitnessq,2)。
步骤五:更新帕累托种群。
步骤5.1:将子代集合Q添加到帕累托集合中,即PA=PA∪Q。
步骤5.2:去除集合PA中重复的个体,即编码相同的个体。
步骤5.3:采用快速非支配排序算法,将集合PA中的个体分为不同支配等级prank,并计算每一层中个体的拥挤度pdistance。其中非支配个体的等级为1,依次类推,等级越高,则意味着该个体被其他个体支配的个数越多。
步骤六:选择下一代的父代种群。
步骤6.1:对PA中的个体进行排序,顺序首先按照个体的支配等级升序排列。如果个体的支配等级相同,则再按照拥挤度降序排列。具体而言,假设有两个个体(p,q∈PA),其排列顺序由下式决定:
p>q if(prank<qrank)V((prank=qrank)∧(pdistance>qdistance))
步骤6.2:迭代次数自增。g=g+1
步骤七:判断是否满足迭代的终止条件,若满足条件,则终止程序并输出帕累托种群,否则继续执行步骤三。
对本实施例进行计算机方真,并与文献中已有的解决多技能资源受限项目调度算法NTGA和MOFOA进行比较。图4所示展示了本发明提出的算法与NTGA和MOFOA在相同评估次数下帕累托解集的比较,可以看出本发明提出的多目标进化策略算法在解的延展性、多样性和收敛性上好于目前已有的算法。在多目标优化下,本文的发明的算法的帕累托集中的解都支配其他两个算法中所有的解,可以看出该算法在解决考虑技能切换的多目标资源受限项目调度问题效果较好,解的质量较优。
本发明数学模型中符号如下表:
以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (7)
1.一种用于多技能资源受限项目调度的进化策略算法,其特征在于,包括以下步骤:
S1:设置算法参数及初始化变量;
S2:初始化种群;
S3:对种群中的个体执行变异操作;
S4:评估种群适应度;
S5:更新帕累托种群;
S6:选择下一代的父代种群;
S7:判断是否满足迭代的终止条件,若满足条件,则终止程序并输出帕累托种群,否则继续执行步骤三。
3.根据权利要求1所述的用于多技能资源受限项目调度的进化策略算法,其特征在于:所述步骤S2:种群中的个体采用长度为N的整数编码,其表示为RL={R(1),R(2),...,R(N)};其中N为待求解问题的任务集规模;R(i)表示任务Ti所指派的资源序号;该步骤分为两个子步骤:
S2.1:在初始化阶段,种群按照“最低成本-最长工期”策略仅生成一个个体;具体而言,为每一个任务,在能够执行该任务的资源集合中,为其分配工时成本最低的资源,如果存在工时成本多个工时成本最低的资源,则取资源序号小的资源,即
S2.2:在适应度评估阶段,计划生成方案(SGS)将个体p的编码转换为可行的调度方案,并计算其目标函数。
4.根据权利要求1所述的用于多技能资源受限项目调度的进化策略算法,其特征在于:所述步骤S3:以种群P中的每个个体作为父体,每个父体(p∈P)生成λ个子代个体,从而形成子代集合Q;变异操作由资源平衡算子执行,其步骤如下:
S3.1:读取父体生成的调度方案,根据方案中每个资源所分配到的任务πr(r∈R),计算每个资源的实际工作时长ur(r∈R);初始化计数变量n=0;复制父体p的编码,并命名为q;
S3.2:以资源的时间工作时长ur为权重,根据轮盘赌规则(Roulette Selection)选出一个资源Rs(s∈R);权重越高,被选中的概率越大;
S3.3:针对选出的资源Rs,随机选出该资源上的某个任务(Ti∈πr),并将其重新分配给其他资源Rx(x∈Ri),
S3.4:将新指派资源的更改应用到新的个体编码上;
S3.5:计数变量自增n=n+1;如果n≤∈,则转至步骤A2;否则,输出新生成的个体q并加入到子代集合Q中,算子执行结束。
5.根据权利要求1所述的用于多技能资源受限项目调度的进化策略算法,其特征在于:所述步骤S4为:评估子代种群中的每个个体q∈Q的适应度,求得每个个体的所生成的工期(fitness_(q,1))和成本适应度(fitness_(q,2))。
6.根据权利要求1所述的用于多技能资源受限项目调度的进化策略算法,其特征在于:所述步骤S6:
S6.1:对PA中的个体进行排序,顺序首先按照个体的支配等级升序排列;如果个体的支配等级相同,则再按照拥挤度降序排列;具体而言,假设有两个个体(p,q∈PA),其排列顺序由下式决定:
p>q if(prank<qrank)∨((prank=qrank)∧(pdistance>qdistance))
S6.2:迭代次数自增g=g+1。
7.根据权利要求1所述的用于多技能资源受限项目调度的进化策略算法,其特征在于:所述步骤S7:判断是否满足迭代的终止条件(g<G_max),若满足条件,则终止程序并输出PA集合中的非支配个体,否则继续执行步骤S3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011001300.3A CN112148446B (zh) | 2020-09-22 | 2020-09-22 | 一种用于多技能资源受限项目调度的进化策略方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011001300.3A CN112148446B (zh) | 2020-09-22 | 2020-09-22 | 一种用于多技能资源受限项目调度的进化策略方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148446A true CN112148446A (zh) | 2020-12-29 |
CN112148446B CN112148446B (zh) | 2024-05-14 |
Family
ID=73892549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011001300.3A Active CN112148446B (zh) | 2020-09-22 | 2020-09-22 | 一种用于多技能资源受限项目调度的进化策略方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148446B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911518A (zh) * | 2023-06-08 | 2023-10-20 | 广东省华智能信息技术有限公司 | 一种燃气工单的多业务融合派单方法及存储介质 |
CN117391393A (zh) * | 2023-11-17 | 2024-01-12 | 西安电子科技大学广州研究院 | 一种大型工程快速施工组织设计的智能编制优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012126105A1 (en) * | 2011-03-21 | 2012-09-27 | Hegazi Tarek Mohamed Mohamed | System and method for schedule optimization |
CN110909787A (zh) * | 2019-11-18 | 2020-03-24 | 安徽大学 | 基于聚类的进化算法进行多目标批调度优化的方法和*** |
CN111126800A (zh) * | 2019-12-10 | 2020-05-08 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
-
2020
- 2020-09-22 CN CN202011001300.3A patent/CN112148446B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012126105A1 (en) * | 2011-03-21 | 2012-09-27 | Hegazi Tarek Mohamed Mohamed | System and method for schedule optimization |
CN110909787A (zh) * | 2019-11-18 | 2020-03-24 | 安徽大学 | 基于聚类的进化算法进行多目标批调度优化的方法和*** |
CN111126800A (zh) * | 2019-12-10 | 2020-05-08 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
Non-Patent Citations (1)
Title |
---|
刘雅婷: "多技能人力资源调度策略在资源限制型项目中的应用", 重庆工学院学报(自然科学版), vol. 21, no. 3, pages 31 - 40 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911518A (zh) * | 2023-06-08 | 2023-10-20 | 广东省华智能信息技术有限公司 | 一种燃气工单的多业务融合派单方法及存储介质 |
CN116911518B (zh) * | 2023-06-08 | 2023-12-26 | 广东省华智能信息技术有限公司 | 一种燃气工单的多业务融合派单方法及存储介质 |
CN117391393A (zh) * | 2023-11-17 | 2024-01-12 | 西安电子科技大学广州研究院 | 一种大型工程快速施工组织设计的智能编制优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112148446B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109190857B (zh) | 一种基于多目标资源受限项目调度模型的优化算法 | |
US20210373888A1 (en) | Multi-objective optimization method and system for master production plan of casting parallel workshops | |
Zhu et al. | An efficient evolutionary grey wolf optimizer for multi-objective flexible job shop scheduling problem with hierarchical job precedence constraints | |
Li et al. | Two-stage knowledge-driven evolutionary algorithm for distributed green flexible job shop scheduling with type-2 fuzzy processing time | |
Shen et al. | Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems | |
CN114186749B (zh) | 基于强化学习及遗传算法的柔性车间调度方法及模型 | |
CN113792924A (zh) | 一种基于Deep Q-network深度强化学习的单件作业车间调度方法 | |
CN104572297B (zh) | 一种基于遗传算法的Hadoop作业调度方法 | |
CN105629927A (zh) | 一种基于混合遗传算法的mes生产计划排产方法 | |
CN113139710B (zh) | 一种基于遗传算法的多资源并行任务高级计划排程方法 | |
CN101901425A (zh) | 一种基于多种群协同进化的柔性作业车间调度方法 | |
WO2021088436A1 (zh) | 一种用于多语言协同开发的项目调度方法及装置 | |
CN108710970B (zh) | 一种巨型梯级水电***的多目标调度并行降维方法 | |
CN112148446A (zh) | 一种用于多技能资源受限项目调度的进化策略算法 | |
CN105550825B (zh) | 云计算环境下的基于MapReduce并行化的柔性工厂作业调度方法 | |
CN114021934A (zh) | 基于改进spea2求解车间节能调度问题的方法 | |
CN113821972A (zh) | 一种考虑能效的多机器人协同装配线平衡方法 | |
CN111553610B (zh) | 一种基于学习-遗忘效应的调度方法及*** | |
Yusof et al. | Constraint-chromosome genetic algorithm for flexible manufacturing system machine-loading problem | |
CN113723695B (zh) | 一种基于场景的再制造调度优化方法 | |
CN115470977A (zh) | 基于帝国竞争算法的多目标柔性作业车间分批调度方法 | |
CN110928670B (zh) | 云计算环境下基于偏序自适应遗传算法的工作流优化方法 | |
CN110968428B (zh) | 云工作流虚拟机配置和任务调度协同优化方法 | |
Raghavendra | Scheduling in parallel machines environment using genetic algorithm | |
CN110689320A (zh) | 一种基于协同进化算法的大规模多目标项目调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |