基于禁忌搜索算法求解定位-运输路线安排问题

基于禁忌搜索算法求解定位-运输路线安排问题
基于禁忌搜索算法求解定位-运输路线安排问题

基于禁忌搜索算法求解定位-运输路线安排问题

林晖钢1,胡大伟1,徐丽蕊1,2

1 长安大学汽车学院,西安(710064)

2 陕西工业职业技术学院工商管理系,陕西咸阳(712000)

E-mail:lhgzhl@https://www.360docs.net/doc/3018659702.html,

摘要:定位—运输路线安排问题(location routing problems, LRP)是集成化物流系统分销网络设计和管理决策中的难题,也是任何一个大型物流配送企业必须要面对的问题。由于LRP的NP—HARD属性,其求解方法目前大多局限在将定位—配给问题(location allocation problems, LAP)的输出作为车辆路线安排问题(vehicle routing problems, VRP)的输入而求解。然而,在LAP最优的前提下求出的VRP的最优并不一定就是LRP的最优解,从而导致这样的处理方式不可避免的会陷入局部最优解的状态。本文针对多站点定位—运输路线安排问题(multi-depot location routing problems, MDLRP)数学模型,用Lingo软件对小规模测试数据情形进行了验证,然后采用禁忌搜索法(TS)分别求解LAP和对应的每一个设施的VRP,并将VRP的结果作为LAP的输入,再将LAP解及其邻域解作为VRP输入不断反复循环求解MDLRP,并在此基础上对较大规模测试数据进行了仿真运算。结果表明采用禁忌搜索方法求解一定规模的MDLRP快速有效。

关键词:定位—运输路线安排问题;定位—配给问题;车辆路线问题;禁忌搜索

1.引言

设施定位、车辆路线各自作为单独的问题,国内外已有较多学者进行了研究,其理论也已比较完善,这些研究为物流管理的优化决策奠定了坚实的基础。国外一批学者对LRP进行了一系列的研究[1]。LRP的概念认为:在设施(制造厂、库存点或分销中心)相对于客户的位置、货物的配给、货物运输的车辆路线安排之间存在相互依赖的关系,根据这种关系来进行综合优化与管理;相比单一的物流系统优化问题,LRP更加贴近目前物流系统复杂的实际特征,对进一步优化整个物流系统,降低系统成本具有一定的理论价值和现实意义。而当前大部分学者对LRP的研究都局限在将LAP的输出作为VRP的输入而进行求解,这种方法得出的LRP解往往并不是最优的。基于这样一个现实情况,本文将LAP和VRP综合统筹考虑,得出了相应的MDLRP优化解,首先用C++编程软件与Lingo软件对小规模数据集(8点数据集)进行了计算及其对比验证本文算法计算结果的精确性,然后对较大规模数据(25点、50点、100点数据集)用本文算法求出了相应的优化解,证明了本文算法对求解MDLRP问题的有效性和准确性。

2.MDLRP参数定义及其数学模型与验算

本文研究的LRP模型基于如下假设:

①客户数量、位置及需求已知;

②候选设施位置及容量已知;

③各客户需求均能得到满足且每个客户只由一辆车服务;

④每辆车在完成全部运输任务后回到出发点;

⑤各线路的总需求小于或等于车辆的容量;

⑥车辆类型给定。

2.1参数定义

ijk x 在路线 k 上,如果点 i 在 j 之前值为1,否则为0; i y 如果建立 i 设施则值为1,否则为0;

ij z 如果客户 j 由设施 i 来服务则值为1,否则为0;

R 配送设施点潜在位置的集合; J 所有客户点的集合; V 所有车辆集合; N 代表客户的数量;

ij C i ,j 两点之间的距离(作为i ,j 两点间的运输费用); S R J =U 所有客户点和潜在设施点的集合;

r G 设施r 建设和运行的固定成本;

k F 使用车辆 k 的固定成本;

r V 设施 r 的最大容量;

j q 客户 j 的需求量; k Q 车辆 k 的容量;

2.2 多站点定位-配给问题的数学模型

Min

∑∑∑∑∑∑∑∈∈∈∈∈∈∈++R i J

j ijk V

k k ijk S i S j V

k ij r R

r r

x F x C y G

.s t :

∑∑∈∈=V k S

i ijk

x

,1 J j ∈, (1)

,k S i J

j ijk j

Q x q

≤∑∑∈∈ V k ∈, (2)

R r y V z

q r r J

j rj

j ∈≤?∑∈,0, (3) ∑∑∈∈=?S

i S j pjk ipk

x x

,0 V k ∈,,S p ∈ i j ≠ (4)

∑∑∈∈≤R r J

j rjk

x

,1 V k ∈ , (5)

()1rlk

ljk rj l S

x

x z ∈+≤+∑ , R r ∈,J j ∈, V k ∈ (6)

10或=ijk x , ,,,,j i V k S j i ≠∈∈ (7)

10或=r y , ,R r ∈ (8)

10或=ij z ,,R i ∈J j ∈ (9)

在上述这个模型中,目标函数为总成本(包括设施建设和运作成本、运输成本以及车辆投入及其使用成本)最小。约束(1)保证每一个客户只由一个运输车辆服务;约束(2)为运输车辆容量约束条件;约束(3)为仓库的容量限制条件;约束(4)保证路线连续;约束(5)保证每一个运输工具的路线只能从一个设施驶出;约束(6)保证客户只能由选中的设施提供服务;约束(7)-(9)表示0、1变量约束。

2.3模型检验

由于目前学术界并不存在任何定位-路线问题的测试数据。为了检验此模型的正确性,本文以VRP的Solomon测试数据源R101数据系列为基础随机产生包含3个候选设施点和5个客户需求点的数据组,对定位-路线问题数学模型进行检验。通过产生1~100范围内的8个随机数对应于100个客户中的各个客户编号,将其中三个作为本算例中候选设施点的数据,其余5个作为客户点的数据。这样随机产生的一组候选设施点和客户,潜在设施点的坐标、容量和建设成本如表1所示;客户点的坐标和需求量如表2所示。车辆容量取40,车辆固定成本取30。

表1 潜在设施点的坐标、容量和建设成本

