主要内容年代pan>
约束非线性优化算法
<年代pan id="csh_constrained" class="anchor_target">
约束优化的定义
gydF4y2Ba约束极小化问题是找到一个向量x这是一个标量函数局部最小值f(x)受约束容许x:
这样的一个或多个以下持有:<年代pan class="inlineequation">c(x)≤0,量表信(x)=0,·x≤b,Aeq·x=说真的,l≤x≤u年代pan>。甚至还有更多的约束应用于半无限规划;看到fseminf问题制定和算法。
年代ect我on>
fmincon信赖域反射算法
<年代ect我on itemprop="content">
信赖域方法非线性最小化
许多的方法用于解决优化工具箱™是基于<年代pan class="emphasis">信任区域,年代pan>在优化一个简单而强大的概念。
gydF4y2Ba理解信赖域方法优化,考虑无约束极小化问题,最小化f(x),并返回标量函数向量参数。假设你在一个点x在n讨论你想提高,即。,米ove to a point with a lower function value. The basic idea is to approximatef用一个简单的函数问,合理地反映了函数的行为f在一个社区N周围的点x。这个社区是信赖域。试验步骤年代通过最小化计算(或大约最小化)结束了吗N。这是信赖域子问题,
|
(1)年代trong> |
当前点更新x+年代如果<年代pan class="inlineequation">f(x+年代)<f(x);否则,当前点保持不变N该地区的信任,减少重复计算和试验步骤。
gydF4y2Ba定义一个特定的信赖域方法的关键问题最小化f(x)是如何选择和计算近似问(定义在当前点x),如何选择和修改信赖域N,以及如何准确地求解信赖域子问题。本节的重点是无约束问题。后面的章节将讨论额外的并发症由于约束变量的存在。
gydF4y2Ba在标准的信赖域方法([48]),二阶近似问由前两个定义的泰勒近似F在x;附近N通常是球形或椭圆形的形状。数学上的信赖域子问题通常表示
|
(2)年代trong> |
在哪里g的梯度f在当前点x,H海赛矩阵(二阶导数的对称矩阵),D是一个对角扩展矩阵,Δ是一个积极的标量,而为。为是2-norm。良好的算法求解存在方程2(见[48]);这种算法通常涉及的所有特征值的计算H和牛顿法应用到特征方程
这样的算法提供一个精确的解决方案方程2。然而,他们可以分解成几个需要时间成正比H。因此,对于大规模问题需要不同的方法。几个近似和启发式策略,基于方程2,提出了在文献([42]和[50])。随后在解决优化工具箱的近似方法是将信赖域子问题限制在一个二维子空间年代([39]和[42])。一旦子空间年代被计算,解决工作吗方程2是微不足道的,即使需要完整的特征值和特征向量的信息(因为在子空间,问题是只有二维)。主要工作已经转移到子空间的决心。
二维子空间年代确定的援助吗预处理共轭梯度过程描述如下。解算器定义年代所张成的线性空间年代<年代ub>1和年代<年代ub>2,在那里年代<年代ub>1在梯度的方向g,年代<年代ub>2要么是一个近似牛顿方向,即。一个解决方案,
|
(3)年代trong> |
或一个方向负曲率,
|
(4)年代trong> |
这种选择背后的哲学年代是强迫全局收敛性(通过最速下降方向或负曲率方向),实现快速的局部收敛性(通过牛顿一步,当它的存在)。
gydF4y2Ba素描的无约束极小化利用信赖域的想法现在容易给:
制定二维信赖域子问题。
解决方程2确定试验步骤年代。
如果<年代pan class="inlineequation">f(x+年代)<f(x),然后<年代pan class="inlineequation">x=x+年代年代pan>。
Δ调整。
这四个步骤是重复,直到收敛。信赖域维度Δ调整根据标准规则。特别是,它却降低了如果试验步骤是不接受,也就是说,<年代pan class="inlineequation">f(x+年代)≥f(x)。看到[46]和[49]这方面的讨论。
gydF4y2Ba优化工具箱解决治疗几个重要的特殊情况f特殊功能:非线性最小二乘、二次函数和线性最小二乘。然而,底层算法思想为一般情况是一样的。这些特殊情况将在后面的小节中讨论。
年代ect我on>
预处理共轭梯度法
一个受欢迎的方式来解决大型对称正定线性方程组<年代pan class="inlineequation">惠普=- - - - - -g年代pan>预处理共轭梯度法(PCG)。这种迭代方法要求计算能力矩阵向量形式的产品下载188bet金宝搏H·v在哪里v是一个任意的向量。对称正定矩阵米是一个<年代pan class="emphasis">预调节器年代pan>为H。也就是说,<年代pan class="inlineequation">米=C<年代up>2年代pan>,在那里<年代pan class="inlineequation">C<年代up>1HC<年代up>1年代pan>是一个状态良好的矩阵或与集群特征值矩阵。
gydF4y2Ba在最小化上下文,您可以假定海赛矩阵H是对称的。然而,H保证是正定只有在附近的一个强有力的最小值。PCG算法出口时遇到一个负面(或零)曲率方向,也就是说,<年代pan class="inlineequation">d<年代up>T高清≤0。PCG输出方向p要么是负曲率方向或近似解牛顿系统<年代pan class="inlineequation">惠普=- - - - - -g年代pan>。在这两种情况下,p有助于定义二维子空间用于讨论的信赖域方法信赖域方法非线性最小化。
年代ect我on>
线性等式约束
线性约束条件复杂的情况描述为无约束极小化。然而,潜在的想法可以通过前面描述的清洁和有效的方式。信赖域方法优化工具箱解决生成严格可行的迭代。
gydF4y2Ba一般线性等式约束的最小化问题可以写
|
(5)年代trong> |
在哪里一个是一个米- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -- - - - - -n矩阵(<年代pan class="inlineequation">米≤n年代pan>)。解决一些优化工具箱进行预处理一个消除严格的线性依赖关系使用基于LU分解的一种技术一个<年代up>T[46]。在这里一个被认为是排名吗米。
gydF4y2Ba使用的方法来解决方程5在两个重要方面不同于无约束的方法。首先,一个初始可行点x<年代ub>0计算,使用稀疏最小二乘的一步,所以呢<年代pan class="inlineequation">斧头<年代ub>0=b年代pan>。第二,PCG算法被替换为降低预处理共轭梯度(RPCG),看到的[46]为了计算一个近似牛顿步(或减少负曲率方向的零空间一个)。线性代数的关键步骤包括解决系统的形式
|
(6)年代trong> |
在哪里<年代pan class="inlineequation">
接近一个(小的非零一个将零提供等级不会丢失)和C是一个稀疏对称正定近似H,也就是说,<年代pan class="inlineequation">C=H年代pan>。看到[46]为更多的细节。
年代ect我on>
箱约束
盒子约束问题的形式
|
(7)年代trong> |
在哪里l是一个向量的下界,u是一个向量的上界。部分(或全部)的组件l可以等于-∞和一些(或者全部)的组件u可以等于∞。严格可行的方法生成一个序列点。两种技术是用来保持可行性的同时达到稳健收敛行为。首先,一个按比例缩小的修正牛顿步取代了不受约束的牛顿一步(定义二维子空间年代)。第二,反射是用来增加步长。
gydF4y2Ba扩展修改起源于牛顿一步检查Kuhn-Tucker必要的条件方程7,
|
(8)年代trong> |
在哪里
和向量v(x下面定义),为每一个<年代pan class="inlineequation">1≤我≤n年代pan>:
如果<年代pan class="inlineequation">g<年代ub>我年代ub>< 0和<年代pan class="inlineequation">u<年代ub>我年代ub><∞年代pan>然后<年代pan class="inlineequation">v<年代ub>我年代ub>=x<年代ub>我年代ub>- - - - - -- - - - - -- - - - - - - - -u<年代ub>我年代ub>年代pan>
如果<年代pan class="inlineequation">g<年代ub>我年代ub>≥0和<年代pan class="inlineequation">l<年代ub>我年代ub>>- - - - - -∞年代pan>然后<年代pan class="inlineequation">v<年代ub>我年代ub>=x<年代ub>我年代ub>- - - - - -- - - - - -- - - - - - - - -l<年代ub>我年代ub>年代pan>
如果<年代pan class="inlineequation">g<年代ub>我年代ub>< 0和<年代pan class="inlineequation">u<年代ub>我年代ub>=∞年代pan>然后<年代pan class="inlineequation">v<年代ub>我年代ub>= 1
如果<年代pan class="inlineequation">g<年代ub>我年代ub>≥0和<年代pan class="inlineequation">l<年代ub>我年代ub>=- - - - - -∞年代pan>然后<年代pan class="inlineequation">v<年代ub>我年代ub>= 1