精确算法与启发式算法对比

目录

精确算法

启发式算法

选精确算法还是启发式算法?


       优化问题求解方法主要分为两种:精确算法与启发式算法。算法的种类很多,本文仅挑选部分进行对比。

精确算法

       精确算法是能够在有限的时间求出最优解的算法。对于小规模优化问题,通常可采用单纯形法、分支定界法、动态规划法等精确算法求最优解。然而随着优化问题的规模或者复杂度的增加,部分精确算法所需的求解时间与存储空间将呈指数增长,导致算法失效,因此催生了更复杂一些的精确求解算法,如拉格朗日松弛算法、分支定价算法、Bender's分解算法等。这些算法基本思路通常是采用某种方式将一个复杂问题转换为若干个容易求解的子问题。

        拉格朗日松弛算法一般通过拉格朗日乘子将复杂的耦合约束松弛后移到目标函数中,构造拉格朗日对偶问题;给定拉格朗日乘子并将对偶问题分解成多个简单的子问题求解,从而为原问题提供一个下界;然后通过解的可行化法得到原问题的一个上界;接着采用次梯度算法不断更新拉格朗日乘子和解的上、下界直至收敛。

        分支定价算法是将列生成算法嵌入分支定界算法的一种组合算法,常用于大规模整数规划问题,先将大规模整数规划问题松弛为线性规划问题;用列生成算法构造线性松弛问题的限制性主问题和价格子问题并求解,更新节点的上界或下界;再用分支定界算法对非整数解进行分支或剪支;继续调用列生成算法对分支形成的问题求解;不断迭代更新问题上下界直至收敛。

        Bender's分解算法通常通过拆分复杂问题的目标函数和约束,构造一个主问题、一个或多个个子问题,其中主问题由包含难变量的目标函数及约束条件组成,子问题由包含简单变量的目标函数、包含简单变量与难变量的约束条件组成&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值