目录
- 线性规划(LP)
- 整数线性规划(ILP)
- 混合整数线性规划(MILP)
- 非线性规划(NLP)
- 整数非线性规划(INLP)
- 混合整数非线性规划(MINLP)
- 分组背包问题(MCKP)
- 启发式算法
- 在线算法
- 长期优化
- 李雅普诺夫算法
- 随机优化
- 块坐标下降法(Block Coordinate Descent)
- 逐次凸逼近算法(Sequential Convex Approximation Algorithm)
线性规划(LP)
- 目标函数:线性
- 约束条件:都是线性的
- 决策变量:都是连续变量
- 复杂度:求解相对简单,可以用单纯形法、内点法等多种有效算法求解,求解时间在多项式时间内
整数线性规划(ILP)
- 目标函数:线性
- 约束条件:都是线性的
- 决策变量:都是整数变量
混合整数线性规划(MILP)
- 目标函数:线性
- 约束条件:都是线性的
- 决策变量:包含两种类型 ①连续变量(可以取任意实数值)②整数变量(只能取整数值,通常包括二进制变量,即0或1)
非线性规划(NLP)
- 目标函数:非线性
- 约束条件:可以是线性或非线性的
- 决策变量:都是连续变量
整数非线性规划(INLP)
- 目标函数:非线性
- 约束条件:可以是线性或非线性的
- 决策变量:都是整数变量
混合整数非线性规划(MINLP)
- 目标函数:非线性的
- 约束条件:可以是线性或非线性的
- 决策变量:包含两种类型 ①连续变量(可以取任意实数值)②整数变量(只能取整数值,通常包括二进制变量,即0或1)
分组背包问题(MCKP)
MCKP是一种更泛化的背包问题,它是将n件物品,分为若干组,在每组物品里最多取一件物品放入背包,每件物品的重量确定,价值确定,背包容量确定,求在不超过背包容量的情况下,可以存放的最大价值,其形式化描述如下:
其中
p
i
j
p_{ij}
pij为第i组中第j个物品的价值,
w
i
j
w_{ij}
wij为其重量,
x
i
j
x_{ij}
xij为是否选择该物品,它只能为0或1
参考:https://developer.aliyun.com/article/690841
启发式算法
启发式算法 (Heuristic Algorithms) 是相对于最优算法提出的。一个问题的最优算法是指求得该问题每个实例的最优解。启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费 (指计算时间、占用空间等) 下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度不一定事先可以预计。
启发式算法简单的划分为如下三类:简单启发式算法 (Simple Heuristic Algorithms),元启发式算法 (Meta-Heuristic Algorithms) 和 超启发式算法 (Hyper-Heuristic Algorithms)。
参考:https://leovan.me/cn/2019/04/heuristic-algorithms/
在线算法
在线算法能够在输入数据逐步到达的过程中,实时地做出决策,而不需要等待所有数据到达后再进行处理
长期优化
在长时间范围内优化系统的性能或资源分配,目标是在整体时间范围内实现最优效果
李雅普诺夫算法
李雅普诺夫算法既适用于长期优化,也适用于在线优化
随机优化
随机优化是一种寻找最佳解或接近最佳解的方法,其核心思想是通过随机的方式搜索解空间,而不是依赖于确定性的规则或梯度信息。这种方法适用于那些无法简单求解、复杂度高、或者解空间维度较大的问题
块坐标下降法(Block Coordinate Descent)
块坐标下降法是一种迭代优化算法,其核心思想是将优化问题分解为多个子问题,并分别对每个子问题进行优化。在每次迭代中,选择一个或多个块(即一组变量),固定其他变量,然后解决子问题以更新所选块的变量。通过重复这个过程,逐渐优化整个问题。块坐标下降法通常适用于变量之间具有较强相关性的优化问题,因为它可以利用变量之间的相关性来加速收敛。
逐次凸逼近算法(Sequential Convex Approximation Algorithm)
逐次凸逼近算法是一种逐步优化非凸函数的方法。它将非凸优化问题分解为一系列凸优化子问题,并依次求解这些子问题,每次求解时都对原始非凸函数进行凸逼近。在每次迭代中,通过构建一个局部的凸逼近模型来近似原始函数,并求解该凸逼近模型以获得下一个迭代点。通过不断地迭代和优化,逐步逼近原始非凸函数的最优解。逐次凸逼近算法通常对凸优化问题比较有效,但也可以应用于某些非凸问题,尤其是局部非凸问题