D1 D2 D3 X坐标35 25 10

Y坐标35 30 43

设施点的

70 70 70

容量

建设成本200 200 200

表2 客户点的坐标和需求量

C1C2C3C4C5 X坐标3050104545

Y坐标6035206510

客户需

1619199 18 求量

用Lingo10.0对MDLRP模型进行编程,计算时间为156s,结果表明两个设施被选中,对应的目标函数值为666.406,从而证明了本文带容量约束的MDLRP数学模型的正确性。

3.禁忌搜索算法介绍

TS(Tabu Search)算法是近年来受到普遍关注的一种高效率的现代启发式优化算法,该算法由F.Glover[2]于1986年首先提出,进而形成一套完整算法[3][4]。并随着计算机技术的发展而成功的应用于各个领域,解决了大量复杂的优化问题。近几年,该算法被广泛领域引入,如水火电联合经济调度[3]、电力系统无功优化[4]、输电系统最优规划[5]以及交通运输系统规划[5]等领域,并取得了一定研究成果。部邻域搜索陷入局部最优的不足,禁忌搜索算法用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来跳出局部最优点。

本文利用禁忌搜索算法求解组合优化问题时,首先产生一个初始解作为当前解,然后在当前解的邻域中搜索若干邻域解,取其中的最好解作为新的当前解。为了避免对已搜索过的局部最优解的重复,禁忌搜索算法使用禁忌表记录已搜索的局部最优解的历史信息,这使得算法可在一定程度上避开局部最优点,从而开辟新的搜索区域。本文设计的禁忌搜索算法流程图如图1所示,

禁忌搜索算法的特点是使用了禁忌技术。所谓禁忌就是禁止重复前面搜索,为了回避局

图1 禁忌搜索算法流程图

禁忌搜索算法作为一种人工智能算法,涉及解的表示、解的评价、邻域解的构造及算法终止准则,并且实现的技术问题是算法的关键,不同的算法策略将会对解的好坏产生重要影响。禁忌搜索算法的主要策略有:禁忌对象和禁忌长度的确定、候选集的产生方法、特赦规

则以及终止规则。

⑴解的表示[8][9]

不同编码方式的运行时间和适应度函数值以及目标函数值计算的复杂程度不同,并且编码方式也影响着解空间的大小。一般来说,在与车辆路线问题有关问题的求解中都采用自然数编码的方式,而自然数编码方式也存在着如下三种不同形式:

第一种,客户和配送中心共同排列的编码方式。

第二种,车辆和客户对应排列的编码方式。

第三种,客户直接排列的编码方式。

根据本文研究问题的特征,本文采用第三种编码方式,即客户直接排列的编码方式确定一组MDLRP的初始可行解。

⑵禁忌对象的确定

禁忌对象是指禁忌表中被禁的元素。由于解状态的变化可分为解的简单变化、解向量分量的变化和目标值变化三种情况,则在确定禁忌对象时也有对解的简单变化进行禁忌、对解的分量变化进行禁忌及对解的目标值变化进行禁忌三种情况。一般来说,对解的简单变化进行禁忌比对解的分量变化进行禁忌和对解的目标值变化进行禁忌的受禁范围要小,因此可能造成计算时间的增加,但其优点是提供了较大的搜索范围。解分量的变化和目标函数变化的禁忌范围要大,这减少了计算的时间,可能引发的问题时禁忌的范围增大以至陷入局部最优点。

根据定位配给问题和车辆路线问题的特点,可采用对解的简单变化进行禁忌的方法。其原理是:当解从x变化到y时,Y可能是局部最优解,为了避开局部最优解,禁忌y这一解再度出现,可采用如下禁忌规则:当y的邻域中有比它更优的解时,选择更优的解;当Y 为N (y)的局部最优解时,不再选Y,而选比y稍差的解。

⑶禁忌长度的确定

禁忌长度是指被禁对象不允许被选取的迭代步数,一般是给被禁忌对象x一个数L(称为禁忌长度),要求禁忌对象x在L步迭代内被禁,在禁忌表中采用Tabu(x)=L记忆,每迭代一步,该项指标做运算Tabu(x)=L-1,直到Tabu(x)=0时解禁。禁忌长度在同一问题求解过程中是固定的,但是随问题规模的不同取不同的值,一般来说,问题规模越大,禁忌长度越长。禁忌长度短会造成循环,也可能在一个局部最优解附近循环。禁忌长度长会造成算法的记忆存储量增加,使得算法计算时间增加,还可能造成算法无法继续计算下去。本文L

取为常数,L=为邻域中邻居的总个数),这种规则容易在算法中实现。

⑷候选集的产生方法

候选集合由邻域中的邻居组成。常规的方法是从邻域中选择若干个目标值或评价值最佳的邻居入选。有时这种计算量较大,而且容易导致局部收敛的情况,所以本文采用不在邻域的所有邻居中选择,而是在邻域中的一部分邻居中随机选择若干个目标值或评价值最佳的状态实现部分邻居的选取。由于考虑到计算时间的复杂度问题,本文设计每次对当前解随机进行5次邻域解产生操作,将其作为当前解的候选集。

在定位阶段既要确定配送中心数目,又要选择具体的配送中心,因此设计两种邻域搜索方法,分别是“客户交换”和“客户插入”操作。

根据本文特点,在路线优化阶段,设计随机从插入法、2-opt、路线内2swap和路线间2-swap四种邻域搜索方法中选择其中一种来产生邻域解,这样增强了禁忌搜索算法的搜索

性能,扩大了搜索范围,以便能在车辆行驶费用方面得到更好的改进。

①插入法

插入法是考虑一条路线中任意一个点插入到其他路线中的方法,即从一条路线中随机选择一个点,插入到另一条路线中随机选择的两个点之间,如图2,从一条路线中随机选择点4,另一条路线中随机选择点7,通过插入法,则路线由0-1-2-3-4-0和0-5-6-7-8-0变为0-1-2-3-0和0-5-6-7-4-8-0。

代表选中DC ,

代表客户, 和

代表路线

图2 插入法示意图

②2-opt

