04 Convex problem凸优化问题



1 一般优化问题

1.1 Standard Form 标准型

min ⁡ f 0 ( x ) x ∈ R n s . t . f i ( x ) ≤ 0 , i = 1 , ⋯   , m , h j ( x ) = 0 , j = 1 , ⋯   , l , \begin{aligned} \min \quad & f_0(\boldsymbol x) \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad & f_i(\boldsymbol x) \leq 0, \quad i=1,\cdots,m, \\ & h_j(\boldsymbol x) = 0, \quad j =1,\cdots, l, \end{aligned} mins.t.f0(x)xRnfi(x)0,i=1,,m,hj(x)=0,j=1,,l,
优化变量: x = ( x 1 , . . . x n ) x=(x_1,...x_n) x=(x1,...xn)
目标函数: f 0 : R n → R f_0: R^n\to R f0:RnR
不等式约束: f i : R n → R f_i: R^n\to R fi:RnR
等式约束: h i : R n → R h_i:R^n\to R hi:RnR
最优值: p ∗ = i n f { f 0 ( x ) ∣ f i ( x ) ≤ 0 , i = 1 , . . . m , h i ( x ) = 0 , i = 1 , . . . , l } p^*=inf\{f_0(x)|f_i(x)\leq 0,i=1,...m,h_i(x)=0,i=1,...,l\} p=inf{f0(x)fi(x)0,i=1,...m,hi(x)=0,i=1,...,l}
最优解: f 0 ( x ∗ ) = p ∗ f_0(x^*)=p^* f0(x)=p
隐式约束: x ∈ D = ⋂ d o m f i ∩ ⋂ d o m h i x\in D=\bigcap domf_i \cap \bigcap dom h_i xD=domfidomhi
有时候我们只需要寻找一个可行点, f 0 ( x ) f_0(x) f0(x)设置为常数。

1.2 stationary point 驻点

定义: ▽ f ( x ) = 0 \bigtriangledown f(x)=0 f(x)=0
局部极小:存在一个邻域内,使其在该邻域最小。
全局极小:显然
鞍点:存在一个邻域使得在改邻域内排在中间。
在这里插入图片描述

2 凸优化问题

2.1 标准形式

min ⁡ f 0 ( x ) x ∈ R n s . t . f i ( x ) ≤ 0 , i = 1 , ⋯   , m , A x = b \begin{aligned} \min \quad & f_0(\boldsymbol x) \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad & f_i(\boldsymbol x) \leq 0, \quad i=1,\cdots,m, \\ & Ax=b \end{aligned} mins.t.f0(x)xRnfi(x)0,i=1,,m,Ax=b
目标函数是凸函数,定义在凸集上。
对于约束,凸函数的下水平集为凸集,凸集合的交为凸集。
为什么研究凸问题?凸问题的局部极小就是全局极小。
f ( y ) ≥ f ( x ∗ ) + f ′ ( x ∗ ) T ( y − x ∗ ) f(y)\geq f(x^*)+f'(x^*)^T(y-x^*) f(y)f(x)+f(x)T(yx)

2.2最优性条件

对于可微函数
x x x是最优点 iff
f ′ ( x ∗ ) T ( y − x ∗ ) ≥ 0 f'(x^*)^T(y-x^*)\geq 0 f(x)T(yx)0 for all feasible y y y.
在这里插入图片描述
证明 见上面泰勒展开。
另外条件见后一章kkt.

2.3 等价

2.3.1 消除等式约束

min ⁡ f 0 ( F z + x 0 ) x ∈ R n s . t . f i ( F z + x 0 ) ≤ 0 , i = 1 , ⋯   , m , \begin{aligned} \min \quad & f_0(Fz+x_0) \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad & f_i(Fz+x_0) \leq 0, \quad i=1,\cdots,m, \\ \end{aligned} mins.t.f0(Fz+x0)xRnfi(Fz+x0)0,i=1,,m,
where F F F and x 0 x_0 x0, A x = b ⟺ x = F z + x 0 Ax=b \Longleftrightarrow x=Fz+x_0 Ax=bx=Fz+x0 for some z z z
x 0 x_0 x0是任意可行解, R ( F ) = N ( A ) R(F)=N(A) R(F)=N(A) A F = 0 AF=0 AF=0
推广到变量替换。

