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

*参考文章见链接。

本文简单介绍一下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. C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report

    ceil有毒啊..用ceil一直错. 思路就是模拟吧,设当前的答案是ansx和ansy. 如果比例是小于ansx的,那么就要乘以一个倍数k1,使得a * k1 >= ansx的. 所以就用cei ...

  2. HDU 5875 H - Function 用单调栈水过了

    http://acm.hdu.edu.cn/showproblem.php?pid=5875 单调栈,预处理to[i]表示第一个比a[i]小的数字,一直跳就可以. 这题是数据水而已. 这里学习下单调栈 ...

  3. (转)生产环境常见的HTTP状态码列表(老男孩整理)

    生产环境常见的HTTP状态码列表(老男孩整理) 原文:http://blog.51cto.com/oldboy/716294 ##################################### ...

  4. 常用的http网页错误代码表---------495引发的一个简单到爆,但基于国内环境只能呵呵呵的血案

    敲代码敲出了个网页错误代码 495. 然后,正常的跑去百度,看了一堆还是没有完整的网页错误代码,应该说国内的环境的网页错误代码表只有官方的那几个,那么只能FQ了. 去到谷歌,一查全是俄语,乐了,明白是 ...

  5. <Android 应用 之路> 聚合数据SDK

    聚合数据介绍 聚合数据是一个为智能手机开发者,网站站长,移动设备开发人员及图商提供原始数据API服务的综合性云数据平台.包含手机聚合,网站聚合,LBS聚合三部分,其功能类似于Google APIS.[ ...

  6. 如何删除 CentOS 6 更新后产生的多余的内核?

    第一种方法:通过命令的方式解决多余的内核 1.首先查看当前内核的版本号: [root@jxatei ~]# uname  -a Linux jxatei.server2.6.32-573.1.1.el ...

  7. 微软大礼包 | 集合在线学习资源,助你秒变AI达人

    编者按:人工智能的浪潮正如火如荼地袭来,未来人工智能将大有所为,人们的生活轨迹也正在技术不断向前推进的过程中逐渐改变.人工智能不是科研人员或开发人员的专属,微软希望能够将人工智能带给每个人,从开发者到 ...

  8. Windows平台下如何在C#中调用Python

    最近迷上了Python,发现它能够做很多C#无法完成的事情,比如,调用CMD或者在CMD中执行一个exe文件命令行并获得输出的结果.过程简单,处理起来也非常方便,但如果要用C#调用Python文件呢, ...

  9. Android内核剖析(1)

    Linux的启动过程 开机上电执行bootloader,将内核的前n条指令加载到系统内存中------>系统内核的初始化----------->启动应用程序. bootloader的位置装 ...

  10. C#实现灰度图像和彩色图像的4种镜像

    一:灰度图像的水平镜像核心代码:  二:灰度图像的竖直镜像 核心代码:三:彩色图像的水平镜像 核心代码: 四:彩色图像的竖直镜像 核心代码: