一种混合全局优化方法与流程

文档序号:14653913发布日期:2018-06-08 22:39阅读:438来源:国知局
一种混合全局优化方法与流程

本发明涉及一种优化方法,具体涉及一种混合全局优化方法。



背景技术:

优化方法自20世纪60年代以来已取得很大进展和许多理论研究与应用成果。现有的优化方法主要可分为两大类:传统的确定性优化方法和智能优化方法。

以SQP方法为代表的确定性优化方法的实测效果非常好,但也有局限性。首先,只能求解光滑非线性优化问题;其次,获得的最优解只是局部最优解;最后只适合求解中小规模问题。受自然界自适应优化现象的启发,并且伴随着人工智能的发展,模拟生物进化过程、人类思维、生物智能行为等并以此开发求解复杂优化问题的智能优化算法越来越受到人们的关注。

智能优化算法可以分为两类:一类是模拟生物进化的算法,如遗传算法、进化规划等;另一类是基于群体智能的算法,如蚁群算法、粒子群算法等。尽管它们的表现形式和原理各不相同,但它们都有一些共同的特征,即都是群体搜索、随机搜索,具有并行性和全局性。

遗传算法(Genetic Algorithm,GA)是一类借鉴生物界自然选择和遗传机制的随机搜索算法,由美国Holland教授于1975年提出,用数码串来类比生物中的染色体,通过选择、交叉、变异等遗传算子来仿真生物基本进化过程,通过种群不断地“更新换代”获得问题最优解。粒子群算法(Partical Swarm Optimization,PSO)是由Eberhart博士和Kennedy博士于1995年提出的,它是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的群智能随机搜索算法。与进化算法相比,粒子群算法保留了基于种群的全局搜索策略,但它又采用了相对简单的速度-位移模型,避免了复杂遗传算子操作。同时它特有的记忆功能使其可以动态的跟踪当前的搜索情况而适当调整其搜索策略。因此,粒子群算法是一种非常高效的并行搜索算法,自提出以来就受到学术界的广泛重视。

上述智能随机优化算法虽然不受问题种类约束,克服了传统优化方法的局限性,但是普遍存在搜索精度不高、易早熟、对参数依赖性高、搜索效率较低的缺陷。为克服上述缺陷,将几种智能优化方法相混合,对随机优化算法与确定性优化算法进行混合,对某种方法进行改进,从而可以产生有效的全局优化方法,这是优化理论方法中出现的新的研究方向。

基于遗传算法和线性反演方法的混合优化算法思想是:首先在传统遗传算法基础上,对交叉、变异后所得结果的处理以及进化过程的整体分布方面进行改进,并将改进的遗传算法与广义线性反演方法相结合,以改进的遗传算法为基础,在进化的每一代种群中选择目标函数最小的个体,进行一定次数的线性化迭代。混合优化算法克服了线性化方法依赖于初始值和遗传算法局部搜索能力差的缺陷。

基于遗传算法和序列二次规划算法的混合优化算法思想是:首先利用遗传算法进行初始化种群,通过选择、交叉和变异操作进行多次迭代,求得问题初始最优解,接着运用序列二次规划方法以初始最优解为初始搜索点进行迭代搜索,求出最终最优解。该算法能够发挥遗传算法全局寻优和序列二次规划算法局部寻优能力强的优点,有效提高算法搜索精度和搜索效率。

基于粒子群和共轭梯度的混合优化方法思想是:首先利用粒子群算法进行初始化种群,通过粒子群速度和位置多次迭代求出粒子群算法的初始最优解,此时,以初始最优解的最优位置为初始搜索点,以最优位置处的负梯度方向为搜索方向,利用共轭梯度法确定下一个最优位置并继续进行基于共轭梯度法的迭代搜索,直到满足共轭梯度法的终止条件。

上述三种混合优化方法虽然提高了搜索精度和搜索效率,但是仍存在难以跳出局部最优的问题。



技术实现要素:

本发明的目的在于提供一种将粒子群算法、混沌搜索算法和序列二次规划算法相结合的混合全局优化方法,该混合算法具有较高的计算精度和收敛速度,可解决机械优化设计领域的相关问题。

实现本发明目的的技术方案为:一种混合全局优化方法,包括以下步骤:

步骤1,对优化问题利用粒子群算法得到一组当前最优解;

