最优化实验报告(共20页).doc
《最优化实验报告(共20页).doc》由会员分享,可在线阅读,更多相关《最优化实验报告(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数值最优化算法与理论课程实验报告 姓 名: 周飞飞(1) 张琳婧(8) 班 级: 信息与计算科学2班 指导教师:刘陶文2014年11月27日专心-专注-专业数值最优化算法与理论课程实验报告课程名称数值最优化算法与理论班级信息与计算科学2班小组成员周飞飞(1)张琳婧(8)实验课题拟Newton法(BFGS算法)及FR共轭梯度法求解无约束问题实验目的通过上机实验掌握最优化的实用算法的结构及性能,并用这些算法解决实际的最优化问题,掌握一些实用的编程技巧。实验要求选用你喜欢的无约束优化的某种梯度法 (最速下降法,Newton法,拟牛顿法,共轭梯度法)通过编程,上机实验对所提供
2、的测试问题进行测试、运行,然后提供实验报告。在实验报告中指出你选用的算法、参数设置、终止准则、线性搜索以及实验结果,附加你的实验心得。实验内容使用非精确Wolf-Powell线性搜索实现拟牛顿法(BFGS算法)及FR共轭梯度法求解无约束问题,并通过Matlab软件实现算法,观察分析实验过程,对比实验结果来进一步理解两种方法的原理及优点与缺陷。目 录1、 1481213一、 实验原理无约束问题下降算法是求解无约束优化问题的一类最基本的算法。其一般步骤为:(已知近似最优解)1. 首先,计算下降方向满足:2. 然后计算步长满足:3. 计算新的近似最优解:这次实验所运用的拟牛顿法及FR共轭梯度法主要是
3、在下降算法的基础上,求解下降方向的方法上有所不同。(一) 拟牛顿法(1)拟牛顿法的简述 拟(Quasi-Newton Methods)是求解非线性优化问题最有效的方法之一,于20世纪50年代由美国Argonne的物理学家W. C. Davidon所提出来。Davidon设计的这种算法在当时看来是非线性优化领域最具创造性的发明之一。不久R. Fletcher和M. J. D. Powell证实了这种新的算法远比其他方法快速和可靠,使得非线性优化这门学科在突飞猛进。拟牛顿法和(Steepest Descent Methods)一样只要求迭代时知道的梯度。通过测量梯度的变化,构造一个目标函数的模型使
4、之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要的信息,所以有时比牛顿法(Newtons Method)更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。(2) 拟牛顿法的思想拟牛顿法是对牛顿法的一种改善保持其优点:快速收敛性克服其缺陷:需计算Hessian矩阵且要求其正定方法:构造对称正定矩阵或使其满足 计算搜索方向:构造的要求如下:(3) 拟牛顿法的BFGS算法BFGS修正公式:该公式由:Broyden-Fletcher-Goldfarb-Shanno 提出,是迄今为止最好的拟牛顿修正公式。BFGS算法
5、:(二) 非线性共轭梯度法(FR算法)(1)共轭梯度法的简述 共轭梯度法是介于与之间的一个方法,它仅需利用信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hessian矩阵并求逆的缺点,不仅是解决大型线性方程组最有用的方法之一,也是解大型最有效的算法之一。 共轭梯度法最早是由Hestenes和Stiefle(1952)提出来的,用于解正定的线性方程组,在这个基础上,Fletcher和Reeves(1964)首先提出了解非线性最优化问题的共轭梯度法。由于共轭梯度法不需要矩阵存储,且有较快的收敛速度和二次终止性等优点,现在共轭梯度法已经广泛地应用与实际问题中。 共轭梯度法是一个典
6、型的法,它的每一个搜索方向是互相共轭的,而这些搜索方向d仅仅是负梯度方向与上一次的搜索方向的组合,因此,存储量少,计算方便 。(2) 共轭梯度法的思想Fletcher-Reeves共轭梯度法,简称FR法。共轭梯度法的基本思想是把共轭性与最速下降方法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜素,求出目标函数的极小点。根据共轭方向基本性质,这种方法具有二次终止性。给定初始点,取初始搜索方向,在后面的迭代中取负梯度方向和前一搜索方向的线性组合作为搜索方向即,其中是待定参数,适当选取,使得。FR共轭梯度法,搜索方向的计算公式为: (3) FR共轭梯度法算法由Fletcher-Ree
7、ves(1964)提出。FR算法:(三) Wolfe-Powell线搜索Armijo型线性搜索的条件是Wolfe-Powell型线性搜索中的第一个条件。Wolfe-Powell型线性搜索中的第二个条件的作用在于限制过小的步长,减少了求解时的计算量。同时运用非精确Wolfe-Powell线性搜索保证了拟牛顿法(BFDS算法)中的矩阵对称正定。Wolfe-Powell线搜索算法:二、 实验内容拟牛顿法程序:for i=1:nn %1-nn函数依次进入运算(1)初值准备nprob=numer(i); n,m,xk,filename=initf(nprob);% 读初始数据xk=factor*xk;b
8、k=eye(n);k=0;tic; %计时开始 fk=objfcn(n,m,xk,nprob);fnum=1;gk=grdfcn(n,m,xk,nprob);gnum=1;delta=norm(gk,2);(2)迭代开始while k1000 %迭代上限1000 if delta=-1.0e-14%当dk不是充分下降时采用负梯度为搜索方向 dk=-gk; end(4)确定步长%利用Wolfe-Powell搜索计算步长 alphak,fk,gk,wfnum,wgnum=wolfe2(n,m,xk,dk,fk1,gk1,nprob);%利用Wolfe-Powell搜索计算步长 (5)计算 fnum
9、=fnum+wfnum; gnum=gnum+wgnum; xk1=xk;xk=xk1+alphak*dk; fk=objfcn(n,m,xk,nprob); gk=grdfcn(n,m,xk,nprob); if norm(gk,2)0 bks1=bk*sk*sk*bk; yks=yk*yk/yksk;bk1=bk; bk=bk1-bk1*sk*sk*bk1/(sk*bk1*sk)+yk*yk/(yk*sk); end end k=k+1;End(7)无约束问题运算结束后记录所花费时间time=toc;%终止计时if time=0. t(i,s)=0.0001;else t(i,s)=tim
10、e;%将每个无约束问题求解时间记录End(8)输出无约束问题的运行结果fprintf(nt%sttt%2dttt%5dtttt%5dttt%5dttt%4fn,filename,n,k,fnum,gnum,time);%结果输出EndFR共轭梯度法for i=1:nn(1)初值准备nprob=numer(i); n,m,xk,filename=initf(nprob);% 读初始数据xk=factor*xk;bk=eye(n);k=0;tic; %计时开始 fk=objfcn(n,m,xk,nprob);fnum=1;gk=grdfcn(n,m,xk,nprob);gnum=1;delta=n
11、orm(gk,2);dk=-gk;(2)迭代开始while k1000 %迭代上限1000 if delta=teminate break; else gk1=gk;fk1=fk;(3)确定步长 %利用Wolfe-Powell搜索计算步长 alphak,fk,gk,wfnum,wgnum=wolfe2(n,m,xk,dk,fk1,gk1,nprob); %利用Wolfe-Powell搜索计算步长 (4)计算 fnum=fnum+wfnum; gnum=gnum+wgnum; xk1=xk;xk=xk1+alphak*dk;(5)确定下降方向 fk=objfcn(n,m,xk,nprob); g
12、k=grdfcn(n,m,xk,nprob); temk1=norm(gk1,2); temk=norm(gk,2); dk1=dk; bk=temk2/temk12; dk=-gk+bk*dk1; end k=k+1; delta=norm(gk,2);End(6)无约束问题运算结束后记录所花费时间time=toc;%终止计时if time=0. t(i,s)=0.0001; else t(i,s)=time;End(8)输出无约束问题的运行结果fprintf(nt%sttt%2dttt%5dtttt%5dttt%5dttt%4fn,filename,n,k,fnum,gnum,time);
13、End非精确Wolf-powell线性搜索function alphak1,fk2,gk2,wfnum,wgnum=wolfe2(n,m,xk,dk,fk,gk,nprob) rho1=0.8;rho2=0.6;sigma1=0.01;sigma2=0.6;% fk1=fk;gk1=gk; wfnum=0;wgnum=0; %step 0 alphak1=1; fk2=objfcn(n,m,xk+alphak1*dk,nprob);wfnum=wfnum+1; gk2=grdfcn(n,m,xk+alphak1*dk,nprob);wgnum=wgnum+1; if fk2-fk1=sigma
14、2*gk1*dk return; end %step 0 else %step 1% i=-8; while 1 if i=0 alphak1=rho1i; fk2=objfcn(n,m,xk+alphak1*dk,nprob);wfnum=wfnum+1; end if fk2-fk1sigma1*rho1i*gk1*dk %alphak=alphak1 break; end else i=i+1; end end %alphak1=rho1i %step 1% j=0; while 1 alphak1=rho2j*alphak1; if alphak1=0 break; end gk2=g
15、rdfcn(n,m,xk+alphak1*dk,nprob);wgnum=wgnum+1; if gk2*dk=sigma2*gk1*dk %alphak=alphak1; break; end j=j+1; end End(1) 参数设置:Wolf-powell搜索中的;拟牛顿法及共轭梯度法中相关参数:teminate=1.0e-6;factor=0.1numer=1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,18,19,20,21, 22,23,24,25,26,28,29,30,31,32,33,34;(2) 终止准则:Wolf-powell算法终止:当搜索到步
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 实验 报告 20
限制150内