基于禁忌搜索算法的货物运输路径和方式选择问题研究

基于禁忌搜索算法的货物运输路径和方式选择问题研究
基于禁忌搜索算法的货物运输路径和方式选择问题研究

d o i:10.3969/j .is s n.1005—152X.2010.12.030

基于禁忌搜索算法的货物运输

路径和方式选择问题研究

王清校,郎茂祥,彭永昭,张晓洁

(北京交通大学交通运输学院,北京100044)

[摘 要]在对货物运输路径和方式选择问题进行简单描述的基础上,提出了将该货物运输问题分解为多个单路径、多种运输方式组合问题进行求解的策略。通过设计解的表示和评价方法,构建了求解该问题的禁忌搜索算法,并进行了实验计算。计算结果表明,用本文设计的算法优化货物运输路径和方式选择问题,不仅可以取得很好的计算结果,而且收敛速度较快,结果也较稳定。

[关键词]货物运输路径和方式选择问题;禁忌搜索算法;优化

[中图分类号]F224.0 [文献标识码]A [文章编号]1005-152X (2010)12-0096-03

Research on Fre i ght Tran sport Route and M ode Selecti on Ba sed on Tabu Search A lgor ith m

WANG Q ing -xiao,LANG Mao -xiang,PE NG Yong -zhao,Z HANG Xiao -jie (School of Traffic &Trans portati on,Beijing J iaot ong University,Beijing 100044,China )

Abstract:On the basis of a brief intr oducti on of the selecti on of freight trans port r outes and modes,the paper p r oposes t o break up the whole p r ocess of freight trans port int o component p r ocesses of multi p le single -r oute and single -mode trans port and then works out the tabu search algorith m for the s oluti on t o each of the p r ocesses,which is tested in a subsequent experi m ental study,with findings showing that the algorith m p r oposed here can ensure higher convergence rate and r obustness .

Keywords:selecti on of r oute and mode in freight trans port;tabu search algorith m;op ti m izati on

 [收稿日期] 2010-03-14

 [作者简介] 王清校(1986-),男,安徽省阜阳人,北京交通大学交通运输学院在读硕士研究生,主要研究方向:交通运输规划与管理;

郎茂祥,男,北京交通大学交通运输学院教授,博士生导师;彭永昭,女,北京交通大学交通运输学院在读博士研究生;张晓洁,女,北京交通大学运输学院在读硕士研究生。

1 引言

货物运输是物流的两大核心功能之一,也是降低物流费用的重要环节,单一运输方式的货物运输方案不仅难以降低运输费用,而且无法充分利用现有社会运力,不利于国民经济的发展。因此,研究给定货物运输网络中的运输方式的组合问题具有重要的理论和现实意义。

货物运输方案优化是一个难以实现精确和简单、实用相统一的复杂问题,特别是多种运输方式的组合问题,涉及的因素有多种,是一个多目标优化问题。求解该问题的一般做法是先将其转化为单目标问题模型,然后再对模型进行求解。因为成本和时间的量纲不同,文献[1]用“惩罚因子”将运输时间转化成价值作为总运输成本的一项;文献[2]将时间和成本处理成无量纲量后取目标最小值并用L I N G O 8.0求解;文献[3]为了使用L I N G O 求解该类问题,根据需要增加虚拟节点

数,然后把原问题化成带时间和能力约束的最短路问题;文献[4]为成本和时间分别赋予一个权重后把时间作为目标函数的变量之一;更普遍的做法是将复杂的货物运输方案优化问题转化成网络图问题,再用遗传算法[5]或D ijkstra 算法[6]求解。

对于运输决策者来说,解决问题的方法越简单直接越容易接受,这就要求算法通俗易懂、易操作,且决策时间较短。本文基于货物运输成本的优化,通过对货物运输各通行路径进行分析和描述,设计解的表示和评价方法,然后用禁忌搜索算法求解,并通过算例计算验证求解算法的有效性和优越性。

2 问题描述

已知O 、D 两城市间有n 个城市(节点),两城市之间最多存在m 种运输方式。城市O 有一批货物(运量为Q )要运送到城市D,在运输中转过程中会产生中转费用和中转时间,不

69—技术与方法 物流技术

2010年6月刊(总第219期)

同种类的货物其运输服务要求不尽相同。根据需求方的要求,货物需在时间期限T天内交货,否则因迟交货物而造成的损失由承运方承担。要求运输决策者确定合理的运输路径和运输方式,优化运输方案完成运输任务,并满足以下约束条件:(1)货物不能分割,即不能分批、分别运输,两城市之间只能选一种运输工具;(2)为保证运输安全,公路运输必须按规定对运输设备状况及货物加固状况进行查验;(3)迟交货物时,承运方必须承担收货方的损失,该损失大小用惩罚因子P w来计算。

3 禁忌搜索算法的原理和步骤

禁忌搜索算法同其他启发式算法类似,首先按照随机方法产生一个解作为初始解,然后在其附近搜索若干个解,比较后取较优解作为新解。但禁忌搜索算法能够避免重复搜索局部最优解从而提高整体最优解的搜索能力,禁忌搜索算法用一个禁忌表记录已经到达过的局部最优点,在下一次搜索中,利用禁忌表的信息不再或有选择地搜索这些点,以此来跳出局部最优解[7]。其实现步骤如下:

