最优化方法_Part1
1 最优化问题概述
1.1 什么是最优化问题
最优化问题是决策问题,选择一些可以执行的策略来使得目标最优,一个最优化问题包括:
- 决策变量
- 一个或多个目标函数
- 一个由可行策略纽成的集合,可由等式或者不等式刻画
1.2 基本形式
1.2.1 视频中的形式
其中,
即目标函数, 分别为不等式约束和等式约束- 集合
称为最优化问题的可行集(可行域)
1.2.2 参考其他文献的形式
其中,s.t.
是 “subject to”的缩写,专指约束条件。当
参考资料1:课本——最优化:建模、算法与理论
参考资料2:https://blog.csdn.net/jbb0523/article/details/50596387
1.3 最优化问题分类
1.3.1 无约束优化/约束优化
- 无约束优化问题:没有约束条件
- 常见求解方法:梯度下降法(最速下降法)、牛顿法、共轭梯度法等等
- 约束优化问题:在一定约束条件下求解目标函数的
min OR max
易知,实际中最碰见的是约束优化问题,但是我们在课程中却要大量研究无约束优化问题,这个有两方面的原因:一是无约束优化问题求解相对简单;二是可以通过一定的变换将有约束转变为无约束优化。
1.3.2 线性/非线性优化
- 线性优化问题的一般形式
单纯形方法:在数学优化领域中常用于线性规划问题的数值求解。由线性规划问题的可行集的特征来决定的(线性规划最优解存在时,那么最优解一定存在与问题可行集的顶点位置),单纯性方法就是关注这些顶点。
参考资料:单纯形算法
- 非线性优化(例子说明):均值-方差模型
1.3.3 连续优化/离散优化
- 连续优化:
中每一个 的取值是连续的 - 离散优化:
中每一个 的取值是离散的,比如 规划
1.3.4 单目标优化/多目标优化
- 单目标优化
- 多目标优化(均值-方差模型)常采用的办法:
- 法1:转化为单目标,即可以将某些目标经过一定形式转化到约束条件中去。
- 法2:想办法将多个目标融合为单个目标
1.3.5 动态规划
1.3.6 随机规划
参数中有不确定系数的优化问题。
1.3.7 鲁棒优化
1.4 最优化方法主要讲解内容
- 凸优化理论:凸集,凸函数,凸优化问题;
- 无约束优化问题的算法;
- 约束优化的最优性条件及对偶理论;
- 线性规划、二次规划算法;
- 约束优化的罚函数方法;
- 优化软件:CVX,CPLEX
1.5 预备知识
- 向量、矩阵、二次型等知识;
- 微积分知识;
- 简单的概率知识。
课后小问题:
元二次函数 ,其中 为 阶对称矩阵, 为 维向量;给出 的梯度和hesse炬阵?- 设随机向量服从联合正态分布:
,令 ,给出 的 分位数。
2 凸集
在最优化范畴里面,凸优化问题是一类常见的且性质很好的(很多时候可以帮助我们解决非凸优化问题)。
如果目标函数
- 为什么凸优化问题具有比较好的性质呢?
- 例子1:一元最小化问题:
- 例子1:一元最小化问题:
凸函数 | 非凸函数 |
---|---|
![]() |
![]() |
-
- 例子2:二元最小化问题:
- 例子2:二元最小化问题:
凸集 | 非凸集 |
---|---|
![]() |
![]() |
梯度: |
梯度: |
优化问题等价为: |
优化问题等价为: |
凸集:集合中的任意两点连线的点都在该集合中,则称该集合为凸集;凹集为非凸集。
2.1 凸集的定义
2.1.1 凸集定义的数学表示
凸集:对于任意的
那么

- 推广表示方法:
其中,
2.1.2 凸组合
凸组合是指,假设
就称为
通常你看到凸组合只意味着一个意思:线性组合,系数和为一
任意两个点的凸组合都在它们之间的线段上。
2.1.3 凸包
凸包是针对一个集合来说的。任意一个集合(不一定是凸集)
点集的凸包等价于该点集的所有凸组合。
凸包一定是凸集合,通过凸包操作能够将非凸集合转变为凸集合。
2.2 常见凸集
2.2.1 超平面
-
定义:
维线性空间中维度为 的子空间,它可以把线性空间分割为不相交的两部分。这里的
必须大于 ,其子空间才能称之为超平面。更直观理解超平面:其实就是平面中的直线、空间中的平面的推广。在三维坐标系,XoY平面把三维坐标系”分割”成两个空间,这个分割平面引申到一维,二维,四维空间…来,他就是一个超平面。
-
超平面方程推导:
式中,
参考资料1:机器学习01-超平面理解
2.2.2 半空间

2.2.3 多面体
- 定义:多个线性不等式所刻画的集合
注意:线性等式刻画的集合也是多面体,因为等式约束可以转换为不等式约束,如
2.2.4 球体(Euclidean)ball with center and radius r
式中,
2.2.5 椭球(Ellipsoid)
其中
2.2.6 二阶(次)锥 Second-order cone, ice-cream cone
假设有一个

