一种基于梯度下降法的多目标粒子群优化方法与流程

文档序号:13760878阅读:2815来源:国知局

本发明涉及人工智能研究领域,尤其涉及一种基于梯度下降法的多目标粒子群优化方法。



背景技术:

优化问题存在于各个方面,是指利用优化技术得到待求解问题的最优解。在理论研究与实际优化问题中,往往存在多个需要同时考虑的目标,即多目标优化问题,此类问题由于各个目标间存在相互制约的关系,很难用常规的数学方法(如线性规划)求解。

目前,对于多目标问题的处理方式大致可以分为两类:第一类是利用加权的思想,将多个目标转化为单个目标,从而利用单目标求解技术进行求解;第二类方法是对多个目标同时优化,利用Pareto最优的思想,构建多目标优化问题的Pareto最优解集,从而给决策者提供参考信息。

粒子群优化算法(particle swarm optimization,PSO)是一种模拟鸟群觅食的群智能优化算法,由Kennedy等提出,通过追随解空间中两个最优值(个体历史最优pBest,全局最优gBest)进行寻优。通过如下两个公式进行更新:

vi(k+1)=ω·vi(k)+c1·γ1·[Pi-xi(k)]+c2·γ2·[Pg-xi(k)];

xi(k+1)=vi(k+1)+xi(k);

i为粒子索引;k为离散时间索引;vi(k)为第i个粒子在第k代的速度;xi(k)为第i个粒子在第k代的位置;ω为惯性权重;c1为认知加 速常数;c2为社会加速常数;γ1γ2为[0,1]区间内的随机数;Pi为第i个粒子的个体最位置(个体最优);Pg为粒子群群体历史最优位置(全局最优)。

粒子群优化算法是目前处理多目标优化问题的一个有效方向,利用随机产生的初始种群,通过更新迭代求解,已被成功应用于多目标优化领域,在工程优化、调度等方向有广泛应用。但是从单目标扩展到多目标问题时,由于进化机制产生了变化,得到的不是单个最优解,而是一组解集,对于解集的更新与维护,pBest,gBest等选取与单目标时有许多差异;目前对多目标优化的研究主要针对其他进化算法,而对多目标粒子群优化算法研究较少。

通常对于单目标优化问题,梯度信息对于寻优的改善作用是有目共睹的,产生了最速下降法、牛顿法、共轭梯度法等求解方法。梯度下降法是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代都能朝着函数最小(对于最小优化问题)的方向前进。梯度下降法是二范数下的最速下降法。梯度下降法的一种简单形式是:

<mrow> <mi>x</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mi>x</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>&alpha;</mi> <mo>&CenterDot;</mo> <mo>&dtri;</mo> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

其中α称为学习速率,是一个较小的常数,是x(k)的梯度。单纯的梯度下降法容易导致算法收敛于最近的极值点,而粒子群算法由于它的随机的特性从而容易跳出局部极值点,将两者的特性结合起来对粒子群的寻优求解会有很大帮助。



技术实现要素:

本发明为克服上述的不足之处,目的在于提供一种基于梯度下降 法的多目标粒子群优化方法,本方法将粒子群优化算法扩展到多目标优化,同时结合梯度下降法,改善多目标粒子群算法的优化性能,提升优化效率。

本发明是通过以下技术方案达到上述目的:一种基于梯度下降法的多目标粒子群优化方法,包括如下步骤:

(1)对粒子群种群进行初始化;在目标空间中随机化粒子群,设置每个粒子的个体极值与全局极值为初始位置;设置外部档案集为空;初始化迭代次数t=0;

(2)计算粒子群内各粒子的目标函数值,并判断目标函数值是否满足迭代终止准则,若满足最大迭代次数,则完成优化并输出结果;否则更新迭代次数t=t+1,执行步骤(3);

(3)判断粒子的支配关系,将非支配解放入外部档案集;

(4)在粒子群内选取最优粒子,更新该粒子的个体极值与全局极值;

(5)计算粒子群内所有粒子在各目标函数上的适应值,将新的非支配解更新放入外部档案集;

(6)利用梯度策略更新每个粒子的位置和速度后跳转执行步骤(2)。

作为优选,所述种群初始化包括设置种群大小N、目标个数M、最大迭代次数T。

作为优选,所述步骤(4)选取最优粒子,方法如下:

(i)对于历史最优pBest的选取,利用粒子之间的支配关系确定,从当前粒子和历史最优中选择非支配解为pBest;若粒子互不支配,则随机选取一个为pBest,利用sigma方法选取gBest;

(ii)对于全局最优gBest的选取,利用sigma方法进行选取。

作为优选,所述利用sigma方法选取gBest的方法步骤如下:

1)分别计算外部档案集中粒子的sigma(σ)值,σ表达式如下:

<mrow> <mi>&sigma;</mi> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>f</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>f</mi> <mn>2</mn> <mn>2</mn> </msubsup> </mrow> <mrow> <msubsup> <mi>f</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>f</mi> <mn>2</mn> <mn>2</mn> </msubsup> </mrow> </mfrac> <mo>;</mo> </mrow>

2)从种群中随机选取一个粒子,计算其σi值;

3)计算该粒子σi值与外部档案集的粒子σ值之间的欧氏距离,选取欧式距离最小的外部档案集的粒子作为该粒子的gBest。

作为优选,所述利用梯度策略更新粒子的位置和速度具体为利用梯度下降法结合粒子群算法更新粒子的位置与速度,方法如下:利用个体最优位置pBest与全局最优位置gBest指导粒子的飞行方向,在每次迭代更新寻优方向时,通过利用每个目标函数的梯度信息指导粒子的飞行方向,结合粒子本身的pBest、gBest得到新的粒子群速度。

