禁忌搜索算法

109 篇文章 1113 订阅
订阅专栏

组合优化算法系列:

现代优化算法 (一):模拟退火算法 及应用举例

现代优化算法 (二): 遗传算法 及应用举例

现代优化算法(三):禁忌搜索算法

现代优化算法(四):改进的遗传算法

现代优化算法(五): 蚁群算法


目录

1 禁忌搜索算法的相关概念

(1)邻域                                               (2)侯选集合

(3)禁忌对象和禁忌长度                         (4)评价函数

(5)特赦规则                                           (6)记忆频率信息

2 模型及求解                               2.1 问题(1)的求解   

禁忌搜索算法的流程                    2.2 问题(2)的求解



1 禁忌搜索算法的相关概念

禁忌搜索算法是组合优化算法的一种,是局部搜索算法的扩展。禁忌搜索算法是人 工智能在组合优化算法中的一个成功应用。禁忌搜索算法的特点是采用了禁忌技术。所 谓禁忌就是禁止重复前面的工作。禁忌搜索算法用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点。 禁忌搜索算法实现的技术问题是算法的关键。禁忌搜索算法涉及侯选集合、禁忌 对象、评价函数、特赦规则、记忆频率信息等概念。

(1)邻域

在组合优化中,距离的概念通常不再适用,但是在一点附近搜索另一个下降的点仍 然是组合优化数值求解的基本思想。因此,需要重新定义邻域的概念。

(2)侯选集合

侯选集合由邻域中的邻居组成。常规的方法是从邻域中选择若干个目标值或评价 值最佳的邻居入选。

(3)禁忌对象和禁忌长度

禁忌表中的两个主要指标是禁忌对象和禁忌长度。禁忌算法中,由于我们要避免 一些操作的重复进行,就要将一些元素放到禁忌表中以禁止对这些元素进行操作,这些元素就是我们指的禁忌对象禁忌长度是被禁对象不允许选取的迭代次数。一般是给被禁对象 x 一个数(禁忌长度) t ,要求对象 x 在 t 步迭代内被禁,在禁忌表中采用 tabu(x) = t 记忆,每迭代一步,该项指标做运算 tabu(x) = t −1,直到 tabu(x) = 0时 解禁。于是,我们可将所有元素分成两类,被禁元素和自由元素。禁忌长度t 的选取可以有多种方法,例如t = 常数,或t = [ \sqrt{n} ],其中 n 为邻域中邻居的个数;这种规则容易在算法中实现。

(4)评价函数

评价函数是侯选集合元素选取的一个评价公式,侯选集合的元素通过评价函数值 来选取。以目标函数作为评价函数是比较容易理解的。目标值是一个非常直观的指标, 但有时为了方便或易于计算,会采用其他函数来取代目标函数。

(5)特赦规则

在禁忌搜索算法的迭代过程中,会出现侯选集中的全部对象都被禁忌,或有一对 象被禁,但若解禁则其目标值将有非常大的下降情况。在这样的情况下,为了达到全局 最优,我们会让一些禁忌对象重新可选。这种方法称为特赦,相应的规则称为特赦规则。

(6)记忆频率信息

在计算的过程中,记忆一些信息对解决问题是有利的。如一个最好的目标值出现 的频率很高,这使我们有理由推测:现有参数的算法可能无法再得到更好的解。根据解 决问题的需要,我们可以记忆解集合、被禁对象组、目标值集合等的出现频率。 频率信息有助于进一步加强禁忌搜索的效率。我们可以根据频率信息动态控制禁 忌的长度。一个最佳的目标值出现的频率很高,有理由终止计算而将此值认为是最优值。

2 模型及求解

我们用禁忌搜索算法研究如下的两个问题:

(1)研究 1.2 中同样的问题。

我方有一个基地,经度和纬度为(70,40)。假设我方飞机的速度为 1000 公里/小时。 我方派一架飞机从基地出发,侦察完敌方所有目标,再返回原来的基地。在敌方每一目 标点的侦察时间不计,求该架飞机所花费的时间(假设我方飞机巡航时间可以充分长)。

(2)我方有三个基地,经度、纬度分别为(70,40),(72,45),(68,48)。假设我方 所有无人侦察机的速度都为 1000 公里/小时。三个基地各派出一架飞机侦察敌方目标, 怎样划分任务,才能使时间最短,且任务比较均衡。

