约束优化

  这一章我们介绍凸优化的基本概念和极大极小理论,并探讨最优解的存在性问题。

  考虑如下形式的优化问题\begin{align*}
\min_{\boldsymbol{x}} & \ f(\boldsymbol{x}) \\ \mbox{s.t.} & \
\boldsymbol{x} \in X. \end{align*}其中函数$f: \mathbb{R}^n \mapsto (-\infty,
\infty]$,$X$是$\mathbb{R}^n$的非空子集。若向量$\boldsymbol{x} \in X \cap
dom(f)$,则称$\boldsymbol{x}$为可行解(feasible point)。若$X \cap
dom(f) \neq
\emptyset$,则称问题是可解的(feasible),否则称问题不可解(infeasible)。因此,若$f$是扩展实值函数,那么$\boldsymbol{x}
\in dom(f)$是一条隐式的约束。此外,问题可解等价于$\inf_{\boldsymbol{x} \in X}
f(\boldsymbol{x}) < \infty$。

  若向量$\boldsymbol{x}^*
\in X \cap dom(f)$且$f(\boldsymbol{x}^*) = \inf_{\boldsymbol{x} \in X}
f(\boldsymbol{x})$,则称$\boldsymbol{x}^*$为$f$在$X$上的全局最小值点(global
minimum),或$f$在$\boldsymbol{x}^*$处取得最小值:\begin{align*} \boldsymbol{x}^* \in
\arg \min_{\boldsymbol{x} \in X} f(\boldsymbol{x}).
\end{align*}若$\boldsymbol{x}^*$还是$X$上唯一的最小值点,则\begin{align*}
\boldsymbol{x}^* = \arg \min_{\boldsymbol{x} \in X} f(\boldsymbol{x}).
\end{align*}对于最大值问题,我们也有相对应的术语,这里就不赘述了。

  在优化问题中,我们经常会碰到全局最小的一个弱化形式,即在某点的一个“邻近”范围里,该点是最小的,这时称该点为局部最小值点(local
minimum)。其严格定义如下:设函数$f: \mathbb{R}^n \mapsto (-\infty,
\infty]$,$X$是$\mathbb{R}^n$的非空子集,若存在$\epsilon > 0$使得对于$\forall
\boldsymbol{x} \in X$有\begin{align*} f(\boldsymbol{x}^*) \leq
f(\boldsymbol{x}), \ \|\boldsymbol{x} - \boldsymbol{x}^*\| < \epsilon,
\end{align*}则称$\boldsymbol{x}^*$为$f$在$X$上的局部最小值点。若以$\boldsymbol{x}^*$为球心的某个开球内没有其他局部最小值点,则称$\boldsymbol{x}^*$为严格局部最小值点。局部最大值点可类似定义。

  实际应用中,我们感兴趣的只是全局最小值点,局部最小值点我们并不需要。但获取全局最小值点是很困难的,因为很多时候,算法无法甄别这两者,幸运的是,若$f$和$X$都是凸的,则$f$在$X$上的所有局部最小值点都是全局最小值点。

  命题3.1.1:若$f:
\mathbb{R}^n \mapsto (-\infty,
\infty]$是凸函数,$X$是$\mathbb{R}^n$的非空凸子集,则$f$在$X$上的所有局部最小值点都是全局最小值点。

  证明:用反证法,设$\boldsymbol{x}^*$是$f$在$X$上的局部最小值点,但不是全局最小值点。那么存在向量$\boldsymbol{x}
\in X$满足$f(\boldsymbol{x}) < f(\boldsymbol{x}^*)$,于是由$f$的凸性知对于\(\forall
\alpha \in (0, 1)\)有\begin{align*} f(\alpha \boldsymbol{x}^* + (1-\alpha)
\boldsymbol{x}) \leq \alpha f(\boldsymbol{x}^*) + (1-\alpha)
f(\boldsymbol{x}) < f(\boldsymbol{x}^*),
\end{align*}也即$f$在以$\boldsymbol{x}^*$和$\boldsymbol{x}$为端点的线段上的取值都严格小于$f(\boldsymbol{x}^*)$,这与$\boldsymbol{x}^*$是局部最小值点矛盾。

时间: 2024-10-12 16:19:49

约束优化的相关文章

带约束优化问题 拉格朗日 对偶问题 KKT条件

转自:七月算法社区http://ask.julyedu.com/question/276 咨询:带约束优化问题 拉格朗日 对偶问题 KKT条件 关注 | 22 ... 咨询下各位,在机器学习相关内容中,每次看到带约束优化问题,总是看到先用拉格朗日函数变成无约束问题,然后转成求拉格朗日对偶问题,然后有凸函数假设,满足KKT条件时原问题最优解和对偶问题最优解等价. 每次看到这个,总不是很理解为什么要这么做?为什么首先转为无约束问题(这个相对好理解一点,因为容易处理)为什么拉格朗日函数无约束问题要转变

