大规模优化方法(一)

迄今为止,我们介绍的优化算法都是从整体性出发,搜索全局最优点。而且大多数都是从一个初始可行解出发进行的(分支定界搜索从某种意义上可以说不是)。换句话,这些算法都是直接求解。但一些问题过于复杂,要优化的变量实在过多,规模庞大,以至于没办法从整体考虑入手。今天我们介绍间接求解的算法,将原问题分解成多个足够简单、可以单独迭代直接求解的子问题(subproblem),伴随的主问题(master problem)结合所有子问题的结果给出模型的精确或近似最优解。话不多说,进入正题。

1

列生成算法

首先要介绍的是列生成算法,我们在介绍离散优化模型的分类时提到过(集合包装、覆盖、划分模型)。

传送门:离散优化模型

列生成算法适用于满足以下特点的优化问题:

该问题对应的数学模型能够简单地使用约束矩阵中每一个可能的列来表示决策变量的选择,这些可行的列是通过一个独立子问题构造生成,同时能够满足即便是那些难以用模型表达的复杂约束条件。

列生成算法的思想是基于给定生成的列,通过迭代求解限制主问题(partial master problem)实现全局优化——这里的主问题是指受限原始问题(restricted version),只包含了取值非零的决策变量对应的列。如果原始问题的模型是一个整数线性规划问题,则可以求解受限问题的线性松弛问题。其算法数学表达为:

a8962cfc47fce62ecde161413411b484.png

我们给出列生成算法的一般步骤:

67b204aae114ff9700bce107fabe5686.png

对偶问题在前面以及详细介绍过,传送门:线性规划的对偶理论

该算法最难实现的部分是步骤2中如何构造小于0的检验数,一个方法就是把J的所有列拿出来逐个尝试,但效率无疑是低下的。我们可以采取启发式算法,只要判断所有可行列中最小检验数是否小于0即可。

我们通过一个案例来了解该算法——家具型材切割。

家具制造所需要的型材都是从长度为b=11米的进料中切割下来的ÿ

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
优化理论是研究如何找到一个最优解的数学分支,它广泛应用于各个领域,如工程、经济、计算机科学等。算法优化方法是解决最优化问题的实际方法,它可以分为精确算法和近似算法两类。精确算法是指可以找到最优解的算法,通常用于解决小规模的问题,例如线性规划、整数规划等。近似算法是指不能保证找到最优解,但可以找到接近最优解的算法,通常用于解决大规模问题,例如贪心算法、动态规划等。 常见的算法优化方法包括: 1. 线性规划:通过线性规划模型来寻找最优解。 2. 整数规划:在线性规划的基础上限制变量为整数,通过整数规划模型来寻找最优解。 3. 非线性规划:通过非线性规划模型来寻找最优解。 4. 模拟退火算法:一种全局优化算法,通常用于解决复杂的优化问题。 5. 遗传算法:一种演化算法,通过模拟自然界中的进化过程来寻找最优解。 6. 神经网络算法:通过模拟生物神经系统的学习过程来寻找最优解。 7. 粒子群算法:一种基于群体智能的算法,通过模拟粒子在搜索空间中的移动来寻找最优解。 8. 支持向量机:一种基于统计学习的算法,通过建立分类边界来寻找最优解。 9. 蒙特卡罗方法:通过随机采样来估计函数的期望值,从而寻找最优解。 这些算法优化方法都有各自的优点和适用范围,研究者需要根据具体情况选择合适的算法来解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

整得咔咔响

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值