2.1 问题(1)的求解

求解的禁忌搜索算法描述如下: (1)解空间

(2)目标函数

目标函数为侦察所有目标的路径长度。我们要求

(3)候选集合

如果要考虑当前解的全部二邻域(或三邻域)的邻居,将面临着太大的工作量。 因此我们用随机选取的方法每次选取50个邻居组成的集合作为侯选集合。而将省下的 时间作更多次搜索,这样做同样可以保证较高的精确度,同时可以大大提高算法的效率。

(4)禁忌长度及禁忌对象

我们把禁忌表设计成一个循环队列,初始化禁忌表 H = Φ 。从候选集合C 中选出 一个向量 x ,如果 x ∉ H ,并且 H 不满,则把向量 x 添加到禁忌表中;如果 H 已满, 则最早进入禁忌表的向量出列,向量 x 进入到出列的位置。

(5)评价函数

可以用目标函数作为评价函数,但是这样每选取一个新的路径都得去计算总时间, 计算量比较大。对于上述二邻域中的邻居作为侯选集合,每一个新路径中只有两条边发 生了变化,因此将目标函数的差值作为评价函数可以极大地提高算法的效率。评价函数 取为

禁忌搜索算法的流程

禁忌搜索算法的流程如下:

利用 Matlab 程序求得,我们的巡航时间大约在 41 小时左右,其中的一个巡航路径 如下图所示

2.2 问题(2)的求解

对于这个问题,我们的基本想法是,先根据敌方基地的分布特点将敌方的基地大体 划分在三个区域之内,并使三架侦察机分别对这三个区域的敌军基地进行侦察,求取各 自的最短时间。然后对任务不均衡区域之中的点做适当调整。 我们解决问题的步骤如下:


组合优化算法系列:

现代优化算法 (一):模拟退火算法 及应用举例

现代优化算法 (二): 遗传算法 及应用举例

现代优化算法(三):禁忌搜索算法

现代优化算法(四):改进的遗传算法

现代优化算法(五): 蚁群算法