第一步:选定一个初始解N

pop

,初始禁忌表tabulist=tabu2 list= 。

第二步:若满足终止准则,则转入第四步;否则在一定搜

索方向产生移动值f

m ove

,在N pop的领域D(N pop)中选择出满足

要求的候选集CD(N

pop

),转第三步。

第三步:在CD(N

pop )中选择一个评价值最好的解N

best

,令

N pop=N best,更新禁忌表tabulist,转第二步。

第四步:输出计算结果,终止算法。

4 货物运输路径和方式选择问题的求解策略和算法

在假设货物运力充分满足货物运输需求、无时间窗限制的前提下,通过设计禁忌搜索算法进行求解,寻求问题的最优解。用启发式算法求解问题时,一般需要确定解的表示方法、解的评价准则、领域操作规则以及终止准则。这些问题直接关系到算法速度及求解质量的高低。采用禁忌搜索算法时,还需设计禁忌对象、禁忌长度和候选集合。

(1)解的表示。将铁路、公路、水路、航空等运输方式用编码表示,分别对应于0、1、2、3,则3201表示依次选择航空、水路、铁路、公路。解中的各元素依次对应该路径上各节点与其下一节点间选用的运输方式。列出能够完成该货物运输问题的所有可行的运输路径,由于不同的运输路径上,经过的运输节点数可能也不相同,这样解的长度不统一。故为了使得各条路径上的节点数相等,保证解的长度统一,以便于算法实现,本文采用如下策略:比较各条路径上节点间的路段数,以最大的路段数作为解的长度,在路段数不足的路径上增加虚拟节点V使该条路径上的路段数与解的长度相等,规定在虚拟节点处不允许中转且与虚拟节点相连的下游路段长度为0 (如图1所示)。若通过求解得到第k条路径最佳,且最优解的编码为122221,可知最优路径上各节点(包括虚拟节点)间的运输方式依次为公路、水路、水路、水路、水路、公路。这表明应该选择第k条路径,且该路径上各运输方式组合优于本路径上其它运输方式组合,也优于其他路径上任意运输方式的组合

图1 运输路径和方式选择问题的路径图处理

(2)解的评价。用禁忌搜索算法求解组合优化问题时,需要判断当前解是否比原解更优,使得在迭代过程中,不断搜索到更优的解。在确定货物运输方案时,总是希望运输成本最低,故以运输费用最小作为目标值Z。根据该运输问题的描述,在得到问题的某个解时,首先要判断该解所对应的运输方案是否满足问题的约束条件,同时计算该运输方案所对应的目标值。对于满足约束条件的可行解,其目标值越低,说明解的质量越高。根据解的表示方法可知能保证任两相邻节点间只能选择一种运输方式,同时按规定进行中转,但不能保证运输时间也能满足货主要求。设为某个解对应的运输时间,承运方必须承担收货方的损失用惩罚因子P

W

表示(P

W

的值由货主决定)。则该问题解的评价值E可用公式(1)计算。

E=Z+P W sgn(t-T)(1)其中:当t-T>=0时sgn(t-T)=0,当t-T<0时sgn(t -T)=1。

(3)邻域操作。具体方法是随机选取解的某位元素,再随机产生一个不同编码代替该位的元素。现举例说明,设某个解为21213221,随机选择了第五位元素,再随机改变该位的编码,若随机产生的编码为0,实施邻域操作后可得该解的一个邻居21210221。

(4)终止准则。采用指定的迭代次数,达到迭代次数后算法终止。

(5)禁忌对象的确定。将每次得到的最好的解作为禁忌对象放在禁忌表中,并从禁忌表中释放最早被禁忌的那个解。

(6)禁忌长度。禁忌长度一般根据实际问题规模和经验而定,本文取一个常数。

(7)候选集合的确定。在当前解的领域中随机选择若干个邻居作为候选集。

5 算例

某年3月,武汉天丰公司夏利汽车销售旺盛,库存出现短缺,急需从天津一汽夏利公司下订单购买40辆夏利轿车。除不可抗力因素外,要求在5天之内交货(包括装车1天),即在途运输时间为4天,否则供方需依订购合同支付违约金,按迟交的时间以200元/(小时?辆)支付延误损失费,天津方面决定第二天上午9点从车站或港口起运。该轿车约尺寸为3 995×1615×1385(mm),重量约800kg,因体积和重量较大,是大件货物,所以排除飞机、管道运输的可能性。该轿车的托运起点为天津一汽夏利股份有限公司的生产车间,交货地为武汉天丰公司,当到达目的地时表明完成了运输任务。轿车采用公路运输时,按规范每百公里须检查车辆的加固定情况,每车每次检查平均耗时0.1h。经调查,可得各种运输

7

9

王清校,等:基于禁忌搜索算法的货物运输路径和方式选择问题研究 技术与方法

