CN109885401B - 基于lpt局部优化的结构化网格负载平衡方法 - Google Patents
基于lpt局部优化的结构化网格负载平衡方法 Download PDFInfo
- Publication number
- CN109885401B CN109885401B CN201910076849.XA CN201910076849A CN109885401B CN 109885401 B CN109885401 B CN 109885401B CN 201910076849 A CN201910076849 A CN 201910076849A CN 109885401 B CN109885401 B CN 109885401B
- Authority
- CN
- China
- Prior art keywords
- chromosome
- genes
- lptsize
- popnum
- population
- 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.)
- Active
Links
Images
Landscapes
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开了一种基于LPT局部优化的结构化网格负载平衡方法,目的是解决现有负载平衡方法的缺点,提高负载平衡率和计算速度。技术方案是总体基于遗传算法,包括参数配置、初始化种群、适应度计算、采用LPT方法对每条染色体中片段值最大的LPTSize/2个染色体片段和最小的LPTSize/2个染色体片段进行局部优化、条件判断、更新判断、种群更新、选择算子、交叉算子、变异算子、输出最好的负载平衡模式共十一步。本发明对每条染色体中染色体片段值最大和最小的若干染色体片段进行了局部优化,提升了整个染色体的适应度,且由于进行了种群更新,使得种群不容易早熟导致程序过早终止,而能得到全局较优解,使得整个结构化网格并行计算负载平衡率得以提升。
Description
技术领域
本发明涉及提高结构化网格并行计算时的负载平衡方法,尤指基于遗传算法和LPT(Largest Processing Time,最大处理时间)局部优化的并行负载平衡方法。
背景技术
计算已经与理论和实验相并列成为人类认识世界三种主要研究手段,主要用来解决不可能进行实验的问题或者进行实验代价太大的问题。近几十年以来,随着对物理规律认识的深入和工程应用的需要,工程计算已发展成为一门专门学科,在航空航天、汽车、环境工程、材料、物理学和船舶等方面得到广泛应用。工程计算过程主要是对网格上的特征量进行迭代计算,网格数目与计算量直接相关。当网格数目多时整个计算量非常大,往往需要在高性能计算机进行大规模并行计算。
良好的负载平衡是达到高并行效率的基础。结构化网格工程常用的并行计算技术一般基于分区并行,分区并行的数学基础是区域分解算法。区域分解算法将问题的求解区域划分成多个子区域,这些子区域相互包含相邻区域的拟边界信息,相互迭代共同求解同一问题。并行计算与区域分解算法相结合,将各个网格块分配给多个处理器核完成,迭代过程中一般采用MPI(Message Passing Interface)消息传递接口在不同处理器核之间进行通信。由于分区并行的网格块一般比较大,计算通信比高,影响并行效率的决定性因素是负载平衡。由于数值离散迭代求解的特点,一次迭代的计算量与网格量成正比。实际工程设计中外形各异,根据计算模型几何上的特性进行分区,整个网格会事先分割成大小不同的很多个网格块。负载平衡的核心思想是把全部网格块映射到各个进程上,在进程数确定的情况下尽可能使总计算时间少。
结构化网格并行计算时,可以近似认为迭代求解过程中的计算量正比于网格量。在高性能计算机***进行并行计算时,实际应用中一般采用同构***,即各个计算节点/核的计算能力是一样的。各个进程的每次迭代的计算时间由其所负责的网格数目总和决定是合理的。在不考虑通信的前提下,结构化网格并行计算时间由网格数目总和最大的进程决定。
结构化网格工程并行计算负载平衡主要可以分成不带剖分和带剖分两种方式。带剖分方法指通过在其他方法的基础上,对生成的网格块进行进一步剖分来达到负载平衡。带剖分方法存在三个缺点:
(1)过细的分块会导致额外的通讯开销大量增加而降低并行计算效率。
(2)过多的子区域(分块)会增加迭代求解次数,影响计算效率,这是由区域分解算法本身的特性决定的。
(3)工程计算不仅是一门科学,也是一门艺术,不但与数值计算方法相关,也与网格相关,不适当的分块有可能导致计算发散。
不带剖分方法指网格分块确定的情况下,采用确定性或者智能优化算法来达到负载平衡。不带剖分方法能够避免带剖分方法存在的缺点,但是有时候会存在负载平衡率低和计算效率低的缺点。
对于结构化网格并行计算不带剖分方法的负载平衡算法研究主要集中在以下三个方面:
(1)确定性方法,主要指基于组合优化排和排序理论设计了LPT(LargestProcessing Time)近似负载平衡算法。
(2)智能优化算法,主要指基于全局优化的遗传算法等算法设计的智能优化负载平衡算法。
(3)混合算法,主要指结合确定性方法和智能优化算法的负载平衡算法,包括二步。第一步使用确定性方法得到初步解,第二步在此基础上使用智能优化算法力图得到负载平衡率更高的网格块分配方法。
基于遗传算法的结构化网格负载平衡方法是智能优化算法的一种。
结构化网格并行负载平衡问题模型可以定义如下:
网格块集合E={E1,…,Ek,…,EN},E中有N个元素,第k个元素为网格数目为Ek的网格块,1≤k≤N且N为正整数;Ek为正整数,表示网格数目为Ek的第k个网格块;网格数目越多,计算量越大,计算时间越长。网格块用一个正整数来表示,这个正整数表示该网格块中的网格数目。如E={200,500,1234,200,1008,4000}表示一个包含6个网格块的网格块集合,这6个网格块的网格数目分别为200、500、1234、200、1008、4000。
设Pm要处理G(0≤G≤N)个网格块的计算任务,Pm={Ei1,Ei2,…,EiG},Ei1,Ei2,…,Eim,…,EiG均∈E,且Pi∩Pj=Φ,i≠j,且1≤i,j≤M,P1∪P2∪…∪PM=E。表示P中的每个进程处理不同的网格块,且M个进程应处理完集合E。
组合优化排序理论中的LPT(Largest Processing Time)近似算法用于负载平衡问题设计算法如下:
(1)将N块网格按网格数量不增,则得到链表(A1,…,Ai,…,AN),其中1<=i<=N。
(2)由n=1开始,将第n个网格划分给当前网格总数为Bj最小的进程,更新其网格总数。若存在多个相同最小总数的数组,则任意分配给某个进程即可。依次处理直到所有网格块被分配完毕。
LPT属于确定性贪婪算法的一种,唐逸豪等设计并实现了基于LPT近似算法的CFD并行计算网格分配算法,但是目前没有将LPT与遗传算法相结合的负载平衡方法。
遗传算法是一种模拟自然界优胜劣汰的进化算法,具有较高的全局搜索能力。结构化网格并行负载平衡中的遗传算法中染色体采用二级编码。
基因定义为E中一个网格块。基因值为该网格块的网格数目,为正整数,为E1到EN中的一个值。所以共有N个基因。
染色体片段定义为P中单个进程处理的所有网格块的集合,所以共有M个染色体片段。染色体片段值定义为染色体片段中对应基因代表的网格块的网格数目之和,为非负整数。如染色体片段{E1,E2,E3}的染色体片段值为E1+E2+E3。
染色体定义为染色体片段的集合,每一条染色体代表一种负载平衡分配方案,即为网格块分配到进程的一种分配方案。每一条染色体包含M个染色体片段,每个染色体片段包含若干个网格块(基因)。染色体片段的长度即为所包含的基因的个数。如10个网格块{E1,E2,…,E10}、3个进程,进程序号为第1、第2、第3,一条染色体可以表示为{{E1,E2,E3},{E4,E5,E6,E7},{E8,E9,E10}},就表示一种负载平衡模式。{E1,E2,E3}为一个染色体片段,长度为3。E1,E2,…,E10为基因。1-3个网格块分配给第1个进程,4-7个网格块分配给第2个进程,8-10个网格块分配给第3个进程。
种群定义为染色体的集合,即一个种群包含正整数条染色体。种群大小popNum为种群中染色体的数目。
种群大小popNum为种群中染色体的数目,表示有popNum个负载平衡策略。一个染色体中有N个基因,M个染色体片段,表示有N个网格块,M个进程。一个染色体代表一个把N个网格块分配给M个进程的策略。
适应度函数F定义如下:
F=1/max{|P1|,…,|Pm|,…,|PM|} (1)
max{|P1|,…,|Pm|,…,|PM|}表示对|P1|,…,|Pm|,…,|PM|取最大值。对于任何一个负载平衡分配方案,F值越大表示负载平衡方案越好。
全局最优染色体(bestPop)表示种群中适应度值最大的染色体(也即最好的负载平衡模式)。
输入文件为包含所有网格块的文件。这里,文件中的一个正整数表示一个网格数目为该正整数的网格块。
基于遗传算法的结构化网格负载平衡方法(简称背景技术1)总体流程如图1所示,包括参数配置、初始化种群、适应度计算、条件判断、选择算子、交叉算子、变异算子和结果输出8个步骤。具体步骤如下:
第一步,参数配置。从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari这些参数。ε可取0.1、0.01或者0.01。popNum可取基因数的10-100倍,IteMax可取基因数的5倍。交叉概率Pcross、变异概率Pvari为0到1之间的实数,Pcross可取0.8,Pvari可取0.1。
第二步,初始化种群。
2.1从输入文件中读取所有网格块,把所有网格块随机分配到各个进程,生成含popNum条染色体的种群PopA,PopA={R1,..,Rn…,RpopNum},popNum为PopA中染色体条数,1≤n≤popNum且n为正整数,Rn表示第n条染色体。所有染色体均有M个片段,对应M个进程。
2.2初始化迭代次数iteNum=0。
第三步,适应度计算
3.1对PopA中的R1,…,Rr,…RpopNum采用式(1)分别进行适应度计算,得到popNum个适应度值,表示为F1,…,Fr,…FpopNum。
3.2找出F1,…,Fr,…FpopNum中的最大值,表示为Fopt,并将Fopt对应的全局最优染色体记为bestPop。
3.3iteNum=iteNum+1。
第四步,条件判断。
4.1若iteNum>IteMax,迭代终止,转第八步。若iteNum<=IteMax,转4.2。
4.2若Fopt满足式(2)的条件,迭代终止,表示已找到最优染色体,转第八步。否则,转第五步。
abs(k-1/Fopt)/k<ε (2)
其中k为平均负载,ε为平衡率阀值。abs(k-1/Fopt)表示对k-1/Fopt取绝对值。
第五步,选择算子。
5.1生成空的临时种群PopTEMP;
5.2将bestPop***PopTEMP。此处为精英保留策略,即保留最好的染色体;
5.3从种群PopA中随机复制一条染色体到PopTEMP,这样随机复制执行popNum-1次,获得含popNum条染色体的PopTEMP。
5.4令PopA=PopTEMP。
第六步,交叉算子。
6.1n=1。
6.2生成[0,1]区间的随机数q,若q>Pcross,转6.10步,否则转6.3步。
6.3从PopA随机选择两条父代染色体Ra和Rb,Ra和Rb的各染色体片段中的基因按进程号从小到大依次顺序组合成第一基因集合A和第二基因集合B。A、B均含有N个基因,编号为1至N。假如Ra为{{E1,E2,E3},{E4,E5,E6,E7},{E8,E9,E10}},则集合A为{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10}。假如Rb为{{E1,E6,E7,E3},{E4,E2},{E8,E5,E9,E10}},则集合B为{E1,E6,E7,E3,E4,E2,E8,E5,E9,E10}。
6.4随机生成两个整数n1,n2,1≤n1≤n2≤N。复制A中第n1个到第n2个基因,得到第一基因子集合A1,复制B中第n1个到第n2个基因,得到第二基因子集合B1。这样集合A包含三个子集合,大小分别为n1-1,n2-n1+1,N-n2,大小为n2-n1+1的子集合正好是B1。
6.5把A中属于B1中的基因全部删掉(即删除掉A中大小为n2-n1+1的子集合),剩下n1-1+N-n2个基因,把剩下n1-1+N-n2个基因,分割成新集合C、D。C、D分别包含n1-1个和N-n2个基因。
6.6把C、B1和D按顺序拼成新的集合A2,A2包含N个基因。对应Ra中染色体片段的长度,把A2分割成第一子代染色体Sa。Sa中M个染色体片段的长度与Ra中M个染色体片段的长度一样。
6.7把B中属于A1中的基因全部删掉,剩下n1-1+N-n2个基因,分割成新集合E、F。E、F分别包含n1-1个和N-n2个基因。
6.8把E、A1和F按顺序拼成新的集合B2,B2包含N个基因。对应Rb中染色体片段的长度,把B2分割成第二子代染色体Sb。Sb中M个染色体片段的长度与Rb中M个染色体片段的长度一样。
6.9更新种群PopA:令Ra=Sa,Rb=Sb。
6.10n=n+1。
6.11若n>popNum转第七步,否则转第6.2步。
第七步,变异算子。
7.1n=1。
7.2生成[0,1]区间的随机数q,若q>Pvari,转7.7步,否则转7.3步。
7.3选择PopA的第n条染色体R,R中M个染色体片段按照进程号从小到大把基因依次顺序组合成A。A有N个基因。
7.4随机生成两个整数n1,n2,1≤n1≤n2≤N。把集合A中n1和n2位置处的基因进行交换。
7.5根据R中M个染色体片段的长度,把A分割成第三子代染色体R1。R1中第1到第M个染色体片段的长度和R中第1到第M个染色体片段的长度相同。
7.6更新种群中第n条染色体:令R=R1。
7.7n=n+1。
7.8若n>popNum,转第三步;否则转第7.2步。
第八步,输出最优染色体bestPop(即最好的负载平衡模式),结束。
上述方法都各有优缺点:
(1)确定性方法速度快,但是负载平衡效果不确定,有时效果特别好,但大多数效果欠佳。
(2)智能优化算法比较原始,没有考虑相应智能优化算法的鲁棒性差和计算效率低的问题。
(3)混合算法效果较好,但是仍然存在计算效率低和负载平衡优化效果不明显的问题。确定性方法产生的种群很多时候会导致智能优化算法得不到优良的解。
因此研究计算效率高和效果好的智能负载平衡方法非常有意义。
发明内容
本发明要解决的技术问题是针对现有负载平衡方法,提供一种基于LPT局部优化的结构化网格负载平衡方法,提高负载平衡率和计算速度。
本发明具体技术方案为:
第一步,参数配置:
1.1从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax,LPT数目LPTSize。ε可取0.1、0.01或者0.01。popNum可取基因数的10-100倍,IteMax可取基因数的5倍。交叉概率Pcross、变异概率Pvari为0到1之间的实数,一般Pcross可取0.8,Pvari可取0.1。SameMax可取15。LPTSize为处理的染色体片段的个数,取正偶数,且比N/2小,通常可以取2,或者4。
第二步,初始化种群。
2.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程。一个网格块对应一个基因,网格块中网格数目为基因的值。生成含popNum条染色体的种群PopA,PopA={R1,..,Rn…,RpopNum},popNum为PopA中染色体条数,1≤n≤popNum且n为正整数,Rn表示第n条染色体。所有染色体均有M个染色体片段,对应M个进程。
2.2令迭代次数变量iteNum=0。
第三步,适应度计算。
3.1根据式(1)对PopA中的R1,..,Rn…,RpopNum分别进行适应度计算,得到popNum个适应度值,表示为F1,…,Fn,…FpopNum。
3.2找出F1,…,Fn,…FpopNum中的最大值,表示为全局最优染色体的适应度值Fopt,并将Fopt对应的全局最优染色体记录为bestPop。
3.3iteNum=iteNum+1。
第四步,LPT局部优化。采用LPT方法对每条染色体中片段值最大的LPTSize/2个染色体片段和片段值最小的LPTSize/2个染色体片段进行LPT局部优化,得到适应度更好的染色体。
4.1令n=1。
4.2对种群PopA中第n条染色体中的M个染色体片段中的基因进行累加,得到M个染色体片段值sum1,sum2,…,sumM-1,sumM。
4.3根据4.2步得到的sum1,sum2,…,sumM-1,sumM,找出第n条染色体中染色体片段值最大的LPTSize/2个染色体片段,记为SegA1、SegA2、…、SegALPTSize/2,再找出染色体片段值最小的LPTSize/2个染色体片段,记为SegB1、SegB2、…、SegBLPTSize/2。
4.4将SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2中的基因组合成基因集合X。假设X中有H基因,将X中H个基因从大到小依次排列得到链表(F1,F2,…,Fh,…,FH),1≤h≤H;
4.5建立LPTSIZE个空集合V1,V2,…,VLPTSize,建立大小为LPTSIZE的整型数组[D1,D2,…,Dk,…,DLPTSize],D1,D2,…,Dk,…,DLPTSize均赋初值0,1≤k≤LPTSize。
4.6令s=1。
4.7找到数组[D1,D2,…,DLPTSize]中的最小值,假设为Dk,k表示第k个,执行如下操作:
4.7.1Dk=Dk+SegAs。
4.7.2将Fs***到Vk中。
4.8s=s+1。
4.9若s≤LPTSize,转第4.7步,否则执行4.10步。
4.10将V1,V2,…,VLPTSize中基因分别赋予SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2,更新LPTSIZE个染色体片段,得到新的染色体。新得到的LPTSIZE染色体片段由于采用LPT算法分配,所以它们的染色体片段值的最大值必小于等于原来染色体片段值的最大值,从而提升或者不减少整个染色体片段的适应度值。
4.11令n=n+1。
4.12若n≤popNum,转4.2步;否则执行第五步。
第五步,条件判断。
5.1若iteNum大于IteMax,迭代终止,转第十一步。若iteNum小于等于IteMax,iteNum=iteNum+1,执行5.2。
5.2若Fopt满足式(2)的条件,表示已找到最优染色体,迭代终止,转第十一步。若全局最优染色体的适应度值Fopt不满足式(2)的条件,执行5.3。
5.3若Fopt满足式(3)的条件,迭代终止,转第十一步。式(3)表示Fopt的倒数等于最大基因,这意味着一个染色体片段(命名为Seg)只包含一个基因,即一个进程只处理一个网格数目最大的网格块。其它染色体片段值均小于Seg的值。因为本发明针对的是不对网格进行剖分,所以不可能找到比当前与Fopt对应的bestPop更加优良的染色体,迭代终止。若Fopt不满足式(3)的条件,转第六步。
1/Fopt=max{E1,E2,…,EN} (3)
第六步,更新判断。
6.2若nSame>SameMax,令nSame=0,转第七步;否则转第八步。
第七步,种群更新。
7.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程。生成含popNum条染色体的种群PopTEMP,PopTEMP={R1,..,Rn…,RpopNum},PopTEMP中有popNum条染色体。所有染色体均有M个片段,对应M个进程。
7.2用步骤3.2得到的bestPop替换种群PopTEMP中的第一个染色体R1。
7.3令PopA=PopTEMP。
第八步,选择算子。
8.1生成空的临时种群PopTEMP;
8.2将bestPop***PopTEMP。此处为精英保留策略,即保留最好的染色体;
8.3从种群PopA中随机复制一条染色体到PopTEMP,这样随机复制执行popNum-1次,获得含popNum条染色体的PopTEMP。
8.4令PopA=PopTEMP。
第九步,交叉算子。
9.1令n=1。
9.2生成[0,1]区间的随机数q,若q>Pcross,转9.10步,否则执行9.3步。
9.3从PopA随机选择两条父代染色体Ra和Rb,Ra和Rb的各染色体片段中的基因按进程号从小到大依次顺序组合成第一基因集合A和第二基因集合B。A、B均含有N个基因,编号为1至N。假如Ra为{{E1,E2,E3},{E4,E5,E6,E7},{E8,E9,E10}},则集合A为{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10}。假如Rb为{{E1,E6,E7,E3},{E4,E2},{E8,E5,E9,E10}},则集合B为{E1,E6,E7,E3,E4,E2,E8,E5,E9,E10}。
9.4随机生成两个整数n1,n2,1≤n1≤n2≤N。复制A中第n1个到第n2个基因,得到第一基因子集合A1,复制B中第n1个到第n2个基因,得到第二基因子集合B1。这样集合A包含三个子集合,大小分别为n1-1,n2-n1+1,N-n2,大小为n2-n1+1的子集合正好是B1。
9.5把A中属于B1中的基因全部删掉(即删除掉A中大小为n2-n1+1的子集合),剩下n1-1+N-n2个基因,把剩下n1-1+N-n2个基因,分割成新集合C、D。C、D分别包含n1-1个和N-n2个基因。
9.6把C、B1和D按顺序拼成新的集合A2,A2包含N个基因。对应Ra中染色体片段的长度,把A2分割成第一子代染色体Sa。Sa中M个染色体片段的长度与Ra中M个染色体片段的长度一样。
9.7把B中属于A1中的基因全部删掉,剩下n1-1+N-n2个基因,分割成新集合E、F。E、F分别包含n1-1个和N-n2个基因。
9.8把E、A1和F按顺序拼成新的集合B2,B2包含N个基因。对应Rb中染色体片段的长度,把B2分割成第二子代染色体Sb。Sb中M个染色体片段的长度与Rb中M个染色体片段的长度一样。
9.9更新种群PopA:令Ra=Sa,Rb=Sb。
9.10令n=n+1。
9.11若n>popNum,转第十步,否则转第9.2步。
第十步,变异算子。变异算子采用二级择优变异方式:
10.1第一级变异。
10.1.1令n=1。
10.1.2生成[0,1]区间的随机数q,若q>Pvari,转10.1.7步,否则转10.1.3步。
10.1.3选择PopA的第n条染色体Rn,Rn各染色体片段中按进程号从小到大把基因依次组合成基因集合A。A有N个基因。假设Rn={{E1,E6,E7,E3},{E4,E2},{E8,E5,E9,E10}},则A={E1,E6,E7,E3,E4,E2,E8,E5,E9,E10}。
10.1.4随机生成两个整数n1,n2,1≤n1≤n2≤N。把集合A中n1和n2位置处的基因进行交换。假设n1=2,n2=5,则基因交换后的集合A={E1,E4,E7,E3,E6,E2,E8,E5,E9,E10}。
10.1.5对应Rn中染色体片段的长度,把集合A分割成第三子代染色体R1。R1中M个染色体片段的长度与Rn中M个染色体片段的长度一样。Rn染色体片段的长度分别为4、2、4。集合A分割成子代染色体R1为R1={{E1,E4,E7,E3},{E6,E2},E8,E5,E9,E10},Rn染色体片段的长度也分别为4、2、4。
10.1.6计算R1的适应度F1,计算Rn的适应度F。若F1>F,则更新种群PopA中第n条染色体:即令Rn=R1。
10.1.7令n=n+1。
10.1.8若n>popNum,转第10.2步;否则转第10.1.2步。
10.2第二级变异。
10.2.1令n=1。
10.2.2生成[0,1]区间的随机数q,若q>Pvari,转10.2.7步,否则转10.2.3步。
10.2.3选择PopA的第n条染色体Rn,复制染色体R1=Rn。随机选择R1中两个染色体片段Seg1,Seg2。设Seg1,Seg2中基因的个数分别为k1,k2。Seg1,Seg2中的基因组成新的集合B,则B中基因个数为k1+k2。
10.2.4随机产生分割点K0,K0为1至k1+k2中的一个正整数。从位置K0处,把集合B分割成两个新的染色体片段Seq1a,Seg2a。Seg1a包含B中第1个到第K0个基因,Seg2a包含B中第K0+1个到第k1+k2个基因。
10.2.5更新R1:令Seg1=Seq1a,Seg2=Seg2a。
10.2.6计算R1的适应度F1,计算Rn的适应度F。若F1>F,则更新种群PopA中第n条染色体:令Rn=R1。
10.2.7令n=n+1。
10.2.8若n>popNum,转第三步;否则转第10.2.2步。
第十一步,输出第3.2步得到的最优染色体bestPop,得到最好的负载平衡模式。
与现有技术相比,采用本发明计算速度快、适应度值高,能够快速得到较好的负载平衡率。
1.由于本发明第四步采用LPT算法对每条染色体中染色体片段值最大和最小的若干个染色体片段进行了局部优化,提升了整个染色体的适应度,使得收敛速率和负载平衡率得以提高。
2.由于本发明第七步进行了种群更新,使得种群不容易早熟而能得到全局较优解,从而可以实现整个结构化网格并行计算负载率的提升。
附图说明
图1为背景技术1总体流程图;
图2是本发明的总体流程图。
具体实施方式
图2是本发明的总体流程图。如图2所示,本发明包括以下步骤:
第一步,参数配置:
1.1从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax,LPT数目LPTSize。
第二步,初始化种群。
2.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程。一个网格块对应一个基因,网格块中网格数目为基因的值。生成含popNum条染色体的种群PopA,PopA={R1,..,Rn…,RpopNum},popNum为PopA中染色体条数,1≤n≤popNum且n为正整数,Rn表示第n条染色体。所有染色体均有M个染色体片段,对应M个进程。
2.2令迭代次数变量iteNum=0。
第三步,适应度计算。
3.1根据式(1)对PopA中的R1,..,Rn…,RpopNum分别进行适应度计算,得到popNum个适应度值,表示为F1,…,Fn,…FpopNum。
3.2找出F1,…,Fn,…FpopNum中的最大值,表示为全局最优染色体的适应度值Fopt,并将Fopt对应的全局最优染色体记录为bestPop。
3.3iteNum=iteNum+1。
第四步,采用LPT方法对每条染色体中片段值最大的LPTSize/2个染色体片段和最小的LPTSize/2个染色体片段进行局部优化,得到适应度更好的染色体。
4.1令n=1。
4.2对种群PopA中第n条染色体中的M个染色体片段中的基因进行累加,得到M个染色体片段值sum1,sum2,…,sumM-1,sumM。
4.3根据4.2步得到的sum1,sum2,…,sumM-1,sumM,找出第n条染色体中染色体片段值最大的LPTSize/2个染色体片段,记为SegA1、SegA2、…、SegALPTSize/2,再找出染色体片段值最小的LPTSize/2个染色体片段,记为SegB1、SegB2、…、SegBLPTSize/2。
4.4将SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2中的基因组合成基因集合X。假设X中有H基因,将X中H个基因从大到小依次排列得到链表(F1,F2,…,Fh,…,FH)。1<=h<=H
4.5建立LPTSIZE个空集合V1,V2,…,VLPTSize,建立大小为LPTSIZE的整型数组[D1,D2,…,Dk,…,DLPTSize],D1,D2,…,Dk,…,DLPTSize均赋初值0,1<=k<=LPTSize。
4.6令s=1。
4.7找到数组[D1,D2,…,DLPTSize]中的最小值,假设为Dk,k表示第k个,执行如下操作:
4.7.1Dk=Dk+SegAs。
4.7.2将Fs***到Vk中。
4.8s=s+1。
4.9若s<=LPTSize,转第4.7步,否则执行4.10步。
4.10将V1,V2,…,VLPTSize中基因分别赋予SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2,更新LPTSIZE个染色体片段,得到新的染色体。
4.11令n=n+1。
4.12若n≤popNum,转4.2步;否则执行第五步。
第五步,条件判断。
5.1若iteNum大于IteMax,迭代终止,转第十一步。若iteNum小于等于IteMax,iteNum=iteNum+1,执行5.2。
5.2若Fopt满足式(2)的条件,表示已找到最优染色体,迭代终止,转第十一步。若全局最优染色体的适应度值Fopt不满足式(2)的条件,执行5.3。
5.3若Fopt满足式(3)的条件,迭代终止,转第十一步。若Fopt不满足式(3)的条件,转第六步。
1/Fopt=max{E1,E2,…,EN} (3)
第六步,更新判断。
6.2若nSame>SameMax,令nSame=0,转第七步;否则转第八步。
第七步,种群更新。
7.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程。生成含popNum条染色体的种群PopTEMP,PopTEMP={R1,..,Rn…,RpopNum},PopTEMP中有popNum条染色体。所有染色体均有M个片段,对应M个进程。
7.2用步骤3.2得到的bestPop替换种群PopTEMP中的第一个染色体R1。
7.3令PopA=PopTEMP。
第八步,选择算子。
8.1生成空的临时种群PopTEMP;
8.2将bestPop***PopTEMP。此处为精英保留策略,即保留最好的染色体;
8.3从种群PopA中随机复制一条染色体到PopTEMP,这样随机复制执行popNum-1次,获得含popNum条染色体的PopTEMP。
8.4令PopA=PopTEMP。
第九步,交叉算子。
9.1令n=1。
9.2生成[0,1]区间的随机数q,若q>Pcross,转9.10步,否则执行9.3步。
9.3从PopA随机选择两条父代染色体Ra和Rb,Ra和Rb的各染色体片段中的基因按进程号从小到大依次顺序组合成第一基因集合A和第二基因集合B。A、B均含有N个基因,编号为1至N。假如Ra为{{E1,E2,E3},{E4,E5,E6,E7},{E8,E9,E10}},则集合A为{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10}。假如Rb为{{E1,E6,E7,E3},{E4,E2},{E8,E5,E9,E10}},则集合B为{E1,E6,E7,E3,E4,E2,E8,E5,E9,E10}。
9.4随机生成两个整数n1,n2,1≤n1≤n2≤N。复制A中第n1个到第n2个基因,得到第一基因子集合A1,复制B中第n1个到第n2个基因,得到第二基因子集合B1。这样集合A包含三个子集合,大小分别为n1-1,n2-n1+1,N-n2,大小为n2-n1+1的子集合正好是B1。
9.5把A中属于B1中的基因全部删掉(即删除掉A中大小为n2-n1+1的子集合),剩下n1-1+N-n2个基因,把剩下n1-1+N-n2个基因,分割成新集合C、D。C、D分别包含n1-1个和N-n2个基因。
9.6把C、B1和D按顺序拼成新的集合A2,A2包含N个基因。对应Ra中染色体片段的长度,把A2分割成第一子代染色体Sa。Sa中M个染色体片段的长度与Ra中M个染色体片段的长度一样。
9.7把B中属于A1中的基因全部删掉,剩下n1-1+N-n2个基因,分割成新集合E、F。E、F分别包含n1-1个和N-n2个基因。
9.8把E、A1和F按顺序拼成新的集合B2,B2包含N个基因。对应Rb中染色体片段的长度,把B2分割成第二子代染色体Sb。Sb中M个染色体片段的长度与Rb中M个染色体片段的长度一样。
9.9更新种群PopA:令Ra=Sa,Rb=Sb。
9.10令n=n+1。
9.11若n>popNum,转第十步,否则转第9.2步。
第十步,变异算子。变异算子采用二级择优变异方式:
10.1第一级变异。
10.1.1令n=1。
10.1.2生成[0,1]区间的随机数q,若q>Pvari,转10.1.7步,否则转10.1.3步。
10.1.3选择PopA的第n条染色体Rn,Rn各染色体片段中按进程号从小到大把基因依次组合成基因集合A。A有N个基因。假设Rn={{E1,E6,E7,E3},{E4,E2},{E8,E5,E9,E10}},则A={E1,E6,E7,E3,E4,E2,E8,E5,E9,E10}。
10.1.4随机生成两个整数n1,n2,1≤n1≤n2≤N。把集合A中n1和n2位置处的基因进行交换。假设n1=2,n2=5,则基因交换后的集合A={E1,E4,E7,E3,E6,E2,E8,E5,E9,E10}。
10.1.5对应Rn中染色体片段的长度,把集合A分割成第三子代染色体R1。R1中M个染色体片段的长度与Rn中M个染色体片段的长度一样。Rn染色体片段的长度分别为4、2、4。集合A分割成子代染色体R1为R1={{E1,E4,E7,E3},{E6,E2},E8,E5,E9,E10},Rn染色体片段的长度也分别为4、2、4。
10.1.6计算R1的适应度F1,计算Rn的适应度F。若F1>F,则更新种群PopA中第n条染色体:即令Rn=R1。
10.1.7令n=n+1。
10.1.8若n>popNum,转第10.2步;否则转第10.1.2步。
10.2第二级变异。
10.2.1令n=1。
10.2.2生成[0,1]区间的随机数q,若q>Pvari,转10.2.7步,否则转10.2.3步。
10.2.3选择PopA的第n条染色体Rn,复制染色体R1=Rn。随机选择R1中两个染色体片段Seg1,Seg2。设Seg1,Seg2中基因的个数分别为k1,k2。Seg1,Seg2中的基因组成新的集合B,则B中基因个数为k1+k2。
10.2.4随机产生分割点K0,K0为1至k1+k2中的一个正整数。从位置K0处,把集合B分割成两个新的染色体片段Seq1a,Seg2a。Seg1a包含B中第1个到第K0个基因,Seg2a包含B中第K0+1个到第k1+k2个基因。
10.2.5更新R1:令Seg1=Seq1a,Seg2=Seg2a。
10.2.6计算R1的适应度F1,计算Rn的适应度F。若F1>F,则更新种群PopA中第n条染色体:令Rn=R1。
10.2.7令n=n+1。
10.2.8若n>popNum,转第三步;否则转第10.2.2步。
第十一步,输出第3.2步得到的最优染色体bestPop,得到最好的负载平衡模式。
Claims (4)
1.一种基于LPT局部优化的结构化网格负载平衡方法,其特征在于包括以下步骤:
第一步,参数配置:
1.1从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax、处理的染色体片段的个数LPTSize;LPT为最大处理时间;
第二步,初始化种群:
2.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程,一个网格块对应一个基因,网格块中网格数目为基因的值;生成含popNum条染色体的种群PopA,PopA={R1,..,Rn...,RpopNum},popNum为PopA中染色体条数,1≤n≤popNum且n为正整数,Rn表示第n条染色体,所有染色体均有M个染色体片段,对应M个进程;
2.2令迭代次数变量iteNum=0;
第三步,适应度计算:
3.1根据式(1)对PopA中的R1,..,Rn...,RpopNum分别进行适应度计算,得到popNum个适应度值,表示为F1,...,Fn,...FpopNum;
适应度函数F定义如下:
F=1/max{|P1|,...,|Pm|,...,|PM|} (1)
max{|P1|,...,|Pm|,...,|PM|}表示对|P1|,...,|Pm|,...,|PM|取最大值;进程集合为P={P1,...,Pm,...,PM},P中有M个进程,1≤m≤M且M为正整数,Pm表示第m个进程;|Pm|表示进程Pm处理的网格数目总和,|Pm|=Ei1+Ei2+…+Eim+…+EiG,即把进程中所处理的网格块的网格数目相加得到;G为Pm要处理的网格块的个数,0≤G≤N,Pm={Ei1,Ei2,…,EiG},Ei1,Ei2,…,Eim,…,EiG均∈E;E为网格块集合,E={E1,…,Ek,…,EN},E中有N个元素,第k个元素为网格数目为Ek的网格块,1≤k≤N且N为正整数;Ek为正整数,表示网格数目为Ek的第k个网格块;
3.2找出F1,...,Fn,...FpopNum中的最大值,表示为全局最优染色体的适应度值Fopt,并将Fopt对应的全局最优染色体记录为bestPop;
3.3 iteNum=iteNum+1;
第四步,采用LPT方法对每条染色体中片段值最大的LPTSize/2个染色体片段和最小的LPTSize/2个染色体片段进行局部优化,得到适应度更好的染色体:
4.1令n=1;
4.2对种群PopA中第n条染色体中的M个染色体片段中的基因进行累加,得到M个染色体片段值sum1,sum2,…,sumM-1,sumM;
4.3根据sum1,sum2,…,sumM-1,sumM,找出第n条染色体中染色体片段值最大的LPTSize/2个染色体片段,记为SegA1、SegA2、…、SegALPTSize/2,再找出染色体片段值最小的LPTSize/2个染色体片段,记为SegB1、SegB2、…、SegBLPTSize/2;
4.4将SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2中的基因组合成基因集合X,假设X中有H基因,将X中H个基因从大到小依次排列得到链表(F1,F2,…,Fh,…,FH),1≤h≤H;
4.5建立LPTSIZE个空集合V1,V2,…,VLPTSize,建立大小为LPTSIZE的整型数组[D1,D2,…,Dk,…,DLPTSize],D1,D2,…,Dk,…,DLPTSize均赋初值0,1≤k≤LPTSize;
4.6令s=1;
4.7找到数组[D1,D2,…,DLPTSize]中的最小值,假设为Dk,k表示第k个,执行如下操作:
4.7.1 Dk=Dk+SegAs;
4.7.2将Fs***到Vk中;
4.8s=s+1;
4.9若s≤LPTSize,转第4.7步,否则执行4.10步;
4.10将V1,V2,…,VLPTSize中基因分别赋予SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2,更新LPTSIZE个染色体片段,得到新的染色体;
4.11令n=n+1;
4.12若n≤popNum,转4.2步;否则执行第五步;
第五步,条件判断:
5.1若iteNum大于IteMax,转第十一步;若iteNum小于等于IteMax,iteNum=iteNum+1,执行5.2;
5.2若Fopt满足式(2)的条件,转第十一步;若Fopt不满足式(2)的条件,执行5.3;
abs(κ-1/Fopt)/κ<ε(2)
其中abs(κ-1/Fopt)表示对κ-1/Fopt取绝对值;
5.3若Fopt满足式(3)的条件,式(3)表示Fopt的倒数等于最大基因,转第十一步;若Fopt不满足式(3)的条件,转第六步;
1/Fopt=max{E1,E2,…,EN}(3)
第六步,更新判断,方法是:
6.2若nSame>SameMax,令nSame=0,转第七步;否则转第八步;
第七步,种群更新,方法是:
7.1从输入文件中读取所有网格块,把所有网格块随机分配到M个进程,生成含popNum条染色体的种群PopTEMP,PopTEMP={R1,..,Rn...,RpopNum},PopTEMP中有popNum条染色体,所有染色体均有M个片段,对应M个进程;
7.2用步骤3.2得到的bestPop替换种群PopTEMP中的第一个染色体R1;
7.3令PopA=PopTEMP;
第八步,选择算子,方法是:
8.1生成空的临时种群PopTEMP;
8.2将bestPop***PopTEMP;
8.3从种群PopA中随机复制一条染色体到PopTEMP,这样随机复制执行popNum-1次,获得含popNum条染色体的PopTEMP;
8.4令PopA=PopTEMP;
第九步,交叉算子,方法是:
9.1令n=1;
9.2生成[0,1]区间的随机数q,若q>Pcross,转9.10步,否则执行9.3步;
9.3从PopA随机选择两条父代染色体Ra和Rb,Ra和Rb的各染色体片段中的进程按进程号从小到大把基因依次组合成第一基因集合A和第二基因集合B;A、B均含有N个基因,编号为1至N;
9.4随机生成两个整数n1,n2,1≤n1≤n2≤N;复制A中第n1个到第n2个基因,得到第一基因子集合A1,复制B中第n1个到第n2个基因,得到第二基因子集合B1;这样集合A包含三个子集合,大小分别为n1-1,n2-n1+1,N-n2,大小为n2-n1+1的子集合正好是B1;
9.5把A中属于B1中的基因全部删掉,剩下n1-1+N-n2个基因,把剩下n1-1+N-n2个基因,分割成新集合C、D,C、D分别包含n1-1个和N-n2个基因;
9.6把C、B1和D按顺序拼成新的集合A2,A2包含N个基因;对应Ra中染色体片段的长度,把A2分割成第一子代染色体Sa,Sa中M个染色体片段的长度与Ra中M个染色体片段的长度一样;
9.7把B中属于A1中的基因全部删掉,剩下n1-1+N-n2个基因,分割成新集合E、F,E、F分别包含n1-1个和N-n2个基因;
9.8把E、A1和F按顺序拼成新的集合B2,B2包含N个基因;对应Rb中染色体片段的长度,把B2分割成第二子代染色体Sb,Sb中M个染色体片段的长度与Rb中M个染色体片段的长度一样;
9.9更新种群PopA:令Ra=Sa,Rb=Sb;
9.10令n=n+1;
9.11若n>popNum,转第十步,否则转第9.2步;
第十步,变异算子,转第三步;
第十一步,输出第3.2步得到的最优染色体bestPop,得到最好的负载平衡模式。
2.如权利要求1所述的基于LPT局部优化的结构化网格负载平衡方法,其特征在于所述ε取0.1或者0.01;所述popNum取基因数的10-100倍,IteMax取基因数的5倍;交叉概率Pcross、变异概率Pvari为0到1之间的实数;所述SameMax取15;所述LPTSize取比N/2小的正偶数。
3.如权利要求2所述的基于LPT局部优化的结构化网格负载平衡方法,其特征在于所述Pcross取0.8,Pvari取0.1,LPTSize取2或4。
4.如权利要求1所述的基于LPT局部优化的结构化网格负载平衡方法,其特征在于所述第十步变异算子采用二级择优变异方式:
10.1第一级变异:
10.1.1令n=1;
10.1.2生成[0,1]区间的随机数q,若q>Pvari,转10.1.7步,否则转10.1.3步;
10.1.3选择PopA的第n条染色体Rn,Rn各染色体片段中按进程号从小到大把基因依次组合成基因集合A,A有N个基因;
10.1.4随机生成两个整数n1,n2,1≤n1≤n2≤N,把集合A中n1和n2位置处的基因进行交换;
10.1.5对应Rn中染色体片段的长度,把集合A分割成第三子代染色体R1,R1中M个染色体片段的长度与Rn中M个染色体片段的长度一样;
10.1.6计算R1的适应度F1,计算Rn的适应度F;若F1>F,则更新种群PopA中第n条染色体:即令Rn=R1;
10.1.7令n=n+1;
10.1.8若n>popNum,转第10.2步;否则转第10.1.2步;
10.2第二级变异:
10.2.1令n=1;
10.2.2生成[0,1]区间的随机数q,若q>Pvari,转10.2.7步,否则转10.2.3步;
10.2.3选择PopA的第n条染色体Rn,复制染色体R1=Rn,随机选择R1中两个染色体片段Seg1,Seg2;设Seg1,Seg2中基因的个数分别为k1,k2,Seg1,Seg2中的基因组成新的集合B,则B中基因个数为k1+k2;
10.2.4随机产生分割点K0,K0为1至k1+k2中的一个正整数;从位置K0处,把集合B分割成两个新的染色体片段Seq1a,Seg2a;Seg1a包含B中第1个到第K0个基因,Seg2a包含B中第K0+1个到第k1+k2个基因;
10.2.5更新R1:令Seg1=Seq1a,Seg2=Seg2a;
10.2.6计算R1的适应度F1,计算Rn的适应度F;若F1>F,则更新种群PopA中第n条染色体:令Rn=R1;
10.2.7令n=n+1;
10.2.8若n>popNum,结束;否则转第10.2.2步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910076849.XA CN109885401B (zh) | 2019-01-27 | 2019-01-27 | 基于lpt局部优化的结构化网格负载平衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910076849.XA CN109885401B (zh) | 2019-01-27 | 2019-01-27 | 基于lpt局部优化的结构化网格负载平衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885401A CN109885401A (zh) | 2019-06-14 |
CN109885401B true CN109885401B (zh) | 2020-11-24 |
Family
ID=66927135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910076849.XA Active CN109885401B (zh) | 2019-01-27 | 2019-01-27 | 基于lpt局部优化的结构化网格负载平衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885401B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110398961B (zh) * | 2019-07-09 | 2022-10-14 | 哈尔滨工程大学 | 一种气垫船航迹保持舵桨协同控制与分配方法 |
CN117573375B (zh) * | 2024-01-15 | 2024-04-02 | 上海交通大学四川研究院 | 一种面向自适应解耦方程的动态负载平衡并行计算方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014042A (zh) * | 2009-09-08 | 2011-04-13 | 中兴通讯股份有限公司 | 一种Web负载均衡方法、网格服务器及*** |
CN104867062A (zh) * | 2015-06-08 | 2015-08-26 | 武汉理工大学 | 一种基于遗传算法的低损耗配电网络的优化重构方法 |
CN108416441A (zh) * | 2018-05-10 | 2018-08-17 | 华中科技大学 | 一种基于遗传算法的舰船对岸打击火力分配方法 |
US20180356803A1 (en) * | 2017-06-12 | 2018-12-13 | Hefei University Of Technology | Method and system for batch scheduling uniform parallel machines with different capacities based on improved genetic algorithm |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329831A (zh) * | 2017-06-29 | 2017-11-07 | 北京仿真中心 | 一种基于改进遗传算法的仿真资源调度方法 |
-
2019
- 2019-01-27 CN CN201910076849.XA patent/CN109885401B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014042A (zh) * | 2009-09-08 | 2011-04-13 | 中兴通讯股份有限公司 | 一种Web负载均衡方法、网格服务器及*** |
CN104867062A (zh) * | 2015-06-08 | 2015-08-26 | 武汉理工大学 | 一种基于遗传算法的低损耗配电网络的优化重构方法 |
US20180356803A1 (en) * | 2017-06-12 | 2018-12-13 | Hefei University Of Technology | Method and system for batch scheduling uniform parallel machines with different capacities based on improved genetic algorithm |
CN108416441A (zh) * | 2018-05-10 | 2018-08-17 | 华中科技大学 | 一种基于遗传算法的舰船对岸打击火力分配方法 |
Non-Patent Citations (3)
Title |
---|
A Novel Heuristic Genetic Load Balancing Algorithm in Grid Computing;Jingyi Ma;《2010 Second International Conference on Intelligent Human-Machine Systems and Cybernetics》;20100828;全文 * |
An Intelligent Genetic Algorithm for Effective Grid Resource Utilization;P. Deepan Babu等;《2014 International Conference on Intelligent Computing Applications》;20140307;全文 * |
气象应用网格中改进遗传负载均衡算法研究;程洪涛等;《计算机与数字工程》;20080131;第36卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109885401A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Agrawal et al. | Abcd-strategy: Budgeted experimental design for targeted causal structure discovery | |
CN104866904A (zh) | 一种基于spark的遗传算法优化的BP神经网络并行化方法 | |
CN109271320B (zh) | 一种上位多目标测试用例优先级排序方法 | |
CN105843666B (zh) | 云计算中基于多目标优化的虚拟机放置方法 | |
CN109522104B (zh) | 利用差分进化算法优化Iaas两目标任务调度的方法 | |
CN111325356A (zh) | 一种基于演化计算的神经网络搜索分布式训练***及训练方法 | |
CN103279793A (zh) | 一种确定环境下的无人飞行器编队任务分配方法 | |
CN109885401B (zh) | 基于lpt局部优化的结构化网格负载平衡方法 | |
CN106991442A (zh) | 混合蛙跳算法的自适应核k‑means方法与*** | |
CN110084355B (zh) | 大量相互作用粒子运动仿真***的网格尺度寻优方法 | |
CN108197708A (zh) | 一种基于Spark的并行化遗传算法 | |
CN114330715A (zh) | 一种智能弹药协同进化任务分配方法 | |
CN114565239A (zh) | 用于产业园区的综合低碳能源调度方法及*** | |
CN104866903A (zh) | 基于遗传算法的最美路径导航算法 | |
CN108260193B (zh) | 一种异构网络中基于信道聚合的联合资源分配方法及装置 | |
CN101719194B (zh) | 人工基因调控网络的模拟方法 | |
CN107257307B (zh) | 基于Spark的并行化遗传算法求解多终端协同接入网络方法 | |
CN109783240B (zh) | 基于minmax局部优化结构化网格并行计算负载平衡方法 | |
CN115878729B (zh) | 一种基于联盟链的节点区块存储分配优化方法及*** | |
Tsutsui et al. | Fast QAP solving by ACO with 2-opt local search on a GPU | |
CN111125620A (zh) | 推荐***中基于矩阵分解的并行随机梯度下降算法 | |
CN105357257A (zh) | 一种跨数据中心的关联云数据部署方法 | |
CN103646282B (zh) | 基于混合优化算法的并行处理方法 | |
CN108921354A (zh) | 一种基于粒子群优化的蚁群算法求解tsp问题的方法 | |
CN110928670B (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 |