首页 理论教育 优化工程应用中的非线性规划问题:最速下降法

优化工程应用中的非线性规划问题:最速下降法

时间:2023-06-30 理论教育 版权反馈
【摘要】:在工程应用中,一般性的非线性规划问题通常采用两类方法进行求解:1.梯度法,如最速下降法。这样而上述方法给出了此优化算法的基础,此优化算法被称为最速下降法。最速下降法的步骤1.令k=0。图6.4 最速下降法的例子在最速下降法中,每一步都要确定向量u的移动方向,该方向就是增广费用函数C变化最快的方向。因此,最速下降法的关键在于γ的选择。

优化工程应用中的非线性规划问题:最速下降法

在工程应用中,一般性的非线性规划问题通常采用两类方法进行求解:

1.梯度法,如最速下降法。

2.迭代法,如逐次二次规划法。

在无约束系统中,通常求解函数fx)最小化问题的方法是令函数的导数为零,然后根据导数方程求解出系统的状态。然而,对于大多数应用,在无约束最小化条件下得到的系统状态将不能满足约束方程。因此,需要寻找一种替代的方法来求解带约束的最小化问题。其中的一种方法是引入附加的参数集λ,通常被称为Lagrange乘子,将约束条件加入到费用函数中。这样,增广后的费用函数变为

最小化 fx)-λcx) (6.91)

式(6.91)的增广函数最小化问题,可以通过令增广函数的导数为零进行求解。注意,式(6.91)关于λ的导数,所得到的就是式(6.64)的等式约束。

例6.7 最小化

978-7-111-58306-6-Chapter06-92.jpg

约束条件为

2x-y=5

解6.7 注意,要使其最小化的函数是一个圆的方程。此函数的无约束最小值在原点x=0和y=0上取到,意味着此圆的半径为零。然而,加上约束条件后,此圆必须与给定的直线相交,因此,此圆的半径不能为零。增广的费用函数变为

978-7-111-58306-6-Chapter06-93.jpg

式中,λ表示Lagrange乘子。令增广费用函数的导数为零,得到如下方程组:

978-7-111-58306-6-Chapter06-94.jpg

求解此方程组得到[xyλ]T=[2 -1 1]T。在增广费用函数取到最小值的点上,费用函数式(6.92)的值为

978-7-111-58306-6-Chapter06-95.jpg

费用函数f和约束方程c也可能是某个外部输入u的函数,在最小化函数fx)的过程中,u是可变的。在这种情况下,式(6.91)可以更一般地表示为

最小化fxu)-λcxu) (6.94)

如果等式约束超过一个,那么λ就变为一个乘子向量,增广费用函数变为

Cfx)-[λ]Tcx) (6.95)式中,C∗的导数变为

978-7-111-58306-6-Chapter06-96.jpg

注意,对任何满足等式约束的可行解,都满足式(6.96);但可行解不一定是使费用函数最小化的最优解。在这种情况下,[λ]可以从式(6.97)中得到,

且只有

978-7-111-58306-6-Chapter06-97.jpg

这个向量可以被用作梯度向量[978-7-111-58306-6-Chapter06-98.jpgC],它和费用函数C等值线正交。这样

978-7-111-58306-6-Chapter06-99.jpg

978-7-111-58306-6-Chapter06-100.jpg

上述方法给出了此优化算法的基础,此优化算法被称为最速下降法。

最速下降法的步骤

1.令k=0。给定一个初始向量uk=u0

2.求解式(6.96)(可能是非线性的),得到可行解x

3.根据式(6.101)计算Ck+1978-7-111-58306-6-Chapter06-101.jpgCk+1。若‖Ck+1-Ck‖小于事先设定的误差,则停止。

4.计算新的向量uk+1=uk-γ978-7-111-58306-6-Chapter06-102.jpgC,其中γ是用户设定的大于零的算法步长。

5.k=k+1。返回步骤2。