步骤2,利用混沌搜索算法使得粒子跳出局部极值;

步骤3,在粒子群算法每一代的迭代过程中引入序列二次规划算法加速局部最优点搜索,得到优化问题的全局最优解。

进一步的,步骤1具体为:

步骤1-1,初始化下列参数:第一学习因子c1,第二学习因子c2,粒子群算法最大迭代次数MaxDT,粒子数目N,搜索空间维数D,粒子最大飞行速度vmax,最小飞行速度vmin,变量上下限[lb ub],适应度方差临界值[σ2],混沌搜索调节参数β,混沌搜索最大迭代次数M,进化速度因子pspeed,聚集度因子ptogether,进化速度因子的惯性权重调节参数wh和聚集度因子的惯性权重调节参数ws

步骤1-2,令t=0,t为粒子群算法迭代次数,0≤t≤MaxDT,初始化粒子群位置xi=(xi,1,xi,2,…,xi,D)和速度vi=(vi,1,vi,2,…,vi,D),1≤i≤N;

步骤1-3,计算粒子适应度值fi=f(xi),并初始化粒子群个体最优粒子pi和全局最优粒子pg,计算个体最优值fi,best=f(pi)和全局最优值fbest=f(pg);

步骤1-4,令t=1,按式(1)计算惯性权重w;

w=1-pspeed×wh+ptogether×ws (1)

步骤1-5,按式(2)更新粒子的速度vi,如果vi>vmax,则vi=vmax,如果vi<vmin,则vi=vmin;按式(3)更新粒子的位置xi,如果则重新初始化xi

式中,1≤j≤D;rand1和rand2均为(0,1)的随机数;

步骤1-6,计算粒子适应度值fi=f(xi),并更新pi和pg

进一步的,步骤2具体为:

步骤2-1,计算粒子群中粒子平均适应度并按式(4)计算归一化因子f,按式(5)计算粒子群体适应度方差σ2

步骤2-2,如果σ2<[σ2],则按式(6)计算混沌搜索概率p,否则转步骤2-1;

rand3为(0,1)的随机数,如果rand3<p,则对粒子群中最优粒子pg进行混沌优化搜索,否则转步骤3。

进一步的,混沌优化搜索的具体过程为:

第一步,令混沌搜索当前迭代次数k=0;初始化混沌变量j=1,2,…D,k=1,2,…M,

第二步,将混沌变量按式(7)线性映射到优化变量取值区间[lb ub]

rxgj为混沌搜索扰动变量;

第三步,令j=1,对最优解的每一维变量按式(8)进行混沌搜索

式中,β为混沌搜索调节参数;为当前最优解的第j维分量;

第四步,计算目标函数f(rxgk),如果f(rxgk)<f(rxg*),则fbest=f(rxgk);j=j+1,返回第三步;

第五步,如果k<M,k=k+1,更新混沌变量,并返回第二步;

进一步的,步骤3具体为:

步骤3-1,令最优粒子pg为初始点,运行序列二次规划算法,更新pg和fbest

步骤3-2,如果t<MaxDT,则t=t+1,否则返回步骤1-5;

步骤3-3,输出pg和fbest

进一步的,所述步骤1-3中的适应度值fi=f(xi)为待求问题的目标函数值。

进一步的,所述步骤1-3中的个体最优粒子pi和全局最优粒子pg为当前迭代的个体最优解和全局最优解。

与现有技术相比,本发明的显著优点为:本发明引入粒子群体适应度方差概念,并结合混沌搜索和序列二次规划方法,当粒子群体适应度方差小于给定临界值时,说明粒子聚集度较高,此时粒子易陷入局部最优,应该对最优粒子进行混沌搜索,以使粒子跳出局部最优,并且根据粒子的进化速度和聚集度自适应的改变惯性权重,进而改变粒子运动状态进一步确保粒子不陷入局部最优;并且在粒子每一次迭代过程中,引入序列二次规划优化算法,加速粒子局部最优点的搜索,提高算法整体搜索效率。

附图说明

图1为本发明混合全局优化方法的计算流程框图。

图2为基本粒子群算法计算流程框图。

图3为混沌优化算法计算流程框图。

图4为序列二次规划算法计算流程框图。

图5为悬臂梁结构示意图。

具体实施方式