将当前路线中的k 条边用另外k 条边代替,这种变换称为k -opt [10],最为常见的是2-opt ,主要思想是随机选择两个点i 和j ,将边(i,i+1)、(j,j+1)用(i,j)、(i+1,j+1)代替,如图3所示,随机选择2和5,进行2-opt 交换,则路线由0-1-2-3-4-5-6-0变为0-1-2-5-4-3-6-0。

代表选中DC ,

代表客户,

和 代表路线

图3 2-opt 交换法示意图[11]

③路线内2-Swap

路线内2-swap 主要思想是交换一条路线上两个点的位置,如图4所示,随机选择2和5,进行路线内2-Swap ,则路线由0-1-2-3-4-5-6-0变为0-1-5-3-4-2-6-0。

④路线间2-Swap

路线间2-swap 主要思想是交换不同路线上两个点的位置,如图5所示,随机选择两条路线上的两个点2和5,进行路线间2-Swap ,则路线由0…1-2-3…0和0…4-5-6…0变为0…1-5-3…0和0…4-2-6…0。这种思想在车辆路线问题的客户分配中可以起到优

1

化分组的作用。

代表选中DC,代表客户,和代表路线

图4 2-Swap路线内交换法示意图

图5 2-swap路线间交换示意图

⑸特赦规则

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

本文采用基于评价值的特赦规则。即在整个计算过程中,记忆已出现的最好解best

x,当候选集中被禁忌解的邻域中,出现一个解now

x优于best

x,则解禁now

x使其自由,并更新为当前解和最好解。

⑹评价函数

评价函数赋予候选集合中每一个元素一个实数值,通过评价函数值来选取下一步计算的替代点。

领域搜索中需要对在得到的几个解中选择质量最优的解作为新的当前解,为了提高算法效率,在定位阶段评价解的优劣时,我们通过目标函数预测值来比较这几个解的质量。预测方法是:根据求解的设施定位方案,在满足设施容量约束的前提下,将客户分配至距离最近的设施点,假设设施与客户间的运输路线为直线距离,并且不考虑车辆路线,而采用各客户与设施点距离总和作为目标函数预测值。

而在路线优化阶段,则用配送路线方案的目标函数值作为评价函数,对候选解进行评价和选取最优值。其目标函数值越优,则解的质量越高。

⑺终止准则[6][7]

禁忌搜索是一种启发式算法,希望在可接受的时间里能得到一个满意的解。终止规则就是确定什么时候终止算法,通常使用的有以下几种方法:

①确定步数终止;

②频率控制原则;

③目标值变化控制原则;

④目标值偏离程度原则。

为便于算法实现,本文综合方法①和方法③,采用事先确定最大迭代代数和最好解保持不变的最大连续迭代步数作为终止规则。

4.实例计算及结果分析

本文中所有计算实例中的单位距离运输费用均取为1;对于8点数据由于有可比对象(LINGO计算结果),为了对比方便程序当中车辆费用取为30;而对于25点、50点和100点的数据由于没有可比对象,所以在程序中车辆容量暂时设定为:50,90,150;车辆费用暂时分别设定为30,0,0;当然也可以根据需要自行设定。

根据模型检验中的8点数据,对本文禁忌搜索算法运用C++语言编程计算,对应的参数设置如下:禁忌长度取为3,最大迭代次数max_cons_iter取为800,候选解数量取为5,LRP 迭代次数取为20时,得出目标函数的结果如表3所示。

表3 计算结果

选中的设施对应的车辆路线目标函数值CPU运行

时间

1 2 0-4-1-0 ,0-2-5-0

0-3-0

666.406 0.0922秒

根据上表可以看出,由本文算法模拟计算,得出的结果与我们应用Lingo10.0对MDLRP

模型8点数据进行编程计算得出的目标函数值完全相同,并且计算20次得出该最优解的频

率为85%以上,计算机运行时间也很快。从而验证了本文程序的有效性。

在solomon数据集中R101数据集合(见表4)中随机选取其中5个客户点作为设施节

点,其余20个作为客户点,用本文算法进行编程计算在相应的参数设置为:禁忌长度取为

5,最大迭代次数max_cons_iter取为8000,候选解数量取为25,LRP迭代次数取为50时,

计算20次得出的最好结果如表5所示,最好结果出现的频率为75%以上。

表4 设施点坐标、容量、建设费用和客户点坐标、需求量

潜在设施 X Y 容量建设费用

1 15 30 100

100

2 30 60 100

100

3 50 35 100

100

4 30 2

5 100

100

5 40 20 100

100

客户X Y 需

求量

X Y需

求量

X Y需求

1 41 48 10 8 5560161515 6017

2 35 17 7 9 2065121645 659

3 55 45 13 10 1510201745 1018

4 5

5 20 19 11 3058 1855 529

5 25 30 3 12 1020191965 30 3

6 20 50 5 13 530 2 2065 20 6

7 10 43 9 14 204012

表5 计算结果

选中的设施对应的车辆路线目标函数值CPU运行

时间

1 2 5 0-5-1-7-13-0 ,0-12-10-0

0-6-15-9-0 ,0-1-3-8-16-0

0-17-18-0 ,

0-2-11-4-20-19-0

832.557 11.514秒

在solomon数据集中R101数据集合(见表6)中随机选取其中8个客户点(根据该数

据集中的客户需求总量确定)作为设施节点,其余42个作为客户点,用本文算法进行编程

计算在相应的参数设置为:禁忌长度取为5,最大迭代次数max_cons_iter取为4000,候选

解数量取为20,LRP迭代次数取为30时,计算20次得出的最好结果如表7所示,该最好

结果出现的频率为80%以上。

表6 设施点坐标、容量、建设费用和客户点坐标、需求量

潜在设施 X Y 容量建设费用

1 4

2 66 200

200

2 38 70 200

200

3 28 55 200

200

4 23 5

5 200

200

5 20 80 200

200

6 25 85 200

200

7 5 35 200

200

8 30 32 200

200

客户X Y 需求

X Y需

求量

X Y需

求量

1 45 68 10 151875202910 4030

2 45 70 30 1615801030 2 4020

3 42 68 10 173******** 4030

4 42 6

5 10 183******** 4520

5 40 69 20 192852203335 3010

6 40 66 20 202550103435 3210

7 38 68 20 212552403533 3510

8 35 66 10 222555103632 3010

9 35 69 10 232352103730 3010

10 15 75 20 2420501038 5 4510

11 22 75 30 252055103930 3510

12 22 85 10 261035204028 3010

13 33 32 20 27840404128 3510

14 20 85 40 28845204226 3210

表7 计算结果

选中的设施对应的车辆路线目标函数

CPU运

行时间

1 5 7 8

0-1-2-3-5-9-0 , 0-7-8-22-19-0

0-18-4 -0 , 0-6-0

0-12-14-0, 0-16-10-15-23-11-0

0-26-0 , 0-27-28-38-30-0,

0-31-32-25-29-0

0-39-41-20-17-35-34-33-13-0 ,

0-21-24-42-40-37-36-0

1154.95 101.771秒

在solomon R101数据集合(见表8)中随机选取其中15个客户点(根据该数据集中的

客户需求总量确定)作为设施节点,其余85个作为客户点,用本文算法进行编程计算在相

应的参数设置为:禁忌长度取为5,最大迭代次数max_cons_iter取为4000,候选解数量取

为35,LRP迭代次数取为40时,计算20次得出的最好结果如表9所示,该最好结果出现

的频率为80%以上。

表8 设施点坐标、容量、建设费用和客户点坐标、需求量

潜在设施 X Y 容量建设费用

1 4

2 68 500

200

2 35 66 500

200

3 30 50 500

200

4 28 52 500

200

5 10 40 500

200

6 44 5 500

200

7 15 75 500

200

8 40 5 500

200

9 66 55 500

200

10 72 55 500

200

11 85 25 500

200

12 92 30 500

200

13 63 58 500

200

14 8 45 500

200

15 45 35 500

200 客户X Y

需求量客户X Y需求量客户X Y需求量

1 45 68 10 30 240205947 4010

2 45 70 30 31 040306045 3010

3 42 66 10 32 045206195 3030

4 42 6

5 10 33 3530106295 3520

5 40 69 20 34 3532106353 3010

6 40 66 20 35 3332206445 6520

7 38 68 20 36 3335106590 3510

8 38 70 10 37 3230106688 3010

9 35 69 10 38 3030106788 3520

10 25 85 20 39 3032306887 3010

11 22 85 10 40 3035106985 3530

12 20 80 40 41 2830107075 5520

13 20 85 40 42 2835107170 5820

14 18 75 20 43 2632107268 6030

15 15 80 10 44 2530107365 5520

16 22 75 30 45 2535107465 6030

17 30 52 20 46 48401075 5 4510

18 28 55 10 47 4210407660 5510

19 25 50 10 48 4215107767 8520

20 25 52 40 49 6060107865 8540

21 25 55 10 50 4015407965 8210

22 23 52 10 51 385308062 8030

23 23 55 20 52 3815108160 8010

24 20 50 10 53 355208260 8530

25 20 55 10 54 5030108358 7520

26 10 35 20 55 5035208455 8010

27 8 40 40 56 5040508555 8520

28 53 35 50 57 483010

29 5 35 10 58 473510

表9 计算结果

选中的设施对应的车辆路线目标函数值 CPU运行时间

2 5 1

3 15

0-5-9-10-13-14-16-0 ,

0-15-11-1-3-6-7-0

0-12-21-18-17-4-64-2-8-0

0-20-19-40-44-26-30-27-0 , 0-42-68-0,

0-75-32-31-29-41-43-45-22-23-25-24-0

0-74-80-79-72-69-73-0 ,

0-49-83-84-85-82-78-70-0 ,

0-81-77-71-67-65-61-66-76-0

0-46-36-39-38-37-34-33-50-48-57-0 ,

0-58-47-53-52-0 , 0-63-62-28-0,

0-35-51-60-54-55-56-59-0

2030.98 686.3758秒

5.结论

以上实例的计算结果表明,本文的TS算法对求解MDLRP是有效的,对于小规模的问题可以在很短的时间内计算出最优结果;对于较大规模的问题,由于没有相关的可对比算例数据,通过文中计算结果可以看出,TS算法在设定恰当的参数组合时,同样可以在较短的

时间得出相对优化的结果,而且解的收敛性比较稳定。文中的各组参数搭配是在经过多次重复性试验的基础上得出来的。结果显示随着数据规模的增大,虽然TS算法寻求优化解的时间也是成倍增大的,但是得到优化解的频率基本保持不变,进一步证明了本文算法的稳定性。

6.未来研究展望

模型中客户的位置、需求量都是事先确定的,而在现实中这些变量可能都是实时变化的,今后可以从这方面入手使MDLRP模型更加贴近实际。本文在求解过程中只用了单一车型,与实际当中的多车型还存在着差距;本文只考虑了当单向送货物流没有将回收物流考虑进来,未来可以加入这部分研究内容实现供应链的增值。随着经济和信息技术的发展,物流的需求也向多样化、个性化方面发展,所以对带时间窗的多站点定位——运输路线问题(MDLRPTW)的研究,也是当今市场的迫切需要。

参考文献

[1] 张潜,集成化物流中的定位——运输路线安排问题模型及优化算法研究[J].东北大学博士学位论文

[2] Glover F. Future Paths for Integer Programming and Links to Artificial Intelligence[J]. Computers

and Operations Research, 1986, (13) :533~549.

[3] Glover F. Tabu Search: part. ORSA Journal on Computing [J].1989, (1) : 190- 206.

[4] Glover F. Tabu Search: part. ORSA Journal on Computing [J].1990, (2) :4-32.

[5] Bai X,Shahidehpour S.Hydro.thermal scheduling by ta bu search and decomposition method[J].IEEE

PWRS,1996,11(2):968-974

[6] Gan D,Qu Z,Cai https://www.360docs.net/doc/3018659702.html,rge.scale var optimization and planning by tabu search[J].Electric Power System

Research,1996,39(3):195-204

[7] 文福栓,韩祯祥,基于Tabu搜索方法的输电系统最优规划[J].电网技术,1997,21(5):2-7

[8] 刑文训, 谢金星,现代优化计算方法[M]. 清华大学出版社.2005年9月.

[9] 郎茂祥,物流配送车辆调度问题的模型和算法研究[D].北京:北方交通大学博士学位论文,2002.2

[10] S.Lin, Computer solutions of the traveling salesman problem. Bell System Tech[J].1964:2245-2246.

[11] 胡大伟,陈诚,遗传算法和禁忌搜索算法在配送中心选址和路线问题中的应用[J].系统工程理论与实

践,2007.9

Solving Location Routing Problems with Taboo Search

Lin Huigang1, Hu Dawei1, Xu Lirui1,2

1 College of automobile, Chang’an University, xi’an(710061)

2 Department of Business Administration, Shan’xi Polytechnic Institute, xianyang,Shanxi

( 712000)

Abstract

Location routing problem is one of the hard problems in distribution network designing and logistic management, which has been used solving every logistics distribution corporations. As a NP-hard problem, most of the algorithms for LRP at present confine to use the output of location allocation problems as the input of vehicle routing problems. However, on the condition of the best output of LAP the best output of VRP would be not the best solve of LRP, which absolutely leads to the situation that this solving manner would be limited into the best local solution. The paper uses Lingo software to validate LRP of test data in miniature, then using taboo search (TS) to solve LAP and each hub’s VRP, let the output of VRP as the input of LAP, and then let the solution and neighbor solution of LAP as the input of VRP repeat this process continuous to solve MDLRP, based on which large scale test data has been formulated. The result indicates that using TS solving MDLRP with certain scale data is speediness and effective.

Keywords: location routing problems, location allocation problems, vehicle routing problems, taboo search.

禁忌搜索算法浅析

禁忌搜索算法浅析 摘要:本文介绍了禁忌搜索算法的基本思想、算法流程及其实现的伪代码。禁忌搜索算法(Tabu Search或Taboo Search,简称TS算法)是一种全局性邻域搜索算法,可以有效地解决组合优化问题,引导算法跳出局部最优解,转向全局最优解的功能。 关键词:禁忌搜索算法;组合优化;近似算法;邻域搜索 1禁忌搜索算法概述 禁忌搜索算法(Tabu Search)是由美国科罗拉多州大学的Fred Glover教授在1986年左右提出来的,是一个用来跳出局部最优的搜寻方法。在解决最优问题上,一般区分为两种方式:一种是传统的方法,另一种方法则是一些启发式搜索算法。使用传统的方法,我们必须对每一个问题都去设计一套算法,相当不方便,缺乏广泛性,优点在于我们可以证明算法的正确性,我们可以保证找到的答案是最优的;而对于启发式算法,针对不同的问题,我们可以套用同一个架构来寻找答案,在这个过程中,我们只需要设计评价函数以及如何找到下一个可能解的函数等,所以启发式算法的广泛性比较高,但相对在准确度上就不一定能够达到最优,但是在实际问题中启发式算法那有着更广泛的应用。 禁忌搜索是一种亚启发式随机搜索算法,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解,TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向。 TS是人工智能的一种体现,是局部领域搜索的一种扩展。禁忌搜索是在领域搜索的基础上,通过设置禁忌表来禁忌一些已经历的操作,并利用藐视准则来奖励一些优良状态,其中涉及邻域(neighborhood)、禁忌表(tabu list)、禁忌长度(tabu 1ength)、候选解(candidate)、藐视准则(candidate)等影响禁忌搜索算法性能的关键因素。迄今为止,TS算法在组合优化、生产调度、机器学习、电路设计和神经网络等领域取得了很大的成功,近年来又在函数全局优化方面得到较多的研究,并大有发展的趋势。 2禁忌搜索算法的基本思想 禁忌搜索最重要的思想是标记对应已搜索的局部最优解的一些对象,并在进一步的迭代搜索中尽量避开这些对象(而不是绝对禁止循环),从而保证对不同的有效搜索途径的探索,TS的禁忌策略尽量避免迂回搜索,它是一种确定性的局部极小突跳策略。 禁忌搜索是对局部邻域搜索的一种扩展,是一种全局逐步寻求最优算法。局部邻域搜索是基于贪婪思想持续地在当前解的邻域中进行搜索,虽然算法通用易实现,且容易理解,但搜索性能完全依赖于邻域结构和初解,尤其会陷入局部极小而无法保证全局优化型。 禁忌搜索算法中充分体现了集中和扩散两个策略,它的集中策略体现在局部搜索,即从一点出发,在这点的邻域内寻求更好的解,以达到局部最优解而结束,为了跳出局部最优解,扩散策略通过禁忌表的功能来实现。禁忌表中记下已经到达的某些信息,算法通过对禁

禁忌搜索算法评述(一)

