一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种资源调度方法、装置及电子设备

2022-07-16 11:39:44 来源:中国专利 TAG:


1.本发明涉及优化进化质量技术领域,具体而言,涉及一种资源调度方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.目前,当面对退役动力电池拆解线资源调度这类复杂的工程技术问题时,通常可以采用遗传算法来解决,从而得到某种更加适用的工序调整或调度方案。该过程一般包括:第一步,初始化种群并计算染色体的适应度值;第二步,判断是否终止循环;第三步,对初始化种群依次进行选择、交叉、变异等一系列操作,进而得到一个新种群;第四步,计算新种群中染色体的适应度值,并循环执行第二步至第三步进行迭代,直至循环结束确定最终结果。该过程由于始终保持了一个初始种群的规模,而为了避免计算量增加,初始种群的规模一般较小,导致染色体覆盖率较低,使得包含最优染色体的概率也相对较低,难以获得最优解,即难以获得最优染色体所代表的工程问题中的最优方案。


技术实现要素:

3.为解决现有存在的技术问题,本发明实施例提供一种资源调度方法、装置、电子设备及计算机可读存储介质。
4.第一方面,本发明实施例提供了一种资源调度方法,包括:获取加工时长数据,并构建多个染色体;所述加工时长数据包括每个机器对每个待加工的工件执行至少部分工序时,每道工序对应的加工时长,所述染色体表示每道所述工序中,每个所述机器所要加工的工件以及加工顺序;确定适应度函数,所述适应度函数用于计算对所有工件完成所有工序的总加工时长;生成至少包含所述多个染色体的初始种群,并基于所述加工时长数据以及所述适应度函数,计算所述初始种群中每个染色体的适应度值;将所述初始种群作为第一种群,对所述第一种群循环执行遗传过程,直至所述遗传过程收敛,将最小适应度值对应的染色体作为最优解,按照所述最优解对所要加工的工件进行加工;所述遗传过程包括:基于适应度值越小对应的染色体越优的原则,对所述第一种群执行选择操作,得到第二种群;对所述第二种群执行变异操作,得到第三种群;对所述第三种群执行交叉操作,得到第四种群;根据所述加工时长数据以及所述适应度函数,计算所述第三种群和所述第四种群中每个染色体的适应度值;在所述遗传过程未收敛的情况下,将所述第三种群和所述第四种群作为第一种群。
5.可选地,构建多个染色体包括:采用矩阵编码生成多个矩阵,每个所述矩阵的第一维度为每个所述待加工的工件,每个所述矩阵的第二维度为每道所述工序的矩阵,将所述多个矩阵作为所述多个染色体;所述第一维度是所述矩阵的行,所述第二维度是所述矩阵的列;或者,所述第一维度是所述矩阵的列,所述第二维度是所属矩阵的行;其中,每个所述矩阵中的任一元素为随机生成的实数,所述任一元素的整数部分表示所对应的待加工的工件所使用的机器,所述任一元素的小数部分表示所对应的待加工的工件在所使用的机器上
的加工顺序。
6.可选地,生成至少包含所述多个染色体的初始种群,包括:将所述多个染色体作为所述初始种群;或者,对所述多个染色体执行所述交叉操作,得到多个新染色体,将所述多个染色体以及所述多个新染色体作为所述初始种群。
7.可选地,基于适应度值越小对应的染色体越优的原则,对所述第一种群执行选择操作,得到第二种群,包括:按序且不重复地对所述第一种群中相邻的两个染色体的适应度值进行比较,保留二者之间适应度值小的染色体,得到第二种群。
8.可选地,在所述遗传过程未收敛的情况下,将所述第三种群和所述第四种群作为第一种群,包括:在所述遗传过程中不存在某一染色体多次作为当前轮次的预期最优染色体,且所述遗传过程未满足循环次数的情况下,将所述第三种群和所述第四种群作为第一种群;所述当前轮次的预期最优染色体表示所述第三种群和所述第四种群中最优的染色体与上一轮的预期最优染色体中的更好的染色体。
9.可选地,在所述遗传过程中不存在某一染色体多次作为当前轮次的预期最优染色体,且所述遗传过程未满足循环次数的情况下,将所述第三种群和所述第四种群作为第一种群,包括:比较当前最小适应度值与预期最优适应度值的大小;所述当前最小适应度值为当前轮次的所述遗传过程中,所述第三种群和所述第四种群中每个染色体的适应度值的最小值;所述预期最优适应度值用于指代当前能够确定的最优适应度值;在所述当前最小适应度值小于所述预期最优适应度值的情况下,用所述当前最小适应度值更新所述预期最优适应度值,用所述当前最小适应度值对应的染色体更新所述预期最优染色体,并清零所述预期最优染色体的个数记录,将所述第三种群和所述第四种群作为第一种群;在所述当前最小适应度值等于所述预期最优适应度值的情况下,判断所述当前最小适应度值对应的染色体是否与所述预期最优染色体一致,若是,增加所述预期最优染色体的个数记录,若不是,用所述当前最小适应度值对应的染色体更新所述预期最优染色体,并清零所述预期最优染色体的个数记录;将所述第三种群和所述第四种群作为第一种群;在所述当前最小适应度值大于所述预期最优适应度值的情况下,维持所述预期最优适应度值与所述预期最优染色体不变,将所述第三种群和所述第四种群作为第一种群。
10.可选地,对所述第一种群循环执行遗传过程,直至所述遗传过程收敛,将最小适应度值对应的染色体作为最优解,包括:对所述第一种群循环执行遗传过程,直至所述遗传过程已满足循环次数,将满足循环次数时的最小适应度值所对应的染色体作为最优解;或者,对所述第一种群循环执行遗传过程,在存在某一染色体多次作为预期最优染色体时,将所述多次作为预期最优染色体的染色体作为最优解;其中,所述预期最优染色体表示所述第三种群和所述第四种群中最优的染色体与上一轮的预期最优染色体中的更好的染色体;所述预期最优染色体对应的适应度值为预期最优适应度值,所述预期最优适应度值表示所述第三种群和所述第四种群中适应度值的最小值与上一轮的预期最优适应度值中的更小的值。
11.可选地,在对所述第一种群循环执行遗传过程之前,该方法还包括:预设变异概率和交叉概率,所述变异概率用于判断是否对染色体进行变异操作,所述交叉概率用于判断是否对染色体进行交叉操作;所述对所述第二种群执行变异操作包括:分别对所述第二种群中的每个染色体生成变异随机数,在所述变异随机数小于所述变异概率的情况下,对所
述变异随机数对应的所述第二种群中的染色体执行变异操作;所述对所述第三种群执行交叉操作包括:按序且不重复地对所述第三种群中相邻的两个染色体生成交叉随机数,在所述交叉随机数小于所述交叉概率的情况下,对所述交叉随机数对应的两个相邻染色体执行至少部分行交叉的操作。
12.第二方面,本发明实施例还提供了一种资源调度装置,包括:获取模块、确定函数模块、计算模块以及循环模块。
13.获取模块用于获取加工时长数据,并构建多个染色体;所述加工时长数据包括每个机器对每个待加工的工件执行至少部分工序时,每道工序对应的加工时长,所述染色体表示每道所述工序中,每个所述机器所要加工的工件以及加工顺序。
14.确定函数模块用于确定适应度函数,所述适应度函数用于计算对所有工件完成所有工序的总加工时长。
15.计算模块用于生成至少包含所述多个染色体的初始种群,并基于所述加工时长数据以及所述适应度函数,计算所述初始种群中每个染色体的适应度值。
16.循环模块用于将所述初始种群作为第一种群,对所述第一种群循环执行遗传过程,直至所述遗传过程收敛,将最小适应度值对应的染色体作为最优解,按照所述最优解对所要加工的工件进行加工。
17.循环模块包括:选择单元、变异单元、交叉单元、计算单元以及整理单元。
18.选择单元用于基于适应度值越小对应的染色体越优的原则,对所述第一种群执行选择操作,得到第二种群。
19.变异单元用于对所述第二种群执行变异操作,得到第三种群。
20.交叉单元用于对所述第三种群执行交叉操作,得到第四种群。
21.计算单元用于根据所述加工时长数据以及所述适应度函数,计算所述第三种群和所述第四种群中每个染色体的适应度值。
22.整理单元用于在所述遗传过程未收敛的情况下,将所述第三种群和所述第四种群作为第一种群。
23.第三方面,本发明实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述的资源调度方法中的步骤。
24.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的资源调度方法中的步骤。
25.本发明实施例提供的资源调度方法、装置、电子设备及计算机可读存储介质,在面对某些复杂的资源调度问题时,在传统的遗传算法的基础之上,改变其固有的操作流程顺序,将传统顺序由选择、交叉、变异更改为选择、变异、交叉,该方法能够大大缩减变异时所需处理的数据量,同时,无需在生成多个染色体的初始阶段生成大量的染色体,而是可以只生成少量染色体,经过交叉从而达到扩大种群的目的,减少了初始时生成大量染色体所带来的计算量,提升整个遗传算法的处理速度,并且使之后进行选择操作和变异操作时所处理的染色体的规模也随之扩大,使遗传算法更易获得最优解。
附图说明
26.为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
27.图1示出了本发明实施例所提供的一种资源调度方法的流程图;
28.图2示出了本发明实施例中遗传过程的流程图;
29.图3示出了本发明实施例所提供的一种资源调度方法的具体流程图;
30.图4示出了本发明实施例所提供的一种资源调度装置的结构示意图;
31.图5示出了本发明实施例所提供的一种用于执行资源调度方法的电子设备的结构示意图。
具体实施方式
32.下面结合本发明实施例中的附图对本发明实施例进行描述。
33.本发明实施例所面对的资源调度问题指的是利用多个资源实现对多个工件的加工,在加工每个工件的过程中会涉及多道工序。以退役动力电池拆解线资源调度问题为例,资源可以是该退役动力电池拆解问题中地机器,工件为待拆解的退役动力电池,加工对应拆解,该资源调度问题具体可以描述为:在一个退役动力电池拆解系统中设置有多台机器,可以拆解多种电池;每种电池可以对应一道或多道工序,该系统拆解电池的工序顺序是预先确定的;每道工序可以由多台不同的机器来实现加工,工序的加工时间随机器的性能不同而变化。本发明实施例所要确定的调度目标是:为每道工序选择最合适的机器、确定每台机器上各拆解电池工序的最佳加工顺序及开工时间,使系统的某些性能指标达到最优(如,加工时间最短)。此外,在该加工过程中还需满足以下约束条件:1、同一台机器同一时刻只能拆解一个电池;2、同一电池的同一道工序在同一时刻只能被一台机器加工;3、每个电池的每道工序一旦开始加工不能中断;4、不同电池之间具有相同的优先级;5、不同电池的工序之间没有先后约束,同一电池的工序之间有先后约束;6、所有电池在零时刻都可以被加工。
34.图1示出了本发明实施例所提供的一种资源调度方法的流程图。如图1所示,该方法包括以下步骤101-104。
35.步骤101:获取加工时长数据,并构建多个染色体;加工时长数据包括每个机器对每个待加工的工件执行至少部分工序时,每道工序对应的加工时长,染色体表示每道工序中,每个机器所要加工的工件以及加工顺序。
36.其中,可以获取每个机器对每个待加工工件在不同工序上的加工时长,即每个待加工的工件在不同工序上由不同机器进行加工所消耗的时间,将所获取的这些时间数据作为加工时长数据。其中,处理该类资源调度问题通常所采用的算法可以采用遗传算法,根据该加工时长数据中所包含的待加工的工件个数、所需的工序数以及每道工序可以使用的机器个数,随机构建多个染色体。其中,随机构建的每个染色体包括在每道工序中,每个可使用的机器所要加工的工件以及该机器加工该工件的加工顺序,本发明实施例中,每个染色体可以代表该资源调度方法所对应的一种可行的调度方案,不同的染色体所代表的调度方案不同。其中,可以从多种不同的编码方式中选取一种用来构建多个染色体,例如,所选取的编码方式可以是实数编码、位串编码、有序串编码、二进制编码等。
37.例如,针对某加工车间的资源调度问题,待加工的工件共有12个,每个工件按工艺流程需经过3道工序进行加工,每道工序上各有3个性能不同的机器m1-m9进行加工,可以获取各工件在每道工序上使用不同机器的加工时间,进而生成加工时长数据,该加工时长数据如下述表1所示。该资源调度问题包含12个工件、3道工序,每道工序上可使用3个机器,基于此可随机生成调度这3个机器对12个工件完成3道工序的调度方案,每个调度方案以染色体的形式表示。
[0038][0039][0040]
表1加工时长数据表
[0041]
步骤102:确定适应度函数,适应度函数用于计算对所有工件完成所有工序的总加工时长。
[0042]
本发明实施例中,可以根据所要解决的工程问题确定用于求解该工程问题的适应度函数,该适应度函数所对应的解可以称为适应度值。其中,适应度函数通常由目标函数以某种规律转换得到,适应度函数的基本要求是:适应度函数是连续函数。适应度值是进化过程中个体选择的唯一依据,可以通过适应度值来评价染色体(可行解)的优劣,且适应度值是非负数,适应度值与染色体(可行解)的适应性相关,例如当需要求解最小适应度值时,该
适应度值的大小与染色体适应性的好坏成反比,即适应度值越小,染色体越好。其中,构造适应度函数的常用方法有:目标承数映射法、尺度变换法等。
[0043]
例如,由于本发明实施例最终所要确定的调度方案应达到的目标为:加工所有工件所需的总加工时长为最短,因此可以基于该目标确定适应度函数,该适应度函数是用于计算加工完所有工件(包括所需的每个工序)的总加工时长的函数,通过求解该适应度函数可以得到相应的适应度值,该适应度值即为总加工时长。如沿用上述步骤101中所举示例,可以将计算总加工时长(如加工第1个工件的第一道工序的起始时间到第12个工件的第三道工序的加工完成时间,该第1个工件至第12个工件均与表1中的工件号无关)作为适应度函数,每个染色体(调度方案)根据该适应度函数所求得的适应度值即表示该染色体(调度方案)对该12个工件进行每道工序的加工后所使用的总加工时长。由于该适应度值越小表示总加工时长越短,因此,利用遗传算法针对该适应度函数求解最小值,可以得到总加工时长最小所对应的染色体,即最优解(最优的调度方案)。
[0044]
步骤103:生成至少包含多个染色体的初始种群,并基于加工时长数据以及适应度函数,计算初始种群中每个染色体的适应度值。
[0045]
本发明实施例中,可以对所构建的多个染色体生成初始种群,该初始种群是最初未进入过任何循环的种群,且该初始种群是至少包含所构建的染色体的种群,例如,初始种群可以是直接由上述步骤101所构建的多个染色体组成的种群,也可是在包含上述步骤101所构建的染色体的基础之上额外还包含其他染色体的种群。其中,可以针对上述步骤101所获取的加工时长数据以及上述步骤102所确定的适应度函数,使用该加工时长数据作为输入该适应度函数并用于进行计算的值,通过该适应度函数分别对该初始种群中的每一个染色体进行计算,得到该初始种群中每一个染色体的适应度值。
[0046]
步骤104:将初始种群作为第一种群,对第一种群循环执行遗传过程,直至遗传过程收敛,将最小适应度值对应的染色体作为最优解,按照最优解对所要加工的工件进行加工。
[0047]
其中,遗传过程迭代的是对第一种群进行多轮次的迭代,第一种群初始值是初始种群,并通过每次所执行的遗传过程,对当前轮次的第一种群中的所有染色体进行全局搜索,判断当前轮次的第一种群中的染色体中是否具有更贴近可解决该资源调度问题的较为优秀的解,例如,判断当前轮次的第一种群中是否存在某一染色体的适应度值为最小适应度值,该最小适应度值可以表示已经历过的多轮遗传过程中,每轮次遗传过程所对应的第一种群中的所有适应度值中的最小值。当经过多次遗传过程直至该遗传过程达到收敛状态时,可以将收敛时所对应的最小适应度值对应的染色体作为解决资源调度问题的最优解,例如,将该收敛状态对应的总加工时长的最小值所对应的调度方案作为最优解。之后,可以根据该最优解(即调度方案)对待加工的工件进行加工。
[0048]
其中,参见图2所示,该遗传过程可以包括以下步骤1041-1045。
[0049]
步骤1041:基于适应度值越小对应的染色体越优的原则,对第一种群执行选择操作,得到第二种群。
[0050]
其中,由于本发明实施例需确定一种总加工时长最短的调度方案,因此,对于所确定的能够计算总加工时长的适应度函数而言,采用该适应度函数所计算出的适应度值越小,表示总加工时长越小,则可以确定越小的适应度值所对应的染色体便是更加符合预期
的较优的调度方案,如总加工时长为最短的调度方案。基于该原则,可以对第一种群进行传统遗传算法中所涉及的选择操作,例如,提前预设选择概率,根据该选择概率针对第一种群中的全部染色体,比较需要进行选择操作的相邻两个染色体的适应度值大小,从中选取适应度值更小的染色体,将经过比较后所选取出的两两染色体的适应度值中较小的染色体以及不需要进行选择操作的染色体组合生成新的种群,将该种群作为第二种群。
[0051]
例如,第一种群中共有200个染色体,基于选择概率针对需要进行选择操作的两个相邻的染色体进行适应度值大小的比较,如针对染色体1和染色体2,针对染色体5和染色体6
……
针对染色体199和染色体200进行两两之间适应度值大小的比较,选择二者之间适应度值较小的染色体以及基于选择概率不需要进行选择操作的染色体,如染色体2(适应度值较小的染色体)、染色体3(无需进行选择操作的染色体)、染色体4(无需进行选择操作的染色体)、染色体6(适应度值较小的染色体)、
……
染色体199(适应度值较小的染色体),将这些染色体作为第二种群。
[0052]
步骤1042:对第二种群执行变异操作,得到第三种群。
[0053]
本发明实施例中,可以针对上述步骤1041所得到的第二种群进行传统遗传算法中所涉及的变异操作,即针对第二种群中的全部染色体,随机选取部分染色体进行变异,将变异后的染色体以及未被选取进行变异操作的染色体作为第三种群。其中,为了不破坏和打乱更接近收敛的种群,而是通过较细微的变异操作,使当前的种群能够更接近收敛,故该变异操作可以只针对数量较少的染色体进行,且该变异操作为非原值变异。例如,为了使当前的种群(如第二种群)在经过该非原值变异操作后能保证所得到的第三种群中可以包含更接近最优解的染色体这一原则,可以只对第二种群中的一个染色体进行非原值变异,即将某染色体中的某个元素用其他元素进行替换,得到一个新的染色体,将得到的新的染色体以及其余未进行变异操作的染色体组合生成第三种群。
[0054]
步骤1043:对第三种群执行交叉操作,得到第四种群。
[0055]
其中,在得到第三种群之后,可以对该第三种群执行传统遗传算法中所涉及的交叉操作,该交叉操作同样可以在第三种群的全部染色体中,选取两个相邻的染色体进行部分元素的交叉互换,例如,该第三种群共有100个染色体,分别针对两个相邻的染色体进行部分元素的交叉互换,如针对染色体1和染色体2,针对染色体3和染色体4
……
针对染色体99和染色体100进行两两之间部分元素的交叉互换,生成第四种群。例如,所交叉互换的元素可以是每两个相邻染色体的第1号元素至第6号元素。以这样交换相邻两染色体固定位置的元素的方式进行交叉操作,将交叉后的染色体作为第四种群。
[0056]
步骤1044:根据加工时长数据以及适应度函数,计算第三种群和第四种群中每个染色体的适应度值。
[0057]
本发明实施例中,在经过选择操作、变异操作以及交叉操作,得到第四种群之后,可以针对该第三种群以及第四种群中的每一个染色体,使用最初获取的加工时长数据以及适应度函数进行计算,分别得到该第三种群和第四种群中每一个染色体的适应度值。
[0058]
步骤1045:在遗传过程未收敛的情况下,将第三种群和第四种群作为第一种群。
[0059]
其中,在得到第三种群和第四种群中所有染色体的适应度值之后,可以使用这些适应度值来衡量本次遗传过程是否达到收敛的状态,并在遗传过程未达到收敛的情况下,将本次所得的第三种群以及第四种群进行合并,并作为第一种群进行下一轮次的遗传过
程。在遗传过程达到收敛的情况下,执行上述步骤104。
[0060]
本发明实施例在面对某些复杂的资源调度问题时,在传统的遗传算法的基础之上,改变其固有的操作流程顺序,将传统顺序由选择、交叉、变异更改为选择、变异、交叉,该方法能够大大缩减变异时所需处理的数据量,同时,无需在生成多个染色体的初始阶段生成大量的染色体,而是可以只生成少量染色体,经过交叉从而达到扩大种群的目的,减少了初始时生成大量染色体所带来的计算量,提升整个遗传算法的处理速度,并且使之后进行选择操作和变异操作时所处理的染色体的规模也随之扩大,使遗传算法更易获得最优解。
[0061]
可选地,构建多个染色体可以包括以下步骤a。
[0062]
步骤a:采用矩阵编码生成多个矩阵,每个矩阵的第一维度为每个待加工的工件,每个矩阵的第二维度为每道工序的矩阵,将多个矩阵作为多个染色体;第一维度是矩阵的行,第二维度是矩阵的列;或者,第一维度是矩阵的列,第二维度是所属矩阵的行。
[0063]
其中,每个矩阵中的任一元素为随机生成的实数,任一元素的整数部分表示所对应的待加工的工件所使用的机器,任一元素的小数部分表示所对应的待加工的工件在所使用的机器上的加工顺序。
[0064]
由于同种编码方式中,元素的不同排列组合将构造成不同的染色体;不同的编码方式不仅改变染色体排列形式、算法的解码方式,还对算法的质量和效率有很大的影响,因此设计一种简单可行、适用于待求解问题的编码方案尤为重要。本发明实施例采用矩阵编码的方式,通过这种编码方法针对实际的资源调度问题所涉及的待加工的工件、加工的工序、加工时可以使用的机器以及每种机器用于加工每个待加工的工件时的顺序,生成第一维度是每个待加工的工件、第二维度是所需的每道工序的矩阵,每个矩阵可以表示一个染色体,生成多个矩阵的过程即为生成多个染色体的过程。其中,第一维度可以是该矩阵的行、第二维度可以是该矩阵的列;或者,第一维度也可以是该矩阵的列、第二维度也可以是该矩阵的行,本实施例对此不做限定。本发明实施例中,每个矩阵中所包含的元素可以是随机生成的一个实数,即用一个具有整数部分以及小数部分的随机的实数来作为矩阵中的一个元素,其中,由于机器的数量不固定,用整数来表示更加合理,因此,该实数的整数部分可以用来表示待加工的工件所可以使用的机器,该实数的小数部分可以用来表示待加工的工件在其使用的某机器上的加工顺序,其中,在第一道工序上,加工顺序可以按照随机生成小数由小到大依次排列,但第二、三道工序时,需要结合该工件在上一道工序中是否完成加工,进而判断该工件在第二、三道工序上的加工顺序。
[0065]
例如,如表1所示,待加工的工件为12个,工序共有3道,可以用来进行加工的机器有9个,分别是m1-m9,且每道工序上平均有三台机器可以使用(如第一道工序对应可以使用m1-m3三台机器,第二道工序对应可以使用m4-m6三台机器,第三道工序对应可以使用m7-m9三台机器),可以基于这些数据生成多个矩阵,每个矩阵都可以是12*3的矩阵,该矩阵的行对应12个待加工的工件,列对应3道工序,具体可见下述式子(1-1)所示;每个矩阵中的任意元素x都可以是随机生成的某个实数,如该矩阵中任意一个元素x的整数部分可以用来表示该元素x对应的工件在某道工序上所使用的机器的序号,由于本发明实施例可以使用的机器共有9个,每道工序分别对应3台机器,因此该矩阵中任意元素x的整数部分可以由数字1-9表示,如该矩阵在第一列(第一道工序)上的每个元素的整数部分取值范围为[1,3],在第二列(第二道工序)上的每个元素的整数部分取值范围为[4,6],在第三列(第三道工序)上
的每个元素的整数部分取值范围为[7,9];而该矩阵中任意一个元素x的小数部分可以用来表示该元素x对应的工件在相应工序所使用的某台机器的加工顺序,可以用数字0-9来表示,数值小的对应先加工的加工顺序。例如,矩阵中第一行第一列的元素可以是1.2,该元素表示第一个待加工的工件在第一道工序上可以使用第一个机器(m1),且在该机器上的加工顺序为2,其中,该加工顺序2并不代表该工件的加工顺序一定是2,由于小数是随机生成的,若所生成的小数中最小值即为2,那么该工件在该机器上的加工顺序实则为最先加工。
[0066][0067]
本发明实施例采用矩阵编码的方法可以根据数据的个数来确定所用矩阵的行数和列数,将矩阵整体作为遗传个体(染色体),不需要将矩阵展开成一串元素,能确保个体基因的完整性;并且,通过矩阵编码的方式生成的矩阵,其二维数据结构相较于一维数据结构享有更大的表示空间,所得到的矩阵(染色体)所能执行的交叉、变异也更灵活、更多样化,进而增加了后续进行遗传操作的能力,缓解了计算机内存的占有率,进一步提高了寻找最优解的搜索效率。
[0068]
可选地,生成至少包含多个染色体的初始种群可以包括以下步骤b1或b2。
[0069]
步骤b1:将多个染色体作为初始种群。
[0070]
其中,初始种群为第一次生成的种群,该初始种群是由染色体构成的,其可以是直接由上述步骤101中所生成的多个染色体直接合并得到的种群。例如,步骤101中可以生成400个染色体,并直接将这400个染色体作为一个整体,得到规模为400的初始种群。
[0071]
步骤b2:对多个染色体执行交叉操作,得到多个新染色体,将多个染色体以及多个新染色体作为初始种群。
[0072]
通常情况下,种群规模过小会造成有效等位基因先天缺乏,生成最优染色体的概率极小;种群规模过大将导致收敛速度显著降低,因此,需要使生成的初始种群中的染色体数量控制在较为合理的大小。优选地,可以在上述步骤101时构建数量较少的染色体,并采用对所生成的多个染色体先执行一次交叉操作的方式,扩展染色体的个数,将最初构建的多个染色体以及经交叉操作后得到的多个新的染色体作为一个整体,该整体可以称为初始种群。其中,该交叉操作可以是传统遗传算法中所使用的操作,例如,将多个染色体中相邻的两个染色体的部分元素进行交叉互换,从而得到与多个染色体不同的多个新的染色体。这样可以有效避免在生成多个染色体时增大计算量,还可以使所得到的初始种群中所包含的染色体数量进行扩展,使染色体覆盖率更高,进而使得初始种群中包含最优的染色体的概率更高。
[0073]
可选地,基于适应度值越小对应的染色体越优的原则,对第一种群执行选择操作,得到第二种群可以包括以下步骤c。
[0074]
步骤c:按序且不重复地对第一种群中相邻的两个染色体的适应度值进行比较,保留二者之间适应度值小的染色体,得到第二种群。
[0075]
其中,在得到第一种群之后,可以对该第一种群进行选择操作,本发明实施例中所采用的选择操作,可以按照染色体的排列顺序(如从第一个染色体至最后一个染色体的正
序顺序,或者,从最后一个染色体至第一个染色体的倒序顺序),直接针对第一种群中的两个相邻染色体进行选择操作,且这两个相邻的染色体在进行完一次选择操作后将不再与其他任何染色体重复执行该操作,该选择操作的具体过程为比较两个相邻染色体的适应度值,将适应度值小的染色体进行保留,直至使该第一种群中的每一个染色体都经过一次选择过程,将保留下来的适应度值较小的染色体作为第二种群。
[0076]
例如,第一种群共有400个染色体,按照从第1个染色体至第400个染色体的顺序,依次对相邻的两个染色体的适应度值进行比较,如比较染色体1与染色体2的适应度值、比较染色体3与染色体4的适应度值
……
比较染色体399与染色体400的适应度值,将每两个相邻染色体中适应度值较小的染色体进行保留,得到由200个染色体构成的第二种群。
[0077]
本发明实施例所采用的选择操作有别于传统遗传算法中的选择操作,传统遗传算法中的选择操作需要提前设定一个选择概率,基于该选择概率来确定对种群中的哪些染色体进行选择,以及所进行选择的染色体的数量,传统方法由于设置了选择概率,导致势必会有部分染色体没有被执行选择的过程,而这些没有经历选择操作的染色体将会被保留并遗传下去,从而无法起到改善种群的作用。而本发明实施例在进行选择操作前无需设置选择概率,即令第一种群中的每一个染色体都有机会进行一次选择操作,可以提高保留最优染色体的可能性。
[0078]
可选地,在遗传过程未收敛的情况下,将第三种群和第四种群作为第一种群可以包括以下步骤d。
[0079]
步骤d:在遗传过程中不存在某一染色体多次作为当前轮次的预期最优染色体,且遗传过程未满足循环次数的情况下,将第三种群和第四种群作为第一种群;当前轮次的预期最优染色体表示第三种群和第四种群中最优的染色体与上一轮的预期最优染色体中的更好的染色体。
[0080]
本发明实施例中,当前轮次表示正在进行的本轮遗传过程;预期最优染色体可以表示所预期得到的最优的染色体,如针对所要解决的资源调度问题所期望得到的某个最优的调度方案;当前轮次的预期最优染色体则表示在该遗传过程执行至得到第三种群及第四种群时,该第三种群以及第四种群中最优的染色体与上一轮次的遗传过程中的预期最优染色体相比,两者中更好的染色体。其中,该第三种群和第四种群中的最优的染色体是指:当前轮次中该第三种群和第四种群中所有染色体的适应度值的最小值所对应的染色体;且每一轮次的遗传过程均会得到一个预期最优染色体。本发明实施例在整个多轮次的遗传过程中,如果没有某一个染色体被多次作为当前轮次的预期最优染色体,并且在当前轮次并未达到所需循环的次数的情况下,认为该遗传过程未到达收敛状态,将当前轮次的第三种群和第四种群作为第一种群,以便进入下一轮次的遗传过程。
[0081]
例如,在整个多轮次的遗传过程中并不存在某一个染色体重复多次(如30次)作为当前轮次的预期最优染色体,并且当前轮次并未满足循环所需次数(如200次)的情况下,确定当前轮次的遗传过程收敛,并将当前轮次所对应的第三种群和第四种群作为第一种群。
[0082]
本发明实施例在每轮次的遗传过程中,通过比较当前轮次中第三种群与第四种群中的最优的染色体与上一轮次的预期最优染色体,来判断该当前轮次的遗传过程是否收敛,以及是否需要进入下一轮循环,使多轮次的遗传过程步骤更加清晰明确。
[0083]
可选地,在遗传过程中不存在某一染色体多次作为当前轮次的预期最优染色体,
且遗传过程未满足循环次数的情况下,将第三种群和第四种群作为第一种群,可以包括以下步骤e;以及在不同情况下可以包括步骤e1或e2或e3。
[0084]
步骤e:比较当前最小适应度值与预期最优适应度值的大小;当前最小适应度值为当前轮次的遗传过程中,第三种群和第四种群中每个染色体的适应度值的最小值;预期最优适应度值用于指代当前能够确定的最优适应度值。
[0085]
本发明实施例中,当遗传过程执行至已得到第三种群与第四种群中所有染色体的适应度值的阶段时,可以先确定当前轮次的该第三种群与第四种群中所有染色体的适应度值的最小值,即当前最小适应度值,再将该当前最小适应度值与预期最优适应度值进行比较。其中,在多轮次的遗传过程中,每轮次所用来与当前最小适应度值进行比较的预期最优适应度值是:在与当前最小适应度值进行比较之前,该时刻所能够确定的最优适应度值。例如,第二次循环过程中通过比较所确定的最小的适应度值(即预期最优适应度值)为30,即该第二次循环最终所对应的唯一的预期最优适应度值即为30,那么当进入第三次循环的过程中,若第三次循环所对应的当前最小适应度值为29,此时此刻所能确定的最优适应度值便是第二次循环所确定的最小的适应度值30,进而可以令该当前最小适应度值29与此时的预期最优适应度值30进行数值大小的比较。
[0086]
步骤e1:在当前最小适应度值小于预期最优适应度值的情况下,用当前最小适应度值更新预期最优适应度值,用当前最小适应度值对应的染色体更新预期最优染色体,并清零预期最优染色体的个数记录,将第三种群和第四种群作为第一种群。
[0087]
本发明实施例中,在当前最小适应度值小于预期最优适应度值的情况下,也就是当前轮次的第三种群与第四种群中所有染色体的适应度值的最小值小于在进行比较前所能确定的最优适应度值的情况下,用该当前最小适应度值对进行比较前所能确定的最优适应度值(预期最优适应度值)进行更新,并用该当前最小适应度值所对应的染色体(即当前轮次的第三种群与第四种群中适应度值最小的染色体)对进行比较前所能确定的最优适应度值对应的染色体(如预期最优适应度值对应的染色体,即预期最优染色体)进行更新,同时清零预期最优染色体的个数纪录,该预期最优染色体的个数纪录用于表示预期最优染色体保持不变的轮次个数,将该第三种群与第四种群作为第一种群,用于进入下一轮次的循环。
[0088]
例如,若当前轮次的第三种群与第四种群中所有染色体的适应度值的最小值(当前最小适应度值)为29,其所对应的染色体为b;进行比较前所能确定最优适应度值(预期最优适应度值)为30,其所对应的染色体为a,通过比较可以确定该当前最小适应度值小于预期最优适应度值,在这种情况下,可以用该当前最小适应度值29对该预期最优适应度值30进行更新,即令比较后的预期最优适应度值由30更新为29;并用该当前最小适应度值29所对应的染色体b对该预期最优适应度值30所对应的染色体a进行更新,即令比较后的预期最优染色体由染色体a更新为染色体b;并且,可以对用于记录预期最优染色体的计数器进行清零。并且,将该第三种群与第四种群作为第一种群,用于进入下一轮次的循环。其中,清零是用于表示当前轮次的遗传过程已产生了优于此前记录的预期最优染色体的染色体,因此应重新对更优秀的染色体进行计数。
[0089]
步骤e2:在当前最小适应度值等于预期最优适应度值的情况下,判断当前最小适应度值对应的染色体是否与预期最优染色体一致,若是,增加预期最优染色体的个数记录,
若不是,用当前最小适应度值对应的染色体更新预期最优染色体,并清零预期最优染色体的个数记录;将第三种群和第四种群作为第一种群。
[0090]
其中,相同的染色体通过计算所得到的适应度值一定是相同的,而不同的染色体通过计算也可以得到相同的适应度值,也就是说,一个适应度值可以对应多个不同的染色体,例如,可以有多种不同的调度方案均可以在加工时达到某一个总加工时长。本发明实施例中,在当前最小适应度值等于预期最优适应度值的情况下,也就是当前轮次的第三种群与第四种群中所有染色体的适应度值的最小值等于在进行比较前所能确定的最优适应度值的情况下,可以判断该当前最小适应度值对应的染色体是否与进行比较前所能确定的最优适应度值所对应的染色体(预期最优染色体)相同,若二者相同,表示预期最优染色体在当前轮次中重复出现并未发生变化,因此可以增加该预期最优染色体的个数纪录,并将第三种群和第四种群作为第一种群;若二者不同,表示当前最小适应度值所对应的染色体是与预期最优染色体不同的另一种可行解,可以用该当前最小适应度值所对应的染色体对预期最优染色体进行更新,并清零该预期最优染色体的个数纪录,将该第三种群与第四种群作为第一种群,用于进入下一轮次的循环。
[0091]
例如,若当前轮次的第三种群与第四种群中所有染色体的适应度值的最小值(当前最小适应度值)为29,进行比较前所能确定最优适应度值(预期最优适应度值)为29,通过比较可以确定该当前最小适应度值等于预期最优适应度值,在这种情况下,可以判断该当前最小适应度值29对应的染色体是否与进行比较前所能确定的最优适应度值29所对应的染色体(预期最优染色体)相同,若二者相同均为染色体a,可以直接将用于记录该预期最优染色体个数的计数器加一;若当前最小适应度值29对应的染色体为b、进行比较前所能确定的最优适应度值29所对应的染色体(预期最优染色体)为a,二者不同,可以用该当前最小适应度值所对应的染色体b对预期最优染色体进行更新,从a更新为b,并清零用于记录预期最优染色体个数的计数器,将该第三种群与第四种群作为第一种群,用于进入下一轮次的循环。
[0092]
步骤e3:在当前最小适应度值大于预期最优适应度值的情况下,维持预期最优适应度值与预期最优染色体不变,将第三种群和第四种群作为第一种群。
[0093]
本发明实施例中,在当前最小适应度值大于预期最优适应度值的情况下,也就是当前轮次的第三种群与第四种群中所有染色体的适应度值的最小值大于在进行比较前所能确定的最优适应度值的情况下,说明当前轮次的循环过程中所得到的当前最小适应度值劣于之前得到的预期最优适应度值,相应地,当前最小适应度值所对应的染色体也必然劣于预期最优适应度值所对应的预期最优染色体,在这种情况下,可以令相比之下更加优秀的预期最优适应度值以及其对应的预期最优染色体保持不变,即不做任何更新或清零个数的操作,直接将该第三种群与第四种群作为第一种群,用于进入下一轮次的循环。
[0094]
可选地,对第一种群循环执行遗传过程,直至遗传过程收敛,将最小适应度值对应的染色体作为最优解可以包括以下步骤f1或者f2。
[0095]
步骤f1:对第一种群循环执行遗传过程,直至遗传过程已满足循环次数,将满足循环次数时的最小适应度值所对应的染色体作为最优解。
[0096]
其中,在对第一种群循环执行多轮次的遗传过程中,当该遗传过程达到收敛的状态时,可以确定不再需要继续执行下一轮次的遗传过程,即可以在此时跳出循环。本发明实
施例中,可以将循环次数满足某一数值视作遗传过程达到收敛,例如,可以在对第一种群循环执行多轮次的遗传过程时,当已循环执行满200次时,可以认为此时遗传过程收敛(实际上可能还未收敛,但可以认为此时收敛,不需要继续迭代),不必进入下一轮次的循环,可以直接跳出整个循环的过程。此时,可以将收敛时所经历的所有轮次(如200次)中,每轮次所对应的最小的适应度值中的最小值作为满足循环次数时的最小适应度值,并将该满足循环次数时的最小适应度值所对应的染色体作为最优解;或者,也可以将当前轮次的所有染色体的适应度值的最小值与上一轮次的预期最优适应度值相比较,选择二者之间较小的值作为满足循环次数时的最小的适应度值,并将该满足循环次数时的最小适应度值所对应的染色体作为最优解。
[0097]
步骤f2:对第一种群循环执行遗传过程,在存在某一染色体多次作为预期最优染色体时,将多次作为预期最优染色体的染色体作为最优解。其中,预期最优染色体表示第三种群和第四种群中最优的染色体与上一轮的预期最优染色体中的更好的染色体;预期最优染色体对应的适应度值为预期最优适应度值,预期最优适应度值表示第三种群和第四种群中适应度值的最小值与上一轮的预期最优适应度值中的更小的值。
[0098]
或者,本发明实施例中,也可以当该多轮次的遗传过程中存在某个多次作为预期最优染色体的染色体时,将该遗传过程视作已达到收敛。例如,可以在对第一种群循环执行多轮次的遗传过程时,当出现某一染色体多次(如30次)作为预期最优染色体时,可以认为此时遗传过程收敛,不必进入下一轮次的循环,可以直接跳出整个循环的过程。此时,可以将收敛时对应的多次(如30次)作为预期最优染色体的染色体作为最优解。
[0099]
本发明实施例采用两种方式确定遗传过程是否收敛,一种是利用多轮次的遗传过程在通过一定数量的循环次数进行迭代后,通常会逐渐趋于收敛的规律,在循环过程循环至个循环次数时,可以确定此时整个遗传过程收敛;另一种是在循环过程中存在某个可以多次作为预期最优染色体的染色体时,同样可以认为此时整个遗传过程收敛,也就是说,只要在当前轮次的遗传过程中有某一染色体已多次作为预期最优染色体,即便还未循环至遗传过程通常接近收敛时的循环轮次,也可以提前确定该遗传过程达到收敛。该方法可以更灵活地控制整个遗传过程的进程,且可以对其是否收敛作出更准确地判断。
[0100]
可选地,在对第一种群循环执行遗传过程之前,该方法还可以包括:预设变异概率和交叉概率,变异概率用于判断是否对染色体进行变异操作,交叉概率用于判断是否对染色体进行交叉操作。
[0101]
本发明实施例中,在执行变异操作和交叉操作之前可以提前预设变异概率和交叉概率,预设变异概率和交叉概率是为了可以通过相应的概率确定当前所针对的染色体是否需要进行变异操作和交叉操作;并且,基于变异概率能够确定所执行变异操作的种群中能够进行变异的染色体的数量,同样地,基于交叉概率也能够确定所执行交叉操作的种群中能够进行交叉的染色体的数量。
[0102]
通常情况下,变异概率的取值如果过小,就不易产生新的染色体结构;如果其取值过大,那么遗传算法就会变成纯粹的随机搜索算法,无法进行有目标的搜索和逐步优化,因此,本发明实施可以将该变异概率设置为相对较小的数值,例如0.05左右,这样的取值既可以通过变异产生新的染色体,也不存在进行变异的染色体的数量过多从而导致无法收敛形成随机搜索的情况。而交叉概率的取值越大,新的染色体产生的速度就越快,因此更优的染
色体的结构被破坏的可能性也会越高;如果交叉概率设置的过小,则会使搜索过程缓慢,甚至停滞不前,因此本发明实施例可以将交叉概率设置为相对较大的数值,例如0.9左右,这样的取值既可以快速产生新的染色体且降低更优染色体被破坏的情况,同时能够提升搜索的速度。
[0103]
其中,对第二种群执行变异操作包括:分别对第二种群中的每个染色体生成变异随机数,在变异随机数小于变异概率的情况下,对变异随机数对应的第二种群中的染色体执行变异操作。
[0104]
本发明实施例中,在预设好变异概率后,可以分别针对第二种群中的每一个染色体随机生成一个变异随机数,用该变异随机数与提前预设的变异概率相比较,若某染色体的变异随机数小于提前预设的变异概率,对该染色体执行变异操作;若某染色体的变异随机数不小于提前预设的变异概率,则不对该染色体执行变异操作。
[0105]
对第三种群执行交叉操作包括:按序且不重复地对第三种群中相邻的两个染色体生成交叉随机数,在交叉随机数小于交叉概率的情况下,对交叉随机数对应的两个相邻染色体执行至少部分行交叉的操作。
[0106]
本发明实施例中,在预设好交叉概率后,可以分别针对第三种群中的每两个相邻的染色体随机生成一个交叉随机数,其中,每次所选取的两个相邻的染色体可以按照染色体的排列顺序(如从第一个染色体至最后一个染色体的正序顺序,或者,从最后一个染色体至第一个染色体的倒序顺序)进行选取,且这两个相邻的染色体在被选取并生成对应的交叉随机数后,将不再与其他染色体重复生成交叉随机数。本发明实施例中,可以用该交叉随机数与提前预设的交叉概率相比较,若某两个相邻的染色体的交叉随机数小于提前预设的交叉概率,对这两个相邻的染色体执行交叉操作,且该交叉操作为交叉互换这两个相邻染色体的部分行所对应的元素(即行交叉);若某两个相邻的染色体的交叉随机数不小于提前预设的交叉概率,则不对这两个相邻染色体执行交叉操作。
[0107]
本发明实施例通过预设变异概率能够控制新基因导入种群的比例,从而影响种群的多样性;通过预设交叉概率能够在提高收敛速度的同时防止过早收敛,该方法不但能够控制遗传过程逐步向着更贴近收敛的状态进行,同时还能提升搜索更优秀的染色体的速度;并且,选取行交叉的方式进行交叉操作,在针对实际所要解决的资源调度工程问题上,例如将不同的工序作为不同的列的情况下,若采用传统的列交叉方式,无法做到打乱每个工件在不同工序上的加工顺序,但采用本方法所提出的行交叉的方式,可以打乱不同工件在第一道工序上的加工顺序,进而影响后续第二道工序和第三道工序的加工顺序,丰富了种群规模。
[0108]
下面通过一个实施例详细介绍该资源调度方法流程。参见图3所示,该方法包括以下步骤301-315。
[0109]
步骤301:获取加工时长数据,并随机构建200个染色体。
[0110]
其中,该加工时长数据为每个机器对每个待加工的工件执行每道工序时,每道工序对应的加工时长;该染色体表示在每道工序中不同机器所要加工的工件以及其加工顺序。
[0111]
步骤302:确定适应度函数,并设置预期最优适应度值、预期最优染色体,以及用于记录预期最优染色体的计数器。
[0112]
其中,该适应度函数用于计算完成所有工件的总加工时长。预期最优适应度值、预期最优染色体在最初设置时可以为空
[0113]
步骤303:对该200个染色体进行交叉操作,得到新的200个染色体,并将该200个染色体以及交叉所得的新的200个染色体作为初始种群。
[0114]
其中,初始种群的规模为400。
[0115]
步骤304:将该初始种群作为第一种群,对该第一种群中的400个染色体进行适应度值的计算,得到400个染色体分别对应的400个适应度值。
[0116]
其中,适应度值的计算可以基于所确定的适应度函数以及所获取的加工时长数据得到,此处不再赘述。
[0117]
步骤305:对该第一种群中的400个染色体进行选择操作,得到染色体数量为200个的第二种群。
[0118]
步骤306:对该第二种群中的200个染色体进行变异操作,得到染色体数量依旧为200个的第三种群。
[0119]
步骤307:对该第三种群中的200个染色体进行交叉操作,得到染色体数量为200个的第四种群,并计算该第三种群和第四种群中共计400个染色体的适应度值,选取该400个适应度值中的最小值作为当前最小适应度值。
[0120]
步骤308:判断当前最小适应度值是否小于预期最优适应度值的大小,若小于,执行步骤309;若等于,执行步骤310;若大于,执行步骤313。
[0121]
步骤309:将当前最小适应度值替换预期最优适应度值,并将预期最优染色体更新为该当前最小适应度值对应的染色体,同时清零用于记录预期最优染色体的计数器,继续执行步骤313。
[0122]
步骤310:判断当前最小适应度值对应的染色体是否与预期最优染色体一致,若是,执行步骤311;否则,执行步骤312。
[0123]
步骤311:对用于记录预期最优染色体的计数器的数值进行加一,继续执行步骤313。
[0124]
步骤312:用当前最小适应度值对应的染色体替换预期最优染色体,同时清零用于记录预期最优染色体的计数器,继续执行步骤313。
[0125]
步骤313:将该第三种群和第四种群作为第一种群,循环执行步骤305直至满足计数器数值为30或者循环次数满200次为止。
[0126]
步骤314:将计数器数值为30时所对应的染色体,即第30次作为预期最优染色体的染色体作为最优解;或者在没有某一染色体达到共计30次作为预期最优染色体时,将循环满200次所对应的最小适应度值对应的染色体作为最优解。
[0127]
步骤315:按照该最优解对代加工的工件进行加工。
[0128]
上文详细描述了本发明实施例提供的资源调度方法,该方法也可以通过相应的装置实现,下面详细描述本发明实施例提供的资源调度装置。
[0129]
图4示出了本发明实施例所提供的一种资源调度装置的结构示意图。如图4所示,该资源调度装置包括:获取模块41、确定函数模块42、计算模块43以及循环模块44。
[0130]
获取模块41用于获取加工时长数据,并构建多个染色体;所述加工时长数据包括每个机器对每个待加工的工件执行至少部分工序时,每道工序对应的加工时长,所述染色
体表示每道所述工序中,每个所述机器所要加工的工件以及加工顺序。
[0131]
确定函数模块42用于确定适应度函数,所述适应度函数用于计算对所有工件完成所有工序的总加工时长。
[0132]
计算模块43用于生成至少包含所述多个染色体的初始种群,并基于所述加工时长数据以及所述适应度函数,计算所述初始种群中每个染色体的适应度值。
[0133]
循环模块44用于将所述初始种群作为第一种群,对所述第一种群循环执行遗传过程,直至所述遗传过程收敛,将最小适应度值对应的染色体作为最优解,按照所述最优解对所要加工的工件进行加工。
[0134]
循环模块44包括:选择单元、变异单元、交叉单元、计算单元以及整理单元。
[0135]
选择单元用于基于适应度值越小对应的染色体越优的原则,对所述第一种群执行选择操作,得到第二种群。
[0136]
变异单元用于对所述第二种群执行变异操作,得到第三种群。
[0137]
交叉单元用于对所述第三种群执行交叉操作,得到第四种群。
[0138]
计算单元用于根据所述加工时长数据以及所述适应度函数,计算所述第三种群和所述第四种群中每个染色体的适应度值。
[0139]
整理单元用于在所述遗传过程未收敛的情况下,将所述第三种群和所述第四种群作为第一种群。
[0140]
可选地,获取模块41包括:构建单元。
[0141]
构建单元用于采用矩阵编码生成多个矩阵,每个所述矩阵的第一维度为每个所述待加工的工件,每个所述矩阵的第二维度为每道所述工序的矩阵,并将所述多个矩阵作为所述多个染色体;所述第一维度是所述矩阵的行,所述第二维度是所述矩阵的列;或者,所述第一维度是所属矩阵的列,所述第二维度是所属矩阵的行。其中,每个所述矩阵中的任一元素为随机生成的实数,所述任一元素的整数部分表示所对应的待加工的工件所使用的机器,所述任一元素的小数部分表示所对应的待加工的工件在所使用的机器上的加工顺序。
[0142]
可选地,计算模块43包括:第一组建单元或者第一组建单元。
[0143]
第一组建单元用于将所述多个染色体作为所述初始种群。
[0144]
第二组建单元用于对所述多个染色体执行所述交叉操作,得到多个新染色体,将所述多个染色体以及所述多个新染色体作为所述初始种群。
[0145]
可选地,选择单元用于按序且不重复地对所述第一种群中相邻的两个染色体的适应度值进行比较,保留二者之间适应度值小的染色体,得到第二种群。
[0146]
可选地整理单元用于在所述遗传过程中不存在某一染色体多次作为当前轮次的预期最优染色体,且所述遗传过程未满足循环次数的情况下,将所述第三种群和所述第四种群作为第一种群;所述当前轮次的预期最优染色体表示所述第三种群和所述第四种群中最优的染色体与上一轮的预期最优染色体中的更好的染色体。
[0147]
可选地,整理单元包括:比较子单元、更新子单元、判断子单元和维持子单元。
[0148]
比较子单元用于比较当前最小适应度值与预期最优适应度值的大小;所述当前最小适应度值为当前轮次的所述遗传过程中,所述第三种群和所述第四种群中每个染色体的适应度值的最小值;所述预期最优适应度值用于指代当前能够确定的最优适应度值。
[0149]
更新子单元用于在所述当前最小适应度值小于所述预期最优适应度值的情况下,
用所述当前最小适应度值更新所述预期最优适应度值,用所述当前最小适应度值对应的染色体更新所述预期最优染色体,并清零所述预期最优染色体的个数记录,将所述第三种群和所述第四种群作为第一种群。
[0150]
判断子单元用于在所述当前最小适应度值等于所述预期最优适应度值的情况下,判断所述当前最小适应度值对应的染色体是否与所述预期最优染色体一致,若是,增加所述预期最优染色体的个数记录,若不是,用所述当前最小适应度值对应的染色体更新所述预期最优染色体,并清零所述预期最优染色体的个数记录;将所述第三种群和所述第四种群作为第一种群。
[0151]
维持子单元用于在所述当前最小适应度值大于所述预期最优适应度值的情况下,维持所述预期最优适应度值与所述预期最优染色体不变,将所述第三种群和所述第四种群作为第一种群。
[0152]
可选地,循环模块44包括:第一循环单元或者第二循环单元。
[0153]
第一循环单元用于对所述第一种群循环执行遗传过程,直至所述遗传过程已满足循环次数,将满足循环次数时的最小适应度值所对应的染色体作为最优解。
[0154]
第二循环单元用于对所述第一种群循环执行遗传过程,在存在某一染色体多次作为预期最优染色体时,将所述多次作为预期最优染色体的染色体作为最优解;其中,所述预期最优染色体表示所述第三种群和所述第四种群中最优的染色体与上一轮的预期最优染色体中的更好的染色体;所述预期最优染色体对应的适应度值为预期最优适应度值,所述预期最优适应度值表示所述第三种群和所述第四种群中适应度值的最小值与上一轮的预期最优适应度值中的更小的值。
[0155]
可选地,该装置还包括:预设模块。
[0156]
预设模块用于预设变异概率和交叉概率,所述变异概率用于判断是否对染色体进行变异操作,所述交叉概率用于判断是否对染色体进行交叉操作。
[0157]
变异单元用于分别对所述第二种群中的每个染色体生成变异随机数,在所述变异随机数小于所述变异概率的情况下,对所述变异随机数对应的所述第二种群中的染色体执行变异操作。
[0158]
交叉单元用于按序且不重复地对所述第三种群中相邻的两个染色体生成交叉随机数,在所述交叉随机数小于所述交叉概率的情况下,对所述交叉随机数对应的两个相邻染色体执行至少部分行交叉的操作。
[0159]
本发明实施例所提供的装置,在面对某些复杂的资源调度问题时,在传统的遗传算法的基础之上,改变其固有的操作流程顺序,将传统顺序由选择、交叉、变异更改为选择、变异、交叉,该装置能够大大缩减变异时所需处理的数据量,同时,无需在生成多个染色体的初始阶段生成大量的染色体,而是可以只生成少量染色体,经过交叉从而达到扩大种群的目的,减少了初始时生成大量染色体所带来的计算量,提升整个遗传算法的处理速度,并且使之后进行选择操作和变异操作时所处理的染色体的规模也随之扩大,使遗传算法更易获得最优解。
[0160]
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述资源调度方法实施例的各个过程,且能
达到相同的技术效果,为避免重复,这里不再赘述。
[0161]
具体的,参见图5所示,本发明实施例还提供了一种电子设备,该电子设备包括总线1110、处理器1120、收发器1130、总线接口1140、存储器1150和用户接口1160。
[0162]
在本发明实施例中,该电子设备还包括:存储在存储器1150上并可在处理器1120上运行的计算机程序,计算机程序被处理器1120执行时实现上述资源调度方法实施例的各个过程。
[0163]
收发器1130,用于在处理器1120的控制下接收和发送数据。
[0164]
本发明实施例中,总线架构(用总线1110来代表),总线1110可以包括任意数量互联的总线和桥,总线1110将包括由处理器1120代表的一个或多个处理器与存储器1150代表的存储器的各种电路连接在一起。
[0165]
总线1110表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、外围总线、加速图形端口(accelerate graphical port,agp)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(industry standard architecture,isa)总线、微通道体系结构(micro channel architecture,mca)总线、扩展isa(enhanced isa,eisa)总线、视频电子标准协会(video electronics standards association,vesa)、外围部件互连(peripheral component interconnect,pci)总线。
[0166]
处理器1120可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)、复杂可编程逻辑器件(complex programmable logic device,cpld)、可编程逻辑阵列(programmable logic array,pla)、微控制单元(microcontroller unit,mcu)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
[0167]
处理器1120可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,ram)、闪存(flash memory)、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0168]
总线1110还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口1140在总线1110和收发器1130之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
[0169]
收发器1130可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器1130从其他设备接收外部数
据,收发器1130用于将处理器1120处理后的数据发送给其他设备。取决于计算机系统的性质,还可以提供用户接口1160,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
[0170]
应理解,在本发明实施例中,存储器1150可进一步包括相对于处理器1120远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网(internet)、公共交换电话网(pstn)、普通老式电话业务网(pots)、蜂窝电话网、无线网络、无线保真(wi-fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(gsm)系统、码分多址(cdma)系统、全球微波互联接入(wimax)系统、通用分组无线业务(gprs)系统、宽带码分多址(wcdma)系统、长期演进(lte)系统、lte频分双工(fdd)系统、lte时分双工(tdd)系统、先进长期演进(lte-a)系统、通用移动通信(umts)系统、增强移动宽带(enhance mobile broadband,embb)系统、海量机器类通信(massive machine type of communication,mmtc)系统、超可靠低时延通信(ultra reliable low latency communications,urllc)系统等。
[0171]
应理解,本发明实施例中的存储器1150可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存(flash memory)。
[0172]
易失性存储器包括:随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如:静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本发明实施例描述的电子设备的存储器1150包括但不限于上述和任意其他适合类型的存储器。
[0173]
在本发明实施例中,存储器1150存储了操作系统1151和应用程序1152的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
[0174]
具体而言,操作系统1151包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1152包含各种应用程序,例如:媒体播放器(media player)、浏览器(browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1152中。应用程序1152包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。
[0175]
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0176]
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保
留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
[0177]
在本技术所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
[0178]
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
[0179]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0180]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
[0181]
在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
[0182]
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存
储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存(flash memory)、光纤、光盘只读存储器(cd-rom)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
[0183]
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(radio frequency,rf)或者以上任意合适的组合。
[0184]
可以以汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:java、smalltalk、c ,还包括常规的过程式程序设计语言,例如:c语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(lan)或广域网(wan),可以连接到用户计算机,也可以连接到外部计算机。
[0185]
本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。
[0186]
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
[0187]
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
[0188]
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
[0189]
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献