2023年复合形法大作业_第1页
2023年复合形法大作业_第2页
2023年复合形法大作业_第3页
2023年复合形法大作业_第4页
2023年复合形法大作业_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

优化理论与最优控制大作业

(2023--2023年度第1学期)

题目:___________复合形法大作业____________

院系:控制与计算机工程学院

小组成员:

研控计1320班:范冠男

习春苗

程丕建

王凯

郭萍

研控计•1322班:赵亮

成绩:_____________________________________

日期:2023年12月8日

一、作业题目

运用复合形法求解Schaffer'sfunction

(sin2Jx?)-0.5----------

max/(X)=0.5--一丝~:…(-4<x,.<4i=1,

(l+0.001.(x;+x;))2|-----!

2)

注:本组各函数中的n值均取为2

二、复合形法的基本原理及本文思绪

1、复合形法原理:复合形法的基本思绪是在n维空间的可行域中选取

K个设计点(通常取n+l[lK团2n)作为初始复合形(多面体)的顶点。然后比

较复合形各顶点目的函数的大小,其中目的函数值最大的点作为坏点,以坏点

之外其余各点的中心为映射中心,寻找坏点的映射点,一般说来此映射点的

目的函数值总是小于坏点的,也就是说映射点优于坏点。这时,以映射点替

换坏点与原复合形除坏点之外其余各点构成K个顶点的新的复合形。如此

反复迭代计算,在可行域中不断以目的函数值低的新点代替目的函数值最大

的坏点从而构成新复合形,使复合形不断向最优点移动和收缩,直至收缩到

复合形的各顶点与其形心非常接近、满足迭代精度规定期为止。最后输出复

合形各顶点中的目的函数值最小的顶点作为近似最优点。

2、本文思绪:本文在理解复合形法的基础上,提出将定义域区域进

行等分,提成mXm个小块。然后对每小块区域选取一个初始点进行寻优,

最后比较这些初值点找到的最优值,并把最佳的一个最优值作为最终的输出

最优值。

三、基本程序流程图

使复合形向最好点可收缩

收缩后的单纯形顶点代替%

图一、程序流程图

四、求解寻优过程

1、函数三维图形:

图二、目的函数三维图

2、理论结果:

由函数的三维图形不难看出,该函数的理论最大值为1。即当X=0,Y=0,

时,Z=f(x)取最大值为1。故理论解为X=E0,0]T,f(X)=lo

3、寻优过程:

本文在运用复合形法求解过程中,在平面区域内将区域等提成为64小块,

并在每个小块中选取一个初始值作为复合形法的初始值进行寻优计算,并将最终

的最优值作为寻优结果。在区域内初始点散点图如下,从中可以看到在每个网状

线格子中都有一个初值。

初始点在区域散点图

4

图三、64个初始点在定义域散点图

同时,本文选取部分初始值寻优结果列入下表:

初始点序号X0(l)X0(2)迭代次数过程最优值

1-3.-3.270.

2-2.03612987-3.240.

3-1.-3.210.

4-0.-3.370.

50.-3.460.

........................................

221.-1.230.

232.-1.230.

243.-1.500.

25-3.-0.210.

26-2.03612987-0.400.

........................................

60-0.3.390.

610.3.260.

621.3.220.99028409

632.3.490.

643.3.470.

表一、64个初始点寻优登记表

为了清楚地展示复合形的寻优过程,本文绘制了复合形法在迭代过程的寻优

轨迹,也即最大值的寻找过程。下图为复合形法中找到最优值时的寻优轨迹图。

寻优轨迹

