基于遗传算法的试验资源调配方法、系统、设备和介质

文档序号:30704462发布日期:2022-07-09 21:52阅读:165来源:国知局
基于遗传算法的试验资源调配方法、系统、设备和介质

1.本发明属于资源调配技术领域,涉及一种基于遗传算法的试验资源调配方法、系统、设备和介质。


背景技术:

2.随着资源调配技术的不断发展,其在试验资源调配中的应用已逐步成熟,支持试验资源的自动化调配。在基于计划的试验资源调配中,试验主管单位维护的试验资源信息,可包括资源种类、存放位置及其数量等信息,同种资源可能存放在多个位置,由于资源消耗、补充及维修等原因,试验资源数量随时间变化。
3.试验主管单位在收到多个试验计划的试验资源调配申请后,该申请中可包括资源种类、使用位置、需求数量和使用时间等信息,试验主管单位可以对试验资源存储情况和试验资源调配申请进行简单统计,通过提前采购与协调等形式,保证存放在多个位置的试验资源在总数上满足试验计划的需要。接着需要处理多个试验资源存放位置到多个资源使用位置的资源调配问题,在保障试验计划在指定时间内的资源需求的前提下,需考虑各试验资源存放位置的实际资源数量约束,其处理过程较为复杂。因此,制定满足时间和数量约束条件的试验资源最优调配方案具有重要意义。
4.对试验资源进行合理调配是保证资源得到有效利用的有效手段。目前试验资源调配主要集中在解决单一试验资源共享冲突和资源过渡分配的问题,仅考虑时间约束或资源数量约束,以减少所有任务执行的总时间或增大成功执行的任务数量为资源调配的优化目标。然而,在实现本发明的过程中,发明人发现目前大多数资源调配方案根据任务的优先级对试验资源进行调配,保证优先级高的任务先获得资源,而优先级低的任务往往被延迟执行。在试验资源调配中没有考虑多个试验资源同时调配的情况,也忽视了任务自身的时间约束,存在着多试验资源调配效率较低的技术问题。


技术实现要素:

