内点法的基本原理以及举例计算

上传人:壹****1 文档编号:489931640 上传时间:2022-09-10 格式:DOCX 页数:8 大小:48.34KB
返回 下载 相关 举报
内点法的基本原理以及举例计算_第1页
第1页 / 共8页
内点法的基本原理以及举例计算_第2页
第2页 / 共8页
内点法的基本原理以及举例计算_第3页
第3页 / 共8页
内点法的基本原理以及举例计算_第4页
第4页 / 共8页
内点法的基本原理以及举例计算_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《内点法的基本原理以及举例计算》由会员分享,可在线阅读,更多相关《内点法的基本原理以及举例计算(8页珍藏版)》请在金锄头文库上搜索。

1、一、点法1. 根本原理 点法的特点是将构造的新的无约束目标函数惩罚函数定义在可行域,并在可行域求 惩罚函数的极值点,即求解无约束问题时的探索点总是在可行域部,这样,在求解点惩罚函 数的序列无约束优化问题的过程中,所求得的系列无约束优化问题的解总是可行解,从而在 可行域部逐步逼近原约束优化问题的最优解。点法是求解不等式约束最优化问题的一种十分有效方法,但不能处理等式约束。因为构 造的点惩罚函数是定义在可行域的函数,而等式约束优化问题不存在可行域空间,因此,点 法不能用来求解等式约束优化问题。对于目标函数为minf (X )s.t.g (X) 0(u = 1,2,m)的最优化问题,其惩罚函数的一般

2、形式为 u(X, r (k) = f (X) + r (k 送u =1申(X, r (k) = f (X) - r (k 吃 ln g (X) u u=1式中, r(k)惩罚因子,是递减的正数序列,即r (o) r (1) r(2) r (k) r (k+1) 0lim r (k ) = 0k T8通常取 r(k) = 1.0,0.1,0.01,0.001,。上述惩罚函数表达式的右边第二项,称为惩罚项,有时还称为障碍项。 说明:当迭代点在可行域部时,有g (X ) 0,那么惩罚u项恒为正值,当设计点由可行域部向约束边界移动时,惩罚项的值要急剧增大并趋向无穷大 于是惩罚函数的值也急剧增大直至无穷

3、大,起到惩罚的作用,使其在迭代过程中始终不会触与约束边界。2. 点法的迭代步骤1取初始惩罚因子r (0) 0,允许误差 0 ;2在可行域D取初始点X(0),令k二1 ;3构造惩罚函数P (X, r(k),从X( k-1)点出发用无约束优化方法求解惩罚函数P(X, r(k)的极值点 X*(r(k);4检查迭代终止准那么:如果满足|X * (r(k) - X * (r(k-1)| = 10-5 -10-7 = 10-3 10-42p (X *, r (k)-p (X *, r(k-1)p (X *, r(k-1)那么停止迭代计算,并以X*(r(k)为原目标函数f (X)的约束最优解,否那么转入下一

4、步;根据情况,终止准那么还可有如下的形式:f(X(k)-f(X(k-1) r (k )-1.,g (X)u=1 ur(kIn|g (X)|u =15取 r(k+1)二 Cr(k),X(o)二 X*(r(k),k 二 k +1,转向步骤 3。递减系数C二0.1 - 0.5,常取0.1,亦可取0.02。采用点法应注意的几个问题:1初始点X(o)的选取初始点X(o)必须严格在可行域,满足所有的约束条件,防止为约束边界上的点。如果约束条件比拟简单,可以直接人工输入;假设问题比拟复杂,可采用随机数的方式产生初始点X(0),具体方程参照复合形法介绍。2关于初始惩罚因子r(0)的选择。实践经验说明,初始惩罚

5、因子r(0)选的恰当与否,会显著地影响点法的收敛速度,甚至解题的成败。假设r(0)值选得太小,那么在新目标函数即惩罚函数9(X,r(k)中惩罚项的作用就会很 小,这时求9(X,r(k)的无约束极值,犹如原目标函数f (X)本身的无约束极值,而这个极 值点又不大可能接近f (X)的约束极值点,且有跑出可行域的危险。相反,假设r(0)值取得 过大,那么开始几次构造的惩罚函数9(X,r(k)的无约束极值点就会离约束边界很远,将使计算效率降低。可取r(o)Q 150,但多数情况是取r(0)= 1。通常,当初始点X(0)是一个严格的点时,那么应使惩罚项r(0)兰u=11在新目标函g (X(0)u数9(X

6、,r(k)中所起的作用与原目标函数f (X(o)的作用相当,于是得倘假设约束区域是非凸的且初始点X(o)亦不靠近约束边界,那么r(o)的取值可更小,约为上 式算得值的0.10.5倍。停止e1r(o), &, & , Ci开始X * = X *(r( k)f (X*)二 f (X*(r(k)从X (k-i)点出发求解: minX, r ),得 X*(r (k)在可行域内选取X (0)k=1r (k+i) = Cr (k)k = k +1点法的计算程序框图例题:用点法求minf ( X )二 x 2 + x 212s.t.g (X)二 1-X f2h3=h2+st; f3=fh(x0,h3,s,r

7、); while f2f3h1=h2;h2=h3;h3=h3+st; f2=f3;f3=fh(x0,h3,s,r);endelsest=-st;v=h1;h1=h2;h2=v;v=f1;f1=f2;f2=v;h3=h2+st;f3=fh(x0,h3,s,r);while f2f3h1=h2;h2=h3;h3=h3+st;f2=f3;f3=fh(x0,h3,s,r);endend%得到上下高的区间a=min(h1,h3);b=max(h1,h3); %利用黄金分割点法进展求解 h1=1+0.382*(b-a); h2=1+0.618*(b-a);f1=fh(x0,h1,s,r);f2=fh(x0

8、,h2,s,r);while abs(a-b)0.0001if f1f2a=h1;h1=h2;f1=f2;h2=a+0.618*(b-a);f2=fh(x0,h2,s,r);elseb=h2;h2=h1;f2=f1;h1=a+0.382*(b-a);f1=fh(x0,h1,s,r);endendh=0.5*(a+b);4. 迭代点的寻优函数function f=fsearchx(x0,r,epson)x00=x0;m=length(x0);s=zeros(m,1);for i=1:ms(i)=1;h=fsearchh(x0,r,s);x1=x0+h*s;s(i)=0;x0=x1;endwhile norm(x1-x00)epson x00=x1;for i=1:ms(i)=1;h=fsearchh(x0,r,s); x1=x0+h*s;s(i)=0;x0=x1;endendf=x1;5. 主程序clearclcx0=2;2; %给定初始点 r=1;c=0.1;epson=0.001; x1=fsearchx(x0,0.1,epson); while norm(x0-x1)epson x0=x1;r=r*c; x1=fsearchx(x0,r,epson) ;enddisp 函数的最优解为x1运行结果: 函数的最优解为 x1 =1.0475-0.0005

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号