粒子群算法作为经典的群智能优化算法,其基本流程如图2所示,单一的粒子群算法存在前期容易陷入局部最优,而后期搜索缓慢的不足。混沌搜索具有随机性、遍历性和规律性的特点,加入时间足够长,就能够不重复的遍历解空间,其基本流程如图3所示。序列二次规划算法具有局部寻优能力强局部收敛速度快的优点,其计算流程图如图4所示。

在基本粒子群优化算法中,所有粒子都有一个被目标函数决定的适应度值和决定它们位置变化和飞行方向的速度。基本粒子群进化算法的进化方程可以看成是由认知和社会两部分组成,认知代表各粒子本身的思考,粒子跟随粒子本身的最优解飞行,社会代表粒子间的信息共享,粒子跟随全局最优粒子飞行。

假设搜索空间为D维,粒子数目为N,xi=(xi,1,xi,2,…,xi,D)是粒子i的当前位置,vi=(vi,1,vi,2,…,vi,D)是粒子当前飞行速度,则粒子群中的粒子按式(1)和式(2)改变速度和位置:

式中,t为迭代次数;w为惯性权重;为粒子i历史经过的最好位置;为粒子群的全局最好位置;c1、c2分别为认知学习因子和社会学习因子,统称为学习因子;rand1和rand2是在(0,1)上的相互独立的随机数。

混沌现象是一种非周期的具有渐进的自相似有序性的现象。因其具有随机性、遍历性、规律性的独特性质,常作为优化设计领域搜索过程中避免陷入局部极值的一种全局优化机制。Logistic映射一般形式如式(3):

xgj为混沌变量的第j维分量;

分析和研究表明,当控制参数μ=4时,Logistic映射处于完全混沌状态,具有很好遍历性。许多关于混沌的试验研究大都是基于这种完全混沌状态进行的。本发明将在粒子群适应度方差小于给定值,即粒子聚集度较高,可能陷入局部极值的时候,以一定概率p对当前最优粒子中的每一维变量进行混沌搜索。

Logistic混沌搜索算法实现步骤为:

第一步,令混沌搜索当前迭代次数k=0;M为混沌搜索最大迭代次数,初始化混沌变量j=1,2,…D,k=1,2,…M,

第二步,将混沌变量按式(4)线性映射到优化变量取值区间[lb ub]

rxgj为混沌搜索扰动变量;

第三步,令j=1,对最优解的每一维变量按式(5)进行混沌搜索

式中:β为混沌搜索调节参数;为当前最优解的第j维分量;

第四步,计算目标函数f(rxgk),如果f(rxgk)<f(rxg*),则fbest=f(rxgk);j=j+1,返回第三步;

第五步,如果k<M,k=k+1,按式(3)更新混沌变量,并返回第二步;

序列二次规划方法由Wilson于1963年提出,后经韩世平以及Powell改进后,在非线性局部寻优的问题上显现出强大的求解能力。其核心思想是利用一系列二次规划子问题逼近原问题的最优解。原问题描述如式(6):

二次规划子问题描述如式(7):

式中,W(x,λ,μ)为原目标函数f(x)的Lagrange函数在迭代点处的Hesse矩阵;g(x)为原函数的梯度向量;JE(x)、JI(x)分别为等式约束cE(x)和不等式约束cI(x)的Jacobi矩阵。式(7)的解δx可以作为原问题下一步迭代的搜索方向;l为序列二次规划方法当前迭代次数。

二次规划算法具体实施步骤为:

步骤1,已知待求问题的目标函数f(x)以及约束函数cE(x)和cI(x),选择初始点z(0)=(x(0)(0)(0)),并设定精度要求tol,令l=0;

步骤2,计算点x(l)处的目标函数的梯度值g(x(l)),约束函数值cE(x(l))和cI(x(l)),并根据式(8)和式(9)计算约束函数的Jacobi矩阵值JE(x(l))和JI(x(l)),根据式(10)计算拉格朗日函数的Hesse矩阵值W(x(l)(l)(l)):

m1为等式约束个数,m2为不等式约束个数;

步骤3,解二次规划子问题,获得牛顿方向以及下一个迭代点的拉格朗日乘子向量;

步骤4,令计算f(x(l+1))若满足则终止迭代,输出x(l+1)和f(x(l+1))作为该问题的极小点和极小值;否则l=l+1,转步骤2。

