优化算法设计-面向离散优化问题构造型启发式和改进搜索

优化算法设计-面向离散优化问题构造型启发式和改进搜索

启发式的需求

大量的NP难、NP完全问题是几乎可以确定不存在多项式时间的精确算法,必须找合适的方法;很多大型离散优化问题,启发式方法简单、切实可行。

离散优化

离散优化:优化模型中决策变量如果存在离散变量,优化模型为离散优化(Discrete Optimization),否则称为连续优化。整数规划就是典型离散优化。

启发式特点

启发式方法,不追求一定是最优解(optimal),而是希望获得高质量的可行解(near-optimal feasible),当然,在部分情况下也可能就是得到了最优解 。 本部分关注严格意义上的启发式方法,不追求和精确算法的相似结构,而是基于问题的本身结构,寻找那些最有机会得到最优解、高质量解的办法。启发式方法可能结果很好,不过一般需要“大量的数
据实例的评估”。

构造型启发式

第一类启发式算法为构造型启发式搜索算法,这个方法可以逐步建立一个高质量的解。该算法逐个选择离散决策变量的值,即从部分解开始一次只选择一个决策变量的值,每次迭代中当前决策定的情况下,一个先前自由的变量固定为一个可行数
值,直到得到一个完整的可行解。

基础构造型的启发式方法

  1. 初始化。从初始解 x(0) 开始,其全部变量都是待定自由的。设定 t =0。
  2. 逐步操作。选取解 x(t) 的一个自由分量 xp 并对其赋值,使得这个解有可能成为一个好的可行解。然后,x(t) 迭代更新解 x(t+1) ,解 x(t+1) 和 x(t) 除了已经固定的 xp,其他分量相同。
  3. 增量。增加 t = t+1,返回第 1 步。

以上一个难点在于如何选择下一个待固定的自由变量
并且确定它的值。贪婪 (greedy) 或短视 (myopic)
法是解决这一问题最常见的方法。

贪婪构造型启发式算法

定义:贪婪构造型启发式算法每次迭代都会选择并固定下一个变量,这种方法在当前临时解的变量已经固定的情况下,使得下一个解能够最大限度地改进目标函数值。极少数情况下,贪婪算法能够保证产生一个精确。由于该算法在进行下次选择时只能依靠局部信息,因此在一般情况下样做存在风险,可能进入可行解空间中非常差区域。贪婪算法计算过程一般十分高效。

:集合覆盖问题是非常著名的离散优化问题。例如救护车选点规划问题,城市可以分成不同的救护车服务区,每个车站的地点是多个备选点中选出来的,使得尽可能多人口(服务区)得到服务。
在这里插入图片描述
城市分 20 服务区,每个站点服务相邻的区,有 10 个备选的车站点。
决策变量: x j = 1 o r 0 x_j = 1 or 0 xj=1or0
假定最小化所需站点的总数目(成本系数等于1),模型为:
m i n ∑ j = 1 10 c j x j = ∑ j = 1 10 x j min \sum_{j=1}^{10}{c_jx_j}=\sum_{j=1}^{10}{x_j} minj=110cjxj=j=110xj
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
:公司希望向多个客户运送需求品,由一个仓库提供货物,安排卡车进行运输。客户只能被卡车一次服务完成,且卡车不能超载。卡车需要往返仓库多次,完成运输。
在这里插入图片描述
此问题称为车辆路径问题(vehicle routing problem,VRP),是著名NP-hard问题。
其数学建模难以非常简洁,本节探讨其构造型启发式
方法。例如一种方法:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值