智能优化算法学习笔记(3)–禁忌搜索算法(TS)
KKAI_C
06-08 2006
禁忌搜索的详细介绍
禁忌搜索算法(Tabu Search)
热门推荐
ZCC的专栏
05-16 7万+
一、局部领域搜索    又称爬山启发式算法,从当前的节点开始,和周围的邻居节点的值进行比较。如果当前节点是最大的,那么返回当前节点,作为最大值(即山峰最高点);反之就用最高的邻居节点替换当前节点,从而实现向山峰的高处攀爬的目的。它是禁忌搜索的基础,TS算法是在其上改进而来。         优点:         1、容易理解,容易实现,具有较强的通用性;         2、局部开
C语言经典算法之禁忌搜索算法(伪代码)
最新发布
weixin_56154577的博客
02-20 814
禁忌搜索(Tabu Search,简称TS)是一种启发式全局优化算法,用于解决复杂的组合优化问题。它通过在解空间中探索,并且有策略地避免陷入局部最优解来寻找全局最优解。
禁忌搜索算法(TS)
太可惹的博客
08-03 2472
禁忌搜索是著名的启发式搜索算法。所谓禁忌,就是禁止重复前面的操作。为了改进局部邻域搜索容易陷入局部最优点的不足,禁忌搜索算法引入一个禁忌表,记录下已经搜索过的局部最优点,在下一次搜索中,对禁忌表中的信息不再搜索或有选择地搜索,以此来跳出局部最优点,从而最终实现全局优化。禁忌搜索算法是对局部邻域搜索的一种扩展,是一种全局邻域搜索、逐步寻优的算法。另外,为了尽可能不错过产生最优解的“移动”,禁忌搜索还采用“特赦准则”的策略。
禁忌搜索(TS——Tabu Search)与邻域搜索基础知识
sinat_41348401的博客
03-28 8256
禁忌搜索,也是一种常见的邻域搜索算法。其实我觉得很多智能算法本质都是邻域搜索(本质是局部搜索)算法。只不过邻域的应用方式不同,是全局式的邻域搜索算法。比如,局部搜索中最经典的是“爬山算法”。但是会陷入局部最优。 禁忌搜索,比较适合解决大规模问题。本质思想是,在极值附近设置禁忌(暂时不许进入)的标识,以达到多多的遍历可行域,保证种群多样性的目的。由美国科罗拉多大学教授Fred Glover在1986年左右提出的,是一个用来跳脱局部最优解的搜索方法。其先创立一个初始化的方案;基于此,算法“移动”到一相邻的
蚁群算法的Matlab实现
乐观的lishan的博客
09-13 4841
本文为了学习蚁群算法的解决过程,结合一个无人机侦察多个目标的路径选择问题,使用Matlab进行编程实现,并解决该问题
禁忌搜索算法详解(含算法示例)
freeline的博客
11-04 2万+
禁忌搜索算法,含有算法示例,可以更好的理解该算法的过程
禁忌搜索学习笔记
weixin_43601905的博客
05-31 4848
什么是禁忌搜索? 禁忌搜索(Tabu Search,TS,又称禁忌搜寻法)是一种现代启发式算法,由美国科罗拉多大学教授Fred Glover在1986年左右提出的,是一个用来跳脱局部最优解的搜索方法。其先创立一个初始化的方案;基于此,算法“移动”到一相邻的方案。经过许多连续的移动过程,提高解的质量。 算法简介 禁忌(Tabu Search)算法是一种亚启发式(meta-heuristic)随机搜索算法,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择能够实现让特定的目标函数值变化最多的
禁忌搜索算法(Tabu Search)的基本原理与算法流程总结
Chauncy的博客
03-30 4万+
1、禁忌搜索的基本原理 1、TS的要素构成 禁忌表(Tabu List) 渴望水平函数 移动准则——邻域选优 选优准则——保持历史上的最优解 停止准则——与GA类似 2、禁忌搜索的特点 禁忌搜索适用于离散优化,不适合实优化 局部邻域搜索:贪婪、持续在当前的邻域中搜索,直至领域中没有更好的解 3、关键步骤 邻域搜索:就是从一个解移动到另外一个解 邻域的概念:x的邻域移动为s=x+uds=x...
禁忌搜索算法Tabu Search代码复现【Python】
12-13
基本流程:禁忌搜索算法在初始化的时候,在搜索空间随机生成一个初始解 i,禁忌表H置空,当前解i记为历史最优解 s,然后进入迭代的搜索过程。在每一次迭代中,都从当前的解i出发,在当前禁忌表H的限制下,构造出解i...
Matlab模拟退火算法解决TSP问题
YonminMa的博客
07-26 6596
Matlab模拟退火算法解决TSP问题问题描述求解思路1. 读取数据代码:2. 求解距离矩阵代码:3. 用蒙特卡洛方法产生一个初始解代码:4. 模拟退火过程(1) 解空间(2) 目标函数(3) 新解的产生(4) 代价函数差(5) 接受准则(6) 降温(7) 结束条件代码:5. 数据可视化代码:全部代码结果附录 问题描述 我方一个基地经度纬度为(70,40)。假设我方飞机速度1000 公...
遗传算法之飞机巡航问题 Python实现
qq_39952393的博客
02-12 1699
遗传算法之飞机巡航问题 Python 解决 一、问题描述     我方一个基地经度纬度为(7040)。假设我方飞机速度1000 公里小时我方派一架飞机基地出发,侦察完敌方所有目标,再返回原来的基地。在敌方每一目标点的侦察时间不计,求该架飞机所花费的时间。(假设我方飞机巡航时间可以充分长;数据附文章末。) 二、代码实现 import codecs import numpy as np import random import matplotlib.
模拟退火算法
Annaaphq的博客
08-17 586
模拟退火算法
TSP-禁忌搜索算法求解
cc098818的博客
08-20 8691
1、禁忌搜索算法 (1)概念 禁忌搜索(Tabu Search或Taboo Search,简称TS)是对局部领域搜索的一种扩展,是一种全局寻优算法,其特点是采用禁忌技术,即用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来跳出局部最优点。该算法可以克服爬山算法全局搜索能力不强的弱点。 (2)思路 (3)相关术语 评价函数:评价函数是用来评...
optimization method-Simulated Annealing(实例)
记录计算机应用的点点滴滴!!!!!
01-22 1706
1.模拟退火实例(一) 例子1:我方一个基地经度纬度为(70,40)。假设我方飞机速度1000 公里/小时我方派一架飞机基地出发,侦察完敌方所有目标,再返回原来的基地。在敌方每一目 标点的侦察时间不计,求该架飞机所花费的时间(假设我方飞机巡航时间可以充分长)。 数据:已知敌方100个目标的经度纬度数据:     这是一个旅行商问题。我们依
python 禁忌搜索算法
10-05
禁忌搜索算法是一种启发式搜索算法,用于在大型搜索空间中寻找最优解。它通过在搜索过程中避免陷入局部最优解而提高搜索的效率和质量。 禁忌搜索算法的基本思想是维护一个禁忌表,在搜索过程中记录已经访问过的解,并且规定某些移动操作在一定的时间内不能重复执行,以避免陷入局部最优解。同时,禁忌搜索算法还使用目标函数来评估每个解的优劣,并通过选择适当的移动操作来进行搜索。 以下是禁忌搜索算法的基本步骤: 1. 初始化禁忌表和当前解。 2. 生成当前解的邻域解集合。 3. 选择一个邻域解作为下一步要探索的解。 4. 根据禁忌表和目标函数评估,判断是否接受该解。 5. 更新禁忌表和当前解。 6. 重复步骤2到5,直到满足终止条件(如达到最大迭代次数或找到满意的解)。 禁忌搜索算法通常应用于组合优化问题和排列问题,如旅行商问题、装箱问题等。它在实际应用中取得了很好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