禁忌搜索算法评述(一) 摘要:工程应用中存在大量的优化问题,对优化算法的研究是目前研究的热点之一。禁忌搜索算法作为一种新兴的智能搜索算法具有模拟人类智能的记忆机制,已被广泛应用于各类优化领域并取得了理想的效果。本文介绍了禁忌搜索算法的特点、应用领域、研究进展,概述了它的算法基本流程,评述了算法设计过程中的关键要点,最后探讨了禁忌搜索算法的研究方向和发展趋势。 关键词:禁忌搜索算法;优化;禁忌表;启发式;智能算法 1引言 工程领域内存在大量的优化问题,对于优化算法的研究一直是计算机领域内的一个热点问题。优化算法主要分为启发式算法和智能随机算法。启发式算法依赖对问题性质的认识,属于局部优化算法。智能随机算法不依赖问题的性质,按一定规则搜索解空间,直到搜索到近似优解或最优解,属于全局优化算法,其代表有遗传算法、模拟退火算法、粒子群算法、禁忌搜索算法等。禁忌搜索算法(TabuSearch,TS)最早是由Glover在1986年提出,它的实质是对局部邻域搜索的一种拓展。TS算法通过模拟人类智能的记忆机制,采用禁忌策略限制搜索过程陷入局部最优来避免迂回搜索。同时引入特赦(破禁)准则来释放一些被禁忌的优良状态,以保证搜索过程的有效性和多样性。TS算法是一种具有不同于遗传和模拟退火等算法特点的智能随机算法,可以克服搜索过程易于早熟收敛的缺陷而达到全局优化1]。 迄今为止,TS算法已经广泛应用于组合优化、机器学习、生产调度、函数优化、电路设计、路由优化、投资分析和神经网络等领域,并显示出极好的研究前景2~9,11~15]。目前关于TS 的研究主要分为对TS算法过程和关键步骤的改进,用TS改进已有优化算法和应用TS相关算法求解工程优化问题三个方面。 禁忌搜索提出了一种基于智能记忆的框架,在实际实现过程中可以根据问题的性质做有针对性的设计,本文在给出禁忌搜索基本流程的基础上,对如何设计算法中的关键步骤进行了有益的总结和分析。 2禁忌搜索算法的基本流程 TS算法一般流程描述1]: (1)设定算法参数,产生初始解x,置空禁忌表。 (2)判断是否满足终止条件?若是,则结束,并输出结果;否则,继续以下步骤。 (3)利用当前解x的邻域结构产生邻域解,并从中确定若干候选解。 (4)对候选解判断是否满足藐视准则?若成立,则用满足藐视准则的最佳状态y替代x成为新的当前解,并用y对应的禁忌对象替换最早进入禁忌表的禁忌对象,同时用y替换“bestsofar”状态,然后转步骤(6);否则,继续以下步骤。 (5)判断候选解对应的各对象的禁忌情况,选择候选解集中非禁忌对象对应的最佳状态为新的当前解,同时用与之对应的禁忌对象替换最早进入禁忌表的禁忌对象。 (6)转步骤(2)。 算法可用图1所示的流程图更为直观的描述。 3禁忌搜索算法中的关键设计 3.1编码及初始解的构造 禁忌搜索算法首先要对待求解的问题进行抽象,分析问题解的形式以形成编码。禁忌搜索的过程就是在解的编码空间里找出代表最优解或近似优解的编码串。编码串的设计方式有多种策略,主要根据待解问题的特征而定。二进制编码将问题的解用一个二进制串来表示2],十进制编码将问题的解用一个十进制串来表示3],实数编码将问题的解用一个实数来表示4],在某些组合优化问题中,还经常使用混合编码5]、0-1矩阵编码等。 禁忌搜索对初始解的依赖较大,好的初始解往往会提高最终的优化效果。初始解的构造可以

论文-禁忌搜索算法

基于禁忌搜索算法的车辆路径选择 摘要:本文从VRP的提出背景与求解方法出发,阐释了禁忌搜索算法的原理与影响算法性能的关键因素,进而将禁忌搜索算法的思想运用于解决车辆路径问题,在VRP问题初始解的基础上,用禁忌搜索算法优化车辆配送路线,设计出直观且策略易于理解的客户直接排列的解的表示方法,最后将该算法用C语言实现并用于求解VRP问题,测试结果表明该算法可行且解的质量较高。 关键词:车辆路径问题;禁忌搜索;邻域;禁忌表 1.引言 物流配送过程的成本构成中,运输成本占到52%之多,如何安排运输车辆的行驶路径,使得配送车辆依照最短行驶路径或最短时间费用,在满足服务时间限制、车辆容量限制、行驶里程限制等约束条件下,依次服务于每个客户后返回起点,实现总运输成本的最小化,车辆路径问题正是基于这一需求而产生的。求解车辆路径问题(Vehicle Routing Problem简记VRP)的方法分为精确算法与启发式算法,精确算法随问题规模的增大,时间复杂度与空间复杂度呈指数增长,且VRP问题属于NP-hard问题,求解比较困难,因此启发式算法成为求解VRP问题的主要方法。禁忌搜索算法是启发式算法的一种,为求解VRP提供了新的工具。本文通过一种客户直接排列的解的表示方法,设计了一种求解车辆路径问题的新的禁忌搜索算法。 因此研究车辆路径问题,就是要研究如何安排运输车辆的行驶路线,使运输车辆依照最短的行驶路径或最短的时间费用,依次服务于每个客户后返回起点,总的运输成本实现最小。 2.车辆路径问题的禁忌搜索算法 2.1 车辆路径问题的描述 车辆路径问题的研究目标是对一系列送货点或取货点,确定适当的配送车辆行驶路线,使车辆有序地通过它们,在满足一定的约束条件(如货物需求量、发送量交发货时间、车辆容量限制、行驶里程限制、时间限制等)下,达到一定的目标(如路程最短、费用最小、时间尽量少、使用车辆尽量少等)。参见下图2.1所示:其中0表示配送中心,1~8表示客户编号。 图2.1 车辆路径问题 在本文中为使得问题易于理解,将该问题描述为:有一定数量的客户,各自有不同数量的货物需求,且每个客户的位置和需求量一定,一个物流中心提供这些货物,并有一个车队负责分送货物,每台配送车辆的载重量一定,这里假设车辆的型号一致,即最大载重量和最

禁忌搜索和应用