什么是锥:
如果
,那么若有 ,此时就称为锥。
2.2.7 半定矩阵锥
-
:所有 阶对称矩阵组成的集合; -
:所有半正定矩阵组成的集合,其中: ; -
:所有正定矩阵的集合,其中: 。
半定矩阵锥常用于半定规划里面(一种常见的凸优化问题)。
- 例子:
,如下图所示。

小问题:
线性规划
的最优解组成的集合为
, 是凸集合吗?【答案—— 是凸集合】 证明:
2.3 保持集合凸性的运算
2.3.1 第一种
设
- (1)
是凸集 - (2)
是凸集
问题:
,其中 是否为凸集? 答:带入
得到: 上不等式表示两个半空间交集。如果
只有两种取值,那么就是两个上不等式刻画的集合的交;事实上 无穷多取值,那么就是无穷多个上不等式刻画的集合的交,即结果仍然是凸集。
2.3.2 仿射变换
线性变换是特殊的仿射变换。或者说仿射变换就是线性变换加平移。
假设
是凸集 是凸集
特殊仿射变换:
- 放缩scaling:
- 平移translation:
- 投影projection:
2.4 凸集的基本性质——投影定理
2.4.1 投影定理概念
设
(1)存在唯一的一点
(2)
2.4.2 投影定理的证明
不妨设,
存在
因此投影点是唯一的。

2.4.3 点与凸集的分离
- 分离
设
则称超平面
- 严格分离
设
则称超平面
小问题1:两个不相交的非空凸集一定能分离吗?
答:一定能分离。
小问题2:设
是两个非空闭凸集, ,是否存在超平面分离 和 ? 答:存在
2.5 支撑超平面定理
符号 | 意义 |
---|---|
集合 |
|
集合 |
|
闭包,集合 |
设
其中,
此时,也称超平面

通俗来说,该定理描述为:在凸集
的边界一点 寻找一个超平面 ,将凸集 放在超平面负半空间中。
- 证明:
由于
因为
不妨设,
令上式中
参考链接:https://blog.csdn.net/qq_42518956/article/details/113943943
2.6 凸集之Farkas引理
Farkas引理好像可以用于升维度。
2.6.1 Farkas引理定义
给定矩阵
- 问题1——
- 问题2——
Farkas引理在几何上讨论矩阵
矩阵
其中,
- 问题1——
- 问题2——
情况1 | 情况2 |
---|---|
![]() |
![]() |
2.6.2 Farkas引理证明
- 证明方法1:

- 证明方法2:利用线性规划对偶理论
2.6.3 Farkas引理的推论
-
Gordan定理:给定矩阵
,则以下两个问题有且只有一个有解:- 问题1——
- 问题2——
- 问题1——
-
给定矩阵
以及 维向量以及 维向量 ,则以下两个问题有且只有一个有解:- 问题1——
- 问题2——
- 问题1——
-
其他还有好几个推论。。。
3 凸函数
3.1 凸函数与凹函数定义
3.1.1 凸函数
设
则称
3.1.2 严格凸函数
3.1.3 凹函数
设
则称
3.1.4 严格凹函数
若
是凸函数,那么 为凹函数。 如果原来要求解一个凹函数
的最大值,则可以转换为凸函数的最小值:
3.2 常见凸函数
3.2.1 线性函数
该函数很特殊,它既唯一一类是凸函数又是凹函数。
3.2.2 二次函数
其中
3.2.3 最小二乘函数
3.2.4 范数
0范数:
表示向量 中0元素的个数。
3.3 凸函数的性质
3.3.1 连续性
一个函数若是凸函数,那么该函数一定是连续函数。
3.3.2 性质2
为凸函数。相当于把函数竖着切一下得到的切面???
3.3.3 性质3——判定凸函数的一阶条件
几何上的意义就是

对应的切线方程为:
证明:参考网络上的一些博客/b站视频。
3.3.4 性质4——判定凸函数的二阶条件
一阶条件在工作中很少被使用,我们往往使用的是二阶条件来判定函数的凸性。
二阶条件涉及到了Hessian matrix,它是这样定义的。
在数学中,海森矩阵(Hessian matrix 或 Hessian)是一个多变量实值函数的二阶偏导数组成的方块矩阵,假设有一实数函数
,如果 所有的二阶偏导数都存在,那么 的海森矩阵是长下面这样: ![]()
设
即函数的二阶Hessian matrix需要是半正定的。
对于
3.4 保持函数凸性的运算
3.4.1 Perspective function
若
为凸函数,设

3.4.2 非负组合
设有一组凸函数:
为凸函数。
3.4.3 凸函数求最大
设有一组凸函数:
为凸函数。
3.5 凸集与凸函数的关系
讨论凸集和凸函数的两个工具:凸集,上(镜)图Epigraph
3.5.1 水平集
任意一个函数(不一定是凸函数)
其中
3.5.2 上(镜)图Epigraph
函数