5.针对上述传统方法中存在的问题,本发明提出了一种基于遗传算法的试验资源调配方法、一种基于遗传算法的试验资源调配系统、一种计算机设备和一种计算机可读存储介质,可实现高效的多试验资源调配。
6.为了实现上述目的,本发明实施例采用以下技术方案:
7.一方面,提供一种基于遗传算法的试验资源调配方法,包括步骤:
8.获取试验资源信息和试验资源调配申请信息;试验资源信息包括多个试验资源的资源种类、资源存放位置及资源数量随时间变化情况,试验资源调配申请信息包括基于多项调配计划的资源种类、资源使用位置、资源需求数量和资源使用时间;
9.利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,通过基于时间和数量的多条件约束的遗传进化处理,得到最优染色体;
10.对最优染色体进行解码,得到每种试验资源的最优调配方案。
11.另一方面,还提供一种基于遗传算法的试验资源调配系统,包括:
12.信息获取模块,用于获取试验资源信息和试验资源调配申请信息;试验资源信息包括多个试验资源的资源种类、资源存放位置及资源数量随时间变化情况,试验资源调配申请信息包括基于多项调配计划的资源种类、资源使用位置、资源需求数量和资源使用时间;
13.方案优化模块,用于利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,通过基于时间和数量的多条件约束的遗传进化处理,得到最优染色体;
14.方案输出模块,用于对最优染色体进行解码,得到每种试验资源的最优调配方案。
15.又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于遗传算法的试验资源调配方法的步骤。
16.再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述基于遗传算法的试验资源调配方法的步骤。
17.上述技术方案中的一个技术方案具有如下优点和有益效果:
18.上述基于遗传算法的试验资源调配方法、系统、设备和介质,通过获取试验资源信息和试验资源调配申请信息,以确定可提供的试验资源以及资源调配申请的详细信息后,把多个试验资源存放地点到多个资源使用地点的资源调配方案,编码处理为满足时间和数量的多条件约束的染色体,进而通过基于时间和数量的多条件约束的遗传进化迭代处理,从而得到满足时间和数量约束的最优染色体,解码后即获得试验资源的最优调配方案。与现有技术相比,本技术通过增加资源可用时段、资源需求时段、资源可用数量和资源需求数量等多条件约束的遗传算法,实现了高效的多试验资源存放位置到多资源使用位置的资源调配,在保障试验计划的资源需求前提下,降低了资源调配成本。
附图说明
19.图1为一个实施例中基于遗传算法的试验资源调配方法的流程示意图;
20.图2为一个实施例中基于多条件约束的遗传进化处理的流程示意图;
21.图3为一个实施例中生成染色体的初代种群的流程示意图;
22.图4为一个实施例中从染色体的种群中选择父代染色体的流程示意图;
23.图5为一个实施例中选择操作的流程示意图;
24.图6为一个实施例中交叉操作的流程示意图;
25.图7为一个实施例中变异操作的流程示意图;
26.图8为一个实施例中基于遗传算法的试验资源调配方法的一种应用流程示意图;
27.图9为一个实施例中基于遗传算法的试验资源调配系统的模块结构示意图。
具体实施方式
28.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
29.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
30.下面将结合本发明实施例图中的附图,对本发明实施方式进行详细说明。
31.请参阅图1,本技术实施例提供了一种基于遗传算法的试验资源调配方法,包括以下步骤s12至s16:
32.s12,获取试验资源信息和试验资源调配申请信息;试验资源信息包括多个试验资源的资源种类、资源存放位置及资源数量随时间变化情况,试验资源调配申请信息包括基于多项调配计划的资源种类、资源使用位置、资源需求数量和资源使用时间。
33.可以理解,试验资源可以是各试验机构用于实施和保障试验任务的试验设施设备、软件系统或平台等。试验资源信息可以由试验主管单位的设备系统中配置的试验资源管理模块统一管理,例如试验资源管理模块可对多个试验资源的试验资源信息进行管理,如包括资源种类和资源存放位置,以及由于资源消耗、补充或维修等原因导致的资源数量随时间变化情况等信息。试验资源调配申请信息也可以由试验主管单位的设备系统中配置的调配申请管理模块统一管理,例如调配申请管理模块可对多个试验计划的试验资源调配申请信息进行管理,如包括试验所需的资源种类、资源使用位置、资源需求数量和资源使用时间等信息。
34.为了保证存放在多个位置的试验资源在数量上满足试验计划的需要,设备系统还可对试验资源的存储情况和试验资源调配申请情况事先进行简单统计,得到多个位置各种试验资源的总量随时间的变化情况,以及多个试验计划的资源总需求量随时间的变化情况。试验主管单位可通过提前采购和外部协调等方式,保证存放在多个位置的试验资源在数量上满足试验计划的需要。
35.在一些实施方式中,可以直接或间接从试验资源管理模块得到试验资源(存放)信息,直接或间接从调配申请管理模块得到试验资源调配申请信息,以确定当前的试验资源使用信息,如包括试验资源的资源使用位置、资源需求数量和资源使用时间等信息。
36.s14,利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,通过基于时间和数量的多条件约束的遗传进化处理,得到最优染色体;
37.s16,对最优染色体进行解码,得到每种试验资源的最优调配方案。
38.可以理解,获取上述试验资源信息和试验资源调配申请信息后,应用遗传算法,基于时间和数量的多条件约束的遗传进化处理这一技术构思,利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,然后进行多条件约束的遗传进化处理,以获得种群中的最优染色体,最后解码该最优染色体即可输出每种试验资源的最优调配方案,完成试验资源的调配处理。对最优染色体进行解码的具体过程可以参照遗传算法中已有的染色体解码过程同理理解,本说明书中不再展开赘述。
39.通过上述步骤,以对每种试验资源分别产生一个最优调配方案,实现了兼顾试验计划的资源调配申请中对资源使用时间和需求数量上的要求,以及试验资源存放位置的实际资源数量约束的最佳试验资源调配。
40.上述基于遗传算法的试验资源调配方法,通过获取试验资源信息和试验资源调配申请信息,以确定可提供的试验资源以及资源调配申请的详细信息后,把多个试验资源存放地点到多个资源使用地点的资源调配方案,编码处理为满足时间和数量的多条件约束的染色体,进而通过基于时间和数量的多条件约束的遗传进化迭代处理,从而得到满足时间和数量约束的最优染色体,解码后即获得试验资源的最优调配方案。与现有技术相比,本技术通过增加资源可用时段、资源需求时段、资源可用数量和资源需求数量等多条件约束的遗传算法,实现了高效的多试验资源存放位置到多资源使用位置的资源调配,在保障试验计划的资源需求前提下,降低了资源调配成本。
41.在一个实施例中,为便于准确且清楚地描述本技术内容,试验资源信息中的试验资源存放信息,可以但不限于表示如下:
42.(1)试验资源的第i个存放位置p[i];(2)试验资源在第i个存放位置p[i]的存放数量随时间的变化情况n[i][t];其中,i=0,1,...,n-1,表示试验资源存放在n个位置,t表示试验某一时间段。
[0043]
试验资源调配申请信息中的试验资源使用信息,可以但不限于表示如下:
[0044]
(1)试验资源的第j个使用位置q[j];(2)试验资源在第j个使用位置q[j]的需求数量m[j];(3)试验资源在第j个使用位置q[j]的使用时间t[j][0]~t[j][1];其中,j=0,1,...,m-1,表示试验资源在m个位置使用。
[0045]
请参阅图2,在一个实施例中,关于上述的步骤s16,具体可以包括如下处理步骤s162至s170:
[0046]
s162,根据试验资源信息和试验资源调配申请信息,构建以试验资源调配方案为染色体的染色体模型以及染色体模型的时间和数量约束条件。
[0047]
可以理解,基于遗传算法的原理,本实施例中把多个试验资源存放地点到多个资源使用地点的资源调配方案,编码处理为满足时间和数量的多条件约束的染色体(模型),并且兼顾试验计划的资源调配申请中对资源使用时间和需求数量上的要求,以及试验资源存放位置的实际资源数量约束,构建了染色体模型的时间和数量约束条件,即在本实施例中应用基于多条件约束的遗传算法进行遗传进化处理。
[0048]
在一个实施例中,关于上述的步骤s162中,构建以试验资源调配方案为染色体的染色体模型以及染色体模型的时间和数量约束条件的过程中,具体可以包括如下处理步骤:
[0049]
用二维数组表示染色体;二维数组中数组元素用于表示从第i个资源存放位置往第j个资源使用位置调配的试验资源数量;i和j均为正整数;
[0050]
构建时间和数量约束条件中的第一约束;第一约束为从第i个资源存放位置调出的试验资源的数量,受到第i个资源存放位置的资源存放数量随时间变化情况的约束;
[0051]
构建时间和数量约束条件中的第二约束:第二约束为第j个资源使用位置得到的试验资源的数量,不少于第j个资源使用位置的试验资源的需求数量。
[0052]
具体的,用二维数组,表示(试验资源调配方案)染色体,该二维数组可以记为{x[i][j]:i,j}。其中,x[i][j]表示从第i个试验资源存放位置p[i]往第j个资源使用位置q[j]调配的试验资源数量。
[0053]
其中,时间和数量约束条件具体可以包括两个部分:如上述的第一约束和第二约
束。第一约束可以表示为:从第i个试验资源存放位置p[i]调出的试验资源的数量,受到第i个试验资源存放位置p[i]的试验资源存放数量随时间的变化情况n[i][t]的约束。第一约束可以用如下公式表示为:
[0054]
sum({x[i][k]:k in s[j]})《=n[i][t[j][0]]
[0055]
式中i=0,1,

