禁忌搜索和应用

合集下载

第4章 禁忌搜索

第4章 禁忌搜索

16
三. TS的算法步骤 TS的算法步骤
1. 步骤: 步骤:
① 选一个初始点
望水平 A(s, x) = C(x∗ ),迭代指标 k = 0 ; (其中NG为最大迭代数)停止; 其中NG为最大迭代数)停止; = φ,渴 x∈
② 若 S( x) −T = φ 停止,否则令 k = k +1;若 k > NG 停止,
φ φ φ
…… 结论:交换4 结论:交换4和5
五.TS举例 .TS举例
② 迭代1 迭代1
编码:2-4-7-3-5-6-1 编码: C( x) =16 x* = x A(s, x) = C(x*) =16 移动 S(x) ∆C( x) 2 3 ,1 1 2 ,3 -1 3 ,4 -2 7 ,1 -4 6 ,1 …… 结论:交换1和3 结论:交换1 ……
28
T表 1 2 3 4,5 2,4 1,3
五.TS举例 .TS举例
⑥ 迭代5 迭代5
编码: 编码:5-2-1-7-4-6-3
C(x) = 20
T表 1 2 3 1 ,7 4,5 2 ,4
结论:迭代已到5 结论:迭代已到5次,得到最优解 5-2-7-1-4-6-3和5-2-1-7-4-6-3
C(x*) = 20
第四章 禁忌搜索
1
第四章 禁忌搜索(Tabu Search) 禁忌搜索( Search)
一.导言 .TS的构成要素 二.TS的构成要素 .TS的算法步骤 三.TS的算法步骤 .TS可以克服局优的分析 四.TS可以克服局优的分析 .TS举例 五.TS举例 .TS的中 的中、 六.TS的中、长期表的使用 学习TS TS的几点体会 七.学习TS的几点体会
26
若选择这项 C(x) =16,渴望水平 =16, 不能发生作用

改进禁忌搜索算法在TSP问题中的应用

改进禁忌搜索算法在TSP问题中的应用
= 。, 当前 最优 解
l n t, 更 新 距 1 . 3 T S B I N算法 , 置
= 。
题规模增 大 , 精 确 算 法 已不 适 用 , 因此, 在 离矩阵D, 则初始路径为 R= { 1 , } ; 研究 中 , 人 们 通 常 使 用 近 似算 法 或 启 发 式 S t e p 2: 若 = , 则停 止 ; 否则, 寻 找 与 算法 。 禁 忌 搜 索算 法 ( TS ) 是 一 种 人工 智 能 算 法, 它 与 模拟 退 火 、 遗 传算 法 等 方 法 在组 合 优化 问 题 中获 得 了广 泛 的 应 用 。 禁 忌搜 索 算 法… 由美 国 系统科 学家 G l o v e r 于1 9 8 6 年首 次提 出 , 进 而 形成 一 套 完 整 算法 。 禁 忌 搜 索 算法 用 一 个 禁 忌 表 记 录下 已 经到 达 过 的 局
S t e p 1 : 令d i =i n f , ( f =1 , 2 , …, ), 初 始
为R l ={ , 一 1 , …, r 3 , , i , , … 一 l , } ;
随 机 选 取 一 个 城 市 , 记 为 可建模为T S P问题 , 所以 , 对TS P 问 题 的 研 化 距离 矩 阵 D, 路 径 起 点 , 找 到 与 其 距 离 最 近 的 城 市 1 , , , 记 为 下 一节 点 , 使
R= { 1 , , ・ ・ ‘ 一 1 , } ;
输 出计 算 结 果 ; 否则 , 继续S t e p 3 ; S t e p 3 : 重复步 骤S t e p 2 , 直 到所 有城市 都 算 , 已找 到 ; S t e p 3 : 产 生 当前 解 的 邻 域 N( 2 …) , 从 S t e p 4 : 将 最 后 找 到 的 节 点 和起 始 节 点 中选 取 若 干 解 确 定 候 选 解 集 C a nⅣ ( );

优化设计-禁忌搜索

优化设计-禁忌搜索


终止规则

