A. 牛顿法、黄金分割法、二次插值法实验(最优化1)
在生产过程、科学实验以及日常生活中,人们总希望用最少的人力、物力、财力和时间去办更多的事,获得最大的效益,,所以最优化理论和方法日益受到重视。
无约束最优化计算方法是数隐森值计算领域中十分活跃的研究课题之一,快速的求解无约束最优化问题,除了自身的重要性以外,还体现在它也构成一些约束最优化问题的子问题。因此,对于无约束最优化问题,如何快速高精度的求解一直是优化工作者十分关心的事。本文验证求解 一维无约束最优化问题 的三种线性搜索方法,分别是牛顿法、黄金分割法,二次插值法。
min f(x)=3x 4 - 4x 3 -12x 2
牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法,其基本思想是利用目标函数的二次Taylor展开,并将其极小化。牛顿法使用函数 f(x)的泰勒级数的前面几项来寻找方程 "f(x)=0" 的根。牛顿法是求方程根的重要方法之一,其困改最大优点是在方程 "f(x)=0" 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时非线性收敛,但是可通过一些方法变成线性收敛。
方程 f(x)=0 的根 x * 可解释为曲线y=f(x)轴的焦点的横坐标。如下图:
设 x[k]是根 x * 的某个近似值,过曲线 y=f(x)上横坐标为 x[k]的点P[k]引切线,并将该切线与 x轴的交点 的横坐标 x_{k+1}_作为 x * 的新的近似值。鉴于这种几何背景,牛顿法亦称为切线法。
将f(x k+1 )在x=x k 处一阶泰勒展开:
公式不打了
令函数趋于0,求与x轴交点:
分别取-1.5,0.4,1.0,1.6,2.8
在凸函数很初始点选取好的情况下,收敛快。
Ø 计算二阶导数,计算量大
Ø 要求函数二阶可微
Ø 收敛性与初始点选取有关
黄金分割法适用于[a,b]区间上的任何单股函数求极小值问题,对函数除要求“单峰”外不做其他要求,甚至可以不连续。因此,这种方法的适应面非常广。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间 ?内适当插入两点 ?,并计算其函数值。 ?将区间分成三段,应用函数的单峰性汪携判质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解。
一 维搜索是解函数极小值的方法之一,其解法思想为沿某一已知方向求目标函数的极小值点。一维搜索的解法很多,这里主要采用黄金分割法(0.618法)。如图所示
黄金分割法是用于一元函数 ?在给定初始区间 ?内搜索极小点?的一种方法。其基本原理是:依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间。
具体步骤是:在区间 ?内取点: ?分为三段。如果 ?,令?;如果 ?,令 <?,如果 ?都大于收敛精度?重新开始。因为 ?为单峰区间,这样每次可将搜索区间缩小0.618倍或0.382倍,处理后的区间都将包含极小点的区间缩小,然后在保留下来的区间上作同样的处理,如此迭代下去,将使搜索区 ?逐步缩小,满足预先给定的精度时,即获得一维优化问题的近似最优解。
[-2,0],[1,3]
很巧妙地使每次分割点都为上次的黄金分割点,可以复用上次运算的结果,简化计算。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而着称,是许多优化算法的基础,但它只适用于一维区间上的凸函数,即只在单峰区间内才能进行一维寻优,其收敛效率较低。
在求解一元函数?的极小点时,在搜索区间中用低次(通常不超过三次)插值多项式?来近似目标函数,后求该多项式的极小点(比较容易计算),并以此作为目标函数?的近似极小点。如果其近似的程度尚未达到所要求的精度时,反复使用此法,逐次拟合,直到满足给定的精度时为止。
考虑二次多项式
则
令 ,得 。这意味着我们要求a,b。
今考虑在包含 的极小点 的搜索区间 中,给定三个点 , , ,满足
< <
> <
利用三点处的函数值 , , 构造二次函数,并要求插值条件满足
令 ,i=1,2,3。解上述方程组得
于是,二次函数 的极小点为
设 。求得 和 以后,如果
≤ ,当 > 时,
或者如果
≤ ,当 < 时。
则我们认为收敛准则满足。如果 < ,则极小点估计为 ,否则为 。
若终止准则不满足,则利用 提供的信息,从 , , 和 中选出相邻的三个点,将原来的搜索区间缩小,然后重复上述过程,直到终止准则满足为止。
初始步 给出?,?,?,满足上述设计步骤。
步1 由上述设计步骤计算?。
步2 比较?和?的大小,如果?>?,则转步3;否则转步4。
步3 如果?≤?,则
?,?,?,?,
转步5;否则?,?,转步5。
步4 若?,则
?,?,?,?,
转步5;否则?,?,转步5。
步5 如果收敛准则满足,停止迭代;否则转步1,在新的搜索区间[?,?]上按公式计算二次插值函数的极小点?。
-2.5,-1.4,-0.3
-0.3,1.5,3.3.
插值法仅需计算函数值,不涉及导数、Hesse矩阵等的计算,计算起来相对比较简单,能够适用于非光滑和导数表达式复杂或表达式写不出等种种情形。
当迭代步数较多时,计算过程比较复杂,计算量较大,计算起来比较麻烦。当迭代点离目标函数的最优解较远时,追求线性搜索的精度反而会降低整个算法的效率。
用符号推导画图
picture.py
Gold_ratio.py
Newton.py
Polynomial_interpolation.py
B. 最优化方法
最优化方法,是指解决最优化问题的方法。
所谓最优化问题,指在某些约束条件下,决定某些可选择的变量应该取何值,使所选定的目标函数达到最优的问题。即运用最新科技手段和处理方法,使系统达到总体最优,从而为系统提出设计、施工、管理、运行的最优方案。
由于实际的需要和计算技术的进步,最优化方法的研究发展迅速。
最优化方法(也称做运筹学方法)是近几十年形成的,它主要运用数学方法研究各种系统的优化途径及方案,为决策者提供科学决策的依据。
最优化方法的主要研究对象是各种有组织系统的管理问题及其生产经营活动。最优化方法的目的在于针对所研究的系统,求得一个合理运用人力、物力和财力的最佳方案,发挥和提高系统的效能及效益,最终达到系统的最优目标。
实践表明,随着科学技术的日益进步和生产经营的日益发展,最优化方法已成为现代管理科学的重要理论基础和不可缺少的方法,被人们广泛地应用到公共管理、经济管理、工程建设、国防等各个领域,发挥着越来越重要的作用。
将介绍最优化方法的研究对象、特点,以及最胡乱弯优化方法模型的建立和模型的分析、求解、应用。主要是线性规划问题陪芹的模型裤闷、求解(线性规划问题的单纯形解法)及其应用――运输问题;以及动态规划的模型、求解、应用――资源分配问题。
最优化方法:
1、微分学中求极值
2、无约束最优化问题
3、常用微分公式
4、凸集与凸函数
5、等式约束最优化问题
6、不等式约束最优化问题
7、变分学中求极值
C. 施工中常用的最优化方法有哪些简述其基本原理
施工时,在禅岁实际测量的工作中,为了提高施工放样的效率和准确性,施工单贺蚂睁位会利用测量仪器,来简化放样工作。
二、设备原理:
1.从BIM模型中设置现场控制点坐标和建筑物结构点坐标分量作为BIM模型复合对比依据,在BIM模型中创建放样控制点。
2.在已通过审批的机电BIM模型中,设置机电管线支吊架点位布置,并将所有的放样点导入专业软件。
3.进入现场,使用BIM放样机器人对现场放样控制点进行数据采集,即刻定位放样机器人的现场坐标。
4.通过平板电脑选取BIM模型中所需放样点,指挥机器人发射红外激光自动照准现实点位,物枯实现“所见点即所得”,从而将BIM模型精确的反应到施工现场。
D. 最优化问题求解方法
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。
我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值(因为最小值与最大值可以很容易转化,即最大值问题可以转化成最小值问题)。提到KKT条件一般会附带的提一下拉格朗日乘子。对学过高等数学的人来说比较拉格朗日乘子应该会有些印象。二者均是求解最优化问题的方法,不同之处在于应用的情形不同。
一般情况下,最优化问题会碰到一下三种情况:
这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可。
设目标函数为f(x),约束条件为h_k(x),形如:
s.t. 表示subject to ,“受限于”的意思,l表示有l个约束条件。
则解决方法是消元法或者拉格朗日法。消元法比较简单不在赘述,这里主要讲拉格朗日法,因为后面提到的KKT条件是对拉格朗日乘子法的一种泛化。
作为一种优化算法,拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。
如何将一个含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题?拉格朗日乘数法从数学意义入手,通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成包含了(n+k)变量的(n+k)个方程的方程组问题,这样就能根据求方程组的方法对其进行求解。
首先定义拉格朗日函数F(x):
然后解变量的偏导方程:
我们上述讨论的问题均为等式约束优化问题,但等式约束并不足以描述人们面临的问题,不等式约束比等式约束更为常见,大部分实际问题的约束都是不超过多少时间,不超过多少人力,不超过多少成本等等。所以有几个科学家拓展了拉格朗日乘数法,增加了KKT条件之后便可以用拉格朗日乘数法来求解不等式约束的优化问题了。
设目标函数f(x),不等式约束为g(x),有的教程还会添加上等式约束条件h(x)。此时的约束优化问题描述如下:
则我们定义不等式约束下的拉格朗日函数L,则L表达式为:
其中f(x)是原目标函数,hj(x)是第j个等式约束条件,λj是对应的约束系数,gk是不等式约束,uk是对应的约束系数。
常用的方法是KKT条件,同样地,把所有的不等式约束、等式约束和目标函数全部写为一个式子L(a, b, x)= f(x) + a g(x)+b h(x),
首先,我们先介绍一下什么是KKT条件。
KKT条件是指在满足一些有规则的条件下, 一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件. 这是一个广义化拉格朗日乘数的成果. 一般地, 一个最优化数学模型的列标准形式参考开头的式子, 所谓 Karush-Kuhn-Tucker 最优化条件,就是指上式的最优点x∗必须满足下面的条件:
1). 约束条件满足gi(x∗)≤0,i=1,2,…,p, 以及,hj(x∗)=0,j=1,2,…,q
2). ∇f(x∗)+∑i=1μi∇gi(x∗)+∑j=1λj∇hj(x∗)=0, 其中∇为梯度算子;
3). λj≠0且不等式约束条件满足μi≥0,μigi(x∗)=0,i=1,2,…,p。