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

*参考文献见链接。

本文讲述的是求解MIP问题的启发式算法中的爬山算法 (Hill climbing)。

目录

  前言

  Hill climbing 的过程

  Hill climbing 的伪代码

  Hill climbing 的不足

前言

爬山算法是以local search为核心框架的启发式算法中最简单的算法,当然,结果一般也不太好,因为爬山算法有一个很大的缺点:不能跳出局部解。

就像我们在local search那篇文中提到,以local search 为框架的启发式算法需要综合考虑到算法的两个方面,即intensification和diversification。爬山算法在diversification这一方面没有任何措施,所以导致不能跳出局部最优解。

所以对于可能拥有若干个(数目还很多)的MIP问题,仅仅依靠爬山算法,效果是比较差的。所以大部分情况下也不会考虑仅使用爬山算法。

但是爬山算法作为local search中最简单的算法,理解爬山算法有助于进一步理解local search。

爬山算法的联想词:局部最优、深度搜索

Hill climbing的过程

由于hill climbing是以local search为框架的,所以其算法过程也是很类似的。

首先,我们先摆出local search的过程:

(1) 生成初始解:算法从一个初始解或若干个初始解出发;

(2) 定义邻域和候选解:定义解的邻域,并产生若干个候选解;

(3) 确定新解:从候选解中确定新解;

(4) 迭代:重复上述搜索过程,直至满足终止条件,期间可能伴随着参数的调整。

再一一对应local search的过程,将其中一些元素具体化,即可得到hill climbing的过程:

(1)  生成初始解:算法从一个初始解开始。初始解可以随机生成,也可以是给定的。

(2)  定义领域和候选解:定义解的邻域和候选解。不同的爬山算法会考虑不同的邻域结构。

(3)  确定新解:选出候选解中的最优解,如果最优解大于当前解,则将该局部最优解作为新解;

(4)  迭代:重复上述搜索过程,直至满足终止条件。终止条件可以是时间、迭代次数,也可能是当前解不能进一步优化了。

Hill climbing的伪代码

Hill_Climbing algorithm for minimization problem

Procedure HillClimbing()
x:=getInitial(); //get initial feasible solution x
while(the stopping condition is not reached)
x'=localSearch(N(x)); //select the optimal solution from the neighborhood of x as x'
if(c'x'<=c'x)
x:=x'
else
return x
  end

Hill Climbing的不足

Hill Climbing的缺点主要表现在不能跳出局部最优解

MIP启发式算法:爬山算法 (Hill climbing)的更多相关文章

  1. 爬山算法 | Java版HA_TSP

    嗯哼,今天记录下采用Java编写的爬山算法(Hill Algorithm)求解TSP问题. 爬山算法与其他智能算法类似,是一种用来求解多峰函数最值的算法,爬山算法的基本思想是新解不劣于当前解则转移,否 ...

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

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

  3. POJ 2420 A Star not a Tree? 爬山算法

    B - A Star not a Tree? Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/co ...

  4. BZOJ 3680: 吊打XXX【模拟退火算法裸题学习,爬山算法学习】

    3680: 吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 3192  Solved: 1198[Sub ...

  5. BZOJ.3680.吊打XXX(模拟退火/爬山算法)

    题目链接 一个比较好的解释? 模拟退火(Simulated Annealing,SA): (1)初始化一个温度(充分大).初始解状态S.每个T值的迭代次数. (2)对i=1,...,L,做(3)至(7 ...

  6. 基于爬山算法求解TSP问题(JAVA)

    一.TSP问题 TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选 ...

  7. NASH:基于丰富网络态射和爬山算法的神经网络架构搜索 | ICLR 2018

    论文提出NASH方法来进行神经网络结构搜索,核心思想与之前的EAS方法类似,使用网络态射来生成一系列效果一致且继承权重的复杂子网,本文的网络态射更丰富,而且仅需要简单的爬山算法辅助就可以完成搜索,耗时 ...

  8. MIP启发式算法:Variable fixing heuristic

    *本文主要记录及分享学习到的知识,算不上原创 *参考文章见链接. 本文简单介绍一下Variable fixing heuristic,这个算法同样以local search为核心框架,它的特点在于定义 ...

  9. MIP启发式算法:local branching

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

随机推荐

  1. 洛谷 P1042 乒乓球

    P1042 乒乓球 var s:string; a1:array[1..50000] of char; i,n,x,y:longint; procedure f1; begin while not e ...

  2. Spring的ioc(DI)复习概念和原理简介

    IOC的好处 ioc或者说di的概念很显然了,反转控制和依赖注入,那本来直接new就行的东西,为什么要搞这么复杂呢?? 开发维护方便,高层设计不用依赖底层的,不然底层一个类改下构造器,高层就全要改,因 ...

  3. C8051F单片机定时器的定时

    假设C8051F020单片机的晶振是sysclk=22114800HZ,即每秒计22114800个数经过Div=12分频后得到定时器的计数频率Tclk=sysclk/12,每秒计22114800÷12 ...

  4. 17997 Simple Counting 数学

    17997 Simple Counting 时间限制:2000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: 不限定 Description Ly is craz ...

  5. js中对象与函数的关系

    首先什么是对象?根据W3C上面的解释JS中所有事物都是对象,对象是拥有属性和方法的数据,由此可以看出基本值类型不是对象(number.string.Boolean.Undefined),剩下的引用类型 ...

  6. 分布式系统ID生成办法

    前言 一般单机或者单数据库的项目可能规模比较小,适应的场景也比较有限,平台的访问量和业务量都较小,业务ID的生成方式比较原始但是够用,它并没有给这样的系统带来问题和瓶颈,所以这种情况下我们并没有对此给 ...

  7. SpringBoot 2.x (12):整合Elasticsearch

    Elasticsearch:一个优秀的搜索引擎框架 搜索方面最基本的是SQL的like语句 进一步的有Lucene框架 后来有企业级的Solr框架 而Elasticsearch框架尤其适合于数据量特别 ...

  8. 绘制surfaceView 基础类

    public class SurfaceViewTempalte extends SurfaceView implements Callback, Runnable { private Surface ...

  9. {g2o}Installation Notes:ccmake

    main reference: http://www.cnblogs.com/gaoxiang12/p/3776107.html "注意libqglviewer-qt4-dev只在ubunt ...

  10. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} 解决方法

    Tomcat启动时出现红色警告内容 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'sour ...