1,二丁''''=丁'':

//\

0.9-;1/-

///

0.8-1;I-

0.7-!|;-

0.6-II,1-

金口5、丁1.

0.4-।I-

03

、J寻优轨迹(f(xh))-

02.形心点的轨迹_

0.1•/I-

0卜rr「「「I」」「rr;

05101520253035404550

迭代次数

图四、全局最优点的寻优轨迹图

4、寻优结果:

由该方法找到的最优解为X=[0.02955566;-0.00589362],此时最大值f(X)=

0.99909101o由此可知,该结果与理论值很接近的,证明了算法的有效性。

五、寻优分析与探讨

1、复合形法

通过上面的求解过程,我们得出并不是任意给定的初始点都能找到全局最

优点,也即函数的最大值。本文通过在定义域内选取大量的初始点来进行优化求

解,并且在将区域提成64块时找到了最优点。但是事实上在这64个初始点中,

能找到最优点的概率还是很低的。当然,通过仿真实验我们还发现随着在定义域

内选取的初始点越多,也即分的区域块数越多,找到最优点的概率越大。

2、Matlab工具箱求解

为了验证分区选取初始点的有效性,本文还通过Matlab中自带的优化

工具箱,即求解非线性规划的fmincon命令来求取该函数的最大值。事实上,

对于给定函数解析式的非线性函数,该方法比复合形法要更有效。下表为结合初

始点分区选择和非线性规划方法求解该函数最值的过程。

初始点序号X0(1)X0(2)过程最优值

1-3.-3.0.

2-0.75535277-3.0.

31.-3.0.99028409

43.-3.0.

5-3.-0.755352770.

6-0.75535277-0.755352770.

71.-0.755352770.

83.-0.755352770.

9-3.1.0.99028409

10-0.755352771.0.

111.1.0.

123.1.0.99028409

13-3.3.0.

14-0.755352773.0.

151.3.0.99028409

163.3.0.

表二、16个初始点寻优登记表

由此表可知,本文仅将定义域提成16块即找到3次全局最优点(即表中绿色

部分初始点)。同时,本文也做过仿真实验,当分的区域块数越大,找到全局最优的

机率越大。而对于寻优而言,我们只需找到一次全局最优点即得到该函数的最大

值,进一步验证了分区的有效性。

六、总结

本文在理解复合形法的基础上,针对复合形法寻优过程对初值的依赖性很

大这一问题,提出将定义域区域进行等分,然后对每小块区域选取一个初始点进

行寻优,然后比较这些初值点找到的最优值,把最佳的一个最为最终的最优值。实

验证明该方法很有效。同时,我们也结识到复合形法也存在一定的问题,运算比较

慢。本文通过Matlab求解非线性规划的方法进一步对定义域分区的思想进行验

证。从仿真结果中结果中可以看出,这种方法比复合形法更有效。

七、附录

1、目的函数的三维图形绘制程序

x=—4:0.1:4;

y=-4:0.1:4;

[XY]=meshgrid(x,y);

A

Z=O.5-(sin((sqrt(X.2+Y,"2))).-2-0.5)./(1+0.001*(X.人2+Y,八2)).八2;

mesh(X,Y,Z)

xlabel('X');

x1abe1('Y1);

xlabe1CZ');

2、复合形法求解程序如下:

symsxlx2

f=-(0.5-(sin((sqrt(x1.人2+x2.八2))).-2—0.5)./(1+0.001*(x1.A2+x2.A2)).A

2);%目的函数

a=[—4;—4];

b=[4;4];

alpha=1;

var=[xl;x2];

e=l.0e-8;

el=1.Oe-6;

sita=0.5;

M=[];%记录每个初值迭代后最优值的向量

W=口;%记录各个初始值取最优值时的解向量

t=口;%记录各个初始值取最优值时的解向量

D=[];%记录各个初始值取最优值时的迭代次数

m=8;%定义域提成8*8个块数

al=-4;

b1=4;

z=zeros(l,m);

X0=zeros(2,m*m);

fbri=1:m

z(i)=al+(b1-al)/m*(i—1)+rand(b1-al)/m;

end

fori=1:m

fbrj=l:m

XO(l,i+m*(j-l))=z(i);

end

end

fbri=l:m

W=[Wones(l,m)*z(i)];

end

XO(2,:)=W;

fori=l:m*m

[x,d,minf]=chi1dfun(f,XO(:,i),a,b,alpha,sita,var,e,el);

M=LM,minfj;

t=[t,x];

D=[D,d];

end

[maxfindex]=min(M)

x=t(:,index)

dl=D(index)

function[x,d,minf]=childfun(f,xO,a,b,alpha,sita,var,e,e1)

%f为目的函数

%%g为约束条件

%a为xi的下限a=[al;a2;…;an]

%b为xi的上限b=[bl;b2;…;bn]

%alpha为反射系数o

%var为自变量向量var=[xl;x2;…;xn]

%©为运算中止精度

%el为反射系数收缩下限

%sita为紧缩系数

aa=a;

bb=b;

n=2;

k=3;

while!

fx=zeros([l,k]);

X=zeros([n,k]);

g=[var-aavar+bb1;%约束函数g(X)

%产生初值

X(:,1)=xO;

fori=2:k

r=abs(rand([2,ID);

X(:,i)=aa+r.*(bb—aa);

end

%%寻优

traceFXk=[0];%用来记录每次迭代所产生的最坏点Xh

tracefxc0=[0];%用来记录每次迭代所产生的形心点Xc0

FXk=U;

while1

fori=l:k

fx(i)=subs(f,var,X(:,i));%计算复合形所有顶点的函数值

end

[FX,IX]=sort(fx);%对复合形所有顶点的函数值从小到大排序

Xsorted=X(:,IX);%得到排序后的函数值所相应的x值

traceFXk=[traceFXk,FX(k)];

xcO=sum(Xsorted,2)/k;%复合形所有顶点的形心点

fxc0=subs(f,var,xcO);

tracefxc0=EtracefxcO,fxc0];

Sum=0;

fori=l:k

Sum=Sum+(FX(i)-fxcO)"2;

end

E=sqrt(Sum/k);%终止迭代条件

ifE<=e

x=Xsorted(:,l);%令x=xL

break;

eIse

xc=sum(Xsorted(:,l:(k-1)),2)/(k-1);%除最坏点外其余K—1个顶点的形心点

gxc=subs(g,var,xc);

ifmin(gxc)>=0%若形心点满足约束

xr=xc+a1pha*(xc—Xsorted(:,k));

fxr=subs(f,var,xr);

gxr=subs(g,var,xr);

ifmin(gxr)>=0

iffxr<FX(k)%若曲「)<£(xh),则令xh=xi•,产生新的复合形

Xsorted(:,k)=xr;

e1se

ifalpha<=el%若戈乂r)>f(xh),但此时反射系数alpha已经小于e1

xO=Xsorted(:,1);%则需将复合形中的所有顶点向最佳点收缩以产生新的复合形

fori=1:k

Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0);

end

e1se%若f(xr)>f(xh),但此时反射系数alpha仍大于e1

alpha=a1pha⑵%则将反射系数减小为本来的一半,重新计算反射点

end

end

else

alpha=alpha/2;

end

eIse

fori=l:n%若形心点不可行,则分别用形心点xc(i)和最佳点xL(i)代替变量x

i的上下限

ifxc(i)<Xsorted(i,l)

aa(i)=xc(i);

bb(i)=Xsorted(i,1);

else

aa(i)=Xsorted(i,1);

bb(i)=xc(i);

end

end

break;

end

end

X=Xsorted;%得到新的复合形

end

ifaa==a&bb==b

break;

else

continue;

end

end

format1ong

minf=subs(f,var,x)

minfl=minf*ones(1,length

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论