确定步数终止,无法保证解的效果,应记录当前最优解; 频率控制原则,当某一个解、目标值或元素序列的频率 超过一个给定值时,终止计算; 目标控制原则,如果在一个给定步数内,当前最优值没有 变化,可终止计算.


禁忌搜索算法应用
一种适用于求解TSP问 题的改进的禁忌算法
问题的引入


TS对于初始解具有较强的依赖性.一个较好的初始解可 使TS在解空间中搜索到更好的解,而一个较差的初始解 则会降低TS的收敛速度 TS的另一缺陷是在搜索过程中初始解只能有一个,迭代 一次,也只能是把一个解移动到另一个解
禁忌搜索示例(四城市非对称TSP问题)



初始解 x0=(ABCD);f(x0)=4,始 终点都是A城市 邻域映射为两个城市 顺序对换的2-opt(2个 元素按一定规则互换) 禁忌长度选取3
A
1 1
1 0.5 5 1.5 1
B
1
D
C
A
1 0.5
B
5 1
四城市非对称TSP问题
1 1 1.5 1
D

禁忌搜索算法实现步骤

第一步 选定一个初始解x now;令禁忌表 H ;
第二步 若满足终止准则,转第四步; 否 则,在x now的邻域 N(x now)中选出满足禁忌 要求的候选集C-N(x now) ,转第三步; 第三步 在C-N(x now)中选一个评价值最 好的解x best,令x now=x best,更新禁忌表H,转 第二步; 第四步 输出计算结果,停止。
CD BC BD
4.5 T 3.5 ☻ 4.5
A
1 0.5
B
5 1
四城市非对称TSP问题

禁忌搜索粒子滤波算法在目标跟踪中的应用

禁忌搜索粒子滤波算法在目标跟踪中的应用

间 系统 的非 线性 估 计 问题 , k时 刻 状 态 方程 和 量 测 方程 可 以表 示 为 :
Fx 1+




( 1 )
波在定位 、 跟踪等领域得到了深入的研究 ’ 。 。 粒子退化是粒子滤波算法不可避免 的现象 , 常
用 的解决 方 法 是 选 取 好 的重 要 性 密 度 函数 和粒 子 重采 样 。文献 [ 7 ] 提 出 了进 化 粒 子滤 波 交互 多 模 型
措施 ( e l e c t r o n i c s u p p o r t m e a s u r e , E S M) 等被动探测 系统中涉及到非线 性滤 波技术 , 常用 扩展 卡尔曼
( E x t e n d e d K a h n a n F i l t e r , E K F ) 或无迹 卡 尔曼滤 波来 处理 高斯 噪 声 背 景 下 的非 线性 滤 波 问 题 ¨ l 2 J , 实 际 的雷 达量测 噪声 不 再 是 高斯 噪 声 , 而是 拖 尾 的 “ 闪
E K F算法产生重要性密度 函数 , 同时采用禁忌搜索 重采样方法 , 使粒子分布更接近真实状态。
1 目标跟踪模型
雷达 目标跟踪 实 际系 统 中 , 涉及 到动 态 离 散 时
烁噪声” j , 上述滤 波算法跟踪精度不是很好 , 有
时甚 至导致 目标 丢失 。针 对此 问题 , 粒 子滤 波 ( p r a t - i c l e l f i t e r , P F ) 表 现 出 了 优越 的性 能 。 目前 , 粒 子 滤
波算法存在 粒子退化 的缺 陷, 重采样环 节引入禁 忌搜 索思想 , 提 出了禁忌搜 索扩 展卡 尔曼粒子滤 波算法 , 驱散 局部最优 的粒 子集 , 使其 向全局最优位置靠近 , 提高采样粒子 的有效性。结合 交互多模 型( I MM) , 将 算法与 I MM— P F算法进行仿 真 比较 , 结 果表明该算法对机 动 目标具有 较优 的跟踪性 能。

禁忌搜索算法在系统可靠性分配中的应用

禁忌搜索算法在系统可靠性分配中的应用

