CN106250650A - 高通量仿真中模型的资源分配与优化方法 - Google Patents
高通量仿真中模型的资源分配与优化方法 Download PDFInfo
- Publication number
- CN106250650A CN106250650A CN201610669502.2A CN201610669502A CN106250650A CN 106250650 A CN106250650 A CN 106250650A CN 201610669502 A CN201610669502 A CN 201610669502A CN 106250650 A CN106250650 A CN 106250650A
- Authority
- CN
- China
- Prior art keywords
- model
- resource
- fitness
- sequence
- emulation
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Physiology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Genetics & Genomics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种高通量仿真中模型的资源分配与优化方法,涉及计算机仿真技术领域,将仿真模型和仿真资源的高通量属性进行建模并转化为多维约束的遗传算法,并对遗传算法进行改进和扩展,具体步骤如下:S1.输入初始化信息;S2.对解进行编码;S3.通过随机生成的方法生成初始种群,即t=0;S4.通过适应度函数获得每个个体的适应度;S5.进行遗传操作:交叉、变异、选择,通过交叉和变异产生新的解,通过选择保存优秀的解到下一代。与现有技术相比,本发明具有如下有益效果:通过对遗传算法进行改进和扩展使其支持具有仿真特性的仿真模型资源分配和优化。
Description
技术领域
本发明涉及计算机仿真技术领域,具体涉及一种高通量仿真中模型的资源分配与优化方法。
背景技术
随着计算机和信息技术的飞速发展以及计算机仿真技术在航天、航空、制造等领域的不断深入应用,仿真应用的规模不断扩大、处理数据不断增加、性能要求不断提高,使得现有的建模仿真技术很难充分支撑仿真应用的运行。高性能计算和高通量计算是计算科学中使用最多的技术手段,也被认为是解决复杂***仿真应用的最有效技术途径。高性能仿真***往往针对特定的领域和对象,其本质是短时间内的高性能计算服务,仿真过程通常是由很多紧密耦合的并行仿真任务组成,其追求的是仿真的速度。高通量仿真***更侧重长时间并发运行大量耦合性弱的仿真作业,而且***在执行这些仿真作业时往往需要实例化大量复用的仿真模型并处理和分析海量的数据。
目前针对高通量仿真的研究还处于初始阶段,在高通量仿真建模、高通量仿真调用、高通量仿真数据处理等方面都还需要深入研究,充分利用分布式与并行计算机技术来提高仿真应用的并发性、吞吐量、并行性和可靠性。本发明针对高通量仿真中的初始步骤——仿真模型和仿真资源的高通量描述和资源分配进行研究,提出将仿真模型和仿真资源的高通量属性进行建模并转化为多维约束的遗传算法问题,通过对遗传算法进行改进和扩展使其支持具有仿真特性的仿真模型资源分配和优化。
发明内容
本发明的目的在于克服现有技术的缺点,提出一种高通量仿真中模型的资源分配与优化方法,有效的提高仿真运行的效率减少仿真运行时间。
本发明通过如下技术方案实现:一种高通量仿真中模型的资源分配与优化方法,将仿真模型和仿真资源的高通量属性进行建模并转化为多维约束的遗传算法,并对遗传算法进行改进和扩展,具体步骤如下:S1.输入初始化信息,包括终止代数T;S2.对解进行编码;S3.通过随机生成的方法生成初始种群,即t=0;S4.通过适应度函数获得每个个体的适应度;S5.进行遗传操作:交叉、变异、选择、灾变,通过交叉和变异产生新的解,通过选择保存优秀的解到下一代,通过灾变操作避免陷入局部最优解;S6.经历S5后即产生新的种群t,若t>T,则得出最优解,否则t++后返回S3。
作为优选,S2的具体步骤如下:在进行编码之前首先需要根据模型的DAG图计算出每一个模型的高度,再根据每个模型的高度生成一个模型编号的序列;如果模型在同一个括号之中则表示,这个几个模型可以同时执行,括号的先后顺序则是表示后括号里的模型必须在前括号里的模型都运行完了才可以运行;统一括号内的模型编号可以随意交换位置,但括号间的顺序不能交换,资源编号的编码则只需要在1到资源个数NCount中随机生成。
作为优选,S3的具体步骤如下,在生成初始种群时,把高度相同的计算量大的模型分配到计算能力高的资源上;把高度相同的模型分配到不同的资源上;随机分配与优化分配相结合。
作为优选,S3初始化种群的资源步骤如下:按公式计算每个模型的高度,高度相同的模型分为一组,每组模型按计算量进行排序,资源按计算能力从高到低进行排序;每一个资源都有一个标志位flag,还有一个已分配出去的资源的计数器Count,每一组开始分配前flag都为0,分配了模型则flag为1,Count++,Count等于资源数时,flag清零。
作为优选,S4所述的适应度函数通过负载的不平衡量来表示。
作为优选,S5所述的选择改进如下:通过利用适应度比例,精英保留策略和灾变三者相结合的方式,使种群在进化过程中,保持在全局解空间搜索解。
作为优选,S5所述的交叉改进如下:适应度高的个体,等概率的选择模型序列或者资源序列进行交叉操作,适应度低的个体,模型序列和资源序列都进行交叉操作;适应度的判断依据是:两个父个体中适应度较高的个体的适应度大于群体适应度平均值,则认为该组的适应度高,反之,则认为改组的适应度低;编码的模型序列和资源序列使用不同的交叉方法,资源序列使用传统的单点交叉方法,模型序列的交叉方法过程如下:(1)根据每个模型的高度,对模型进行分组;(2)在[1,MCount]中随机生成一个整数Num,判断该整数在哪一个组里,如果Num是第i组的最后一个,则从第i+1组开始交换两个父代的模型序列,如果Num是第i组的第一个或者中间的模型,则从第i组开始交换两个父代的模型序列。
作为优选,S5所述的变异改进如下:适应度高的个体,等概率的选择模型序列或者资源序列进行变异操作,适应度低的个体,模型序列和资源序列都进行变异操作,适应度的判断依据同交叉操作;编码的模型序列和资源序列使用不同的变异方法,资源序列使用传统的基本位变异方法;模型序列的交叉方法过程如下:(1)根据每个模型的高度,对模型进行分组;(2)在[1,MCount]中随机生成一个整数Num,判断该整数在哪一个组里,然后在组内随机选择一个模型与之交换位置。
作为优选,S5所述的灾变操作如下:在初始环境中设置灾变操作发生的代数,在种群进化的过程中,在当前代进化到下一代过程会保留当前代的最优染色体,如果达到发生灾变的代数,就将除当前最优染色体外的其他所有染色体重新编码。
与现有技术相比,本发明具有如下有益效果:本发明根据高通量仿真的需求,运用改进的遗传算法解决高通量仿真中的仿真模型资源分配与优化问题。提出了满足模型依赖关系的高效编码方法和适应度函数,并对初始种群的生成算法、交叉算子、变异算子进行改进,提出了优化的初始种群生成算法、针对新的编码方式的交叉操作、变异操作。同时引入了灾变操作,有效的避免了种群在整个进化过程中陷入到局部解的可能,针对、高通量仿真任务调度的特点和目标,将改进的遗传算法应用于仿真中的任务调度,改进主要包括提出了新的针对任务调度的编码和用***负载不平衡量作为适应度函数。为了提高初始种群的优越性,优化了生成初始种群的算法。为了提高遗传算法的优越性,改进了遗传算子,针对适应度不同的个体采用了不同的遗传操作和交叉、变异概率。通过实验对优化初始种群生成算法和随机生成算法生成的初始种群的最优解的运行时间进行比较,对遗传算法获得的最优分配方案的运行时间和随机分配方案的运行时间也进行了比较,实验结果表明本发明提出基于遗传算法的仿真模型资源分配方法能够有效的提高仿真运行的效率减少仿真运行时间。
附图说明
图1为本发明遗传算法流程图;
图2为本发明初始化随机分布示意图,注:方框表示解空间,黑点表示初始解;
图3为本发明进化完成后解的分布示意图,注:方框表示解空间,黑点表示进化后的解。
具体实施方式
以下结合附图对本发明内容做进一步说明。
1仿真模型***资源按需映射问题建模
1.1仿真模型与***资源按需映射问题分析
仿真模型与***资源的按需映射方面是指仿真应用运行初期的静态资源分配。具体来说就是在仿真运行开始前,在已知各仿真模型的计算量、通信量和各节点的计算能力,存储能力和通信能力的基础上,将一组相关的仿真模型,按照一定的执行时序分配到集群的各个节点上,并确定各节点上模型的运行次序,以提高整个仿真***的吞吐量。这一问题类似于任务调度问题,但又有所不同。在以往的研究中,任务的运行时间是已知的,而且重点考虑任务的计算消耗,在本发明中,由于仿真的特殊性,无法在映射前确定各模型的运行时间,所以本发明的静态调度是在模型运行时间未知的情况下,在考虑模型的计算消耗的基础上增加考虑了模型间的通信消耗。以下是仿真模型资源映射问题的前提假设:
(1)集群中的各节点异构,各节点拥有不同的计算能力,存储能力,即同一模型在不同节点上运行,所需时间可能不同;
(2)各节点全连接,且通信能力相同,为一个定值;
(3)模型数量比节点数量要多得多,如果模型数小于节点数的话,只需按模型计算量大小依次分配给不同计算能力的节点就可以了;
(4)每个模型在各节点上的运行时间是未知的;
(5)已知模型的计算消耗和通信消耗;
(6)同一个节点上的仿真模型间的通信代价为0;
(7)已知模型间的约束关系,即模型的运行必须遵循一定的先后顺序。
由以上的问题定义可以看出,该问题实际上是将具有多种资源需求的仿真模型以最优化的方法映射到提供不同***资源的仿真节点上,是一个多维约束下的组合最优化问题。
遗传算法是解决多维约束下的最优化问题的一个有效算法,与其他最优化算法相比,遗传算法处于随机方法与启发式方法之间,是一种概率搜索算法,非常适于解决大规模的优化问题。传统的启发式搜索算法多数是单点搜索算法,即通过一些变动规则,问题的解从搜索空间中的当前解(点)移到另一解(点)。这种点对点的搜索方法,对于多峰分布的搜索空间常常会陷于局部的某个单峰的优解。相反,遗传算法采用同时处理群体中多个个体的方法,即同时对搜索空间中的多个解进行评估。这一特点使遗传算法具一有较好的全局搜索性能,减少了陷入局部优解的风险。
所以本发明选用遗传算法来解决模型资源映射问题,
同时本发明根据多约束条件下的仿真模型与***资源按需映射问题的特点对算法进行改进。
遗传算法的改进策略总结如下:
(1)优化遗传算法的各步骤;
(2)引入灾变策略,在算法进化过程中,比传统的遗传算法,以及自适应的遗传操作算法有更优的效果;
(3)与其他算法结合,通过其他算法的优势弥补遗传算法中的缺陷;
(4)采用并行遗传算法。
1.2仿真模型资源需求表示
仿真模型用DAG图Model=(M,E)来反映模型之间的优先约束关系,并用二维矩阵Comp[MCount,NCount]表示各模型的在不同节点上的计算量,Comm[MCount,MCount]表示每一个模型与哪些模型通信,以及期待的带宽,其中:M={Mi|i∈MCount}:表示节点的集合,每个节点代表一个模型。MCount为模型个数。其中Mi={i,Pre(Mi),Suf(Mi),H(Mi)}。
i:表示模型编号;
Pre(Mi):表示模型Mi的直接前驱的集合;
Suf(Mi):表示模型Mi的直接后继的集合;
H(Mi):表示模型在DAG中的高度,反映模型在调度中优先级。计算模型在DAG图的高度的思路如下:没有直接前驱节节点的模型的高度为0,否则,该模型的高度为其直接前驱节点集合中高度最大的节点的高度加一。公式如下:
E={Ei(Mi,Mj)i∈MCount,j∈MCount}:表示边的集合,反映模型运行时的必须遵循的先后顺序。
Ei(Mi,Mj):表示E中的一条边,反映必须先运行Mi,在Mi完成后Mj才可以运行,对于存在这样关系的模型,称模型Mi是模型Mj的直接前驱,模型Mj是模型Mi的直接后继。
Comp[MCount,NCount]:表示模型的计算消耗,MCount为模型个数,NCount为节点个数,Comp[i,j]:表示第j个模型在第i个节点上运行完成需要的计算量。
Comm[MCount,MCount]表示模型间的通信开销,Comm[i,j]表示模型i与模型j之间通信所期待的的带宽,如果为0则表示模型i与模型j之间不通信。
1.3***资源表示
本来考虑的***资源是全连通的异构资源,且各资源之间的实际带宽相同。该***可以用DAG图来表示Resources=(R,E,BW),记录了资源的计算能力和节点间的通信能力。其中:
R={Ri|i∈NCount}:表示节点的集合,每个节点代表一个资源。NCount为资源个数,Ri={i,W(Ri)}。i:表示资源编号,W(Ri):表示资源Ri的计算能力。
E={Ei(Ri,Rj)|i∈NCount,j∈Ncount}:表示边的集合,反映资源连通。
BW:表示资源间的实际带宽。
2基于遗传算法的模型与资源映射方法
2.1遗传算法基本流程
根据达尔文的自然选择学说,在自然界中适者生存,经过一代代的遗传、变异和优胜劣汰,最终存活下来的都是适应环境的强者。遗传算法就是借鉴了这一规律。将遗传算法对应到搜索最优解的问题中,首先需要对解进行编码,每一个解的编码就相当于个体的染色体,确定了对解的编码方式后,通过随机生成的方法生成初始种群,并通过适应度函数获得每个个体的适应度,然后进行遗传操作:交叉、变异、选择,通过“交叉”“变异”产生新的解,通过“选择”保存优秀的解到下一代,淘汰不好的解。这一步骤相当于生物界通过繁殖和基因突变产生新的个体,并进行优胜劣汰。这样经过若干次迭代之后,算法收敛于最好的染色体,它可能就是问题的最优解或次优解。因此,使用遗传算法解决仿真模型与资源的按需映射问题,主要需要完成:相关参数确定、解的编码、生成初始群体、确定适应度函数、遗传操作等。
2.2满足模型依赖关系的高效编码方法
模型资源的映射不仅需要考虑模型的计算量,模型间的通信量,资源的计算能力,确定哪些模型适合分成一组并将其分配到合适的资源上,还需要考虑模型之间的约束关系,确定同一资源上模型的运行顺序。所以模型资源的映射实际上可分为两步,第一步是确定每个资源上分配哪几个模型,第二步是确定资源上模型的运行顺序。把第一步称为模型的分配,第二步称为模型的调度。所以生成的解的编码,也要同时体现这两步。通过对模型资源映射和对遗传编码相关知识的分析,本发明采用二维的浮点数编码。具体编码方式如下,假设有9个模型,3个资源:
编码如下:
1 2 3 7 4 5 6 8 9
1 2 1 1 3 2 2 1 3
编码的表示意义为:
Model(M1,M2)(M3,M7)(M4,M5)(M6,M8)(M9)
Resource R1 R2 R1 R1 R3 R2 R2 R1 R3
本发明解的编码是一个二维数组,两个维度的长度都是MCount(模型个数)。第一维每一个基因位上的值表示模型的编号,第二维每一个基因位上的值表示资源编号,表示第一维同一基因位上的模型被分配在这个资源上运行。在进行编码之前首先需要根据上文提到的模型的DAG图计算出每一个模型的高度,再根据每个模型的高度生成一个模型编号的序列:(M1,M2)(M3,M7)(M4,M5)(M6,M8)(M10)。如果模型在同一个括号之中则表示,这个几个模型可以同时执行。括号的先后顺序则是表示后括号里的模型必须在前括号里的模型都运行完了才可以运行。所以在生成模型编号的编码时,需要根据上述序列生成。统一括号内的模型编号可以随意交换位置,但括号间的顺序不能交换。资源编号的编码则只需要在1到NCount(资源个数)中随机生成。
根据以上的编码,解码可得:
R1:M1,M3,M7,M8
R2:M2,M5,M6
R3:M4,M9
由此可知,该编码方法既确定了把哪些模型分配到哪一个的资源上,又确定了每一个资源上模型的运行顺序,而且可以保证生成的每一个模型上的运行顺序是有效的,相较于每次都随机生成一个资源序列再判断是否符合模型间的约束顺序这样的编码方式要高效很多。
2.3初始种群生成算法
本发明在生成初始种群的时候,并不是完全的随机的,除了像上面2.2提出的考虑了模型间的依赖关系,还希望通过优化操作生成较好的初始种群,从而减少遗传算法的进化时间。虽然增加的优化操作会增加生成初始种群的时间,但由于生成初始种群仅在遗传算法的最开始执行一次,且相对于之后的整个遗传算法所消耗的时间,生成初始种群的时间是可以忽略不计。从下面三个方面进行了优化:
1.在生成初始种群时,尽量把高度相同的计算量大的模型分配到计算能力高的资源上。这一做法充分利用了异构资源具有不同的计算能力的特点,使得计算量大的模型可以尽快运行完,增加了仿真的吞吐率。
2.在生成初始种群时,尽量把高度相同的模型分配到不同的资源上,以此实现最大的并行化,使得独立的模型可以并行运行,后继模型可以较早的开始执行,增加了仿真的吞吐率,缩短了仿真时间。
3.在生成初始种群时,随机分配与优化分配相结合。如果完全按照1、2的策略来分配模型,可能会造成各资源负载不平衡和种群缺少多样性。所以按一定概率的随机分配模型。
初始种群的模型步骤如下:
初始化种群的资源步骤如下:
1.按公式计算每个模型的高度,高度相同的模型分为一组,每组模型按计算量进行排序,资源按计算能力从高到低进行排序。
2.每一个资源都有一个标志位flag,还有一个已分配出去的资源的计数器Count,每一组开始分配前flag都为0,分配了模型则flag为1,Count++,Count等于资源数时,flag清零。
2.4适应度函数
在遗传算法的进化中,基本不利用其他外部信息,一般只以适度函数为依据,对个体的优劣程度进行评价。所以,适应度函数非常重要,直接影响到遗传算法的收敛速度和能否找到最优解。适应度函数一般由目标函数转化而来,适应度函数的增加方向应该和目标函数的寻优方向一致。为了方便理论分析,一般需要确保适应度函数非负。
现有的将遗传算法应用于任务调度的论文的适应度函数一般都由完成所有任务所需的运行时间来表示,任务的完成时间,即从第一个任务开始运行到最后一个模型运行完毕所经历的时间,运行时间越短就说明调度策略越好。完成时间在调度问题是最为主要和最能体现调度性能的目标。这样的适应度函数是建立在已知每个任务在各资源上的运行时间的基础上的,但是由于本发明是仿真模型与资源的映射,在映射之前并不知道每个模型在各资源上的运行时间,所以并不能直接用运行时间来表示适应度函数。
本发明准备根据仿真模型与资源映射的目标来确定适应度函数。模型资源映射的目标是将模型分配到具有相匹配的处理能力的资源上,同时保证资源之间通信开销最小和仿真***的吞吐率高。
根据模型资源映射目标和在已知模型在各资源上的计算量,模型间的通信量的基础上,本发明决定用负载不平衡量来表示适应度函数。负载平衡技术是考虑异构的分布式***中资源计算性能、通讯性能等参数从而保证所有节点高效运行的有效手段。尽量保证各资源的负载平衡,才能更快地推进仿真时钟,加快仿真进程。所以用负载的不平衡量来表示适应度函数非常合适。
Li=A×CompLoadi+B×CommLoadi (2.4)
其中F表示个体的适应值,NCount表示资源数,L表示整个仿真***的不平衡量,Li表示资源i的负载量,表示平均负载,CompLoadi表示资源i的计算负载,CommLoadi表示资源i的通信负载,Taski表示资源i上的模型数,Compj表示资源i上第j个模型的计算量,Commj表示资源i上第j个模型的通信量,commj表示模型j的通信量,如果相互通信的模型在同一资源上,则两者之间的通信开销可以忽略不计,所以我们希望在考虑资源计算能力的同时,尽量将通信量大的模型分在一个资源上,以减少通信开销。公式(2.1)即为本发明的适应度函数,本发明认为负载不平衡量越小,负载越平衡,则***的仿真吞吐率越高。由于不平衡量越小则适应度越好,为了便于之后的判断处理,我们用负载不平衡量的倒数表示适应度函数,这样一来就是适应度函值越大则表示该个体适应度越好。
2.5改进的选择算子
选择操作的作用是根据个体的适应值选择优秀的个体直接复制到下一代或是通过交叉操作产生新的个体遗传到下一代,淘汰劣质的个体。适应度比例方法是目前遗传算法中最基本也是最常用的选择方法。在该方法中,各个个体的被选择的概率和其适应度值成比例。
设群体大小为M,其中个体的适应度值为,则第i个被选择的概率为:
众所周知,遗传操作包含交叉、变异、选择操作,默认情况下,每一代随机选择的染色体都会参与到遗传操作中,这时可能会存在一个严重的问题:假设种群进化代数被设置为N,当种群进化到第k代时(k<N),产生最佳适应度的解,如果不加以控制,最优解有很大几率进化到k+1代,而后继续参与遗传操作,那么在k+1代,最优染色体与其他染色体发生交叉操作时产生的新个体很可能不具有最佳适应度,简单地说,由第k代进化到第k+1代的过程中,最优解被破坏了。
为了解决这个问题,引入了“精英保留”策略。所谓“精英保留”就是在完成整个遗传操作的过程中,***始终会保留拥有最佳适应度的染色体,在每一代进化完成后,***会替换当前这一代中拥有最低适应度的染色体,这样做最直接的目的就是使种群在进化过程中,染色体的适应度在不断接近最佳化。
从理论上讲,引入“精英保留”策略和适应度比例相结合的方法对每一代染色体进行选择操作,会使个体的适应度不断提高,更快的趋近于最优解。
而实际操作中,又会发现新的问题,在遗传操作过程中,如果产生了一个适应度较大的染色体(但它并不是最优解),而且通过一定代进化,并没有产生新的比它适应度更大的染色体,那么种群中大部分染色体很可能已经被此染色体替代,这时就产生了一个非常严重的问题,即陷入了局部最优解。
为了避免陷入局部最优解,引入了一个新的概念“灾变”,在遗传操作中,通过偶尔发生的“灾变”,会将已经陷入或即将陷入局部最优解的个体替换掉,产生新的个体,保持种群中染色体是中全局解空间中进化。
通过利用适应度比例,“精英保留”策略和“灾变”三者相结合的方式,会使种群在进化过程中,保持在全局解空间搜索解,有效避免了陷入局部最优解。
2.6改进的交叉算子
交叉操作是遗传算法中产生新个体的主要手段,种群通过交叉产生新的个体,以此扩展解的搜索空间,达到全局搜索的目的。交叉操作模型自然界繁殖的基因重组过程,种群通过交叉操作产生包含优良基因的新个体,再通过选择操作将优良个体保留下来。
本发明拟采用单点交叉方法。考虑“适应度高于群体平均值的个体应该对较低的交叉概率,以使优秀的个体进入下一代的机会增大”的思想和考虑模型运行顺序的约束,对单点交叉方法从以下几个方面做了优化:
1.适应度高的个体,等概率的选择模型序列或者资源序列进行交叉操作,适应度低的个体,模型序列和资源序列都进行交叉操作。适应度的判断依据是:两个父个体中适应度较高的个体的适应度大于群体适应度平均值,则认为该组的适应度高。反之,则认为改组的适应度低。
2.编码的模型序列和资源序列使用不同的交叉方法。资源序列使用传统的单点交叉方法。传统的单点交叉方法,都是随机选择一个交叉点,然后按照一定概率交换两个父个体交叉点之后的基因值。这一方法对于资源序列是适用的,但是由于模型序列有一定的先后次序,如果按传统的方法随机选点交换可能会产生无用的编码。模型序列的交叉方法过程如下:
(1)根据每个模型的高度,对模型进行分组。
(2)在[1,MCount]中随机生成一个整数Num,判断该整数在哪一个组里,如果Num是第i组的最后一个,则从第i+1组开始交换两个父代的模型序列,如果Num是第i组的第一个或者中间的模型,则从第i组开始交换两个父代的模型序列。
这一方面既实现了基因的重组,又保证了生成的模型序列都是有效的。
交叉算子算法如下:
2.7改进的变异算子
变异操作是遗传算法产生新个体的另一个方法,具体来说就是改变个体的某些基因位上的值。变异操作模仿了自然界的基因突变,它可以为种群提供新的基因,有时可以找回选择过程中丢失的基因,保持种群的多样性,防止出现过早收敛的现象。
本发明拟采用基本位变异方法,同交叉操作一样,考虑“适应度高于群体平均值的个体应该对较低的交叉概率,以使优秀的个体进入下一代的机会增大”的思想和考虑模型运行顺序的约束,对基本位变异方法从以下几个方面做了优化。
1.适应度高的个体,等概率的选择模型序列或者资源序列进行变异操作,适应度低的个体,模型序列和资源序列都进行变异操作。适应度的判断依据同交叉操作。
2.编码的模型序列和资源序列使用不同的变异方法。资源序列使用传统的基本位变异方法。传统的基本位变异法,都是随机选择一个变异点,然后按照一定概率改变该点的基因值。这一方法对于资源序列是适用的,但是由于模型序列有一定的先后次序,如果按传统的方法随机生成一个模型编号,可能会生成无用的模型序列。模型序列的交叉方法过程如下:
(1)根据每个模型的高度,对模型进行分组。
(2)在[1,MCount]中随机生成一个整数Num,判断该整数在哪一个组里,然后在组内随机选择一个模型与之交换位置。
变异算子算法如下:
2.8遗传算法灾变进化
一般来说,遗传过程包括交叉、变异、选择,通过一定进化代数,会寻找到最优解或次优解。但实际操作过程中,如果解的空间(也就是染色体的取值范围)非常大,那么在初始化种群时,染色体的随机取值很可能仅仅是全局解的某一部分(如图2),以这样的初始化染色体进行遗传操作,在进行N代遗传操作后,很可能产生的最优解或次优解仍然集中在全局解的某一个部分(如图3),这样产生的解也就是局部最优解,而这一遗传操作的过程被称为陷入了局部最优解的操作过程。最终得到的解并不是想要的。
2.8.1灾变
“灾变”是一个地质学理论,根据灾变论的观点,地球上的绝大多数变化是突然、迅速和灾难性地发生的。在整个地质发展过程中,地球经常发生各种突如其来的灾害性变化,并且有的灾害是具有很大规模的。例如,海洋干涸成陆地,陆地又***山脉,还有火山爆发、洪水泛滥、气候急剧变化等。当发生这些毁灭性灾变时,许多生物遭到灭顶之灾,但也不乏可能会有个别生物被保存下来,这样的生物通常具有很强的适应能力。而这对于遗传算法有很大的启发:在获得某个最优解后,除了最优解保留下来,其他个体重新随机产生,进入下一阶段的进化,这样做,使得在较小的群体规模下获得较大规模的多样性,则易于摆脱原先的局部最优解,因为现在的候选解往往不再局限于以前的某个角落了。
2.8.2遗传操作结合灾变
将“灾变”理论结合到具体的遗传算法中,有多种的实现方式,比如应用于非线性控制***中的应用,其主要做法是当实施“灾变”时,突然增大变异概率。在本发明中,则利用了更符合生物进化史的灾变方式,算法流程如下:
3.总结:通过实验对优化初始种群生成算法和随机生成算法生成的初始种群的最优解的运行时间进行比较,对遗传算法获得的最优分配方案的运行时间和随机分配方案的运行时间也进行了比较,实验结果表明本文提出基于遗传算法的仿真模型资源分配方法能够有效的提高仿真运行的效率减少仿真运行时间。
Claims (8)
1.一种高通量仿真中模型的资源分配与优化方法,其特征在于,将仿真模型和仿真资源的高通量属性进行建模并转化为多维约束的遗传算法,并对遗传算法进行改进和扩展,具体步骤如下:S1.输入初始化信息,包括终止代数T;S2.对解进行编码;S3.通过随机生成的方法生成初始种群,即t=0;S4.通过适应度函数获得每个个体的适应度;S5.进行遗传操作:交叉、变异、选择、灾变,通过交叉和变异产生新的解,通过选择保存优秀的解到下一代,通过灾变操作避免陷入局部最优解;S6.经历S5后即产生新的种群t,若t>T,则得出最优解,否则t++后返回S3。
2.根据权利要求1所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S2的具体步骤如下:在进行编码之前首先需要根据模型的DAG图计算出每一个模型的高度,再根据每个模型的高度生成一个模型编号的序列;如果模型在同一个括号之中则表示,这个几个模型可以同时执行,括号的先后顺序则是表示后括号里的模型必须在前括号里的模型都运行完了才可以运行;统一括号内的模型编号可以随意交换位置,但括号间的顺序不能交换,资源编号的编码则只需要在1到资源个数NCount中随机生成。
3.根据权利要求1或2所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S3的具体步骤如下,在生成初始种群时,把高度相同的计算量大的模型分配到计算能力高的资源上;把高度相同的模型分配到不同的资源上;随机分配与优化分配相结合。
4.根据权利要求3所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S3初始化种群的资源步骤如下:按公式计算每个模型的高度,高度相同的模型分为一组,每组模型按计算量进行排序,资源按计算能力从高到低进行排序;每一个资源都有一个标志位flag,还有一个已分配出去的资源的计数器Count,每一组开始分配前flag都为0,分配了模型则flag为1,Count++,Count等于资源数时,flag清零。
5.根据权利要求3所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S4所述的适应度函数通过负载的不平衡量来表示。
6.根据权利要求5所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S5所述的选择改进如下:通过利用适应度比例,精英保留策略和灾变三者相结合的方式,使种群在进化过程中,保持在全局解空间搜索解。
7.根据权利要求6所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S5所述的交叉改进如下:适应度高的个体,等概率的选择模型序列或者资源序列进行交叉操作,适应度低的个体,模型序列和资源序列都进行交叉操作;适应度的判断依据是:两个父个体中适应度较高的个体的适应度大于群体适应度平均值,则认为该组的适应度高,反之,则认为改组的适应度低;编码的模型序列和资源序列使用不同的交叉方法,资源序列使用传统的单点交叉方法,模型序列的交叉方法过程如下:(1)根据每个模型的高度,对模型进行分组;(2)在[1,MCount]中随机生成一个整数Num,判断该整数在哪一个组里,如果Num是第i组的最后一个,则从第i+1组开始交换两个父代的模型序列,如果Num是第i组的第一个或者中间的模型,则从第i组开始交换两个父代的模型序列。
8.根据权利要求7所述的一种高通量仿真中模型的资源分配与优化方法,其特征在于,S5所述的变异改进如下:适应度高的个体,等概率的选择模型序列或者资源序列进行变异操作,适应度低的个体,模型序列和资源序列都进行变异操作,适应度的判断依据同交叉操作;编码的模型序列和资源序列使用不同的变异方法,资源序列使用传统的基本位变异方法;模型序列的交叉方法过程如下:(1)根据每个模型的高度,对模型进行分组;(2)在[1,MCount]中随机生成一个整数Num,判断该整数在哪一个组里,然后在组内随机选择一个模型与之交换位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610669502.2A CN106250650A (zh) | 2016-08-15 | 2016-08-15 | 高通量仿真中模型的资源分配与优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610669502.2A CN106250650A (zh) | 2016-08-15 | 2016-08-15 | 高通量仿真中模型的资源分配与优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250650A true CN106250650A (zh) | 2016-12-21 |
Family
ID=57592701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610669502.2A Pending CN106250650A (zh) | 2016-08-15 | 2016-08-15 | 高通量仿真中模型的资源分配与优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250650A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526639A (zh) * | 2017-08-16 | 2017-12-29 | 杭州朗和科技有限公司 | 资源编排的方法、介质、装置和计算设备 |
CN107679282A (zh) * | 2017-09-05 | 2018-02-09 | 珠海博雅科技有限公司 | 电荷泵的仿真方法及仿真装置 |
CN110851277A (zh) * | 2019-11-08 | 2020-02-28 | 中国石油大学(华东) | 一种增强现实场景下基于边云协同的任务调度策略 |
CN110851257A (zh) * | 2019-11-07 | 2020-02-28 | 中国石油大学(华东) | 一种基于前期灾变策略的遗传与差分混合进化云计算任务调度算法 |
CN111126800A (zh) * | 2019-12-10 | 2020-05-08 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
CN111382540A (zh) * | 2018-12-26 | 2020-07-07 | 富士通株式会社 | 优化计算方法和信息处理装置 |
CN111445079A (zh) * | 2020-03-31 | 2020-07-24 | 华中科技大学 | 一种应用于车间计划投产的多保真仿真优化方法及设备 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112463629A (zh) * | 2020-12-11 | 2021-03-09 | 北京航空航天大学 | 一种基于遗传进化的自主无人***软件配置项调整方法 |
CN112785407A (zh) * | 2021-02-10 | 2021-05-11 | 中国工商银行股份有限公司 | 一种基于多种群遗传算法的网点分配比例寻优方法及装置 |
-
2016
- 2016-08-15 CN CN201610669502.2A patent/CN106250650A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526639A (zh) * | 2017-08-16 | 2017-12-29 | 杭州朗和科技有限公司 | 资源编排的方法、介质、装置和计算设备 |
CN107679282A (zh) * | 2017-09-05 | 2018-02-09 | 珠海博雅科技有限公司 | 电荷泵的仿真方法及仿真装置 |
CN111382540A (zh) * | 2018-12-26 | 2020-07-07 | 富士通株式会社 | 优化计算方法和信息处理装置 |
CN110851257A (zh) * | 2019-11-07 | 2020-02-28 | 中国石油大学(华东) | 一种基于前期灾变策略的遗传与差分混合进化云计算任务调度算法 |
CN110851277A (zh) * | 2019-11-08 | 2020-02-28 | 中国石油大学(华东) | 一种增强现实场景下基于边云协同的任务调度策略 |
CN111126800B (zh) * | 2019-12-10 | 2022-07-22 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
CN111126800A (zh) * | 2019-12-10 | 2020-05-08 | 浙江工业大学 | 使用分层自适应智能算法的多模资源受限项目调度方法 |
CN111445079A (zh) * | 2020-03-31 | 2020-07-24 | 华中科技大学 | 一种应用于车间计划投产的多保真仿真优化方法及设备 |
CN111445079B (zh) * | 2020-03-31 | 2022-07-05 | 华中科技大学 | 一种应用于车间计划投产的多保真仿真优化方法及设备 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112463629A (zh) * | 2020-12-11 | 2021-03-09 | 北京航空航天大学 | 一种基于遗传进化的自主无人***软件配置项调整方法 |
CN112463629B (zh) * | 2020-12-11 | 2022-03-29 | 北京航空航天大学 | 一种基于遗传进化的自主无人***软件配置项调整方法 |
CN112785407A (zh) * | 2021-02-10 | 2021-05-11 | 中国工商银行股份有限公司 | 一种基于多种群遗传算法的网点分配比例寻优方法及装置 |
CN112785407B (zh) * | 2021-02-10 | 2024-02-06 | 中国工商银行股份有限公司 | 一种基于多种群遗传算法的网点分配比例寻优方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250650A (zh) | 高通量仿真中模型的资源分配与优化方法 | |
CN108776612A (zh) | 一种云计算任务分配方法、装置、设备及存储介质 | |
Nguyen et al. | Learning iterative dispatching rules for job shop scheduling with genetic programming | |
US7593905B2 (en) | Method of combinatorial multimodal optimisation | |
CN101667972B (zh) | 电力通信网络业务路由方法及设备 | |
CN105975342A (zh) | 基于改进布谷鸟搜索算法的云计算任务调度方法及*** | |
CN107798423A (zh) | 基于多种智能算法的车辆路径规划仿真实验平台 | |
CN104516785B (zh) | 一种云计算资源调度***及方法 | |
CN106503333B (zh) | 一种三维片上网络测试规划方法 | |
CN103345657A (zh) | 云计算环境下基于遗传和蚁群的任务调度方法 | |
CN112013829A (zh) | 基于多目标优化的多uav/ugv协同长时作业路径规划方法 | |
CN109542619A (zh) | 一种面向云计算中心的高效负载均衡优化调度方法 | |
CN106228265A (zh) | 基于改进粒子群优化的总拖期运输计划调度算法 | |
CN102788581A (zh) | 一种基于改进的微分进化算法的船舶航路规划方法 | |
CN111664852A (zh) | 一种无人机路径规划方法及装置 | |
Jiang et al. | An improved reinforcement-immune algorithm for agricultural resource allocation optimization | |
CN110473591A (zh) | 基于量子计算的基因网络功能模块挖掘及分析方法 | |
CN105512755A (zh) | 一种基于分解的多目标分布估计优化方法 | |
CN110132296A (zh) | 基于溶解势场的多智能体子目标划分路径规划方法及*** | |
Xu et al. | A discrete teaching–learning based optimization algorithm with local search for rescue task allocation and scheduling | |
CN111414961A (zh) | 一种基于任务并行的细粒度分布式深度森林训练方法 | |
CN104392317A (zh) | 一种基于遗传文化基因算法的项目调度方法 | |
CN110689174A (zh) | 基于公共交通的人员路线规划方法及装置 | |
CN104899101A (zh) | 基于多目标差异演化算法的软件测试资源动态分配方法 | |
CN107329826A (zh) | 一种基于Cloudsim平台上的启发式融合资源动态调度算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |
|
RJ01 | Rejection of invention patent application after publication |