带精英策略的非支配排序的遗传算法改方法技术

技术编号:19824216 阅读:21 留言:0更新日期:2018-12-19 15:34
本发明专利技术提供一种带精英策略的非支配排序的遗传算法改方法,包括步骤:S1:利用Matlab软件将一算数交叉算子替代一NSGA2遗传算法的SBX交叉算子;S2:利用Matlab软件将一基于质心的变异算子替代所述NSGA2遗传算法的多项式变异形式的变异算子;S3:利用Matlab软件对所述NSGA2遗传算法的一扰动向量权重λ进行改进。本发明专利技术的一种带精英策略的非支配排序的遗传算法改方法,可改善NSGA2算法的搜索功能较弱,收敛性不足,容易出现局部最优和进化过程不稳定的情况。

【技术实现步骤摘要】
带精英策略的非支配排序的遗传算法改方法
本专利技术涉及遗传算法领域,尤其涉及一种带精英策略的非支配排序的遗传算法改方法。
技术介绍
NSGA2算法是Srinivas和Deb于2000年在NSGA算法的基础上提出的,它比NSGA算法更加优越:它采用了快速非支配排序算法,计算复杂度比NSGA算法大大的降低;采用了拥挤度和拥挤度比较算子,代替了需要指定的共享半径shareQ,并在快速排序后的同级比较中作为胜出标准,使准Pareto域中的个体能扩展到整个Pareto域,并均匀分布,保持了种群的多样性;引入了精英策略,扩大了采样空间,防止最佳个体丢失。但NSGA2采用的SBX(SimulatedBinaryCrossover)交叉算子和多项式变异的变异算子,搜索功能上相对较弱,收敛性不足,不能保持种群多样性,容易出现局部最优和进化过程不稳定的情况。
技术实现思路
针对上述现有技术中的不足,本专利技术提供一种带精英策略的非支配排序的遗传算法改方法,可改善NSGA2算法的搜索功能较弱,收敛性不足,容易出现局部最优和进化过程不稳定的情况。为了实现上述目的,本专利技术提供一种带精英策略的非支配排序的遗传算法改方法,包括步骤:S1:利用Matlab软件将一算数交叉算子替代一NSGA2遗传算法的SBX交叉算子;S2:利用Matlab软件将一基于质心的变异算子替代所述NSGA2遗传算法的多项式变异形式的变异算子;S3:利用Matlab软件对所述NSGA2遗传算法的一扰动向量权重λ进行改进。优选地,所述算数交叉算子的表达式为:其中,α表示第一算数交叉算子参数,β表示第二算数交叉算子参数,且α+β=1;α,β∈[-1,2];表示选中的父代种群中的个体;表示父代种群中的个体;t表示迭代次数。优选地,所述基于质心的变异算子的表达式为:其中,γ表示最佳个体的影响权重,γ∈[0,1];Xbest(t)表示父代的最佳个体;λ表示扰动向量权重;M表示扰动向量空间的大小,M等于种群中除了i这个个体以外的其他个体总数之和;表示从父代随机选取的除了Xbest(t)以外的剩余个体;i表示种群中的一个体;Xnew(t+1)表示变异后新的第t+1子代个体;Xi(t)表示第t代种群中的个体;j表示种群中除了i这个个体以外的个体;a表示种群中除了i这个个体以外的一第一个体;b表示种群中除了i这个个体以外的一第二个体。优选地,所述父代的最佳个体Xbest(t)满足公式:其中,N表示从第t代种群中随机抽取的变异个体总数;fi(t)表示为对应的Xi个体的适应度值;Xi(t)表示第t代种群的第i个体。优选地,所述S3步骤中,通过一公式(4)对所述扰动向量权重λ进行改进:其中,k表示扰动随机数,k=rand(0,1)。本专利技术由于采用了以上技术方案,使其具有以下有益效果:本专利技术在原有的NSGA2算法基础上,在通过Matlab引入改进的算数交叉算子、基于质心的变异算子和改进的扰动向量权重,改善了现有NSGA2算法的搜索功能较弱,收敛性不足,以及容易出现局部最优和进化过程不稳定的情况。附图说明图1为本专利技术实施例的带精英策略的非支配排序的遗传算法改方法的流程图;图2为NSGA2遗传算法在ZDT1测试算法上的曲线图;图3为通过本专利技术实施例的带精英策略的非支配排序的遗传算法改方法改进后的遗传算法在ZDT1测试算法上的曲线图;图4为NSGA2遗传算法在ZDT2测试算法上的曲线图;图5为通过本专利技术实施例的带精英策略的非支配排序的遗传算法改方法改进后的遗传算法在ZDT2测试算法上的曲线图;图6为NSGA2遗传算法在ZDT3测试算法上的曲线图;图7为通过本专利技术实施例的带精英策略的非支配排序的遗传算法改方法改进后的遗传算法在ZDT3测试算法上的曲线图。具体实施方式下面根据附图1,给出本专利技术的较佳实施例,并予以详细描述,使能更好地理解本专利技术的功能、特点。请参阅图1,本专利技术实施例的一种带精英策略的非支配排序的遗传算法改方法,包括步骤:S1:利用Matlab软件将一算数交叉算子替代一NSGA2遗传算法的SBX交叉算子;其中,算数交叉算子的表达式为:其中,α表示第一算数交叉算子参数,β表示第二算数交叉算子参数,且α+β=1;α,β∈[-1,2];表示选中的父代种群中的个体;表示父代种群中的个体;t表示迭代次数。NSGA2中采用的是SBX(SimulatedBinaryCrossover)交叉算子。SBX交叉算子模拟二进制交叉的过程,对实数编码的父代个体进行交叉操作,即交换两个父代个体位于给定随机交叉点两侧的部份。但是使用SBX交叉过程中搜索能力较弱,无法保证种群的多样性。本专利技术的一种带精英策略的非支配排序的遗传算法改方法,将算术交叉算子代入到Matlab软件中替换原有算子,并增加约束范围。S2:利用Matlab软件将一基于质心的变异算子替代NSGA2遗传算法的多项式变异形式的变异算子;优选地,基于质心的变异算子的表达式为:其中,γ表示最佳个体的影响权重,γ∈[0,1],例如可取γ=0.5;Xbest(t)表示父代的最佳个体;λ表示扰动向量权重;M表示扰动向量空间的大小,M等于种群中除了i这个个体以外的其他个体总数之和;表示从父代随机选取的除了Xbest(t)以外的剩余个体;i表示种群中的一个体;Xnew(t+1)表示变异后新的第t+1子代个体;Xi(t)表示第t代种群中的个体;j表示种群中除了i这个个体以外的个体;a表示种群中除了i这个个体以外的一第一个体;b表示种群中除了i这个个体以外的一第二个体。公式(2)的等式右边的第一项和第二项构成了差分向量,第三项为差分进化算法的扰动向量。扰动向量的作用是使种群发生随机变异。本实施例中,Xbest(t)的选择引入质心理论的思想,父代的最佳个体Xbest(t)满足公式:其中,N表示从第t代种群中随机抽取的变异个体总数;fi(t)表示为对应的Xi个体的适应度值;Xi(t)表示第t代种群的第i个体。在遗传算法中,变异算子是作为背景算子提出。在算法中引入变异算子,其局部随机搜索性能会有所增强,向最优解收敛的速度会加快并可以保证解群的多样性。所以进化算法的收敛性、稳定性、全局搜索能力等在很大的程度上要依赖于变异环节的性能。差分进化算法(DifferentialEvolution,DE)是一种全局优化算法,基于群体的启发式搜索,它是由Storn等人在1995年提出,具有记忆个体最优解以及受控参数少的特点。差分进化算法与传统的进化算法相比,前者引入一种特殊的变异算子,能对被选中个体的进化方向产生扰动,对寻找最优解有一定优势。在NSGA2算法中,其采取多项式变异形式的变异算子,在变异程序过程中时有一定概率的情况下得到的解会超出约束条件。发生这种情况时,多项式变异操作会采用取端点值的方法来进行数据处理,但弊端是会减小种群的多样性,收敛早熟。S3:利用Matlab软件对NSGA2遗传算法的一扰动向量权重λ进行改进。本实施例中,λ的选取具有一定随机性,本专利技术中随机扰动借鉴多项式变异,具体通过一公式(4)对扰动向量权重λ进行改进:其中,k表示扰动随机数,k=rand(0,1)。本专利技术实施例的一种带精英策略的非支配排序的遗传算法改方法,引入了一种基于质心理论的变异算子,同时改进了本文档来自技高网...