小问题:给定非空闭凸集
4 凸优化问题
4.1 凸优化问题通式
考虑最优化问题(P):
记P的可行域为
- 为什么特别强调不等式约束条件
是凸函数呢?
首先,
- 为什么特别强调等式约束条件
是线性函数呢?
等式约束当为线性函数是,就相当于
由以上两个小问题分析可知,在上面的条件下,由不等式约束和等式约束所刻画的集合

4.2 区分凸优化与非凸优化
区分凸优化与非凸优化是一个非常重要的事情,若是我们能够判断出该问题为凸优化问题,那么就能利用凸优化很多很好的性质进行求解分析问题。下面介绍凸优化问题的两个比较好的性质。
4.2.1 局部最优即全局最优
对于凸优化问题,其局部最优解就是全局最优解。
- 局部最优解
设现在有一个问题可行解为
- 全局最优解
设现在有一个问题可行解为
证明:
设对于凸优化,
当
4.2.2 凸优化问题最优性条件
最优性条件其实就是在讨论优化问题的最优解要满足的条件:充分条件、必要条件、充要条件。
设
证明——充分性:已知
首先
即,对于任意
证明——必要性:已知
(反证法):设存在
整理可得:
当
几何解释:
由上面的等价表达可知,若

几类特殊凸问题的最优性条件:
-
无约束凸优化
:- 根据前面的条件,可知:
,由于没有约束条件,即 可以取遍 中的所有向量,那么此时 。
- 根据前面的条件,可知:
-
等式约束凸问题
:- 根据前面的条件,可知:
,满足 ,令向量 ,那么将满足等式约束的两个式子相减: ,即向量 在 的零空间中。又由于向量 在 的零空间中,那么 同样在 的零空间中,因此向量 和 都是 的解,也就是该不等式添加负号不等号不变方向,也就等价于 。由于 的零空间中,而 ,所以 在 的正交补空间中,也就是 的行空间,所以 可以表示成 的线性组合:
- 根据前面的条件,可知:
-
这个就是KKT条件在本问题中的具体表现形式。
-
非负约束凸优化
:- 证明暂略,比较复杂,看视频吧
4.3 常见凸优化问题分类
4.3.1 线性规划 (Linear Programming, LP)
(一) 线性规划的标准形式
一言以蔽之,目标函数和约束条件都是仿射函数。
注意,凸优化问题中很多形式可以通过转换变为标准形式的!!!如下面几种情况:
- 线性分式规划

- 最小化绝对值函数

- 最小化多面体函数

(二) 标准解法——单纯形法
单纯形法的基本思想是——基于线性规划的可行集是一个多面体,目标函数是线性的,绘制其等值面的时候是一组平行的线/面,找到多面体的支撑超平面。所以说,如果线性规划存在最优解,则可在极点(多面体的顶点)达到。
若
- 若是最优解,则求解完成;
- 若不是最优解,则需从
出发,找一个更优的极点。

4.3.2 凸二次规划 (Quadratic Programming, QP)
(一) 凸二次规划基本形式
其中,
(二) 标准解法——有效集法
后面讲解。
(三) 示例
- 均值-方差模型
- 最小二乘模型
4.3.3 带凸二次约束的二次规划(Quadraticlly Constrained Quadratic Program, QCQP)
(一) 基本形式
其中,
4.3.4 二阶锥规划 (Second-Order Cone Program, SOCP)
(一) 基本形式
当
4.3.5 半定规划 (Semidefinite Program, SDP)
(一) 半定规划标准形式
其中,
转化为:线性矩阵不等式形式(LMI):
注意:若矩阵
,则有 是半正定矩阵。
4.3.6 几何规划 (Geometric Programming, GP)
(一) 例子:切比雪夫中心(集合中心)
- 给定有界的集合
的深度定义为:
可以理解为集合
- 集合
的中心(chebyshev center)定义为具有最大深度的点:
- 集合的中心即包含于该集合的最大球体的球心。
(二) 凸集合的中心问题为凸优化问题
(1) 假设
设该球体球心为
注意:max/sup、min/inf辨析,sup, inf 与 min, max
使用 inf 或 sup 总能保证一个函数的 inf 或 sup 存在,而函数的 min 或 max 有时候不存在。
(2) 多面体的中心:假设多面体
通过题目,可将优化问题抽象如下:(球体可以表示为:

(3) 椭球交集的中心:假设
通过问题描述,可将该问题建模为:
本问题涉及两个小知识点:
-
S-Procedure:
,当且仅当 使得
-
Schur complement 对称分块矩阵:
- 如
,若 ,则 当且仅当
- 如
参考资料:
【3】正定(positive definite)与半正定(semi-positive definite)
笔记参考资料:
【2】数值优化| 线搜索方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现