方式的平均速度如下:铁路为100k m /h,公路为70k m /h,水路(海洋和内河运输)为20k m /h;各种运输方式的运价如下:铁路为2.5元/辆公里,公路为4元/辆公里,水路为1元/辆公里。各节点间所有可用的运输方式均可作为候选运输方式,于是,可得轿车运输的径路图如图2所示

图2 轿车运输径路图

图2中各节点间距离、各运输方式间的换装费用及时间

分别见表1和表2。

表1 各城市之间的距离

(数据来自全国铁路和公路里程表)城市节点对铁路

公路

水路备注

天津-石家庄419306—天津-济南360485—

天津-上海132617871295

石家庄-郑州412411—济南-郑州666448—济南-南京663932—

上海-南京303300

365

郑州-武汉536493—南京-合肥312

185

南京-武汉—

690

合肥-武汉364636—上海-武汉

821

1298

1100

距离

单位:k m

表2 各运输方式间换装费用

(元/辆)/时间(小时/10辆)

运输工具公路铁路

水路

公路—

9/1.5

5/1.3铁路

9/1.5

15/2.5

由图2知,天津与武汉间有七条运输路径,其中第三条路径(天津-济南-南京-合肥-武汉)上节点数最多,共有4条路段,故解的表示用一串四位编码表示,在其他不足五个节点的路径上补充虚拟节点V,如图3所示。

图3 处理后的运输径路图

根据前文设计的禁忌搜索算法,用0表示铁路、1表示公路、2表示水路,解用一个四维向量表示:X =(x 1,x 2,x 3,

x 4),其中x 1,x 2,x 3,x 4∈{0,1,2}。随机生成一个解X 作为

初始解,经解的评价函数评价结果用结构体存储,包括费用、时间和路径。其中迭代步数取50,候选集规模选20,禁忌长度l =3。用禁忌搜索算法对该例题求解10次,经过50次迭代后均能得到该问题的最优解:选择第4条路径(即天津-济南-南京-V2—武汉),运输方式编码为X =(0,0,2,0),即在天津与济南、济南与南京间选择铁路,南京与武汉间选择水路,该运输方案的运输费用为130500元,运输时间为54.73h 。

另外,通过改变的取值,能够很快得出不同惩罚因子下的满意解。当惩罚因子较小时,还有可能得到运输时间超过96h 的运输方案,但总运输费用可降低。例如当P w 取20时,得到的最优解为从天津—(沿海运输)—上海—(内河运输)—武汉,总运输费用为111200元,但运输时间为117.5h,超过了客户要求的96h 的运输期限。可见需求方对运输服务的要求会直接影响供应企业或物流企业的运输决策。

6 结论

(1)论文提出了货物运输路径和方式选择问题的求解策

略,即以总的运输费用最少为目标,将该货物运输问题分解为多个单路径、多种运输方式组合问题进行求解。

(2)通过列出所有候选运输路径,本文方法比以往求解网

络图的方法更简单、省时,特别是当节点数较多时,这种优点更为明显。

(3)论文设计并实现了货物运输路径和方式选择问题的

求解算法,通过算例证明该算法的良好性能,在随意改变惩罚因子或其他服务要求(比如运输期限等)时,通过该算法都能得到问题的满意解。

[参考文献]

[1]梁雪玲、靳文舟.运输方式选择模型及其算法研究[J ].交通与计算

机,2008,26(3):83-93.

[2]张狄,季建华.基于成本与时间按约束的组合运输方案选择研究

[J ].重庆交通大学学报,2008,27(4):656-660.

[3]王巍,张小东,辛国栋.基于多式联运的组合优化模型及求解方法

[J ].计算机工程与应用,2009,45(7):212-214.

[4]姜军,陆建.集装箱多式联运系统中各种运输方式最优组合模式研

究[J ].物流技术,2008,27(4):127-129.

[5]陈相东.多种运输方式的组合优化模型中及其求解.天津理工大学

学报,2008,24(4):14-35.

[6]Haiqing Song,Gongyu Chen .M ini m um Cost Delivery Pr oble m in I nter 2modal Trans portati on Net w orks [J ].2007I EEE I nternati onal Confer 2ence on I ndustrial Engineering and Engineering Manage ment,2007.[7]杨浩.模型与算法[M ].北京:北方交通大学出版社,2002.

[8]郎茂祥.配送车辆优化调度模型与算法[M ].北京:电子工业出版

社,2009.

89—技术与方法 物流技术

2010年6月刊(总第219期)

禁忌搜索算法浅析

禁忌搜索算法浅析 摘要:本文介绍了禁忌搜索算法的基本思想、算法流程及其实现的伪代码。禁忌搜索算法(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 )中,阻止算法重复进入,这样就有效地防止了搜索过程的循环。禁忌表模仿了人类的记忆功能,禁忌搜索因此得名,所以称它是一种智能优化算法。 具体的思路如下:禁忌搜索算法采用了邻域选优的搜索方法,为了能逃离局部最优解,算法必须能够接受劣解,也就是每一次迭代得到的解不必一定优于原来的解。但是。一旦接受了劣解,迭代就可能

相关文档
最新文档