本发明引入粒子群体适应度方差概念,并结合混沌搜索和序列二次规划方法,当粒子群体适应度方差小于给定临界值时,说明粒子聚集度较高,此时粒子易陷入局部最优,应该对最优粒子进行混沌搜索,以使粒子跳出局部最优,并且根据粒子的进化速度和聚集度自适应的改变惯性权重,进而改变粒子运动状态进一步确保粒子不陷入局部最优。并且在粒子每一次迭代过程中,引入序列二次规划优化算法,加速粒子局部最优点的搜索,提高算法整体搜索效率。

本发明在上述技术方案的基础上,从群体适应度方差、自适应惯性权重调整等方面进行改进,具体如下:

一、群体适应度方差

当粒子处于早熟收敛状态时,粒子会出现“靠拢”现象,而粒子聚集位置取决于其适应度值。因此,整个粒子群的状态就可以用粒子群体适应度方差来表示,适应度方差越小,表明粒子越处于收敛状态。假定fi为第i个粒子的适应度,favg为粒子平均适应度,σ2为群体适应度方差,则

式中:f为归一化因子,取值采用如下公式:

二、自适应惯性权重

基本PSO算法中,惯性权重w一般为线性递减,针对非线性度较高的问题,算法易陷入局部最优。为了克服上述弊端,应该根据粒子群的进化速度和聚集度的变化自适应的改变惯性权重以动态调整粒子运动状态,避免粒子陷入局部最优。

在优化过程中,粒子的进化速度可以由全局最优粒子的变化来表示,而粒子的聚集度可以由当前粒子群体中最优粒子适应度和平均适应度的相关表达式来表示。假设粒子群全局最优值为fbest,则进化速度因子pspeed和聚集度因子ptogether可以表示为:

当粒子进化速度减小时,应该使w的值减小,以便粒子在小空间搜索;当粒子聚集度较高时,说明粒子易陷入局部最优,应该使w的值增大,以便粒子增加搜索空间,避免陷入局部最优。综合分析,惯性权重w应该随着进化速度降低而减小,随着聚集度增加而增大,因此,w可以表示为:

w=1-pspeed×wh+ptogether×ws (14)

式中,wh取值区间为[0.4 0.6],ws取值区间为[0.05 0.20]。

如图1所示,本发明的混合全局优化方法具体步骤为:

步骤1,对优化问题利用粒子群算法得到一组当前最优解;

步骤1-1,参数初始化:第一学习因子c1,第二学习因子c2,粒子群算法最大迭代次数MaxDT,粒子数目N,搜索空间维数D,粒子最大飞行速度vmax,最小飞行速度vmin,变量上下限[lb ub],适应度方差临界值[σ2],混沌搜索调节参数β,混沌搜索最大迭代次数M,进化速度因子pspeed,聚集度因子ptogether,进化速度因子的惯性权重调节参数wh和聚集度因子的惯性权重调节参数ws

步骤1-2,令t=0,初始化粒子群位置xi=(xi,1,xi,2,…,xi,D)和速度vi=(vi,1,vi,2,…,vi,D);

步骤1-3,计算粒子适应度值fi=f(xi),并初始化粒子群个体最优粒子pi和全局最优粒子pg,个体最优值fi,best和全局最优值fbest

步骤1-4,令t=1,按式(14)计算惯性权重w;

步骤1-5,按式(1)更新粒子的速度vi,如果vi>vmax,则vi=vmax,如果vi<vmin,则vi=vmin;按式(2)更新粒子的位置xi,如果则重新初始化xi

步骤1-6,计算粒子适应度值fi=f(xi),并更新pi和pg

步骤2,利用混沌搜索算法使得粒子跳出局部极值;

步骤2-1,计算粒子群中粒子平均适应度favg,并按式(12)计算归一化因子f,按式(11)计算粒子群体适应度方差σ2

步骤2-2,如果σ2<[σ2],则按式(15)计算混沌搜索概率p,否则转步骤7;如果rand<p,则对粒子群中最优粒子pg进行混沌优化搜索,否则转步骤3:

步骤3,在粒子群算法每一代的迭代过程中引入序列二次规划算法加速局部最优点搜索,得到优化问题的全局最优解;具体为:

步骤3-1,对最优粒子pg为初始点,运行序列二次规划算法,更新pg和fbest

