在使用启发式算法的时候,一个常见的问题是融入陷入局部最优,导致很长时间内算法的解难以得到改进,现总结一下几种常见的元启发式如何跳出局部最优。

一、跟算法内部设计无关: 使用多个初始解搜索;

二、跟算法内部设计有关:接受较差的解/扰动/交叉变异

        SA: 若新解优于原解,接受,否,以一定概率/接受标准 exp((sol.Cost-newsol.Cost)/ck)接受较差解。

  VND:纯静态算法,邻域只有一个的话,跟爬山无异;跟爬山相比多了邻域的个数。

        VNS:shake策略,扰动初始解,shaking本质上来说也是邻域搜索的一种,但需要注意的是,shake强度不能太小,不然很容易被局部搜索拉回,且shake对解的扰动程度比local search要强;同时shake的强度不能太大,不然与random search无异。

 GA:通过交叉/变异跳出局部最优;

  •  交叉:需要两个父代的基因进行互换产生新的个体,改动程度比较大,类似于VNS当中的扰动,常见算子(OX、PMX、CX)
  • 变异:针对单个个体按照一定概率对某些基因进行swap、insert等操作得到新的个体,类似于local search中的邻域算子;

        ILS:同时使用shaking+SA的接受标准,使得算法的探索性更强,跳出局部最优的可能性更大。

        Tabu:通过禁忌列表的设置保证跳出局部最优。

元启发式如何跳出局部最优?相关推荐

  1. 算法 - 局部最优的避免

    文章目录 局部最优的产生 局部最优的避免 局部最优的判断 局部最优的产生 一般的启发式算法非常容易产生局部最优,或者说根本无法查证产生的最优解是否是全局的.这是因为对于大型系统或复杂的问题,一般的算法 ...

  2. 提醒一下技术人,你是不是陷入局部最优了

    首先看一张函数图像: 很明显,这个函数最小值点在E点,而A.C.G是函数的局部极小值点.我读书期间学的数学专业,研究的方向就是最优化算法,说的直白点,就是找函数的最小值点,如果得找到了E点就说明成功了 ...

  3. 基于自然的灵感算法--元启发式

    问题一:自然赋予的元启发式优化算法的分类 自然赋予的元启发式算法(模拟生物或者物理的现象去解决问题)有三大类也就是:基于进化,基于物理的,基于群体的 基于进化的主要是受达尔文的物种进化理论的启发,主要 ...

  4. 启发式和元启发式的区别

    启发式策略(heuristic) 是一类在求解某个具体问题时,在可以接受的时间和空间内能给出其可行解,但又不保证求得最优解(以及可行解与最优解的偏离)的策略的总称.许多启发式算法是相当特殊的,依赖于某 ...

  5. 数据结构与算法_02_局部最优的贪心算法

    数据结构与算法,系列文章传送地址,请点击本链接. 目录 一.贪心思想 二.解贪心算法的步骤 三.贪心算法存在的问题 四.贪心算法的案例 一.贪心思想 ​ 1.贪心算法(又称贪婪算法)是指,在对问题求解 ...

  6. 从贪心算法到暴力递归法——从局部最优到整体最优

    从递归看动态规划 前情提要 最优问题的本质 目标函数 最优组合的求解策略 枚举 递归 斐波那契数列 问题描述 示例 解题思路 迭代 递归 深入理解递归 堆栈与递归的状态存储 递归与回溯 树形结构与深度 ...

  7. 关于λ-optimal的初始化解算法在(元)启发式中的应用

    关于λ-optimal算法在启发式中初始化解的应用 TSP问题介绍 λ-optimal 定理与定义 算法描述与伪代码 算法的优化 参考文献 这里讨论组合优化中初始解的生成问题.组合优化问题,很多情况下 ...

  8. 贪心算法(局部最优)

    1.概念: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优 ...

  9. 模拟退火算法是怎么跳出局部最小值

    模拟退火算法确保求出的是全局最优值,不会陷入局部最小值 模拟退火算法新解的产生相当于一个找"邻居"的过程,目标函数很容易陷入局部最小值,但是通过以一定概率接受比当前解更差的新解使得 ...

最新文章

  1. [PYTHON] xml.etree.ElementTree 实例
  2. Redis分布式锁的正确实现方式(Java版)
  3. final+static
  4. 【白皮书】2020在线教育用户增长闭环白皮书.pdf(附下载链接)
  5. 2.8_single_cycle_link_list_单向循环链表
  6. 一段.net 发邮件的代码
  7. 面试官,你为什么老是问我”闭包“
  8. AcWing 788. 逆序对的数量
  9. java core 之 IO流
  10. CSS实现输入框的高亮效果-------Day50
  11. 使用计算机眼睛保护方法有哪些,​计算机族的“护眼诀窍”
  12. Cookie和Session的使用及其案例分析
  13. 解决系统提示:内存不能为“read”或written的办法
  14. QQ飞车手游S25赛季什么时候更新?S25赛季段位继承表图文一览
  15. IT女新加坡求职记(三篇)
  16. 自考《操作系统概论》
  17. 类和对象:类与对象定义
  18. yii2框架教程 入门篇(一)
  19. 0402/0603/0805/1206封装尺寸
  20. Unity实现多屏显示

热门文章

  1. 闽高校计算机二级c语言模拟器,闽高校计算机二级C语言模拟题
  2. 创建视图时插入自增id
  3. 易语言制作计算软件简单步骤_视频解说不想自己录,用什么简单好用的配音软件制作?...
  4. cef osr拖拽功能实现
  5. ICESSL使用备忘
  6. 医药行业信息综合管理平台
  7. c9和北航计算机哪个好,哈工大是C9高校,北航是普通的985,为何北航的录取分数更高?...
  8. Wi-Fi MAC 地址随机化与人群监控
  9. 数据加载、存储与文件格式(python)
  10. 实习培训记录1-HTML