*本文主要记录及分享学习到的知识,算不上原创

*参考文章见链接。

本文简单介绍一下Variable fixing heuristic,这个算法同样以local search为核心框架,它的特点在于定义邻域结构的方式。

目录

Hard variable fixing heuristic

Soft Variable fixing heuristic

Hard Variable fixing heuristic

Variable fixing heuristic 常常与Cplex一起使用。就像刚才提到的那样,variable fixing heuristic 同样以local searh为核心框架,所以Cplex主要用于求解邻域中的局部最优解。另外,variable fixing heuristic通常应用于0-1 MIP问题。以下以0-1 MIP 问题为例。

variable fixing heuristic 的过程

1)生成初始解x;

2)选择部分变量,固定这些变量的值;

3)用Cplex求解固定部分变量后的子问题;

4)如果Cplex求得的局部最优解x'优于初始解x,则将其作为新解x:=x';

5)回(2),不断迭代,直至满足终止条件。

备注:

1)生成的初始解x如果是integer feasible,那么“固定变量的值”的方式通常是选择其中部分的0-1变量,让其等于初始解对应变量的值。当然也可以考虑生成的初始解是integer infeasible,也就是说是一个Lp relaxation的解(考虑着这种情况是因为对于NP hard问题,求解其LP relaxation的速度远远比求解原问题迅速),那么“固定变量的值”的方式通常是选择部分变量,根据round固定为最近的整数解。

2)之所以会考虑固定部分变量的值,求解子问题,是因为固定部分变量的子问题的求解比原问题的求解更加迅速。

3)所以说variable fixing heuristic也是以local search为核心框架,特点在于邻域结构的定义。

4)variable fixing heuristic将local search与exact algorithm (Cplex)结合起来,启发了一些其他的算法,比如VNS和Cplex的结合。

Soft Variable fixing heuristic

hard variable fixing heuristic在定义邻域结构(求解子问题)时,已经确定好了哪些变量的值被固定。(即使可以在步骤(2)中可以实现随机选择固定的变量,但是在步骤(3)中求解子问题时哪些变量的值被固定已经是确定了的。那么在hard variable fixing 中如何选择固定的变量就变得尤其重要,一旦没选好,就可能错失优秀的解。所以有时候,我们可能并不是希望提前固定好一些变量的值,而是想着固定其部分变量,但具体是哪些变量,我们并不作要求,这样的操作可以尽可能避免由于固定错误的变量而导致的不良结果。基于这种考虑,soft variable fxing应运而生。

MIP启发式算法:Variable fixing heuristic的更多相关文章

  1. MIP启发式算法:Variable Neighborhood Decomposition Search

    *本文记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文主要简述和VND VNS RINS很相关的vairable neighborhood decomposition search. 目 ...

  2. MIP启发式算法:local branching

    *本文主要是记录并分享最近学习到的知识,算不上原创 *参考文献见链接 本文主要是讲述local branching算法,主要以M. Fischetti的论文 “Local braching”和Pier ...

  3. MIP启发式算法:Variable neighborhood search

    *本文主要记录和分享学习到的知识,算不上原创. *参考文章见链接. 本文主要讲述启发式算法中的变邻域搜索(Variable neighborhood search).变邻域搜索的特色在于邻域结构的可变 ...

  4. MIP启发式算法:遗传算法 (Genetic algorithm)

    *本文主要记录和分享学习到的知识,算不上原创 *参考文献见链接 本文主要讲述启发式算法中的遗传算法.遗传算法也是以local search为核心框架,但在表现形式上和hill climbing, ta ...

  5. MIP启发式算法:爬山算法 (Hill climbing)

    本文主要记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文讲述的是求解MIP问题的启发式算法中的爬山算法 (Hill climbing). 目录 前言 Hill climbing 的过程 ...

  6. VRP相关知识整理

    一.扩展问题分类: ★ the capacitated vehicle routing problem (CVRP) , 即classical VRP ★ the vehicle routing pr ...

  7. 启发式算法(Heuristic Algorithm)

    背景: 李航的<统计学习方法>一书中提到:决策树算法通常采用启发式算法,故了解之 问题解答: 时间有限,这里也只是将算法和启发式算法的区别和简单发展摘录如下: 一.算法和启发式方法之间的差 ...

  8. Cplex: MIP Control Callback

    *本文主要记录和分享学习到的知识,算不上原创 *参考文献见链接 之前,我们有简单提到Cplex中的MIP Callback Interface,包括了Informational callback, q ...

  9. Cplex: MIP Callback Interface

    *本文主要记录和分享学习到的知识,算不上原创 *参考文献见链接 这篇文章主要记录一些Cplex的Callback的使用方法,采用Java语言. https://www.ibm.com/support/ ...

随机推荐

  1. RDL Web报表抛出ReportServerException,已取消该操作

    ::, RsBase() [ERROR] - Microsoft.Reporting.WebForms.ReportServerException: 已取消该操作. ---> System.Op ...

  2. Ionic开发-常用命令

      $ionic start myApp [tabs | sidemenu | blank] $ionic platform add android $ionic build android $ion ...

  3. Php—AJAX跨域问题

    <?php /** * ajax proxy * ajax跨域解决办法 * @author  suconghou <suconghou@126.com> * @version v1. ...

  4. 移动端之js控制rem,适配字体

    方法一:设置fontsize 按照iphone 5的适配  1em=10px    适配320 // “()()”表示自执行函数 (function (doc, win) { var docEl = ...

  5. strust2的10种type类型

    <result-types> <result-type name="chain" class="com.opensymphony.xwork2.Acti ...

  6. nodejs学习8:windows连接mongodb出现的错误解决办法

    今天遇到了在windows下连接mongodb错误的情况,因为之前安装是正常的,而重启的电脑之后就再也连接不上.于是在群里求助了下,无果,查阅了官网的英文文档,终于有些眉目了,故此一记. 先吐槽下命令 ...

  7. 关于Linux系统启动时出现UVD not responding, Trying to reset the vcpu问题的解决

    本人的老古董笔记本!不知道什么时候显卡烧坏了 每次启动Linux的时候就会出现错误,信息如下: UVD not responding, trying to reset the VCPU! 讲道理,显卡 ...

  8. 收集的20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...

  9. Linux环境下mysql的root密码忘记解决方法(2种)

    方法一: 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以 ...

  10. MFC【exe】工程中的文件大致信息(翻译的)

    在工程文件夹中有个readme文件,下面是翻译过来的. ======================================================================== ...