禁忌搜索算法在系统可靠性分配中的应用王宏,潘寒尽(空军工程大学导弹学院,陕西三原713800)摘要:关于可靠性分配的研究已取得了一定的进展,但对于复杂系统的可靠性分配问题,应用传统的方法,很难准确、科学地进行可靠性分配。

鉴于此情况,提出应用禁忌搜索算法对复杂系统的可靠性进行分配,以便科学、合理地分配系统可靠性。

首先简要介绍了禁忌搜索算法的概念、思想及求解过程,并结合可靠性分配问题,验证了算法在可靠性分配中的应用。

关键词:禁忌搜索;收敛准则;可靠性分配;混联系统中图分类号:O229文献标识码:A文章编号:1672-5468(2006)05-0037-03TheReliabilityDistributionApplicationofTabuSearchArithmeticWANGHong,PANHan-jin(MissileInstituteofAirForceEngineeringUniversity,Sanyuan713800,China)Abstract:Theresearchofreliabilitydistributionhasmadeprogress,buttheproblemaboutcomplexsystemreliabilitydistributioncannotbesolvedwithtraditionalmethods.Atabusearcharithmeticwasproposedforthereliabilitydistributionofcomplexsystems.First,theconcept,ideaandsolvingprocessofthearithmeticweredescribed,andthentheapplicationesthearithmetictoreliabilitydistributionwasdemonstrated.Keywords:tabusearch;convergentrule;reliabilitydistribution;combinedsytem收稿日期:2006-06-02修回日期:2006-08-31作者简介:王宏(1976-),男(蒙古族),内蒙古西蒙人,空军工程大学导弹学院装备教研室在读博士研究生,研究方向为空军作战装备使用与保障。

禁忌搜索算法

禁忌搜索算法
• 另外,为了避免对已搜索过的局部最优解的重复, 禁忌搜索算法使用禁忌表记录已搜索的局部最优 解的历史信息,这可在一定程度上使搜索过程避 开局部极值点,从而开辟新的搜索区域。
禁忌搜索算法的关键要素
➢ 就这些参数含义一般而言,设计一个禁忌搜索算法需要确 定以下环节:
• 初始解 • 邻域和移动 • 候选集 • 禁忌表及其长度 • 选择策略 • 破禁策略 • 停止规则 • 下面对这些环节的一般操作予以讨论。
• (5)判断候选解对应的各对象的禁忌属性,选择候选解 集中非禁忌对象对应的最佳状态为新的当前解,同时用与 之对应的禁忌对象替换最早进入禁忌表的禁忌对象元 素。
• (6)转到步骤(2)。
流程图
开始
设置参数,产生初 始解置空禁忌表
满足终止准则吗?
输出优解
结束
生成当前的邻域 解,选出候选解
满足藐视准则吗?
国内外研究现状
➢ Glover教授分别在

1989年和1990年发表
了两篇著名的标题为
Tabu search的论文,
提出了现在大家熟知
的禁忌搜索算法的大
部分原理。
其中一些原理在学术界长期没有突破。事实上, 在20世纪90年代前半叶,大部分工作局限在关于 禁忌搜索技术的非常有限区域,如禁忌表和基本 的藐视准则。
邻域和移动
• 邻域移动亦称邻域操作,邻域变换等;邻域移动是从一个 解产生另一个解的途径。它是保证产生好的解和算法搜索 速度的最重要因素之一。邻域移动定义的方法很多,对于 不同的问题应采用不同的定义方法。
• 通过移动,目标函数值将产生变化,移动前后的目标函数 值之差,称之为移动值。如果移动值是非负的,则称此移 动为改进移动;否则称作非改进移动。最好的移动不一定 是改进移动,也可能是非改进移动,这一点就保证搜索陷 入局部最优时,禁忌搜索算法能自动把它跳出局部最优。 邻域移动的涉及策略既要保证变化的有效性,还要保证变 化的平滑性,即产生的邻域解和当前解有不同,又不能差 异太大。不同会使搜索过程向前进行,不能差异太大保证 搜索是有序而非随机的搜索。[1]

禁忌搜索

