5.1 数值优化基础:基本概念
category
type
status
slug
date
summary
tags
password
icon
这世界,有太多不如意,可你的生活还是要继续。— 武林外传
🏰代码及环境配置:请参考 环境配置和代码运行!
本章节将介绍基于优化的规划算法, 最优化计算方法是运筹学、计算数学、机器学习和数据科学与大数据技术等专业的一门核心课程。最优化问题通常需要对实际需求进行定性和定量分析,建立恰当的数学模型来描述该问题,设计合适的计算方法来寻找问题的最优解,探索研究模型和算法的理论性质,考察算法的计算性能等多方面。
后续我们会开设专栏系统的介绍数值优化, 大家也可以自行阅读专业书籍进行系统性学习. 推荐北京大学文再文老师的最优化:建模、算法与理论, 官方开放了电子版图书:最优化:建模、算法与理论.
这里为了让大家对最优化有一个大体的认识, 将简要的介绍一下:什么是数值优化.
5.1.1 最优化问题的一般形式
最优化问题, 在给定一系列约束下,如何选择或调整一组变量,以使得某个目标函数达到最优值(最大值或最小值). 一般可以描述为:
- : Decision Variable
决策变量, 或者叫优化变量, 代表可以控制的量,通过优化这些变量来目标函数f(x)达到最小值.
- : Object Function, 或 Cost Function
目标函数, 或者叫代价函数, 代表我们想要优化的目标. 前面的min代表目标是使得优化函数f(x)的值最小.
- : subject to
约束条件, 指该决策变量受到的约束. 这里约束是一般由一个或多个式子组成:
1到m是不等式约束, m+1到m+l是等式约束.
一般使目标函数取最小值的变量记为, 称为优化问题的最优解. 即对任意的都有
举个简单的例子:
问题需要满足不等式约束和等式约束, 最优解如图.
通过这个例子, 大家可以直观的感受到, 优化问题就是在满足一系列约束的可行域内, 找到使得目标函数最小的解.
关于约束和最优解, 可以去了解一下KKT条件.
5.1.2 无约束和约束优化问题
最优化问题的一个重要的分类标准是约束是否存在:
- 无约束优化问题的决策变量没有约束条件限制,即可行集合.
- 约束优化问题是指带有约束条件的问题, 什么的例子就是一个约束优化问题.
如果例子的约束条件不存在, 那最优解是:
5.1.3 线性和非线性规划问题
线性规划是指问题中目标函数和约束函数都是线性的.当目标函数和约束函数至少有一个是非线性的,那么对应的优化问题的称为非线性规划问题.
例子中的目标函数是非线性的, 约束条件是线性的. 所以例子是一个非线性规划问题
5.1.4 凸和非凸优化问题
- 凸集
设 是一个实数空间 的子集。如果对于 中的任意两点 和 ,以及任意实数 ,都有
那么称 是凸集
- 凸函数
设 是定义在凸集 上的函数。如果对于 中的任意两点 和 ,以及任意实数 ,都有
那么称 是 上的凸函数.
- 凸优化问题
凸优化问题是指最小化问题中的目标函数和可行域分别是凸函数和凸集.如果其中有一个或者两者都不是凸的,那么相应的最小化问题是非凸优化问题.
例子中, 模板函数是凸函数, 满足约束条件的可行域是凸集. 因此他是一个凸优化问题.
5.1.5 全局和局部最优解
对于无约束凸优化问题, 极小解(即局部邻域内的最小值点)就是全局最优解. 但是对于非凸优化问题, 存在多个极小值点, 但是极小值点不一定是全局最优解:
关于在优化问题中如何判断极值点, 有基础的同学可以了解一下KKT条件(Karush–Kuhn–Tucker conditions), 不做赘述.
5.1.6 迭代求解最优化问题的终止条件
常见的迭代终止条件如下, 可以根据具体优化问题选择.
- 梯度趋近于0
- 决策变量变化量<阈值
- 目标函数变量变化量<阈值
- 达到最大迭代次数
了解了最优化问题的基本概念之后, 下一节我们将介绍求解最优化问题的常见方法.
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...