步骤3-2,如果t<MaxDT,则t=t+1,否则返回步骤1-5;

步骤3-3,输出pg和fbest

下面结合具体实施例对本发明作进一步说明。

实施例

为了验证混合全局优化算法的有效性,采用混沌粒子群、序列二次规划和混合全局优化算法对三个经典函数进行30次寻优,并对求解出的函数最优值进行比较,分析算法计算精度的大小。

算法参数设置为:学习因子c1=c2=1.49,粒子数目N=40,粒子群优化最大迭代次数MaxDT=100,粒子所允许的飞行速度范围为[vmin vmax]=[-10 10],混沌搜索最大迭代次数M=100,混沌搜索调节参数β=0.1,其中适应度方差临界值[σ2]视具体情况再设置。三个基准测试函数信息如表1所示:

表1

使用混沌粒子群、序列二次规划和混合全局优化三种算法分别对三个经典函数寻优30次,其中序列二次规划算法的初始搜索点为在变量范围内随机生成,得到最好全局最优值和平局全局最优值,结果如表2所示:

表2

从表2中可以看出:混沌粒子群算法基本能够求解出全局最优解,但是计算精度不高,当变量维数较多时,算法稳定性不好;序列二次规划算法由于对初始搜索点较敏感,很难搜索到全局最优解;而混合全局优化算法在变量维数较少时,求解结果的计算精度与混沌粒子群算法差异不明显,当变量维数较多时,混合全局优化算法在计算精度上相比混沌粒子群算法有了很大提高,并且求解结果中的最好全局最优值和平均全局最优值差异非常小,说明算法稳定性好。

通过一个机械优化实例来说明混合全局优化方法的具体实现过程:

悬臂梁优化问题:悬臂梁是指梁的一端为不产生轴向、垂直位移和转动的固定支座,另一端为自由端。在实际工程分析中,大部分实际工程受力部件都可以简化为悬臂梁,如图5所示。其设计变量为h(x1)、h(x1)、h(x1)、h(x1),目标函数为最小化总费用f(x)。

其数学模型为如式(16):

式中:P=6000,L=14,E=30×106,G=12×106

本实施例的混合全局优化方法具体步骤为:

步骤1,参数初始化:学习因子c1=c2=1.49,粒子群算法最大迭代次数MaxDT=100,粒子数目N=40,搜索空间维数D=4,粒子最大飞行速度vmax=10和最小飞行速度vmin=-10,适应度方差临界值[σ2]=3,混沌搜索调节参数β=0.1,混沌搜索最大迭代次数M=100,初始进化速度因子pspeed=0.5和聚集度因子ptogether=5,惯性权重调节参数wh和ws

步骤2,令t=0,初始化粒子群位置xi=(xi,1,xi,2,…,xi,D)和速度vi=(vi,1,vi,2,…,vi,D);

步骤3,计算粒子适应度值fi=f(xi),并初始化粒子群个体最优粒子pi和全局最优粒子pg,个体最优值fi,best和全局最优值fbest

步骤4,令t=1,计算惯性权重w=1-pspeed×wh+ptogether×ws

步骤5,更新粒子的速度

如果vi>vmax,则vi=vmax,如果vi<vmin,则vi=vmin;更新粒子的位置如果则重新初始化xi

步骤6,计算粒子适应度值fi=f(xi),并更新pi和pg

步骤8,如果σ2<[σ2],则计算混沌搜索概率否则转步骤7;如果rand<p,则对粒子群中最优粒子pg进行混沌优化搜索,否则转步骤9:

步骤9,对最优粒子pg为初始点,运行SQP算法,更新pg和fbest

步骤10,如果t<MaxDT,则t=t+1,否则返回步骤5;

步骤11,输出pg和fbest

优化结果如表3:

表3

本发明以基本粒子群算法为主体,并结合混沌搜索和序列二次规划方法,当粒子群体适应度方差小于给定临界值时,说明粒子聚集度较高,此时粒子易陷入局部最优,应该对最优粒子进行混沌搜索,以使粒子跳出局部最优,并且根据粒子的进化速度和聚集度自适应的改变惯性权重,进而改变粒子运动状态进一步确保粒子不陷入局部最优。并且在粒子每一次迭代过程中,引入序列二次规划优化算法,加速粒子局部最优点的搜索,提高算法整体搜索效率。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1