基于禁忌搜索算法的无等待流水车间问题求解戚海英,邱占芝(大连交通大学软件学院,辽宁大连116028)摘要:本文针对最小完工时间的无等待流水调度问题提出了一种禁忌搜索算法。

该算法首先利用调度规则构造较好的初始解,然后用禁忌搜索算法改进当前解。

在算法中采用了可达性的变邻域结构,使邻域规模小;而且对未被选中的候选解信息进行记忆,合理平衡了集中与分散搜索。

仿真结果证明该算法是有效的。

关键词:禁忌搜索;流水车间;变邻域;集中与分散搜索中图分类号:TP278Tabu search algorithms based on the no-wait Flow Shop problemsQI Haiying,Qiu Zhanzhi(Dept. of Software, Dalian Dalian jiaotong University 116028,China)Abstract: This paper presents a tabu search algorithm for solving the minimum makespan problem of Flow Shop scheduling. In the algorithm , the scheduling rule is used to create the initial solution and then the tabu search algorithm is applied to improve the last solution. The algorithm uses reachability varying neighborhood ,which is small scale ;but also Information of the unvisited candidate solutions is recollected, intensive search and dispersive search is reasonably balanced .Computer simulation experiments on the actual example show that the algorithm is applicable and effective.Keywords: tabu search ; Flow Shop ;varying neighborhood ;intensive and dispersive search0 引言无等待流水车间(no-wait Flow Shop)调度问题,也被称为同序作业调度问题,是许多实际流水线生产调度问题的简化模型,但它仍旧是一个非常复杂和困难的组合优化问题,目前对该问题的研究受到越来越多的关注。

禁忌搜索实验报告

一、实验背景禁忌搜索算法(Tabu Search,TS)是一种基于局部搜索的优化算法,最早由Glover和Holland于1989年提出。

该算法通过引入禁忌机制,避免陷入局部最优解,从而提高全局搜索能力。

近年来,禁忌搜索算法在蛋白质结构预测、调度问题、神经网络训练等领域得到了广泛应用。

本次实验旨在验证禁忌搜索算法在求解组合优化问题中的性能,通过改进禁忌搜索算法,提高求解效率,并与其他优化算法进行对比。

二、实验目的1. 研究禁忌搜索算法的基本原理及其在组合优化问题中的应用;2. 改进禁忌搜索算法,提高求解效率;3. 将改进后的禁忌搜索算法与其他优化算法进行对比,验证其性能。

三、实验方法1. 算法实现本次实验采用Python编程语言实现禁忌搜索算法。

首先,初始化禁忌表,存储当前最优解;然后,生成新的候选解,判断是否满足禁忌条件;若满足,则更新禁忌表;否则,保留当前解;最后,重复上述步骤,直到满足终止条件。

2. 实验数据本次实验采用TSP(旅行商问题)和VRP(车辆路径问题)两个组合优化问题作为实验数据。

TSP问题要求在给定的城市集合中找到一条最短的路径,使得每个城市恰好访问一次,并返回起点。

VRP问题要求在满足一定条件下,设计合理的配送路径,以最小化配送成本。

3. 对比算法本次实验将改进后的禁忌搜索算法与遗传算法、蚁群算法进行对比。

四、实验结果与分析1. TSP问题实验结果(1)改进禁忌搜索算法(ITS)实验结果表明,改进后的禁忌搜索算法在TSP问题上取得了较好的效果。

在实验中,设置禁忌长度为20,迭代次数为1000。

改进禁忌搜索算法的求解结果如下:- 最短路径长度:335- 迭代次数:1000- 算法运行时间:0.0015秒(2)遗传算法(GA)实验结果表明,遗传算法在TSP问题上的求解效果一般。

在实验中,设置种群规模为100,交叉概率为0.8,变异概率为0.1。

遗传算法的求解结果如下:- 最短路径长度:345- 迭代次数:1000- 算法运行时间:0.003秒(3)蚁群算法(ACO)实验结果表明,蚁群算法在TSP问题上的求解效果较好。

禁忌搜索算法有关介绍与举例