2.3.2 对不等式引入松弛变量

min ⁡ f 0 ( x ) x ∈ R n s . t . f i ( x ) + s i = 0 , i = 1 , ⋯   , m , s i ≥ 0 \begin{aligned} \min \quad & f_0(\boldsymbol x) \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad & f_i(\boldsymbol x) +s_i =0, \quad i=1,\cdots,m, \\ & s_i\geq0 \end{aligned} mins.t.f0(x)xRnfi(x)+si=0,i=1,,m,si0

2.3.3 上镜图形式

min ⁡ t x ∈ R n s . t . f 0 ( x ) ≤ t f i ( x ) ≤ 0 , i = 1 , ⋯   , m , A x = b \begin{aligned} \min \quad & t \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad& f_0(\boldsymbol x) \leq t\\ \quad & f_i(\boldsymbol x) \leq 0, \quad i=1,\cdots,m, \\ & Ax=b \end{aligned} mins.t.txRnf0(x)tfi(x)0,i=1,,m,Ax=b

2.3.4 降维 极小化其他变量

min ⁡ i n f y f 0 ( x , y ) x ∈ R n s . t . f i ( x ) ≤ 0 , i = 1 , ⋯   , m , A x = b \begin{aligned} \min \quad & inf_y f_0(x,y) \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad & f_i(\boldsymbol x) \leq 0, \quad i=1,\cdots,m, \\ & Ax=b \end{aligned} mins.t.infyf0(x,y)xRnfi(x)0,i=1,,m,Ax=b

3 拟凸问题

min ⁡ f 0 ( x ) x ∈ R n s . t . f i ( x ) ≤ 0 , i = 1 , ⋯   , m , A x = b \begin{aligned} \min \quad & f_0(\boldsymbol x) \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad & f_i(\boldsymbol x) \leq 0, \quad i=1,\cdots,m, \\ & Ax=b \end{aligned} mins.t.f0(x)xRnfi(x)0,i=1,,m,Ax=b
f 0 f_0 f0是拟凸函数, f i f_i fi是凸函数。拟凸优化问题可以转为多个连续的凸问题。
在这里插入图片描述

4 凸优化问题分类

  • LP,QP,SOCP,SDP

4.1 LP Linear Programming

min ⁡ c T x + d x ∈ R n s . t . G x ≤ h A x = b \begin{aligned} \min \quad & c^Tx+d \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad &Gx\leq h \\ & Ax=b \end{aligned} mins.t.cTx+dxRnGxhAx=b
min ∣ ∣ x ∣ ∣ ∞ ||x||_{\infty} x等价于 t ≤ x ≤ t t\leq x \leq t txt ,min t t t
min ∣ ∣ x ∣ ∣ 1 ||x||_{1} x1等价于 − t i ≤ x ≤ t i -t_i\leq x \leq t_i tixti ,min ∑ t i \sum t_i ti

4.2QP Quadratic Programming

min ⁡ 1 2 x T P x + q T + r x ∈ R n s . t . G x ≤ h A x = b \begin{aligned} \min \quad & \frac{1}{2}x^TPx+q^T+r \quad \boldsymbol x \in \mathbb R^n \\ \mathrm{s.t.} \quad &Gx\leq h \\ & Ax=b \end{aligned} mins.t.21xTPx+qT+rxRnGxhAx=b
目标函数是二次,( P ∈ S + n P\in S_{+}^n PS+n)约束为线性。
在这里插入图片描述

4.3 QCQP Quadratically Constrained QP