978-7-111-58306-6-Chapter06-103.jpg

图6.4 最速下降法的例子

在最速下降法中,每一步都要确定向量u的移动方向,该方向就是增广费用函数C变化最快的方向。例如,考虑一个人从山顶滑雪至山脚,如图6.4所示。滑雪者会在某一段路径上直线前进。在此点上,他也许并不是直指山下滑行的。因此。他会不断调整,以使自己朝着最速下降的方向前进。最速下降的方向与等高线(即费用)的切线垂直。滑雪者每次调整方向间的移动距离与算法中的步长γ是类似的。当γ较小时,滑雪者会频繁地改变方向,这样,他的下降速度不高。而当γ较大时,他可能会越过山脚重新上坡。因此,最速下降法的关键在于γ的选择。如果γ选得小,算法更容易收敛到最小值,但需要更多的迭代次数。相反地,大的γ会导致在最小值附近振荡。

例6.8 最小化

Cx21+2x22+u2=fx1x2u) (6.102)

约束条件为(www.xing528.com)

0=x21-3x2+u-3 (6.103)

0=x1+x2-4u+2 (6.104)

解6.8 为了求解式(6.101)的978-7-111-58306-6-Chapter06-104.jpgC,需要如下的偏导数:

978-7-111-58306-6-Chapter06-105.jpg

可以得到

978-7-111-58306-6-Chapter06-106.jpg

迭代1

u=1,γ=0.05,选择停止迭代的准则=0.0001。求解x1x2,得到两组解及其对应的费用函数:

x1=1.7016 x2=0.2984 f=4.0734

x1=-4.7016 x2=6.7016 f=23.2828

第1组解得到了费用函数的极小值,因此被选择为工作解。将x1=1.7016,x2=0.2984代入到梯度函数中,得到978-7-111-58306-6-Chapter06-107.jpgC=10.5705,u的新值变为

u(2)=u(1)-γ978-7-111-58306-6-Chapter06-108.jpgC

=1-(0.05)(10.5705)

=0.4715

迭代2

u=0.4715,再次求解x1x2,得到两组解及其对应的费用函数:

x1=0.6062 x2=-0.7203 f=1.6276

x1=-3.6062 x2=3.4921 f=14.2650

第1组解再次得到了费用函数的极小值,因此被选择为工作解。费用函数的差为

|C(1)-C(2)|=|4.0734-1.6276|=2.4458大于迭代停止准则。将这些值代入到梯度函数中,得到978-7-111-58306-6-Chapter06-109.jpgC=0.1077,u的新值变为

u(3)=u(2)-γ978-7-111-58306-6-Chapter06-110.jpgC

=0.4715-(0.05)(0.1077)

=0.4661

迭代3

u=0.4661,再次求解x1x2,得到两组解及其对应的费用函数:

x1=0.5921 x2=-0.7278 f=1.6271

x1=-3.5921 x2=3.4565 f=14.1799

第1组解再次得到了费用函数的极小值,因此被选择为工作解。费用函数的差为

|C(2)-C(3)|=|1.6276-1.6271|=0.0005

大于迭代停止准则。将这些值代入到梯度函数中,得到978-7-111-58306-6-Chapter06-111.jpgC=0.0541,u的新值变为

u(4)=u(3)-γ978-7-111-58306-6-Chapter06-112.jpgC

=0.4661-(0.05)(0.0541)

=0.4634

迭代4

u=0.4634,再次求解x1x2,得到两组解及其对应的费用函数:

x1=0.5850 x2=-0.7315 f=1.6270

x1=-3.5850 x2=3.4385 f=14.1370

第1组解再次得到了费用函数的极小值,因此被选择为工作解。费用函数的差为

|C(3)-C(4)|=|1.6271-1.6270|=0.0001

满足迭代停止准则。因此,问题的解为x1=0.5850,x2=-0.7315,u=0.4634,而费用函数的最小值为f=1.6270。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