禁忌搜索算法公式
禁忌搜索算法教程
移动 Sx
3,1 2,3 3,4 7,1 6,1
C x
2 1 -1 -2 -4
T表 1 4,5
2 3
…… ……
结论:互换1和3
30
三.TS举例
③ 迭代2 编码:2-4-7-1-5-6-3
C x 18 x* x A(s, x) C(x*) 18
第三章 禁忌搜索
1
第三章 禁忌搜索
一.导言 二.禁忌搜索 三. TS举例 四. TS中短、中、长久表旳使用 五.学习TS旳几点体会
2
1. 问题描述
一.导言
min f (x) s.t. g(x) 0
x X
目的函数 约束条件 定义域
注:X为离散点旳集合,TS排斥实优化
3
一.导言
2. 局域搜索
➢ 邻域旳概念 ① 函数优化问题: 邻域(N(x))一般定义为在给定距离空间内,以一点 (x)为中心旳一种球体 ② 组合优化问题:
xbest:=xnow=(ACBDE)
ABCDE
11
一.导言
2. 局域搜索
➢ 示例 措施:全邻域搜索 第2步 N(xbest)={(ACBDE),(ABCDE),(ADBCE),(AEBDC) ,(ACDBE),(ACEDB),(ACBED)}, 相应目的函数为f(x)={43, 45, 44, 59, 59, 58, 43}
5
一.导言
2. 局域搜索
➢ 邻域旳概念 例: 解旳邻域映射可由2-opt,推广到k-opt,即对k个元 素按一定规则互换。
邻域旳构造依赖于解旳表达,邻域旳构造 在智能优化算法中起主要旳作用。
6
练习
第2章 禁忌搜索算法
2 . 2 禁忌搜索
• 是局部搜索算法的扩展 • 它的一个重要思想是标记已得到的局部最 优解或求解的过程,并在进一步的迭代中 避开这些局部最优解或过程.
例2 . 2 . 1四城市非对称TSP
距离矩阵
例2 . 2 . 1
• 假设初始解x0 =(ABCD ),目标值为f (x0)=4 • 邻域映射为两个城市顺序对换的2-opt • 始、终点都为A 城市,所以候选集中最多 有两两城市对换对3 个 • 分别对换城市顺序并按目标值由小到大排 列,三个评价值都劣于原值4 .此时已达到 局部最优解.
问题
( 6 )如何利用更多的信息? • 通过记录其他一些信息,如当前最好解, 一个被禁对象(交换)被禁的次数,评价 值的大小等,来提高算法的效率 • BC 或CB 出现的高频率反映出这对顺序交 换对目标值影响较大,在现有的禁忌条件 下对BC 的禁忌长度应该增加 ( 7 )终止原则怎样给出?
Hale Waihona Puke 禁忌搜索算法的特征上次
所有候选对换被禁
问题
( 1 )选择什么为禁忌的对象? 例2 . 2 .1禁忌的是城市顺序对换,是否会造成 求全局最优解的困难? ( 2 )禁忌的长度如何选取? • 禁忌长度短会造成循环,也就可能在一个局部最 优解附近循环 • 禁忌长度长会造成算法的记忆存储量增加,使得 算法计算时间增加,同时可能造成算法无法继续 计算下去 • 因此,必须权衡这对矛盾,确定禁忌长度
例2 . 3 . 4 第3 步
• xnow = ( ACBED ) , f ( xnow ) = 43 • H = { ( ABCDE ; 45 ) , ( ACBDE ; 43 ) , ( ACBED ; 43 ) } • Can_N ( xnow ) = { ( ACBED ; 43 ) , ( ACBDE ; 43 ) , ( ABCED ; 44 ) , ( AEBCD ; 45 ) , ( ADBEC ; 58 ) } • xnext= ( ABCED; 44 )
禁忌搜索
禁忌长度:
禁忌表的大小
候选解:
利用当前解的邻域函数产生其所有(或若干) 邻域解,并从中确定若干候选解。 候选解集的确定是选择策略的关键,对算法 性能影响很大。
藐视准则:
当一个禁忌移动在随后T次的迭代内再度出现
时,如果它能把搜索带到一个从未搜索过的区域,
则应该接受该移动即破禁,不受禁忌表的限制。
4.迭代③ 编码:4-2-7-1-5-6-3
Cx 14, C x* 18
结论:因渴望水平发挥作用,交换在破禁 表中的4和5
5.迭代④ 编码:5-2-7-1-4-6-3
Cx C x* 20
结论:交换7和1
6.迭代⑤ 编码:5-2-1-7-4-6-3
Cx C x* 20
*
.更新T表,转步骤2
四、禁忌算法示例
问题:由七层不同的绝缘材料构成的一种绝 缘体,应如何排列顺序,可获得最好的绝 缘性能
编码方式:顺序编码
初始编码:2-5-7-3-4-6-1
目标值:极大化目标值 邻域定义:两两交换是一个邻 域移动 邻域大小:Tabu Size: 3 NG: 5
禁忌搜索
专业:物流工程 姓名:冯颖 学号:201322303100
一、禁忌搜索概述
二、禁忌搜索的重要参数与基本
原理 三、禁忌搜索的算法步骤 四、禁忌算法示例
一、概述
禁忌搜索(Tabu Search或Taboo Search,简称TS ) 的思想最早由Glover提出,它是对局部领域搜索的一 种扩展,是一种全局逐步寻优算法,是对人类智力过 程的一种模拟。TS算法通过引入一个灵活的存储结构 和相应的禁忌准则来避免迂回搜索,并通过藐视准则 来赦免一些被禁忌的优良状态,进而保证多样化的有 效搜索以最终实现全局优化。
第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, 不能发生作用
禁忌搜索算法.pptx
候选集合
禁忌表
3,2
[1,4,2,5,3,1] f1=8
3-4
3,5
[1,4,5,3,2,1] f2=10
2-3
5,2
[1,4,3,2,5,1] f3=14
4,2
[1,2,3,5,4,1] f4=16
对x3交换3和2时最优f(x)=8,不满足藐视准则,且由于3-2已经在禁忌表中,因此 我们退而求其次选择f2=10对应的解,此时x4=[1,4,5,3,2,1] f(x4)=10,历史最优为5, 将5-3放入禁忌表中,由于禁忌长度为2,因此将最先放入禁忌表中的3-4移出禁忌 表。
[1,4,3,5,2,1] f4=5
对x2交换2和3时,5最优,此时x3=[1,4,3,5,2,1] f(x3)=5,历史最优为5,将2-3放入禁 忌表中
禁忌表
3-4
2-3
禁忌搜索算法(Tabu search)
x3=[1,4,3,5,2,1】 5(x3)=5,历史最优为5
邻域移动(交换中间两个城市)
禁忌表 3-5 2-3
参考教材和资料
彭扬, 伍蓓. 物流系统优化与仿真[M]. 中国物资出版社, 2007.
通过局部邻域搜索和相应 的禁忌准则来避免迂回搜 索,并通过特赦准则释放 被禁忌的优良状态。以保 证多样化的有效搜索,最
终实现全局最优化。
禁忌搜索算法的思想
禁忌搜索算法的思想
1
禁忌搜索算法的思想
2
1
5
4
3
禁忌搜索算法的思想
15 14 13
11 10
12 9
2
1
58
4 6
3
7
时间步 T=1
禁忌表 1、2、3、4、5
TSP的几种求解方法及其优缺点
TSP的几种求解方法及其优缺点一、什么是TSP问题旅行商问题,简称TSP,即给定n个城市和两两城市之间的距商,要求确定一条经过各城市当且仅当一次的是短路线。
其图论描述为:给定图G= (V, A),其中V为顶点集,A 为各顶点相互连接组成的边集,设(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,要求确定一条长度最短的Hamihon回路,即遍历所有顶点当且仅当一次的最短距离。
旅行商问题可分为如下两类:1)对称旅行商问题3j=dji, ni, j=l, 2, 3, - , n);2)非对称旅行商问题(dijHdji, Bi, j=1, 2, 3, - , n)o非对称旅行商问题较碓求解,我们一般是探讨对称旅行商问题的求解。
若对于城市V={V H V2, V n - , %}的一个访问顺序为T={l), b, tj, - , tj, - , tj,A其中衣v (i=l, 2, 3,・・・,□),且记t n+l=tl>则旅行商问题的数学模型为:血工Xzr-l TSP是一个典型的组台优化问题,并且是一个NP完全难题,是诸多领域内出现的多种复杂问题的集中槪括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准。
因此,快速、有效地解决TSP有着重要的理论价值和板高的实际应用价值。
二、主要求解方法基于TSP的问题特性,构造型算法成为最先开发的求解算法,如最近邻点、最近台并、最近插入、晨远插入、最近添加、贪婪插入等。
但是,由于构造型算法优化质長较差,迄今为止巳开发了许多性能较好的改迸型搜索算法,主要有:1)模拟退火算法2)禁忌搜索算法3)Hopficld神经网络优化算法4)蚁群算法5)遗传算法6)混合优化策路2.1模拟退火算法方法1)编码选择:采用描述TSP解的臺常用的一种策略——路径编码。
2)SA状态产生函数的设计:对于基于站径编码的SA状态产生函数操作,可将其设计为:①互换操作(SV7AP);②逆序操作(INV);③插入操作仃NS)。
禁忌搜索算法
禁忌搜索算法作者:季敏惠来源:《电脑知识与技术》2009年第27期摘要:随着网络应用不断广泛,网络数据也呈几何级增长。
基于内容的图像搜索算法成为一个很好的解决方案。
该文为图像提取方法提供了一个新的高效的框架,该算法框架相对于以前所使用的基于流形的方法具有明显的优势:本方法框架可以直接对图像数据评定相关性并返回相关性最高的图像数据,而以往的基于流形的方法必须要从特征空间到一个不清晰的语义流形空间做一个映射,并对这个映射进行学习。
关键词:图像;CUDA;熵;流形中图分类号:TP391.41文献标识码:A 文章编号:1009-3044(2009)27-7748-03Active Tabu SearchJI Min-hui(College of Software Engineering, Southeast University, Nanjing 210096, China)Abstract:With the extensive of network applications, network-level data is growing geometrically. Content-based image search algorithm is a good solution. A novel framework is proposed for image retrieval in this paper. Our framework has an clear advantage over pervious manifold based methods: our method can directly rank and return relevant images and does not need to learn a mapping from the feature space to the unclear semantic manifold space, further avoiding the unnecessary exploration on the dimensionality of the semantic space.Key words: image; CUDA; manifold随着信息技术的日益发展,有一样东西以无可遏制的速度增长着,这就是数据。
第三章禁忌搜索
25
二.禁忌搜索
3. 算法流程
Step 3
若
且
C C
ssLL
x x
Opt A(s,
C x)
sx
,令 x
,s
x
sL (x)
N x
,转Step
5;
注:Step 3的作用破禁检查
Step 4
若 C sK x Opt C s x, s x N x \ T
7
练习
定义邻域移动为:2-opt 对顺序编码[4 2 3 5 1],下列编码是否在其邻域内:
[4 3 2 5 1] [4 3 5 1 2] [4 3 3 5 1] [5 2 3 4 1] [1 2 3 5 4] [3 4 2 5 1]
8
练习
定义邻域移动为:位值+1或-1 对整数编码[2 2 3 5 3],下列编码是否在其邻域内:
➢ 渴望水平 渴望水平A(s,x)是一个取决于s和x的值,若有
C sx As, x
成立,则s(x)不受T表限制。也就是说即使存在
s(x) T
x仍然可以移动到s(x)。 A(s,x)一般选取为历史上所能达到的最优函数值。
禁忌策略和渴望水平构成了TS的两大核心移动规则
23
二.禁忌搜索
构成要素
➢ 停止准则 ① 设定最大迭代次数 ② 得到满意解 ③ 设定某个对象的最大禁忌频率
移动 Sx
1,3 2,4 7,6 4,5 5,3
C x
-2 -4 -6 -7 -9
若选择这项 C(x)=16,渴望水平 不能发生作用
T表 1 1,3 2 4,5
禁忌搜索算法
无时限单向配送车辆优化调度问题的禁忌搜索算法无时限单向配送车辆优化调度问题,是指在制定配送路线时不考虑客户对货物送到(或取走)时间要求的纯送货(或纯取货)车辆调度问题。
无时限单向配送车辆优化调度问题可以描述为:从某配送中心用多台配送车辆向多个客户送货,每个客户的位置和需求量一定,每台配送车辆的载重量一定,其一次配送的最大行驶距离一定,要求合理安排车辆配送路线,使目标函数得到优化,并满足一下条件:(1)每条配送路径上各客户的需求量之和不超过配送车辆的载重量;(2)每条配送路径的长度不超过配送车辆一次配送的最大行驶距离;(3)每个客户的需求必须满足,且只能由一台配送车辆送货。
一、禁忌搜索算法的原理禁忌搜索算法是解决组合优化问题的一种优化方法。
该算法是局部搜索算法的推广,其特点是采用禁忌技术,即用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来挑出局部最优点。
在禁忌搜索算法中,首先按照随机方法产生一个初始解作为当前解,然后在当前解的领域中搜索若干个解,取其中的最优解作为新的当前解。
为了避免陷入局部最优解,这种优化方法允许一定的下山操作(使解的质量变差)。
另外,为了避免对已搜索过的局部最优解的重复,禁忌搜索算法使用禁忌表记录已搜索的局部最优解的历史信息,这可在一定程度上使搜索过程避开局部极值点,从而开辟新的搜索区域。
二、算法要素的设计1.禁忌对象的确定禁忌对象是指禁忌表中被禁的那些变化元素。
由于解状态的变化可以分为解的简单变化、解向量分量的变化和目标值变化三种情况,则在确定禁忌对象时也有相对应的三种禁忌情况。
一般来说,对解的简单变化进行禁忌比另两种的受禁范围要小,因此可能早能造成计算时间的增加,但其优点是提供了较大的搜索范围。
根据配送车辆优化调度问题的特点,可采用对解的简单变化进行禁忌的方法。
举例进行说明:当解从x变化到y时,y可能是局部最优解,为了避开局部最优解,禁忌y这一解再度出现,可采用如下禁忌规则:当y的领域中有比它更优的解时,选择更优的解;当y为其领域的局部最优解时,不再选y,而选比y稍差的解。
禁忌搜索算法求TSP问题
例从北京(Pe)乘飞机到东京(T)、纽约(N)、墨西哥城(M)、伦敦(L)、巴黎(Pa)五城市做旅游,每城市恰去一次再回北京,应如何安排旅游线,使旅程最短?各城市之间的航线距function main()%禁忌搜索算法解TSP问题%A为禁忌表,此题中设置为一个禁忌队列,长度为t%t:禁忌表的长度%x:一种可行解%X:候选集%fun():评价函数,这里以目标函数作为评价函数%check(A,x)函数,检查x是否在禁忌表内%find(x)函数,在领域中寻找候选集合clc,clearD=************56 0 21 57 78 7035 21 0 36 68 6821 57 36 0 51 6151 78 68 51 0 1360 70 68 61 13 0];t=20;%-----------------------------A=zeros(t,6);p=1;%队列的队尾%-----------------------------x=1:6;fmin=fun(D,x);N=1;while N<=10000X=find(x);[m,n]=size(X);y=zeros(1,m);for i=1:my(i)=fun(D,X(i,:));end[miny,minp]=sort(y);w=X(minp(1),:);if miny(1)<fmin%优于当前最佳值 x=w;fmin=miny(1);%将x加入到禁忌表中A(p,:)=x;p=p+1;if p==t+1p=1;endelsej=2;while check(A,w)~=0%disp(check(A,w));w=X(minp(j),:);j=j+1;endx=w;%将x加入到禁忌表中A(p,:)=x;p=p+1;if p==t+1p=1;endendN=N+1;endxfminend%%function X=find(x)X=[];for i=1:6y=x;r=i;while i==rr=1+round(rand(1)*5);endt=y(i);y(i)=y(r);y(r)=t;X(i,:)=y;endend%%function f=check(A,x) f=0;[m,n]=size(A);for i=1:my=A(i,:);if x==yf=1;endendend%%function y=fun(D,x)A=D;d=0;n=length(x);for i=1:n-1d=d+D(x(i),x(i+1)); endy=d;end。
禁忌搜索算法
n<N
否 End
求得初始解 BS=初始解
初始解
Sequence The length of the route
132456
28
BS
Sequence The length of the route
132456
28
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
找出下一个 次好的新解
更新tabulist NI=NI+1
NI=0 Intensification
n=n+1
否 NI=M?
是 Diversification
NI=0 是
n<N
否 End
更新当前解、最好解、tabu list 及相关参数
Sequence The length of the route
当前解 413256
30
候选解
143256
29
新生成相邻关系(14), is Tabu! Reject it
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
n=0;NI=0
求得一系列候选解, 并按优劣排序
否
最好的新解比 是
BS好?
是
It’s in tabu?
否
接受新的解用新的 解替换当前解
假设记录生成相邻解的方法,Tabu list = {②, ③, ④},下一步采用②方法生成了迄今 为止最好的解,仍然接受这个,更新Tabu list={②, ③, ②},
分散搜索(Diversification)和 集中搜索(Intensification)策略
禁忌搜索算法 (第6章)
8.终止条件
(1)给定最大迭代步数,如N =10000.优点是易于 操作和控制计算时间,但无法保证解的质量. (2)给定当前的最好解保持不变的最大连续迭代次 数.如2500次. (3)设定目标值的偏离幅度.若ZLB为问题的下界, ε为给定的偏离幅度,则当f (x)-ZLB≤ε时,终止计 算. (4) 设定禁忌对象的最大禁忌频率.若某个禁忌对 象的禁忌频率超过给定的值,则终止计算.
6.2 TS的基本思想和步骤
算法的基本思想:给定一个当前解(初始解)和候 选解产生函数(邻域结构),然后在当前解的邻域 中确定若干候选解;若最佳候选解对应的目标值优 于到目前为止搜索到的“最好解”(best-sofar),则忽视其禁忌特性,用其替代当前解和 “最好解”;若不存在上述候选解,则在候选解集 中选择非禁忌的最佳候选解为新的当前解,而无视 它与当前解的优劣;两种情况下都将相应的对象加 入禁忌表,并修改禁忌表中各对象的任期;如此重 复上述迭代搜索过程,直到满足停止准则.
5.禁忌对象
被置入禁忌表中的那些变化元素.禁忌的目的是为 了尽量避免迂回搜索. (1)以整个解的变化为禁忌对象.当解状态由x变化到 解状态y时,将解y(或x→y的变化)视为禁忌对 象. (2)以解分量的变化为禁忌对象.如示例中的情形. (3)以目标值的变化作为禁忌对象.
6.禁忌表和禁忌长度
禁忌表(tabu list)是针对禁忌对象所设计的一种结 构,可以是一维或二维的. 禁忌长度t(tabu length)是禁忌对象的禁忌期,即 9 不允许再次被选取的迭代次数.每迭代一步,t减
11
TS求解过程演示
当前解 最好解 (best-so-far) 逐步减小
显示 总迭代次数 最好解保持 不变的连续 迭代次数 特点 累加 波动
禁忌搜索算法代码
int i=0,j=0,count=0;
int n;
while(count<sum)
{
for(n=0;n<count;n++)/*根据禁忌表判断此人是否还在圈内*/
if(result[n]==data[i])
break;
if(n>=count)/*若此人还在圈内*/
Байду номын сангаасj++;
if(j==k)
{
result[count++]=data[i];/*把出圈的人的编号存入禁忌表*/
禁忌搜索法:使用一个禁忌表,记录下不允许搜索的元素。在后面的搜索中,根据禁忌表来决定如何处理当前元素。用在约瑟夫环中,我们可以用一个数组记录下已经出圈的人的编号,这样再数数时,可以根据禁忌表来判断此人是否还在圈内。
#define N 100
void yuesefu1(int data[],int result[],int sum,int k)
scanf("%d",&k);
yuesefu1(data,result,total,k);
printf("\nThe sequence is:\n");
for(i=0;i<total;i++)
printf("%d ",result[i]);
{
int input;
scanf("%d",&input);
if(input==0)
break;
for(j=0;j<i;j++)
if(data[j]==input)
02禁忌搜索TS
导言禁忌搜索(Tabu Search或Taboo Search,简称TS)算法是继遗传算法之后出现的又一种元启发式(Meta-Heuristic)优化算法,最早于1977年由Glover提出。
禁忌搜索算法模仿人类的记忆功能,使用禁忌表来封锁刚搜索过的区域来避免迂回搜索,同时赦免禁忌区域中的一些优良状态,进而保证搜索的多样性,从而达到全局优化。
迄今为止,禁忌搜索算法已经成功应用于组合优化、生产调度、机器学习、神经网络、电力系统以及通信系统等领域。
基本思想禁忌搜索算法的基本思想就是在搜索过程中将近期的历史上的搜索过程存放在禁忌表(Tabu List)中,阻止算法重复进入,这样就有效的防止了搜索过程的循环。
禁忌表模仿了人类的记忆功能,禁忌搜索因此得名,所以称它是一种智能优化算法。
具体思路如下:禁忌搜索算法采用了领域选优的搜索方法,为了能逃离局域最优解,算法必须能够接受劣解,也就是每一次迭代得到的解不必一定优于原来的解。
但是,一旦接受了劣解,迭代就可能陷入循环。
为了避免循环,算法将最近接受的一些移动放在禁忌表中,在以后的迭代中加以禁止。
即只有不在禁忌表中的较好解(可能比当前解差)才被接受作为下一次迭代的初始解。
随着迭代的进行,禁忌表不断更新,经过一定迭代次数后,最早进入禁忌表的移动就从禁忌表中解禁退出。
相对于普通领域搜索而言,禁忌搜索算法最大的特点是可以接受劣解,这是避免陷入局部最优的首要条件。
算法的构成要素禁忌搜索算法中很多构成要素对搜索的速度与质量至关重要,包括:编码方式(Encode):使用禁忌算法求解一个问题之前,需要选择一种编码方法。
根据问题的具体情况,可以灵活的选择编码方式。
对同一个问题,也可以有多种编码方式可供选择。
不同编码形式通常是可以相互转化的。
实际应用中,希望编码空间尽可能和解空间一样大小,也就是说编码和解具有严格的一一对应关系。
然而,对于许多的实际问题,这并不是一件容易的事情。
适值函数:适值函数的选择主要考虑提高算法的效率、便于搜索的进行等因素。
最优化算法案例学习(禁忌搜索,混合算法)
Lk
辆 k 车 最大行驶里程
ETi
LTi
顾客 i 时间窗起始时间, i V
顾客 i 时间窗起始时间,i V
论文改进
标号
pd
pw
pc
wi
含义
单位时间延迟成本 单位时间等待成本 单位超标碳排放的惩罚成本
节点 i 的等待时间 i V
i
节点 i 延迟时间 i V
论文改进
标号
含义
Wikj cij
目标值变化
情况3:禁忌对象为目标值变化 xnow=(ABCDE),f(xnow)=45,H={45}
Can_N(xnow)={(ABCDE;45),(ACBDE;43),(ADCBE;45), (ABEDC;59),(ABCED;44)} xnext=(ACBDE)
特赦原则
基于评价值的规则,若出现 基于最小错误的规则,若所 一个解的目标值好于前面任 有对象都被禁忌,特赦一个 何一个最佳候选解,可特赦; 评价值最小的解;
求解结果
参数设置
最大载货量/t 速度/(km·km-1) 最大行驶距离/km 固定装货时间/h 固定卸货时间/h
10
货车最多可调用数量
10n
40
每辆车的固定租车费用/元
300
240
每公里运输费用/(元·km-1)
2
0.5
时间窗上界惩罚系数/(元·h-1) 200
0.5
时间窗下界惩罚系数/(元·h-1) 300
论文改进
假设条件:
1
每个客户的需求量较小
2
违反时间窗产生惩罚费用
3
假设路上交通状况良好
4
先取货后配货
5
需求确定不可拆分
禁忌搜索算法
邻域选优的规则模拟了人类的记忆功能,找过的地方都 记下来,不再找第二次。一定的迭代次数后,早期进入 禁忌表的解被解禁退出。
7.5T 8☻ 4.5T
四城市非对称TSP问题
第 6步
解的形式 A DCB f(x5)=8 禁忌对象及长度 B A C D 候选解
对换 评价值
B
2 C
0 1
CD BC BD
3.5T 4.5T 4☻
谢谢观赏
2、禁忌对象为目标值变化 3、禁忌对象为分量变化 解的简单变化比解的分量变化和目标值变化的受禁范围要小,可 能造成计算时间的增加,但也给予了较大的搜索范围; 解分量的变化和目标值变化的禁忌范围大,减少了计算时间,可 能导致陷在局部最优点。
禁忌长度的选取
禁忌长度过短,一旦陷入局部最优点,出现循环无法跳出; 禁忌长度过长,造成计算时间较大,也可能造成计算无法继续下去。
(2)动态频率信息:从一个解、对换或目标值到另一个解、对换或目标值的变化趋势。
终止规则
(1)确定步数终止,无法保证解的效果,应记录当前最优解; (2)频率控制原则,当某一个解、目标值或元素序列的频率超过 一个给定值时,终止计算; (3)目标控制原则,如果在一个给定步数内,当前最优值没有变 化,可终止计算。
B
C
CD BC BD
4.5☻ 7.5 8
四城市非对称TSP问题
第 2步
解的形式 A B DC f(x1)=4.5 禁忌对象及长度 B A C D 候选解
对换 评价值
基于禁忌搜索算法参数设置的探讨
[ ] Go e, F 1 lvr .Hert sfritgrpormmiguig sr gt u sc o nee rga n s ur ae ii n o
从表 2可以得 出:①初始解越好 ,T S算 法求 得的最优 解越佳 ;② 2阶 T s法 ( 先利用 求 得初始解 ,再利用
具体实验如下 。
( )迭 代 次 数 :随 机 产 生 2 0个 城 市 坐 标 ,经 历 不 同 1 4
的迭 代 次 数 的实 验 数 据 如 表 l所 示
, 计 数 器 tO = 。设 置 禁 忌 表 为
表 1 迭代次数对 T S算 法 的 影 响
的 目标 函数 值 ,则 = 【 。 f + ”
来 求 解 Q P ( uda cA s n et rbe 问 题 ,L - A Q art si m n olm) i g P a
gn u a& G oe 以小 、 中 、 大 三 种 不 同 变 动 范 围 的禁 忌 表 大 l r v
小 来 求 解 通 信 带 宽 封包 问 题 ( e cmm n ai a d i h T l o u i t nB n wd e c o t
[ ]G o e,F T b a h a J OR A Ju a o o - 3 l r . aus r :pr I[ v ec t ]. S o r l nC r n n
示 , 两 个 城 市 之 间 的 距 离 利 用 两点 问 的 距 离 公 式 来 求 得 。
常 见 的 有 :循 环 迭 代 次 数 、C U 运 行 时 间 、连 续 获 得 没 有 P
改 进 过 解 的次 数 。一 旦 搜 索 达 到 这 些 预设 的 停 止 条 件 .则 停 止 搜 索 ,当 前 的 最 优 解 即 为 最 终 解 。 一 般 情 况 下 选 择 “ 环 迭 代 次 数 ” 作 为停 止 条 件 ,可 以 保 证 在 一 段 迭 代 次 循 数 后 终 止 搜 索 且 不 因使 用 电脑 的 系 统 不 同 而 影 响 解 。 1 法基本步骤如下 : ’ S算 Se :初 始 化 。选 择 一 个 初 始 可 行 解 ( tp0 m.最 大 迭 代 次 数 一, 当 前 解 = 空 以及 禁 忌 表 的大 小 £ 。 Se :停 止 。 如 果 # ,那 么停 止 搜 索 , 当前 解 t 1 p =一 就是最优解 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2).2-swap交换。为双点操作,选择解中两点进行交换,其它位置的值不变。例如解001101中的2、6点被选中,则2-swap交换后变为:011100;
3).2-opt交换。为多点操作,选择解中两点进行交换,同时两点之间的值逆序改变。例如解001101中的2、6点被选中,则2-swap交换后变为:010110;
step7:如果 ,转step8,算法结束, 、 为LRP的最终解和解值;否则 ,转step3;
step8:算法结束。
6.2.2LRP选址规划的禁忌算法
模型上层是基于0-1整数规划的选址问题。由于选址问题是NP-hard,如果
用精确算法求解,对节点数目的限制将有严格的要求。本章根据模型的特点,
采用禁忌算法优化产业选址问题。
Frank-Wolfe算法解物流配送均衡模型详细步骤如下:
step1:初始化:按照 ,实行一次全有全无分配,得到客户分配到各配送中心的货物量;令 ;
step2:更新各配送中心的单位货物服务费用: ;
step3:寻找下一步的迭代方向:按照实行一次全有全无分配,得
到一组各配送中心的附加的货物服务量;
{:,}
1.解的构造和初始解的生成
采用二进制编码,编码长度为潜在的配送中心地点数量 ,对于编码中位置 ,1表示选中 点作为厂址,0表示没有选中。对于解中任意点 ,产生随机数 ,如果 ,则置 点为0,否则置1。重复以上步骤m次,得到初始解。
2.邻域的搜索
根据本章选址问题的特点,设计了三种邻域操作,分别为自身取反、2-swap交换和2-opt交换。
step11:判断第 个邻域解是否违反禁忌规则,是则转 ;否则令其为当前解;转step3;
step12:终止。
6.2.3物流配送均衡模型的Frank-Wolfe算法设计
在得到上层的解 后,本章采用Frank-Wolfe算法解下层物流配送均衡模型。该法是用线性规划逐步迭代逼近非线性规划的方法,在每步迭代中,先找到一个目标函数的最速下降方向,然后再找到一个最优步长,在最速方向上截取最优步长得到下一步迭代的起点,重复迭代直到找到最优解。
4).自身取反、2-swap交换操作能较快的搜索到局部最优解,2-opt交换则能扩大搜索空间。自身取反、2-swap交换是每个循环都进行的操作,进行局部寻优。当 代最优解没有变化时,进行一次2-opt交换操作,跳出局部最优点。
将以上三种邻域结合,不仅保持了TS局部”爬山”能力强的优点,同时也让它的全局寻优能力大大加强。
step5:如果进行2-opt邻域操作后,连续 代最优值没有改变,继续,转step7;
step6:搜索当前解的2-opt邻域,转step8;
step7:搜索当前解的自身取反和2-swap两种邻域;
step8:按邻域解值降序排列各邻域,令 ,第 个邻域解值为 ;
step9: ;
step10:判断 是否大于 ,是则令 ,令第 个邻域解为当前解,转step3;否则继续;
式中 表示总投资额约束的惩罚系数。
4.禁忌表和终止准则
根据本禁忌算法邻域性质的不同,本章设计了两种禁忌表:局部禁忌表和全局禁忌表。局部禁忌表存储的是自身取反、2-swap交换邻域操作的对象,即如果当前解采用了某种邻域,那么在接下来的 个循环内不允许进行该邻域的逆操作。全局禁忌表存储的是寻优过程中每个循环的解值,此禁忌表只在选用2-opt交换操作时采用,避免进行重复搜索,加快寻优速度。
如果经过某邻域操作得到比当前最好解更好的解,那么不管该邻域是否被禁忌,都采用该邻域作为当前邻域。
终止条件:如果连续 代最优解没有改变,则终止循环,算法结束。
5.关键步骤
step1:初始化各参数,搜索循环次数 ;
step2:形成初始解,令初始解为当前解,其解值为当前最优解值 ;
step3: ;step4如果连续 代最优值没有改变,转step 12,否则继续;
,
cnij
ij
?
{:,}
,
d nij
ij
?
step4:确定迭代步长λ:
4.1确定满足()0的λ合理取值范围[λbot,λtop];
,,,
+?n>
ij
n
ij
n
ij
xλdx
3.约束的处理
本章LRP模型上层约束包括分厂数量约束和总投资额约束。对于分厂数量限制,本章在邻域操作中加以控制:如果当前解经过某邻域操作,违反分厂数量限制,则取消此邻域操作。对于总投资额约束,本章采用惩罚函数的方式进行处理,把超出约束的量乘以一个惩罚系数,作为一个惩罚项加入到解的适应度中。上层目标函数的适应度 可以表示为:
货物总量 及客户在各配送中心的货物均衡分配量 ;
step4:根据D及 运用禁忌算法求解VRP问题(见6.2.4节),得出各配送
中对各客户的单位货物配送费用 ;
step5:根据 及公式(6-8)求出下层 与 的关系 ;
step6:将LRP模型上层目标函数中用代替,并代入下层求得的 和 ,运用禁忌算法求得新的LRP选址规划的解 及目标函数 (见6.2.2节);
6.2基于均衡原理的LRP算法设计
6.2.1基于均衡原理的LRP算法整体流程
基于均衡原理的LRP算法整体流程如下:
step1:初始化,设置整体收敛性判断参数 ;
step2:随机生成一组LRP选址问题的解 ,求出相应的目标值 ;
step3:根据上层解 ,利用Frank-Wolfe算法(见6.2.3节)求出各客户的