【技术保护点】
1.一种带精英策略的非支配排序的遗传算法改方法,包括步骤:S1:利用Matlab软件将一算数交叉算子替代一NSGA2遗传算法的SBX交叉算子;S2:利用Matlab软件将一基于质心的变异算子替代所述NSGA2遗传算法的多项式变异形式的变异算子;S3:利用Matlab软件对所述NSGA2遗传算法的一扰动向量权重λ进行改进。

【技术特征摘要】
1.一种带精英策略的非支配排序的遗传算法改方法,包括步骤:S1:利用Matlab软件将一算数交叉算子替代一NSGA2遗传算法的SBX交叉算子;S2:利用Matlab软件将一基于质心的变异算子替代所述NSGA2遗传算法的多项式变异形式的变异算子;S3:利用Matlab软件对所述NSGA2遗传算法的一扰动向量权重λ进行改进。2.根据权利要求1所述的带精英策略的非支配排序的遗传算法改方法,其特征在于,所述算数交叉算子的表达式为:其中,α表示第一算数交叉算子参数,β表示第二算数交叉算子参数,且α+β=1;α,β∈[-1,2];表示选中的父代种群中的个体;表示父代种群中的个体;t表示迭代次数。3.根据权利要求1所述的带精英策略的非支配排序的遗传算法改方法,其特征在于,所述基于质心的变异算子的表达式为:其中,γ表示最佳个体的影响权重,γ∈[0,1];Xbest(t)表示父代的最佳个体;λ表示扰动向量权...

【专利技术属性】
技术研发人员:吴星刘天羽
申请(专利权)人:上海电机学院
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1