min ⁡ 1 2 x T P 0 x + q 0 T + r 0 s . t . 1 2 x T P i x + q i T + r i ≤ 0 A x = b \begin{aligned} \min \quad & \frac{1}{2}x^TP_0x+q_0^T+r_0 \\ \mathrm{s.t.} \quad &\frac{1}{2}x^TP_ix+q_i^T+r_i \leq 0 \\ & Ax=b \end{aligned} mins.t.21xTP0x+q0T+r021xTPix+qiT+ri0Ax=b
P i ∈ S + n P_i\in S_{+}^n PiS+n
约束以及目标函数均为约束

4.4 SOCP Second-Order Cone Programming

min ⁡ f T x s . t . ∣ ∣ A i x + b i ∣ ∣ ≤ c i T x + d i F x = g \begin{aligned} \min \quad & f^Tx \\ \mathrm{s.t.} \quad &||A_ix+b_i||\leq c_i^Tx +d_i \\ & Fx=g \end{aligned} mins.t.fTxAix+biciTx+diFx=g
目标函数为线性约束为二阶锥。范数锥 ∣ ∣ x ∣ ∣ ≤ t ||x||\leq t xt

4.5 SDP Semidefinite Programming

min ⁡ c T x s . t . ∑ x i F i ≼ G A x = b \begin{aligned} \min \quad & c^Tx \\ \mathrm{s.t.} \quad &\sum x_iF_i\preccurlyeq G \\ & Ax=b \end{aligned} mins.t.cTxxiFiGAx=b
线性矩阵不等式。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MATLAB是一种功能强大的计算软件,广泛用于数值计算和科学工程领域。在优化问题方面,MATLAB提供了多种方法和函数来解决各种优化问题。下面我将介绍一些常见的26个MATLAB测试函数。 1. 自适应不可行性法(Adaptive Infeasible Method, AIM):适用于有约束的非线性优化问题。 2. 荷兰弯曲函数(Bent Cigar Function):适用于有约束的多目标优化问题。 3. 弯曲函数(Bent Function):适用于有约束的多目标优化问题。 4. 凸函数(Convex Function):适用于有约束的多目标优化问题。 5. 陷阱函数(Deceptive Trap Function):适用于有约束的多目标优化问题。 6. 高度不可变性函数(Discontinuously Varying Function):适用于有约束的多目标优化问题。 7. 椭圆函数(Ellipsoid Function):适用于有约束的多目标优化问题。 8. 不等函数(Equality Function):适用于有约束的多目标优化问题。 9. 约束立方旋转函数(Rotated Hyper-Ellipsoid Function):适用于有约束的多目标优化问题。 10. 二次函数(Quadratic Function):适用于无约束的非线性最小化问题。 11. 效用函数(Utility Function):适用于有约束的非线性优化问题。 12. Van Veldhuizen and Lamontagnes函数(Van Veldhuizen and Lamontagnes Function):适用于有约束的非线性优化问题。 13. Vanderbei函数(Vanderbei Function):适用于有约束的非线性优化问题。 14. Venter and Sobieszczanski-Sobieski函数(Venter and Sobieszczanski-Sobieski Function):适用于无约束的非线性最小化问题。 15. Vermazt and Ryu函数(Vermazt and Ryu Function):适用于有约束的非线性优化问题。 16. Villalba和Burrage函数(Villalba and Burrage Function):适用于有约束的非线性优化问题。 17. 沃尔夫函数(Wolfe Function):适用于有约束的非线性优化问题。 18. ZDT函数(ZDT Function):适用于多目标优化问题。 19. 指数函数(Exponential Function):适用于多目标优化问题。 20. G函数(G Function):适用于多目标优化问题。 21. 异形套线装箱问题函数(Irregular Strip Packing Problem Function):适用于非线性约束优化问题。 22. Kita和Wang函数(Kita and Wang Function):适用于线性规划问题。 23. Knapsack函数(Knapsack Function):适用于整数规划问题。 24. Minimal Polynomial Least Squares函数(Minimal Polynomial Least Squares Function):适用于非线性最小二乘问题。 25. Minimization of the Sum of Gap Squares函数(Minimization of the Sum of Gap Squares Function):适用于非线性最小二乘问题。 26. Reduced Space Newton функциональный класс(Reduced Space Newton Function Class):适用于非线性最小二乘问题。 以上是一些常见的MATLAB优化测试函数,通过利用MATLAB提供的优化函数和方法,可以在各种优化问题中进行高效的求解和分析。无论是单目标还是多目标问题,线性还是非线性问题,MATLAB都能提供强大的优化解决方案。 ### 回答2: MATLAB是一种强大的编程和数值计算软件,可用于解决各种优化问题。在MATLAB中,有许多用于优化问题的测试函数,以下介绍其中的26个常用的测试函数: 1. Rosenbrock函数:也称为“香蕉函数”,是一个二维函数,具有一个非凸的平滑曲面。 2. Ackley函数:具有多个局部最小值的多峰函数,通常用于测试优化算法的全局性能。 3. Griewank函数:具有大量局部最小值的多峰函数,测试算法在高度非线性问题上的效果。 4. Rastrigin函数:具有大量局部最小值的多峰函数,用于测试算法在高维问题上的效果。 5. Sphere函数:一个简单的凸函数,测试算法在凸问题上的效果。 6. Michalewicz函数:一个具有多个极值点的多峰函数,测试算法的局部搜索能力。 7. Himmelblau函数:一个有四个局部最小值的非凸函数,测试算法在非线性问题上的效果。 8. Booth函数:一个有一个全局最小值的非凸函数,测试算法在计算复杂度方面的效果。 9. Rastrigin-Rosenbrock函数:将Rastrigin函数和Rosenbrock函数组合而成的函数,测试算法的综合性能。 10. Bukin函数:一个具有一个全局最小值的非凸函数,测试算法对于局部搜索和全局搜索的平衡性。 其他测试函数包括Powell、Goldstein-Price、Easom、Shekel、Styblinski-Tang、Levy等函数,它们都具有不同的特点和优化问题。在MATLAB中,可以使用优化工具箱或自己编写代码来求解这些测试函数的极值点或最小值。 总之,MATLAB提供了多种测试函数,用于评估优化算法在不同类型问题上的表现。这些测试函数涵盖了各种情况,从简单的凸函数到复杂的非凸函数,可以帮助开发者更好地了解算法的性能和局限性,并进行算法的优化和改进。 ### 回答3: MATLAB 是一种强大的数值计算和数据可视化软件,它提供了丰富的工具和函数来解决各种优化问题。在优化问题中,我们需要找到函数的最小值或最大值,以满足一定的约束条件。 MATLAB 中提供了许多用于优化问题的函数和工具包,其中包括 26 个用于测试的函数。这些函数通常用于评估不同优化算法的性能,并与已知的最优解进行比较。 这些测试函数包括各种类型的函数,例如单峰函数、多峰函数、凸函数和非凸函数。它们的形式各不相同,有些函数具有多个局部最优解,而其他函数只有一个全局最优解。 通过使用 MATLAB 的优化工具箱,我们可以选择适当的测试函数,并使用各种优化算法来求解最优解。这些算法可以是经典的最优化算法,如梯度下降和牛顿法,也可以是进化算法,如遗传算法和粒子群优化。 为了解决这些优化问题,我们可以使用 MATLAB 中的优化函数,如fminsearch、fminunc和fmincon等。这些函数可以根据给定的测试函数和约束条件,对目标函数进行优化,并返回找到的最优解。 总之,MATLAB 提供了丰富的优化工具和测试函数,可以帮助我们解决各种优化问题。无论是单变量的优化问题还是多变量的优化问题,我们都可以利用 MATLAB 的功能来寻找最优解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值