[发明专利]基于LPT局部优化的结构化网格负载平衡方法有效
申请号: | 201910076849.X | 申请日: | 2019-01-27 |
公开(公告)号: | CN109885401B | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 龚春叶;刘杰;杨博;甘新标;李胜国;徐海坤;李润华;穆利安;吕书邻;穆雨桐 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06N3/12 |
代理公司: | 长沙中科启明知识产权代理事务所(普通合伙) 43226 | 代理人: | 任合明 |
地址: | 410003 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于LPT局部优化的结构化网格负载平衡方法,目的是解决现有负载平衡方法的缺点,提高负载平衡率和计算速度。技术方案是总体基于遗传算法,包括参数配置、初始化种群、适应度计算、采用LPT方法对每条染色体中片段值最大的LPTSize/2个染色体片段和最小的LPTSize/2个染色体片段进行局部优化、条件判断、更新判断、种群更新、选择算子、交叉算子、变异算子、输出最好的负载平衡模式共十一步。本发明对每条染色体中染色体片段值最大和最小的若干染色体片段进行了局部优化,提升了整个染色体的适应度,且由于进行了种群更新,使得种群不容易早熟导致程序过早终止,而能得到全局较优解,使得整个结构化网格并行计算负载平衡率得以提升。 | ||
搜索关键词: | 基于 lpt 局部 优化 结构 网格 负载 平衡 方法 | ||
【主权项】:
1.一种基于LPT局部优化的结构化网格负载平衡方法,其特征在于包括以下步骤:第一步,参数配置:1.1 从配置文件获得输入文件位置、种群大小popNum、最大迭代次数IteMax、平衡率阀值ε、交叉概率Pcross、变异概率Pvari、最大重复次数SameMax、处理的染色体片段的个数LPTSize;LPT为最大处理时间;1.2 令最优适应度值重复次数nSame=0,令旧最优适应度值
第二步,初始化种群: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,...,En,...EN},E中有N个元素,第n个元素为网格数目为En的网格块,1≤n≤N且N为正整数;En为正整数,表示网格数目为En的第n个网格块;3.2 找出F1,...,Fn,...FpopNum中的最大值,表示为全局最优染色体的适应度值Fopt,并将Fopt对应的全局最优染色体记录为bestPop;3.3 iteNum=iteNum+1;第四步,LPT局部优化。采用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.3 将SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2中的基因组合成基因集合X,假设X中有H基因,将X中H个基因从大到小依次排列得到链表(F1,F2,…,Fh,…,FH),1≤h≤H;4.4 建立LPTSIZE个空集合V1,V2,…,VLPTSize,建立大小为LPTSIZE的整型数组[D1,D2,…,Dk,…,DLPTSize],D1,D2,…,Dk,…,DLPTSize均赋初值0,1≤k≤LPTSize;4.5 令s=1;4.6 找到数组[D1,D2,…,DLPTSize]中的最小值,假设为Dk,k表示第k个,执行如下操作:4.6.1 Dk=Dk+SegAs;4.6.2 将Fs插入到Vk中;4.7 s=s+1;4.8 若s≤LPTSize,转第4.6步,否则执行4.9步;4.9 将V1,V2,…,VLPTSize中基因分别赋予SegA1、SegA2、…、SegALPTSize/2、SegB1、SegB2、…、SegBLPTSize/2,更新LPTSIZE个染色体片段,得到新的染色体;4.10 令n=n+1;4.11 若n≤N,转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.1 若
令nSame=0;否则令nSame=nSame+1;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,得到最好的负载平衡模式。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910076849.X/,转载请声明来源钻瓜专利网。