目录 一、摘要 (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提供了新的工具。本文通过一种客户直接排列的解的表示方法,设计了一种求解车辆路径问题的新的禁忌搜索算法。 因此研究车辆路径问题,就是要研究如何安排运输车辆的行驶路线,使运输车辆依照最

禁忌搜索算法摘录

禁忌(Tabu Search)算法是一种亚启发式(meta-heuristic)随机搜索算法1,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解,TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向,这就是Tabu表的建立。 为了找到“全局最优解”,就不应该执着于某一个特定的区域。局部搜索的缺点就是太贪婪地对某一个局部区域以及其邻域搜索,导致一叶障目,不见泰山。禁忌搜索就是对于找到的一部分局部最优解,有意识地避开它(但不是完全隔绝),从而获得更多的搜索区间。兔子们找到了泰山,它们之中的一只就会留守在这里,其他的再去别的地方寻找。就这样,一大圈后,把找到的几个山峰一比较,珠穆朗玛峰脱颖而出。 当兔子们再寻找的时候,一般地会有意识地避开泰山,因为他们知道,这里已经找过,并且有一只兔子在那里看着了。这就是禁忌搜索 中“禁忌表(tabu list)”的含义。那只留在泰山的兔子一般不会就安家在那里了,它会在一定时间后重新回到找最高峰的大军,因为这个时候已经有了许多新的消息,泰山毕竟也有一个不错的高度,需要重新考虑,这个归队时间,在禁忌搜索里面叫做“禁忌长度(tabu length)”;如果在搜索的过程中,留守泰山的兔子还没有归队,但是找到的地方全是华北平原等比较低的地方,兔子们就不得不再次考虑选中泰山,也就是说,当一个没有兔子留守的地方优越性太突出,超过 了“best so far”的状态,就可以不顾及有没有兔子留守,都把这个地方考虑进来,这就叫“特赦准则(aspiration criterion)”。这三个概念是禁忌搜索和一般搜索准则最不同的地方,算法的优化也关键在这里。 伪码表达 procedure tabu search; begin initialize a string vc at random,clear up the tabu list; cur:=vc; repeat select a new string vn in the neighborhood of vc; if va>best_to_far then {va is a string in the tabu list} begin

禁忌搜索算法公式

6.2基于均衡原理的LRP 算法设计 6.2.1基于均衡原理的LRP 算法整体流程 基于均衡原理的LRP 算法整体流程如下: step1:初始化,设置整体收敛性判断参数δ; step2:随机生成一组LRP 选址问题的解D ,求出相应的目标值F ; step3:根据上层解D ,利用Frank-Wolfe 算法(见6.2.3节)求出各客户的 货物总量Q j 及客户在各配送中心的货物均衡分配量x j i ,; step4:根据D 及x j i ,运用禁忌算法求解VRP 问题(见6.2.4节),得出各配送 中对各客户的单位货物配送费用C j i ,; step5:根据 x j i ,及公式(6-8)求出下层 x j i ,与 d i 的关系y d x j i i j i W ,,+ =; step6:将LRP 模型上层目标函数中用代替,并代入下层求得的Q j 和C j i ,,运用禁忌算法 求得新的LRP 选址规划的解'Z 及目标函数'F (见6.2.2节); step7:如果δ<-F F ' ,转step8,算法结束,D 、F 为LRP 的最终解和解值;否则 '':,:F F D D ==,转step3; step8:算法结束。 6.2.2 LRP 选址规划的禁忌算法 模型上层是基于0-1整数规划的选址问题。由于选址问题是NP-hard ,如果 用精确算法求解,对节点数目的限制将有严格的要求。本章根据模型的特点, 采用禁忌算法优化产业选址问题。 1.解的构造和初始解的生成 采用二进制编码,编码长度为潜在的配送中心地点数量N T ,对于编码中位置i ,1表示选中i 点作为厂址,0表示没有选中。对于解中任意点i ,产生随机数δ,如果N T N /≥δ,则置i 点为0,否则置1。重复以上步骤m 次,得到初始解。 2.邻域的搜索 根据本章选址问题的特点,设计了三种邻域操作,分别为自身取反、2-swap 交换和2-opt 交换。 1).自身取反。为单点操作,即选择解中i 点,对该点的值取反; 2).2-swap 交换。为双点操作,选择解中两点进行交换,其它位置的值不变。例如解001101中的2、6点被选中,则2-swap 交换后变为:011100; 3).2-opt 交换。为多点操作,选择解中两点进行交换,同时两点之间的值逆序改变。例如解001101中的2、6点被选中,则2-swap 交换后变为:010110;

禁忌搜索算法

无时限单向配送车辆优化调度问题的禁忌搜索算法无时限单向配送车辆优化调度问题,是指在制定配送路线时不考虑客户对货物送到(或取走)时间要求的纯送货(或纯取货)车辆调度问题。 无时限单向配送车辆优化调度问题可以描述为:从某配送中心用多台配送车辆向多个客户送货,每个客户的位置和需求量一定,每台配送车辆的载重量一定,其一次配送的最大行驶距离一定,要求合理安排车辆配送路线,使目标函数得到优化,并满足一下条件:(1)每条配送路径上各客户的需求量之和不超过配送车辆的载重量; (2)每条配送路径的长度不超过配送车辆一次配送的最大行驶距离; (3)每个客户的需求必须满足,且只能由一台配送车辆送货。 一、禁忌搜索算法的原理 禁忌搜索算法是解决组合优化问题的一种优化方法。该算法是局部搜索算法的推广,其特点是采用禁忌技术,即用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来挑出局部最优点。 在禁忌搜索算法中,首先按照随机方法产生一个初始解作为当前解,然后在当前解的领域中搜索若干个解,取其中的最优解作为新的当前解。为了避免陷入局部最优解,这种优化方法允许一定的下山操作(使解的质量变差)。另外,为了避免对已搜索过的局部最优解的重复,禁忌搜索算法使用禁忌表记录已搜索的局部最优解的历史信息,这可在一定程度上使搜索过程避开局部极值点,从而开辟新的搜索区域。 二、算法要素的设计 1.禁忌对象的确定 禁忌对象是指禁忌表中被禁的那些变化元素。由于解状态的变化可以分为解的简单变化、解向量分量的变化和目标值变化三种情况,则在确定禁忌对象时也有相对应的三种禁忌情况。 一般来说,对解的简单变化进行禁忌比另两种的受禁范围要小,因此可能早能造成计算时间的增加,但其优点是提供了较大的搜索范围。 根据配送车辆优化调度问题的特点,可采用对解的简单变化进行禁忌的方法。举例进行说明:当解从x变化到y时,y可能是局部最优解,为了避开局部最优解,禁忌y这一解再度出现,可采用如下禁忌规则:当y的领域中有比它更优的解时,选择更优的解;当y为其领域的局部最优解时,不再选y,而选比y稍差的解。 2.禁忌长度的确定 禁忌长度是指被禁对象不允许被选取的迭代步数,一般是给被禁忌对象x一个数l(称为禁忌长度),要求x在l步迭代内被禁,在禁忌表中采用Tabu(x)=l记忆,每迭代一步,该指标做运算Tabu(x)=l-1,直到Tabu(x)=0时解禁。关于禁忌长度l的选取,可归纳为以下几种情况。 (1)l为常数,可取l=10、(n为领域中邻居的总个数)。这种规则容易在算法中实现。 (2)。此时,l是可以变化的数,其变化的依据是被禁对象的目标函数值和领域的结构。、是确定的数,确定的常用方法是根据问题的规模N,限定变化区间;也可以用领域中邻居的个数n确定变化区间。 禁忌长度的选取同实际问题和算法设计者的经验有紧密联系,同时它也会影响计算的复杂性,过短会造成循环的出现,过长又会造成计算时间的增加。 3.候选集合的确定 候选集合由领域中的邻居组成,常规的方法是从领域中选择若干个目标函数值或评价值最佳的邻居。

禁忌搜索算法CC++源代码

禁忌搜索算法C/C++源代码 #define N 100 void yuesefu1(int data[],int result[],int sum,int k) { int i=0,j=0,count=0; int n; while(count=count)/*若此人还在圈内*/ j++; if(j==k) { result[count++]=data[i];/*把出圈的人的编号存入禁忌表*/ j=0; } i++; if(i==sum) i=0; } } void main() { int data[N]; int result[N]={0}; int i,j,total,k; printf("\nPlease input the number of every people.\n"); for(i=0;i=i&&input>0) { data[i]=input; i++;

} else printf("\nData error.Re-input:"); } total=i; printf("\nY ou have input:\n"); for(i=0;i

2013年数学建模第一题方法总结禁忌搜索算法

禁忌搜索算法 又名“tabu搜索算法” 为了找到“全局最优解”,就不应该执着于某一个特定的区域。局部搜索的缺点就是太贪婪地对某一个局部区域以及其邻域搜索,导致一叶障目,不见泰山。禁忌搜索就是对于找到的一部分局部最优解,有意识地避开它(但不是完全隔绝),从而获得更多的搜索区间。兔子们找到了泰山,它们之中的一只就会留守在这里,其他的再去别的地方寻找。就这样,一大圈后,把找到的几个山峰一比较,珠穆朗玛峰脱颖而出。 当兔子们再寻找的时候,一般地会有意识地避开泰山,因为他们知道,这里已经找过,并且有一只兔子在那里看着了。这就是禁忌搜索中“禁忌表(tabu list)”的含义。那只留在泰山的兔子一般不会就安家在那里了,它会在一定时间后重新回到找最高峰的大军,因为这个时候已经有了许多新的消息,泰山毕竟也有一个不错的高度,需要重新考虑,这个归队时间,在禁忌搜索里面叫做“禁忌长度(tabu length)”;如果在搜索的过程中,留守泰山的兔子还没有归队,但是找到的地方全是华北平原等比较低的地方,兔子们就不得不再次考虑选中泰山,也就是说,当一个有兔子留守的地方优越性太突出,超过了“best to far”的状态,就可以不顾及有没有兔子留守,都把这个地方考虑进来,这就叫“特赦准则(aspiration criterion)”。这三个概念是禁忌搜索和一般搜索准则最不同的地方,算法的优化也关键在这里。 伪码表达: procedure tabu search; begin initialize a string vc at random,clear up the tabu list; cur:=vc; repeat select a new string vn in the neighborhood of vc; if va>best_to_far then {va is a string in the tabu list} begin cur:=va; let va take place of the oldest string in the tabu list; best_to_far:=va; end else begin cur:=vn; let vn take place of the oldest string in the tabu list; end; until (termination-condition); end; 以上程序中有关键的几点:

禁忌搜索算法

禁忌搜索算法 2009210042 李同玲运筹学与控制论 搜索是人工智能的一个基本问题,一个问题的求解过程就是搜索。人工智能在各应用领域中,被广泛的使用。现在,搜索技术渗透在各种人工智能系统中,可以说没有哪一种人工智能的应用不用搜索方法。 禁忌搜索算法(Tabu Search或Taboo Search,简称TS)的思想最早由Glover (美国工程院院士,科罗拉多大学教授)在1977年提出,它是对局部邻域搜索的一种扩展,是一种全局邻域搜索算法,是人工智能的一种体现,是一种全局逐步寻优算法,是对人类智力过程的一种模拟。TS算法通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来赦免一些被禁忌的优良状态,进而保证多样化的有效探索以最终实现全局优化。迄今为止,TS算法在组合优化、生产调度、机器学习、电路设计和神经网络等领域取得了很大的成功,近年来又在函数全局优化方面得到较多的研究,并大有发展的趋势。 1.1引言 1.1.1局部邻域搜索 局部邻域搜索是基于贪婪思想持续地在当前的邻域中进行搜索,虽然算法通用易实现,且容易理解,但其搜索性能完全依赖于邻域结构和初始解,尤其容易陷入局部极小而无法保证全局优化性。 局部搜索的算法可以描述为:

1、 选定一个初始可行解:0x ; 记录当前最优解0best x x =,()best T N x =; 2、 当\best T x =?时,或满足其他停止运算准则时,输出计算结果, 停止运算;否则,从T 中选一集合S ,得到S 中的最好解now x ;若()()now best f x f x <,则b e s t n o w x x =,()best T N x =;否则,\T T S =;重复2,继续搜索 这种邻域搜索方法容易实现理解,容易实现,而且具有很好的通用性,但是搜索结果完全依赖于初始解和邻域的结构,而且只能搜索到局部最优解。为了实现全局搜索,禁忌搜索采用允许接受劣解来逃离局部最优解。针对局部领域搜索,为了实现全局优化,可尝试的途径有:以可控性概率接受劣解来逃逸局部极小,如模拟退火算法;扩大领域搜索结构,如TSP 的2-opt 扩展到k-opt ;多点并行搜索,如进化计算;变结构领域搜索( Mladenovic et al,1997);另外,就是采用TS 的禁忌策略尽量避免迂回搜索,它是一种确定性的局部极小突跳策略。 1.1.2禁忌搜索算法的基本思想 禁忌搜索算法的基本思想就是在搜索过程中将近期的历史上的搜索过程存放在禁忌表(Tabu List )中,阻止算法重复进入,这样就有效地防止了搜索过程的循环。禁忌表模仿了人类的记忆功能,禁忌搜索因此得名,所以称它是一种智能优化算法。 具体的思路如下:禁忌搜索算法采用了邻域选优的搜索方法,为了能逃离局部最优解,算法必须能够接受劣解,也就是每一次迭代得到的解不必一定优于原来的解。但是。一旦接受了劣解,迭代就可能

相关文档
最新文档