,n-1;j=0,1,

,m-1,共n*m个不等式,不等式把时间约束转化为数量约束。
[0056]
第二约束可以表示为:第j个资源使用位置q[j]得到的试验资源的数量应不少于第j个资源使用位置q[j]的试验资源的需求数量m[j]。第二约束可以用如下公式表示为:
[0057]
sum({x[i][j]:i=0,1,

,n-1})》=m[j]
[0058]
式中j=0,1,

,m-1,共m个不等式,不等式把时间约束转化为数量约束。
[0059]
二维数组{x[i][j]:i=0,1,...,n-1;j=0,1,...,m-1}应满足如下不等式:
[0060]
sum({x[i][k]:k in s[j]})《=n[i][t[j][0]],i=0,1,

,n-1;j=0,1,

,m-1
[0061]
sum({x[i][j]:i=0,1,

,n-1})》=m[j],j=0,1,

,m-1
[0062]
上式中,s[j]为第j个资源使用位置q[j]在t[j][0]时刻申请试验资源时,占用或调用试验资源的资源使用位置的集合,该集合的计算公式如下:
[0063]
s[j]={k:t[k][0]《=t[j][0]《=t[k][1]},j=0,1,

,m-1
[0064]
以上不等式将试验资源调配方案(染色体)的时间和数量约束条件均转化为数量约束,从而得到染色体应满足的如下约束条件:
[0065][0066]
在一些实施方式中,可以通过如下方法来判断存放在多个位置的试验资源在数量上是否满足试验计划的需要:
[0067]
s[j]={k:t[k][0]《=t[j][0]《=t[k][1]}
[0068]
sum({n[i][t[j][0]]:i=0,1,...,n-1})》=sum({m[k]:k in s[j]}
[0069]
式中j=0,1,

,m-1,s[j]表示第j个试验资源使用位置在t[j][0]时刻申请试验资源时占用或调用试验资源的试验资源使用位置的集合。需要说明的是,本文中各式子的参量斜体与正体等效。
[0070]
s164,根据试验资源信息、试验资源调配申请信息以及染色体模型,构建染色体的适应度函数。
[0071]
可以理解,构建上述染色体模型及其约束条件后,还需为其构建相应的适应度函数,以便后续处理中计算各染色体的适应度值。
[0072]
在一个实施例中,适应度函数为试验资源调配方案的总成本的倒数。可以理解,根据试验资源的存放位置信息和试验资源的使用位置信息,以及上述染色体信息,计算试验资源调配方案的总体成本,取试验资源调配方案的总体成本的倒数作为(试验资源调配方案)染色体的适应度。
[0073]
具体的,根据试验资源的存放位置{p[i]:i=0,1,...,n-1}和试验资源的使用位
置{q[j]:j=0,1,...,m-1},以及试验资源调配方案染色体{x[i][j]:i=0,1,...,n-1;j=0,1,...,m-1},用如下公式计算试验资源调配方案的总体成本cost:
[0074]
cost=sum({t(p[i],q[j],x[i][j]):i=0,1,

,n-1;j=0,1,

,m-1})
[0075]
式中t(p[i],q[j],x[i][j])为从第i个试验资源存放位置往第j个资源使用位置调配x[i][j]试验资源的成本函数。
[0076]
试验资源调配方案染色体的适应度fitness计算公式如下:
[0077]
fitness=1/(cost+c)
[0078]
式中c为大于0的数,用于防止分母为0,通常可以取值为0.01。
[0079]
在一些实施方式中,通过基于时间和数量的多条件约束的遗传进化处理的目标,可以设置为求如下目标函数的最小值:
[0080]
sum({t(p[i],q[j],x[i][j]):i=0,1,

,n-1;j=0,1,

,m-1})
[0081]
式中p[i]为第i个试验资源存放位置,q[j]为第j个资源使用位置,t为从第i个试验资源存放位置往第j个资源使用位置调配x[i][j]试验资源的成本函数。
[0082]
由此可知,对每种试验资源求解其最优调配方案的过程,可以表示为求解如下基于时间和数量等多条件约束的试验资源调配优化模型:
[0083]
min sum({t(p[i],q[j],x[i][j]):i=0,1,

,n-1;j=0,1,

,m-1})
[0084]
其中,
[0085]
sum({x[i][k]:k in s[j]})《=n[i][t[j][0]],i=0,1,

,n-1;j=0,1,

,m-1
[0086]
sum({x[i][j]:i=0,1,

,n-1})》=m[j],j=0,1,

,m-1
[0087]
s[j]={k:t[k][0]《=t[j][0]《=t[k][1]},j=0,1,

,m-1
[0088]
s166,根据试验资源信息、试验资源调配申请信息以及时间和数量约束条件,生成染色体的初代种群。
[0089]
可以理解,根据试验资源存放信息和试验资源使用信息,获得具有预设的种群染色体数量(可记为population)个满足时间和数量约束条件的染色体的初代种群;初始化迭代次数iter=0。
[0090]
其中,在表示染色体的二维数组{x[i][j]:i,j}中,每一行的元素之和sum({x[i][j]:j})表示从第i个试验资源存放位置调出的试验资源的数量,该数量受到第i个试验资源存放位置的试验资源存放数量随时间的变化情况的约束。
[0091]
在表示染色体的二维数组{x[i][j]:i,j}中,每一列的元素之和sum({x[i][j]:i})表示从第j个资源使用位置得到的试验资源的数量,应不少于第j个资源使用位置的试验资源需求数量。
[0092]
在一个实施例中,关于上述的步骤s166,具体可以包括如下处理步骤:
[0093]
确定预设的种群染色体数量;
[0094]
按随机顺序从资源存放位置取出所有试验资源;
[0095]
根据种群染色体数量,按随机顺序为资源使用位置调配满足资源需求数量和资源使用时间的试验资源,得到满足时间和数量约束条件的染色体的初代种群。
[0096]
可以理解,初始化迭代次数iter=0。预设的种群染色体数量为population,重复执行population次以下试验资源调配操作,依次生成种群染色体数量population个满足前述约束条件的染色体,作为初代种群。试验资源调配操作具体可以包括如下操作:
[0097]
随机取0,1,...,n-1的一个排列perm_deposit,以及随机取0,1,...,m-1的一个排列perm_use;
[0098]
按如下顺序从试验资源存放位置取出所有试验资源:
[0099]
p[perm_deposit[0]],p[perm_deposit[1]]...,p[perm_deposit[n-1]]
[0100]
按如下顺序给试验资源使用位置调配满足试验资源需求的试验资源:
[0101]
q[perm_use[0]],q[perm_use[1]],...,q[perm_use[m-1]]
[0102]
并根据实际调配数量依次对x[perm_deposit[i]][perm_use[j]]进行赋值。
[0103]
由于存放在多个位置的试验资源在数量上满足试验计划的需要,经以上操作得到的试验资源调配方案染色体满足时间和数量约束条件,且采用随机的顺序进行调配保证了试验资源调配方案染色体的种群中试验资源调配方案染色体的多样性。
[0104]
s168,根据初代种群和适应度函数,判断染色体模型的遗传进化迭代是否满足终止条件;
[0105]
s170,若满足,则返回初代种群中的最优染色体。
[0106]
可以理解,在得到初代种群及其适应度函数后,即可开始遗传进化处理,计算染色体的适应度值并记录迭代次数。通过判断遗传进化迭代是否满足设定的终止条件来确定输出最优染色体还是进行后续迭代处理。
[0107]
在一个实施例中,终止条件包括遗传进化迭代的次数达到预设的最大迭代次数或者染色体的新种群中染色体的最优适应度的相对变化量小于预设的阈值。
[0108]
具体的,判断染色体的种群(当前即为初代种群)的群体性能是否满足某一指标或者是否已完成预定的最大迭代次数,如果满足至少其一,则返回染色体的种群中的最优染色体;否则,迭代次数iter加1,继续后续遗传进化过程。具体地,前述某一指标可以为染色体的种群中染色体的最优适应度的相对变化量,具体可以根据实际需要给定。
[0109]
在一个实施例中,关于上述的步骤s168之后,具体还可以包括如下处理步骤:
[0110]
若不满足终止条件,则进行选择父代染色体操作、选择操作、交叉操作和变异操作,得到满足时间和数量约束条件的染色体的下一代种群。
[0111]
可以理解,在初代种群的遗传进化处理中,染色体模型的遗传进化迭代不满足终止条件时,则迭代次数iter加1,继续后续的选择父代染色体操作,以及选择操作、交叉操作和变异操作等遗传进化过程。
[0112]
在一个实施例中,关于上述选择父代染色体操作,具体可以包括如下处理步骤:
[0113]
根据适应度函数计算种群中染色体的适应度;
[0114]
根据预设的选择比例,从种群中选择适应度最优的前f个染色体作为试验资源调配方案的父代优良染色体;
[0115]
将父代优良染色体作为染色体的新种群。
[0116]
可以理解,根据染色体的适应度函数,计算染色体的种群(当前即为初代种群)中每个染色体的适应度;根据染色体的适应度,按预设的选择比例(可记为choose_ratio)选择最优的染色体作为父代染色体。
[0117]
具体的,使用染色体的适应度函数计算染色体的种群中每个染色体的适应度;按预设的选择比例choose_ratio,从染色体的种群中选择染色体的适应度最优的前f(可记为floor(population*choose_ratio))个染色体,作为试验资源调配方案的父代优良染色体。
将该父代优良染色体作为染色体的新种群,用于下一次迭代。
[0118]
在一个实施例中,关于上述选择操作,具体可以包括如下处理步骤:
[0119]
将父代优良染色体的适应度转化为选择概率并获取父代优良染色体的累积选择概率;
[0120]
采用轮盘赌算法从父代优良染色体中选择一对染色体。
[0121]
可以理解,把父代优良染色体的适应度转化为选择概率,根据父代优良染色体的选择概率,从父代优良染色体中选择一对染色体。具体的,用如下公式把父代优良染色体的适应度转化为选择概率:
[0122]
prob[u]=fitness[u]/sum({fitness[u]:u in父代优良染色体})
[0123]
根据父代优良染色体的选择概率,用已有的轮盘赌算法从父代优良染色体中选择一对染色体,其过程具体可以包括如下:
[0124]
用如下公式计算父代优良染色体的累积选择概率:
[0125]
acc_prob[-1]=0;acc_prob[u]=prob[0]+prob[1]+...+prob[u]
[0126]
随机产生0至1之间的数r;
[0127]
当acc_prob[u-1]《r《=acc_prob[u]时,选择第u个试验资源调配方案的父代优良染色体。
[0128]
在一个实施例中,关于上述交叉操作,具体可以包括如下处理步骤:
[0129]
对选择操作选择的一对染色体进行交叉操作,得到一对新染色体;
[0130]
对新染色体进行时间和数量约束条件检查;
[0131]
采用调整策略对新染色体进行局部调整,丢弃局部调整后仍不满足时间和数量约束条件的新染色体。
[0132]
可以理解,对前述选择操作选择的一对染色体进行交叉操作,得到一对新染色体。由于交叉操作后得到的新染色体不一定满足时间和数量约束条件,因此采用调整策略对该新染色体进行局部调整,丢弃局部调整后仍然不满足时间和数量约束条件的新染色体。
[0133]
具体的,把表示前述一对染色体的二维数组分别表示为{x[i][j]:i=0,1,...,n-1;j=0,1,...,m-1}和{y[i][j]:i=0,1,...,n-1;j=0,1,...,m-1},将{x[i][j]:i,j}和{y[i][j]:i,j}按行或列变形为一维数组,随机选择一个交叉点(可记为cross_i,cross_j),对两个一维数组进行单点交叉,然后再还原为表示相应新染色体的二维数组,可以表示如下:
[0134][0135]
[0136]
需要说明的是,本文公式中正体与斜体为等效表示,即同一参量的正体与斜体表示效果相同,均指该同一参量。
[0137]
对得到的新染色体进行时间和数量约束条件检查,丢弃不满足时间和数量约束条件的新染色体,或采用调整策略对不满足时间和数量约束条件的新染色体进行局部调整,使其满足时间和数量约束条件。具体过程可以如下:
[0138]
在新染色体中第cross_i个试验资源存放位置可能不满足时间和数量约束条件的第一约束:“从第i个试验资源存放位置p[i]调出的试验资源的数量受到第i个试验资源存放位置p[i]的试验资源存放数量随时间的变化情况n[i][t]的约束”;或新染色体也可能不满足时间和数量约束条件的第二约束:“第j个资源使用位置q[j]得到的试验资源的数量应不少于第j个资源使用位置q[j]的试验资源的需求数量m[j]”;此时,可采用如下调整策略对新染色体进行局部调整:
[0139]
对表示新染色体的二维数组的元素按列求和,记为sum_columns;
[0140]
根据时间和数量约束条件的第二约束:“第j个资源使用位置q[j]得到的试验资源的数量应不少于第j个资源使用位置q[j]的试验资源的需求数量m[j]”,数组sum_columns应满足sum_columns[j]》=m[j],j=0,1,...,m-1,因此,令新染色体的二维数组的第cross_j行加上(m-sum_columns),使得新染色体满足该第二约束。
[0141]
检查新染色体的第cross_i个试验资源存放位置是否满足时间和数量约束条件的第一约束:“从第i个试验资源存放位置p[i]调出的试验资源的数量受到第i个试验资源存放位置p[i]的试验资源存放数量随时间的变化情况n[i][t]的约束”,若满足,则保留该新染色体,否则丢弃该新染色体。
[0142]
在一个实施例中,关于上述变异操作,具体可以包括如下处理步骤:
[0143]
根据预设的变异比例,对新染色体进行变异操作并进行时间和数量约束条件检查;
[0144]
采用调整策略对新染色体进行局部调整,丢弃局部调整后仍不满足时间和数量约束条件的新染色体。
[0145]
可以理解,可以在表示新染色体的二维数组{x[i][j]:i,j}中随机选择某些元素,随机改变随机选择元素的值,得到新染色体;对得到的新染色体进行时间和数量约束条件检查,丢弃不满足时间和数量约束条件的新染色体,或采用策略对不满足时间和数量约束条件的新染色体进行局部调整,使之满足时间和数量约束条件。
[0146]
具体的,按预设的变异比例mutate_ratio,对新染色体进行变异操作,具体如下:随机产生0至1之间的数r,若r小于预设的变异比例mutate_ratio,则对新染色体进行变异操作。把表示染色体的二维数组记为{x[i][j]:i=0,1,...,n-1;j=0,1,...,m-1};随机选择二维数组的某一列mutate_i和该列中两个不同的元素x[mutate_i][mutate_j]和x[mutate_i’][mutate_j],交换该两个元素的位置,得到表示新染色体的如下二维数组:
[0147][0148]
记在表示新染色体的二维数组中,x[mutate_i][mutate_j]和x[mutate_i’][mutate_j]之间较大元素所在的行为mutate_r,则在新染色体中第mutate_r个试验资源存放位置可能不满足时间和数量约束条件的第一约束:“从第i个试验资源存放位置p[i]调出的试验资源的数量受到第i个试验资源存放位置p[i]的试验资源存放数量随时间的变化情况n[i][t]的约束”,则可采用如下调整策略对新染色体进行局部调整:
[0149]
计算s[mutate_j]={k:t[k][0]《=t[mutate_j][0]《=t[k][1]};
[0150]
计算sum_j=sum({x[mutate_r][k]:k in s[mutate_j]});
[0151]
计算delta=max(sum_j-n[mutate_r][t[mutate_j][0]],0);
[0152]
若delta》0,则从s[mutate_j]中随机选取一个元素j,从x[mutate_r][j]中减去delta,随机选取{0,1,...,n-1}中的一个元素i,令x[i][j]增加delta;
[0153]
检查新染色体中第i个试验资源存放位置可能不满足时间和数量约束条件的第一约束:“从第i个试验资源存放位置p[i]调出的试验资源的数量受到第i个试验资源存放位置p[i]的试验资源存放数量随时间的变化情况n[i][t]的约束”,若满足,则保留该新染色体,否则丢弃该新染色体。
[0154]
在一个实施例中,关于上述的得到满足时间和数量约束条件的染色体的下一代种群的过程中,具体可以包括如下处理步骤:
[0155]
将进行选择父代染色体操作、选择操作、交叉操作和变异操作后得到的新染色体加入染色体的新种群;新染色体满足时间和数量约束条件;
[0156]
重复执行选择操作、交叉操作和变异操作并将得到的新染色体加入新种群;
[0157]
当新种群中的染色体个数等于预设的种群染色体数量时,得到下一代种群。
[0158]
可以理解,重复执行上述的选择操作、交叉操作和变异操作,得到满足时间和数量约束条件的新染色体,加入染色体的新种群;直到前述染色体的新种群中的染色体个数等于预设的种群染色体数量population,从而得到染色体的下一代种群。
[0159]
请参阅图3,在一个实施例中,记输入试验资源的存放数量随时间的变化情况n[i][t]、试验资源的需求数量m[j]和使用时间t[j][0]~t[j][1],以及预设的种群染色体数量population,上述的步骤s166具体还可以表示为如下处理过程:
[0160]
初始化计数器u=0;
[0161]
计数器u=u+1;若u《=population,则继续执行后续步骤,否则返回population个染色体;
[0162]
随机生成0,1,...,n-1的一个排列perm_deposit;随机生成0,1,...,m-1的一个排列perm_use;
[0163]
按如下顺序从试验资源存放位置取出所有试验资源:
[0164]
p[perm_deposit[0]],p[perm_deposit[1]]...,p[perm_deposit[n-1]]
[0165]
按如下顺序给试验资源使用位置调配满足试验资源需求的试验资源:
[0166]
q[perm_use[0]],q[perm_use[1]],...,q[perm_use[m-1]]
[0167]
根据实际调配数量依次对x[perm_deposit[i]][perm_use[j]]进行赋值;
[0168]
保存二维数组x,继续执行上述步骤“计数器u=u+1”。
[0169]
在本实施例中,由于存放在多个位置的试验资源在数量上满足试验计划的需要,经以上操作得到的试验资源调配方案染色体满足时间和数量约束条件,且采用随机的顺序进行调配保证了试验资源调配方案染色体的种群中试验资源调配方案染色体的多样性。
[0170]
请参阅图4,在一个实施例中,记输入染色体的种群和预设的父代优良染色体选择比例为choose_ratio,上述选择父代染色体操作具体还可以表示为如下处理过程:
[0171]
用染色体的适应度函数计算染色体的种群中每个染色体的适应度;
[0172]
把种群中的染色体按染色体的适应度的大小排序;正序或逆序均可;
[0173]
从种群中选择染色体的适应度最优的前floor(population*choose_ratio)个染色体,作为试验资源调配方案的父代优良染色体。
[0174]
请参阅图5,在一个实施例中,记输入的父代优良染色体的适应度为fitness[u],上述的选择操作具体还可以表示为如下处理过程:
[0175]
用如下公式计算父代优良染色体的选择概率:
[0176]
prob[u]=fitness[u]/sum({fitness[u]:u in父代优良染色体})
[0177]
用如下公式计算试验资源调配方案的父代优良染色体的累积选择概率:
[0178]
acc_prob[-1]=0;acc_prob[u]=prob[0]+prob[1]+...+prob[u]
[0179]
随机产生两个0至1之间的数r1和r2;
[0180]
分别计算满足条件acc_prob[u1-1]《r1《=acc_prob[u1]和acc_prob[u2-1]《r2《=acc_prob[u2]的u1和u2;若u1==u2,则继续执行上述步骤“随机产生两个0至1之间的数r1和r2”,否则继续执行后续步骤;
[0181]
选择第u1个和第u2个父代优良染色体,作为选择的一对染色体。
[0182]
请参阅图6,在一个实施例中,记输入的一对染色体为{x[i][j]:i=0,1,...,n-1;j=0,1,...,m-1}和{y[i][j]:i=0,1,...,n-1;j=0,1,...,m-1},上述的交叉操作具体还可以表示为如下处理过程:
[0183]
随机选择一个交叉点(cross_i,cross_j),其中0《=cross_i《n,0《=cross_j《m;
[0184]
一对染色体{x[i][j]:i,j}和{y[i][j]:i,j}做单点交叉,得到一对如下新染色体:
[0185]
[0186]
对新染色体的二维数组的元素按列求和,记为sum_columns;
[0187]
令新染色体的二维数组的第cross_j行加上(m-sum_columns);
[0188]
检查新染色体的第cross_i个试验资源存放位置是否满足时间和数量约束条件的第一约束,若满足,则返回新染色体,否则丢弃新染色体。
[0189]
请参阅图7,在一个实施例中,记输入的新染色体为{x[i][j]:i=0,1,...,n-1;j=0,1,...,m-1}和预设的变异比例为mutate_ratio。上述的变异操作具体还可以表示为如下处理过程:
[0190]
随机产生0至1之间的数r;若r《mutate_ratio,则继续执行后续步骤,否则返回新染色体;
[0191]
随机选择新染色体的某一列mutate_i和该列中两个不同的元素x[mutate_i][mutate_j]和x[mutate_i’][mutate_j],交换该两个元素的位置,得到一个如下的新染色体:
[0192][0193]
记在新染色体中x[mutate_i][mutate_j]和x[mutate_i’][mutate_j]之间较大元素所在的行为mutate_r;
[0194]
计算如下公式:
[0195]
s[mutate_j]={k:t[k][0]《=t[mutate_j][0]《=t[k][1]};
[0196]
sum_j=sum({x[mutate_r][k]:k in s[mutate_j]});
[0197]
delta=max(sum_j-n[mutate_r][t[mutate_j][0]],0);
[0198]
若delta》0,则从s[mutate_j]中随机选取一个元素j,从x[mutate_r][j]中减去delta,随机选取{0,1,...,n-1}中的一个元素i,令x[i][j]增加delta,继续执行后续步骤;若delta==0,则返回新染色体;
[0199]
检查新染色体中第i个试验资源存放位置是否满足时间和数量约束条件的第一约束,若满足,则返回新染色体,否则丢弃新染色体。
[0200]
在一个实施例中,如图8所示,应用上述基于遗传算法的试验资源调配方法的一种整体流程示意图,从迭代处理的角度上展示了上述方法的总体应用过程。
[0201]
应该理解的是,虽然图1至图8流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图1至图8的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0202]
请参阅图9,在一个实施例中,还提供一种基于遗传算法的试验资源调配系统100,包括信息获取模块11、方案优化模块13和方案输出模块15。其中,信息获取模块11用于获取试验资源信息和试验资源调配申请信息;试验资源信息包括多个试验资源的资源种类、资源存放位置及资源数量随时间变化情况,试验资源调配申请信息包括基于多项调配计划的资源种类、资源使用位置、资源需求数量和资源使用时间。方案优化模块13用于利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,通过基于时间和数量的多条件约束的遗传进化处理,得到最优染色体。方案输出模块15用于对最优染色体进行解码,得到每种试验资源的最优调配方案。
[0203]
上述基于遗传算法的试验资源调配系统100,通过各模块的协作,获取试验资源信息和试验资源调配申请信息,以确定可提供的试验资源以及资源调配申请的详细信息后,把多个试验资源存放地点到多个资源使用地点的资源调配方案,编码处理为满足时间和数量的多条件约束的染色体,进而通过基于时间和数量的多条件约束的遗传进化迭代处理,从而得到满足时间和数量约束的最优染色体,解码后即获得试验资源的最优调配方案。与现有技术相比,本技术通过增加资源可用时段、资源需求时段、资源可用数量和资源需求数量等多条件约束的遗传算法,实现了高效的多试验资源存放位置到多资源使用位置的资源调配,在保障试验计划的资源需求前提下,降低了资源调配成本。
[0204]
关于基于遗传算法的试验资源调配系统100的具体限定,可以参见上文中基于遗传算法的试验资源调配方法的相应限定,在此不再赘述。上述基于遗传算法的试验资源调配系统100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于具体数据处理功能的设备中,也可以软件形式存储于前述设备的存储器中,以便于处理器调用执行以上各个模块对应的操作,前述设备可以是但不限于本领域已有的各型计算管理设备。
[0205]
又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如下处理步骤:获取试验资源信息和试验资源调配申请信息;利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,通过基于时间和数量的多条件约束的遗传进化处理,得到最优染色体;对最优染色体进行解码,得到每种试验资源的最优调配方案。试验资源信息包括多个试验资源的资源种类、资源存放位置及资源数量随时间变化情况,试验资源调配申请信息包括基于多项调配计划的资源种类、资源使用位置、资源需求数量和资源使用时间。
[0206]
在一个实施例中,处理器执行计算机程序时还可以实现上述基于遗传算法的试验资源调配方法各实施例中增加的步骤或者子步骤。
[0207]
再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如下处理步骤:获取试验资源信息和试验资源调配申请信息;利用试验资源信息和试验资源调配申请信息,对每种试验资源建立以试验资源调配方案为染色体的种群,通过基于时间和数量的多条件约束的遗传进化处理,得到最优染色体;对最优染色体进行解码,得到每种试验资源的最优调配方案。试验资源信息包括多个试验资源的资源种类、资源存放位置及资源数量随时间变化情况,试验资源调配申请信息包括基于多项调配计划的资源种类、资源使用位置、资源需求数量和资源使用时间。
[0208]
在一个实施例中,计算机程序被处理器执行时,还可以实现上述基于遗传算法的
试验资源调配方法各实施例中增加的步骤或者子步骤。
[0209]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线式动态随机存储器(rambus dram,简称rdram)以及接口动态随机存储器(drdram)等。
[0210]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0211]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可做出若干变形和改进,都属于本技术保护范围。因此本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1