数值算法:无约束优化之一维搜索方法之黄金分割法、斐波那契数列法

目标函数为一元单值函数f:R->R的最小化优化问题,一般不会单独遇到,它通常作为多维优化问题中的一个部分出现,例如梯度下降法中每次最优迭代步长的估计. 一维搜索方法是通过迭代方式求解的,这不同于我们人脑的直接通过解表达式求解方法.迭代算法是从初始搜索点x(0)出发,产生一个迭代序列x(1),x(2),....在第k=0,1,2,...次迭代中,通过当前迭代点x(k)和目标函数 f 构建下一个迭代点x(k+1).某些算法可能只需要用到迭代点处的目标函数值,而另一些算法还可能用到目标函数的导数 f'

无约束优化方法

本文讲解的是无约束优化中几个常见的基于梯度的方法,主要有梯度下降与牛顿方法.BFGS 与 L-BFGS 算法,无约束优化的问题形式如下,对于 $x \in \mathbb{R}^n$ ,目标函数为: \[\min_xf(x)\] 泰勒级数 基于梯度的方法都会涉及泰勒级数问题,这里简单介绍一下,泰勒级数就是说函数 $f(x)$ 在点 $x_0$ 的邻域内具有 $n+1$ 阶导数,则该邻域内 $f(x)$ 可展开为 $n$ 阶泰勒级数为: \[f(x) = f(x_0) + \nabla f(x_0

外点惩罚函数法&#183;约束优化问题

外点惩罚函数法·约束优化问题 外点法惩罚函数(r增加,SUMT.java)用于求解约束优化问题,解题步骤如下: Step1 输入目标函数与约束方程,构建外点惩罚函数法求解方程,求解初始化. Step2 对求解方程进行一次无约束优化方法求解(鲍威尔BWE),得到新解. Step3 新解与原解求误差,如误差满足精度要求,则输出解,否则增加因子r,执行Step 2. 鲍威尔法(BWE.java)是N维无约束求解方法,需要调用一维求解方法,一维求解方法采用黄金分割法(GSM.java). 在实现算法的代

约束优化方法之拉格朗日

这里的主题是约束优化方法,在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式约束,可以应用KKT条件去求取.当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件.需要注意KKT条件是拉格朗日乘子法的泛化. 待解决问题: \begin{aligned} &\min_{x \in \mathbb{R}^n} \  f(

高数之拉格朗日乘法---解决约束优化问题

作为一种优化算法,拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题.拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数. 如何将一个含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题?拉格朗日乘数法从数学意义入手,通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成

MATLAB进行无约束优化

首先先给出三个例子引入fminbnd和fminuc函数求解无约束优化,对这些函数有个初步的了解 求f=2exp(-x)sin(x)在(0,8)上的最大.最小值. 例2 边长3m的正方形铁板,四角减去相等正方形,制成方形无盖水槽.怎样减使水槽容积最大. 解:列出目标函数(加负号,转化为求最小) min y=-((3-2x)^2)*x 例3 求多元函数最小值 minf(x)=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1) 下面是MATLAB优化工

01b无约束优化(准备知识)

1.解方程转化为优化问题 $n\left\{ \begin{aligned}& {{P}_{1}}(x)=0 \\ & {{P}_{2}}(x)=0 \\ & \text{   }\vdots  \\& {{P}_{n}}(x)=0 \\\end{aligned} \right.\text{              }x=\left[ \begin{aligned}  & {{x}_{1}} \\& {{x}_{2}} \\& \vdots  \\

数值算法:无约束优化之多维优化之共轭方向法

在效率上,共轭方向法位于最速下降法和牛顿法之间.它具有特性:对于n维二次型问题,能够在n步之内得到结果:共轭梯度法不需要计算海森矩阵:不需要求逆: 共轭方向: Q为n阶实对称矩阵,对于方向 d(0), d(1),... , d(m),  如果对于所有的 i 不等于 j ,有 d(i)TQd(j)=0, 则称它们是关于Q共轭的. 定理:如果Q是n阶正定矩阵(自然是对称的),如果方向d(0), d(1),... , d(k),k<=n-1非零,且是关于Q共轭的,那么它们线性无关: 构造n阶正定矩阵的

数值算法:无约束优化之一维搜索方法之多维优化问题中每步迭代的最优学习率设定问题

多维优化问题的迭代求解算法中,经常遇到学习率(步长)参数问题,比如线性分类器.一般如果采用固定学习率,那么算法收敛将比较慢,为了提高收敛速度往往需要不断调整学习率.一般多维优化问题中的迭代算法中的迭代公式为: xk+1=xk+rk dk 其中 xk 从给定的初始搜索点 x0 迭代,rk>=0为第k次迭代的学习率或步长,迭代目的是寻找最优解x*,使得代价函数 J(x) 最小,dk表示搜索方向,下面讨论学习率最优值问题, 定义: hk(r)=  J(xk + r*dk)  = J(xk+1) 而 J