- 凸優化教程
- 主頁
- 介紹
- 線性規劃
- 常態
- 內積
- 極小值和極大值
- 凸集
- 仿射集
- 凸包
- 卡拉西奧多里定理
- Weierstrass 定理
- 最近點定理
- 基本分離定理
- 凸錐體
- 極錐體
- 錐形組合
- 多面體集
- 凸集的極端點
- 方向
- 凸和凹函數
- Jensen 不等式
- 可微凸函數
- 全局最優值的充分和必要條件
- 擬凸和擬凹函數
- 可微擬凸函數
- 嚴格擬凸函數
- 強擬凸函數
- 偽凸函數
- 凸規劃問題
- Fritz-John 條件
- Karush-Kuhn-Tucker 最優必要條件
- 凸問題算法
- 凸優化資源
- 凸優化 - 快速指南
- 凸優化 - 資源
- 凸優化 - 討論
凸問題算法
最速下降法
此方法也稱為梯度法或高斯法。此方法包含了下列術語 -
$$x_{k+1}=x_k+\alpha_kd_k$$
$d_k= - \bigtriangledown f\left ( x_k \right )$ 或 $ d_k= -\frac{\bigtriangledown f\left ( x_k \right )}{\left \| \bigtriangledown f\left ( x_k \right ) \right \|}$
令 $\phi \left (\alpha \right )=f\left ( x_k +\alpha d_k\right )$
通過對 $\phi$ 求導並令其等於零,我們可以得到 $\alpha$。
因此,算法如下 -
初始化 $x_0$,$\varepsilon_1$,$\varepsilon_2$,並設置 $k=0$。
設置 $d_k=-\bigtriangledown f\left ( x_k \right )$ 或 $d_k=-\frac{\bigtriangledown f\left (x_k \right )}{\left \|\bigtriangledown f\left (x_k \right ) \right \|}$。
找到 $\alpha_k$,使得它最小化 $\phi\left ( \alpha \right )=f\left ( x_k+\alpha d_k \right )$。
設置 $x_{k+1}=x_k+\alpha_kd_k$。
如果 $\left \| x_{k+1-x_k} \right \| <\varepsilon_1$ 或 $\left \| \bigtriangledown f\left ( x_{k+1} \right ) \right \| \leq \varepsilon_2$,轉到步驟 6,否則設置 $k=k+1$ 並轉到步驟 2。
最優解為 $\hat{x}=x_{k+1}$。
牛頓法
牛頓法應用以下原理 -
$f\left ( x \right )=y\left ( x \right )=f\left ( x_k \right )+\left ( x-x_k \right )^T \bigtriangledown f\left ( x_k \right )+\frac{1}{2}\left ( x-x_k \right )^T H\left ( x_k \right )\left ( x-x_k \right )$
$\bigtriangledown y\left ( x \right )=\bigtriangledown f\left ( x_k \right )+H\left ( x_k \right )\left ( x-x_k \right )$
在 $x_{k+1}, \bigtriangledown y\left ( x_{k+1} \right )=\bigtriangledown f\left ( x_k \right )+H\left ( x_k \right )\left ( x_{k+1}-x_k \right )$
對於最優解 $x_{k+1}$,$\bigtriangledown y\left ( x_{k+1} \right )=0$
因此,$x_{k+1}=x_k-H\left ( x_k \right )^{-1} \bigtriangledown f\left ( x_k \right )$
此處 $H\left ( x_k \right )$ 應為非奇異矩陣。
因此,算法如下 -
步驟 1 - 初始化 $x_0,\varepsilon$,並設置 $k=0$。
步驟 2 - 找出 $H\left ( x_k \right ) \bigtriangledown f\left ( x_k \right )$。
步骤 3 − 求解线性系统 $H\left ( x_k \right )h\left ( x_k \right )=\bigtriangledown f\left ( x_k \right )$,其中未知数为 $h\left ( x_k \right )。
步骤 4 − 求解 $x_{k+1}=x_k-h\left ( x_k \right )。
步骤 5 − 如果 $\left \| x_{k+1}-x_k \right \|< \varepsilon$ 或 $\left \| \bigtriangledown f\left ( x_k \right ) \right \| \leq \varepsilon$,则转到步骤 6,否则将 $k$ 设为 $k+1$ 并转到步骤 2。
步骤 6 −最优解为 $\hat{x}=x_{k+1}$。
共轭梯度法
此方法用于解决以下类型的求解问题 −
$min f\left ( x \right )=\frac{1}{2}x^T Qx-bx$
其中 Q 是正定 nXn 矩阵,而 b 为常数。
给定 $x_0,\varepsilon,$ 计算 $g_0=Qx_0-b$
将 $d_0=-g_0$ 设为 $k=0,1,2,...,$
将 $\alpha_k=\frac{g_{k}^{T}g_k}{d_{k}^{T}Q d_k}$ 设为
计算 $x_{k+1}=x_k+\alpha_kd_k$
将 $g_{k+1}=g_k+\alpha_kd_k$ 设为
计算 $\beta_k=\frac{g_{k}^{T}g_k}{d_{k}^{T}Qd_k}$
计算 $x_{k+1}=x_k+\alpha_kd_k$
将 $g_{k+1}=x_k+\alpha_kQd_k$ 设为
计算 $\beta_k=\frac{g_{k+1}^{T}g_{k+1}}{g_{k}^{T}gk}$
将 $d_{k+1}=-g_{k+1}+\beta_kd_k$ 设为。