的结构;为了得到好的解,可以比较不同的邻域结构和不同的初始点;如果初 始点的选择足够多,总可以计算出全局最优解。
禁忌搜索算法
禁忌搜索(Tabu search)是局部邻域搜索算法的推广,Fred Glover 在 1986 年提出这个概念,进而形成一套完整算法。其特点为使用禁忌表封锁刚搜 索过的区域,禁止重复前面的工作。跳出局部最优点,也可避免陷入死循环。赦 免禁忌区域中的一些优良状态,以保证搜索的多样性。 编码方法属于灵活的选择编码方法,如背包的 0-1 编码。 同一问题有多种编码方法,如分组问题:不相同的 n 件物品分为 m 组, n=9,m=3. 编码 1: 1-3-4-0-2-6-7-5-0-8-9 (1-4-3-0-6-2-5-7-0-9-8) 0 起到隔开作用 1-3-4 分为一组,2-6-7-5 一组,8-9 一组。 编码 2: 1-2-1-1-2-2-2-3-3 (2-1-2-2-1-1-1-3-3)
int ytemp; int min=INT_MAX; for(int i=1;i<num-1;i++) { for(int j=i+1;j<num;j++) { swap(x[i],x[j]); int temp=countDis(x,v); if(temp<min&&tabutable[x[i]][x[j]]==0&&tabutable[x[j]][x[i]]==0) { min=temp; xtemp=i; ytemp=j; } swap(x[i],x[j]); } } if(min==INT_MAX) { return false; } else { swap(x[xtemp],x[ytemp]); tabutable[x[xtemp]][x[ytemp]]=1; tabutable[x[ytemp]][x[xtemp]]=1; return true; } } void tabusearchN(const vector< vector<int> > &v,vector<int> &x,int &costbest,int firstcity) { swap(x[0],x[firstcity]); int num=x.size();//城市节点个数 vector< vector<int> > tabutable;//禁忌表,tabutable[i][j]=z 表示对换对(i,j) 的禁忌长度为 z vector<int> f;//记录每一个局部最优解 initX(tabutable,num); for(int i=0;i<num;i++)//初始化禁忌长度为 0 { for(int j=i+1;j<num;j++) {

禁忌搜索算法求解图节点着色问题

— nbiter := nbiter +1;
—产生 N (S) 的一个候选集 V* ,要求候选元素 x 是非禁忌的或是特赦的
f (x) ≤ A( f (S));
—在V * 中选目标值最优的解 S * ;
( ) ( ) —若 f (S* ) ≤ A( f (S )) ,则 A f (S* ) ( ) := f S* −1;否则若 f (S ) ≤ A f (S* ) ,则 ( ) A f (S* ) := f (S ) −1;
As a new intelligent search algorithm, Tabu search algorithm is widely used in various optimization areas and achieved satisfactory results. This article describes the characteristics of Tabu search algorithms, applications and research processes. The article also outlines the basic processes of the algorithm, and review the keys to the process of algorithm design elements. In addition, we apply it to the Graph node coloring problem. Finally, we discuss the developing trends of the algorithm research.
(1)设定算法参数,产生初始解 x ,置空禁忌表;
(2)判断是否满足终止条件,若是,则结束,并输出结果;否则,继续以下步骤;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、摘要 (2)二、禁忌搜索简介 (2)三、禁忌搜索的应用 (2)1、现实情况 (2)2、车辆路径问题的描述 (3)3、算法思路 (3)4、具体步骤 (3)5、程序设计简介 (3)6、算例分析 (4)四、禁忌搜索算法的评述和展望 (4)五、参考文献 (5)禁忌搜索及应用一、摘要工程应用中存在大量的优化问题,对优化算法的研究是目前研究的热点之一。

禁忌搜索算法作为一种新兴的智能搜索算法具有模拟人类智能的记忆机制,已被广泛应用于各类优化领域并取得了理想的效果。

本文介绍了禁忌搜索算法的特点、应用领域、研究进展,概述了它的算法基本流程,评述了算法设计过程中的关键要点,最后探讨了禁忌搜索算法的研究方向和发展趋势。

二、禁忌搜索简介禁忌搜索(Tabu Search或Taboo Search,简称TS)的思想最早由Glover(1986)提出,它是对局部领域搜索的一种扩展,是一种全局逐步寻优算法,是对人类智力过程的一种模拟。

TS算法通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来赦免一些被禁忌的优良状态,进而保证多样化的有效探索以最终实现全局优化。

相对于模拟退火和遗传算法,TS是又一种搜索特点不同的meta-heuristic算法。

迄今为止,TS算法在组合优化、生产调度、机器学习、电路设计和神经网络等领域取得了很大的成功,近年来又在函数全局优化方面得到较多的研究,并大有发展的趋势。

禁忌搜索是人工智能的一种体现,是局部领域搜索的一种扩展。

禁忌搜索最重要的思想是标记对应已搜索的局部最优解的一些对象,并在进一步的迭代搜索中尽量避开这些对象(而不是绝对禁止循环),从而保证对不同的有效搜索途径的探索。

禁忌搜索涉及到邻域(neighborhood)、禁忌表(tabu list)、禁忌长度(tabu length)、候选解(candidate)、藐视准则(aspiration criterion)等概念。

三、禁忌搜索的应用禁忌搜索应用的领域多种多样,下面我们简单的介绍下基于禁忌搜索算法的车辆路径选择。

1、现实情况物流配送过程的成本构成中,运输成本占到52%之多,如何安排运输车辆的行驶路径,使得配送车辆依照最短行驶路径或最短时间费用,在满足服务时间限制、车辆容量限制、行驶里程限制等约束条件下,依次服务于每个客户后返回起点,实现总运输成本的最小化,车辆路径问题正是基于这一需求而产生的。

求解车辆路径问题(vehicle routing problem简记vrp)的方法分为精确算法与启发式算法,精确算法随问题规模的增大,时间复杂度与空间复杂度呈指数增长,且vrp问题属于np-hard问题,求解比较困难,因此启发式算法成为求解vrp问题的主要方法。

禁忌搜索算法是启发式算法的一种,为求解vrp提供了新的工具。

本文通过一种客户直接排列的解的表示方法,设计了一种求解车辆路径问题的新的禁忌搜索算法。

因此研究车辆路径问题,就是要研究如何安排运输车辆的行驶路线,使运输车辆依照最短的行驶路径或最短的时间费用,依次服务于每个客户后返回起点,总的运输成本实现最小。

2、车辆路径问题的描述车辆路径问题的研究目标是对一系列送货点或取货点,确定适当的配送车辆行驶路线,使车辆有序地通过它们,在满足一定的约束条件(如货物需求量、发送量交发货时间、车辆容量限制、行驶里程限制、时间限制等)下,达到一定的目标(如路程最短、费用最小、时间尽量少、使用车辆尽量少等)。

参见下图2.1所示:其中0表示配送中心,1~8表示客户编号。

在本文中为使得问题易于理解,将该问题描述为:有一定数量的客户,各自有不同数量的货物需求,且每个客户的位置和需求量一定,一个物流中心提供这些货物,并有一个车队负责分送货物,每台配送车辆的载重量一定,这里假设车辆的型号一致,即最大载重量和最远行驶里程数相同,要求合理安排车辆配送路线,使配送总路程最短,同时得满足一定的约束条件,即每条路线总需求量之和不得超过配送车辆的载重量、每条路线行驶的里程数不得超过配送车辆的最远里程数、每一客户需求必须满足且仅由一台车辆配送。

3、算法思路本文先用插入式启发算法得到车辆路径问题的初始可行解,再利用禁忌搜索算法对初始解进行改造。

4、具体步骤(1)构造初始解时,先用客户直接排列的解的表示方法,随机生成某一不重复的客户排列序列,然后按照车辆路径问题的约束条件,依次将解的元素(客户)划入各条配送路径中,由此产生车辆路径问题的初始解,计算出当前解的目标函数值,这里的目标函数值为各车辆配送路径的里程数总和。

(2)通过随机交换两客户位置来生成当前解的邻域解,则有c2n=n*(n-1)/2个客户直接排列序列,然后按照车辆路径问题的约束条件,依次将解的元素(客户)划入各条配送路径中,由此计算出各邻域解的目标函数值。

(3)根据藐视准则来评价当前解的邻域解,更新当前解与禁忌表。

若候选解的目标值优于当前的最优目标值,不管其禁忌属性如何,更新为当前最优解并更新禁忌表,否则判别该方案的两个客户交换是否被禁忌:若被禁忌,选取次优解后继续该步骤;若未被禁忌,更新该解为当前解并更新禁忌表。

(4)若所有的候选对象均被禁忌,则根据队列fifo原则,对禁忌表中队头元素取消其禁忌属性;禁忌表的更新为将其中所有的禁忌对象的禁忌长度减1,禁忌长度为0的对象取消其禁忌属性。

(5)重复迭代指定步长的(2)~(4),输出车辆配送方案的最终结果。

5、程序设计简介算法中,无论是初始解的构造还是邻域内寻优,都涉及到对大量配送点进行的操作,如构造初始解时,针对车辆路径问题的约束条件将客户划分到不同的路径中;更新禁忌表时的将禁忌对象放入表中以及满足藐视准则时的禁忌对象的解禁。

程序中针对该问题,采用了队列的形式,通过改进的队列基本操作来实现路径的分配与禁忌表的更新问题。

下面给出定义的几个结构体:(1)客户位置的无重复随机生成以及客户需求量的随机生成实际配送系统中的客户的地理位置相对独立,且彼此之间服从独立均匀分布,为简易起见,程序中对客户的地理位置分布与客户的需求量只简单地使用c语言中的rand()函数进行随机分配,其中物流中心的地理位置默认为(0,0),为了保证生成的客户位置没有重复,用c_location[j].x==c_location[i].x && c_location[j].y==c_location[i].y语句来判定,其中c_location数组采用cpoint结构体,用于存储客户的位置,demand数组用于存储客户需求量,这两个数组均被定义为全局变量。

(2)客户随机序列的生成算法中采用客户直接排列的解的表示方式,随机生成初始解,即无重复的客户随机排列序列数组a。

(3)初始解的车辆路径分配将客户随机序列数组a中的各个值赋值到i_now数组中,i_now数组用于记录当前的最优解,定义车辆的最大负载量vehicle_max,这里假设物流中心车辆的型号一致并且不考虑车辆的最大行驶距离。

(4)当前解的邻域结构通过依次交换两客户位置来生成当前解的邻域解,则有c2n=n*(n-1)/2个客户直接排列序列。

i_now的邻域解,用数组exchange_solution记录。

用与初始分配方案相似的算法,可以求出exchange_solution数组中每一个车辆分配路线的车辆数以及车辆所行驶的总里程数,分别记录到数组n_num和s中。

(5)寻找当前解邻域结构的评价值最优方案先从数组s中寻找到车辆行驶里程数最短的方案,记其下标为ibest,判断该方案是由当前解的哪两个客户交换得到的,记作i_x和i_y。

根据禁忌准则对该局部最优解进行处理,可以替换为当前最优解的条件有二:(1)这两个元素的交换是可行的、未被禁忌的;(2)其解优于当前解,不管其是否禁忌均替换当前最优解,更新禁忌表,将禁忌表中各禁忌对象的禁忌步长减1,当禁忌步长为0时,取消禁忌对象的禁忌属性,而当替换方案中的所有对象均被禁忌后,根据fifo原则,取消队头元素的禁忌属性。

6、算例分析这里用microsoft visual c++对车辆路径问题的禁忌搜索算法进行编程,通过对相对独立的随机分布在(0,100]平方公里范围内的指定客户数、且客户的需求为的(0,指定的客户数]范围内的随机数的vrp实例进行求解,进行了实验计算。

设在某物流中心有10台配送车辆,车辆的最大载重量均为10单位,在不考虑车辆一次配送的最大行驶距离的情况下,需要向10个客户运送货物,作者利用计算机随机产生了范围在0~100内的10个客户的位置坐标(坐标无重复情况)以及客户的货物需求量,其中物流中心的坐标默认为(0,0),各个客户的坐标位置与需求量如下图2.3所示,要求合理安排配送车辆的行车路径,使配送的总里程数最短。

为简便起见,本文设各客户相互之间及物流中心与客户之间的距离均采用直线距离,该距离可根据客户和物流中心的坐标计算得到。

本文基于车辆路径问题的简单描述,采用客户直接排列的解的表示方法,相比较现有研究成果将车辆路径问题描述为网络图问题的有向边排列方法,表示更加直观、算法策略更加简单并易于理解,而且算法在迭代过程中产生的解均为可行解,算法的收敛速度得到明显改善。

实验的计算结果表明,用禁忌搜索算法求解车辆路径问题能够跳出局部最优解,实现全局最优化,所得到的最终解决方案相比较初始方案质量更优,寻优性能良好。

四、禁忌搜索算法的评述和展望禁忌搜索算法作为一种新兴的智能搜索算法具有模拟人类智能的记忆机制,已被广泛应用于各类优化领域并取得了理想的效果。

本文简述了禁忌搜索算法的发展、特点及应用,给出了基本禁忌搜索算法实现的流程,对禁忌搜索设计过程中的关键步骤进行了分析和总结,为推广禁忌搜索算法在优化领域的应用有一定意义。

今后关于禁忌搜索算法的研究热点主要有以下几个方面。

(1)与其他优化算法结合,如与传统启发式算法、遗传算法、模拟退火算法、粒子群算法、神经网络算法、蚁群算法、混沌算法等结合,构成更新型的混合优化算法。

(2)为推广禁忌搜索算法在超大规模优化领域中的应用,突破禁忌搜索的串行性限制,研究并行禁忌搜索算法。

包括基于问题空间分解的并行策略和基于多禁忌搜索任务的并行策略。

五、参考文献[1] 王凌. 智能优化算法及其应用[M]. 北京:清华大学出版社,2001.[2] 李新振,腾欢.自适应遗传——禁忌搜索混合算法在PMU最优配置中的应用[J].四川电力技术,2009,32(3):56-60.[3] 刘嘉敏,董宗然,马广焜.基于禁忌搜索算法求解集装箱装载问题[J].沈阳工业大学学报,2009,31(2):212-216.[4] 王竹芳,潘德惠.用遗传:禁忌搜索混合算法求解组合投资问题[J].东北大学学报(自然科学版),2006,27(1):111-114.[5] 肖丽,刘光远,贺一等.基于禁忌搜索的模糊神经网络结构优化[J].计算机科学,2006,33(7):217-219.[6] 宋晓宇,孟秋宏,曹阳.求解Job Shop调度问题的改进禁忌搜索算法[J].信息工程与电子技术,2008,30(1):94-96.[7] 黄志,黄文奇.一种基于禁忌搜索的作业车间调度算法[J].计算机工程与应用,2006,42(3):12-14.[8] 段凤华,符卓.有软时窗约束带取送作业的车辆路径问题及其禁忌搜索算法研究[J].计算机工程与科学,2009,31(3):68-70.[9] 汪翼,孙林岩,李刚,等.集装箱车辆调度问题的变邻域禁忌搜索算法[J].工业工程与管理,2008,13(5):6-10.[10] 孙艳丰,郑加齐,王德兴,等.基于遗传算法的约束优化方法评述[J].北方交通大学学报,2000,24(6):14-19.[11] 陈年生,李腊元,董武世,等.基于禁忌搜索的QoS路由算法[J].计算机工程与应用,2005,41(8):134-136.[12] 张玉芳,薛青松,熊忠阳.基于禁忌搜索的动态粒子群算法[J].计算机工程与应用,2008,44(24):56-58.[13] 康雁,黄文奇.基于禁忌搜索的启发式算法求解圆形packing问题[J].计算机研究与发展,2004,41(9):1554-1558.[14] 吴良杰,魏东,刘刚.基于禁忌搜索和蚁群算法的广义分配问题研究[J].计算机工程与设计,2009,30(15):3591-3593.[15] 王伟,余利华.基于贪心法和禁忌搜索的实用高校排课系统[J].计算机应用,2007,27(11):2874-2876.。

相关文档
最新文档