作为优选,所述粒子速度的更新公式如下:

vi(k+1)=ω·vi(k)+c1·γ1·[Pi-xi(k)]+c2·γ2·[Pg-xi(k)]+c3·gi(f[x(k)])

其中,i为粒子索引;k为离散时间索引;vi(k)为第i个粒子在第k代的速度;xi(k)为第i个粒子在第k代的位置;ω为惯性权重;c1为认知加速常数;c2为社会加速常数;c3是加速常数;γ1γ2为[0,1]区间内的随机数;Pi为第i个粒子的个体最位置;Pg为粒子群群体历史最优位置;f[xi(k)]为目标函数的偏导数。

作为优选,所述f[xi(k)]由如下公式得到:

<mrow> <mi>f</mi> <mo>&lsqb;</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>=</mo> <mfrac> <mrow> <mo>&part;</mo> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

通过导数定义对上式进行变换得到f[xi(k)]的计算公式,如下所示:

作为优选,所述粒子位置的更新公式如下:

xi(k+1)=vi(k+1)+xi(k)

其中,i为粒子索引;k为离散时间索引;vi(k)为第i个粒子在第k代的速度;xi(k)为第i个粒子在第k代的位置。

本发明的有益效果在于:本方法将梯度下降法与粒子群算法相契合,解决了非连续函数梯度的计算,加快了算法在计算梯度方面的速度,降低了算法的复杂度。

附图说明

图1是本发明实施例优化方法的流程示意图。

具体实施方式

下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:

实施例:如图1所示,本发明提出了基于梯度下降法的多目标粒子群优化算法,利用粒子群算法更新迭代的原理,结合梯度下降法,巧用导数定义解决了梯度下降法在非连续函数方面的计算,包括如下步骤:

步骤S1、种群初始化,设置种群大小N,目标个数M,最大迭代次数T;在目标空间中随机化粒子群,设置每个粒子的个体极值与全局极值为初始位置;设置外部档案集为空;初始化迭代次数t=0;

步骤S2、计算各粒子的目标函数值;

步骤S3、判断是否满足迭代终止准则,达到最大迭代次数时停止优化并输出结果;否则更新迭代次数t=t+1,转步骤S4;

步骤S4、判断个体的支配关系,将非支配解更新至外部档案集;

步骤S5、最优粒子选取:

i)对于pBest选取,利用粒子之间的支配关系确定,从当前粒子和历史最优中选择非支配解为pBest;若两者互不支配,则随机选取一个为pBest;利用sigma方法选取gBest。

ii)对于gBest选取,利用sigma方法选取。

其中,所述sigma方法选取gBest,包括如下步骤:

1)分别计算外部档案集中的粒子的sigma(σ)值,对于两个目标的多目标优化来说,σ可表示为:

<mrow> <mi>&sigma;</mi> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>f</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>f</mi> <mn>2</mn> <mn>2</mn> </msubsup> </mrow> <mrow> <msubsup> <mi>f</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>f</mi> <mn>2</mn> <mn>2</mn> </msubsup> </mrow> </mfrac> <mo>;</mo> </mrow>

2)从种群中选取一个粒子,计算其σi值;

3)计算该粒子σi值与外部档案集所有成员σ值之间的欧氏距离,选取欧式距离最小的外部档案集中的成员作为该粒子的gBest。

步骤S6、更新粒子的个体极值与全局极值;

步骤S7、计算所有粒子在各目标函数上的适应值,将新的非支配解更新到外部档案集中;

步骤S8、利用梯度策略更新每个粒子的位置和速度,转步骤S2。具体地,利用梯度下降法结合粒子群算法更新粒子的位置与速度的详细过程如下:

粒子群算法利用一组随机的粒子在解空间中通过迭代来搜索最 优解,利用自身最好位置pBest与群体最好位置gBest指导飞行方向,每次迭代更新寻优方向,我们希望在每次更新迭代中,通过利用每个目标函数的梯度信息来指导粒子的飞行方向,结合粒子本身的pBest、gBest来加快算法的收敛速度,得到新的粒子群速度更新公式如下所示:

vi(k+1)=ω·vi(k)+c1·γ1·[Pi-xi(k)]+c2·γ2·[Pg-xi(k)]+c3·gi(f[x(k)])

其中,c3是加速常数,由于纯梯度下降法可能会导致算法收敛到最近的局部解,所以添加了一个随机系数。f[xi(k)]为目标函数的偏导数,由下公式得到:

<mrow> <mi>f</mi> <mo>&lsqb;</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>=</mo> <mfrac> <mrow> <mo>&part;</mo> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

但是上述公式只能适用于目标函数是连续可微,对于非连续可微函数,采用导数定义,如下公式所示:

<mrow> <mfrac> <mo>&part;</mo> <mrow> <mo>&part;</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> </mrow> </mfrac> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&Delta;x</mi> <mi>i</mi> </msub> <mo>)</mo> <mo>)</mo> <mo>-</mo> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mrow> <msub> <mi>&Delta;x</mi> <mi>i</mi> </msub> </mrow> </mfrac> <mo>;</mo> </mrow>

一般来说,对于Δxi的确定比较困难。本文采取比较巧妙的策略,对于粒子群算法来说,每次的更新迭代都会产生新的个体,利用xi-xi-1=Δxi的方法刚好与梯度下降法的思想相契合,解决了非连续函数梯度的计算,也加快了算法在计算梯度方面的速度,降低了算法的复杂度。

以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。

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