分类专栏

  • 精通卸载与安装 1篇
  • 概率论与数理统计 5篇
  • 算法&数据结构 4篇
  • 信息检索 4篇
  • 深度强化学习 4篇
  • 秋招为了刷题
  • R语言数据挖掘
  • 论文学习笔记 7篇
  • matlab数学建模 109篇
  • spss数据分析
  • python机器学习 29篇
  • 深度学习 12篇
  • R语言数据挖掘 1篇
  • 多元统计分析 19篇
  • 时间序列分析 7篇
  • 计量经济学 6篇
  • Python 爬虫实战
  • tensorflow实战 4篇
  • 概率论与数理统计 9篇
  • 其它技巧 14篇
  • Java 1篇
  • spark & Scala

最新评论

  • 层次分析法 AHP

    胖达: 写的真好ε=ε=ε=(#>д<)ノ

  • 模糊模式识别

    weixin_69906578: 你好,我是一名研一的学生目前刚开始研究风险评估方向,像发于此相关论文,我目前是做的调查问卷做的关于一些风险因素的打分,问卷回收之后我不知道要怎么处理这个数据进一步才能做模糊集理论,所以发这个私信请问一下。

  • 飞行计划安排问题

    m0_74812827: 我觉得也是,按照他那么算应该是不包括教练在内的20个学员

  • 面试顺序问题:用数学建模优化生产与服务运作中的管理问题

    2301_79721857: y有除了01还有限制条件吗

  • 因子分析 factor analysis (六) :用因子分析法进行综合评价

    m0_74954978: 我现在问还能瞅见吗,哈哈哈,我看好多论文用综合得分,我做课设的时候就被老师说不能这样,但是搞毕业论文搜到的资料全是这样计算,头真的大表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • win电脑C/D盘清理技巧
  • win10安装vue-devtools 、Node.js、 npm和 yarn 总结
  • python 报错汇总【持续更新中....】
2023年1篇
2021年1篇
2020年23篇
2019年221篇

目录

目录

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司南阳网络推广公司昆明网站推广系统价格清远关键词按天收费哪家好钦州网站搭建公司天津百姓网标王哪家好南通百度网站优化推荐常德百度seo价格南昌阿里店铺运营哪家好海口设计网站推荐伊春网站推广工具价格钦州网站关键词优化爱联网站制作设计周口至尊标王价格兰州百度网站优化排名哪家好三明网页设计桂林网站优化按天扣费多少钱文山模板推广哪家好广元网站制作设计推荐六安网站推广同乐SEO按天计费报价阳泉网站建设哪家好商丘网站推广报价南通外贸网站设计推荐沧州网站优化推广价格柳州模板推广公司泉州网站建设设计多少钱北海网站关键词优化报价贺州网站推广工具湘西营销网站成都网页设计推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化