基于模式求解旅行商问题的蚁群算法
第 31卷第 11期
2oo3年 l1月
同 济 大 学 学 报
JOURNALOFTONGJI UNW ERSITY
V01.31 NO.11
NOV.2o03
基 于模 式 求解 旅 行 商 问题 的 蚁群 算 法
李炳宇 ,萧蕴诗
(同济 大学 信息 与控制 工程 系 ,上 海 2Oo092)
摘要 :群体 智 能 已经被 广泛 应 用于 分布式 控 制 、调 度 、优化 等领域 .其 中蚁群 算法 已经 成 为该 领 域 的一 个 研究 热
点 .在 蚁群 算法 的基础 上针 对旅 行 商问题 (TSP),首先 提 出 了小 窗 121蚁 群 算 法 ,提 高 初 始 解 的质 量 ,然 后 与基 于
模式 的蚁群 算法 相结 合 ,通 过提 取模 式 ,改 变计 算粒 度 ,缩 短计算 时 间 ,提高 计算 精 度 .实验 结果 表 明该 算 法 有较
好 的效 果 .
关键 词 :蚁 群算 法 ;小 窗 121;模式 ;旅行 商 问题
中图分 类 号 :TP 301.6 文 献标 识码 :A 文 章编 号 :0253—374X(2003)11—1348—05
Ant Colony Algorithm Based on Model Algorithm for
Travel ing Salesm an Prob lem
LI Bing-yu.XIA O Yun一
(Department of Information and Control Engineering,Tongji University,Shanghai 200092,China)
Abstract:Swarm intelligence has been applied in domains of distributed control,joh-shop schedule,and
optimization.Ant colony algorithm(ACO),one of SWalrfl intelligence,has become a hot research field.This
paper proposes an an t co lony algorithm based on little w indow an d obtains m odels from typical an t algorithm .
The algorithm reduces computing time an d improves computing accuracy by limiting the size of solution space,
extracting mod els an d changing computing gran ularity.Simulations demonstrate that the improved algorithm
carl achieve better performan ce than typical algorithm an d some other improved algorithm s.
Key words:ant colony algorithm ;little window;model;traveling salesman problem(TSP)
在管 理科学 、计算 机科学和工程 技术等 许多 领域 中 ,存 在着大 量组 合优 化 问题 .其 中许 多 问题 是 NP
完全 问题 .人们先 后使用 了禁忌搜索 (tabu search)算法 、模拟退 火算法 、遗传算法 、人工 神经 网络 等启 发式
搜索算法来求解此类组合 优化 问题 .20世 纪 90年代初 ,意大利学者 Dorigo等人受到蚂蚁在觅食过程 中可
以找 出巢穴到食物 源的最短路径 的启 发 ,提 出了蚁群算法 L1 J(ant colony algorithm),将其 应用 于求解 TsP
问题 L2J、Job-Shop调 度 L3 J、网 络 路 由L4J等 问题 ,并 取 得 了较 好 的结 果 .
虽然蚁群 算法 已经应用 于许 多组 合优化问题 ,但对蚁群算 法本身运行机制 的研究 却很 少 .本文通过对
蚁群算 法的研究发现 ,蚁群这个 自适应 系统与许 多复杂 自适应系统一样存在模 式 ,蚁群就是通过信息 素来
记忆 、更换和组合这些模 式 ,寻找最短路径 的.本文 在模式 的基 础上 ,针对 蚁群算 法 在较大 规模 问题
中计算 时间长 、运算 精度低 的问题 ,通过两方面对算法进 行 了改进 .首先通过 限定 蚂蚁每 步移 动的城市 数
目 ,大 大 降 低 解 空 间 的 规 模 ,提 高 解 的质 量 ;在 此 基 础 上 提 取 模 式 ,将 这 些 模 式 看 作 一 个 个 整 体 、一 个 个 “积
木 块 ”.再 在 这 些 “积 木 块 ”中寻 找 最 优 解 .该 改 进 算 法 的第 一 步 在 计 算 时 间 和 解 的 质 量 上 都 有 了很 大 的 提
高 ;在第 二 步 中 ,由 于 是 在 较 粗 的粒 度 上 计 算 ,将 一 个高 维 空 间 转 化 为 一 个 低 维 空 间 ,充 分 利 用 了蚁 群 算 法
收稿 日期 :2oo3—03一l4
作 者简 介 :李炳 宇 (1977一),男 ,山东成 武人 ,博士 生 .E—mail:yv.tou@163.tom
维普资讯 http://www.cqvip.com
第 11期 李炳 宇 ,等 :基 于模式求 解旅行 商 问题 的蚁群算 法
在低维空间有较好搜 索性能的特点 .实 验表明 ,该算法在 TSP问题上获得较好 的效果 .
文章 的组织如下 :首先介绍基本 蚁群算 法 和 目前 较 常用 的最大 最小 蚁群算 法 (MMAS)E5 3;其次分 析
蚁群算法 中模式和 信息素的关系 ;然后 详细说明本文 的改进算法 ;最后给 出实验结果 和结 论.
1 基 本 蚁群 算 法
蚁群算法源 于蚂 蚁 的觅 食 行 为 .蚂 蚁 在 觅 食 的 过 程 中,在 走 过 的路 径 下 留下 一 种 称 之 为 信 息 素
(pheromone)的物质 .其 它蚂蚁就 是靠这种信息素 的指 引往返 于食物 源与巢 穴之 间 .各条路 径上 的信息素
都会 随着 时间的迁移而不断蒸发减 少 .但某条 路径 上走 过 的蚂蚁越 多 ,则 路径 上残 留的信 息 素强度 就越
高 .蚂蚁在运 动 的过程 中总是倾 向朝信 息素强度 高的方 向运 动 .换 句话说 ,蚂蚁 选择 信息 素强度高 的路径
比强度低 的路径 的概率要 高些 .设想 当几 只蚂蚁 分别沿着 不同 的路径 回巢 ,长度越短 的路径上信 息素的强
度越高 ,其它蚂蚁选择这样路 径的概率 也越大 ,选择 的蚂蚁越 多 ,路径 上 的信 息素 强度也 会更高 ,这 样形
成正反馈 ,使更多 的蚂蚁集 中到最短的路径上来 .蚁群算法就 是模拟 上述蚂蚁觅食行 为 ,设计虚拟 的蚂蚁 ,
使其 随机搜 索不 同 的路径 ,并 留下会随时间变化而蒸 发 的“信息 素”,根据“信息 素”强 度来 寻找 最短路径 .
在蚁群算法 中 ,将 自然蚂蚁群 体抽象为“人 工蚂蚁 系统 ”,人工蚂蚁系统具有 以下特 点 :
(1)每只蚂蚁都有一个记 录 自己已经走过城市 的禁 忌表 (tabu^(s)),以控制 蚂蚁寻 找路径 的合法 性 ,
从起 点出发遍历其它所有城市 1次且仅有 1次 ,并 最终 回到起 点 .
(2)每只蚂蚁根据城市 i到城市 的移动概率和禁忌表来决定下 一个要 到达 的城市 ,在 t时刻蚂蚁 的
移 动 概率 表 示 为
f[rij(£) 训 /l∑ (£)H j, ∈允许的 ,、 筠
∈允许的 L1,
0, 其它 的
其中 :r(t)表示在循 环 t,边 E 上 的信 息素强度 ; 表示 E ,上 的路径 信息 ;a,J9是权 重参数 ; ∈允许 的 ,
表 示 禁 忌 表 中还 未 经 过 的城 市 .
(3)周游 完成后 ,蚂蚁在它每一条访 问的边上 留下信 息素 .信息素根据 下式调整 :
ri (t+1)= pr ,(t)+△r (t) (2)
Ar(t): ∑ △ (t) (3)
式(2)中 P∈(0,1),1一P表示信 息素 的蒸发速度 ,初始 时刻 (O)是 1个常数 ;式(3)表示本 次循 环中路 径
E 上信 息素 的增量 (即为 TFt只蚂蚁本次循环 留在路径上 的信 息素之和 ).△ 是 在循环 t第 k只蚂蚁 留在
边 E£ 上 的信息素 的增量 .
只蚂蚁经 过边 (4)
其 中 :信息素强度 Q 为 常数 ;Lk为蚂蚁 k所走过 的路 径总长度 .
此外 ,本文 的改 进算 法 就是 建 立 在 最大 最 小 蚁群 算 法 (MMAS)和 2变换 邻 域 局 部搜 索 (MMAS+
2opt)的基 础 之 上 的 .
2 蚁群算法 中的模式分析
在 个 城市 的 TSP问题 中,TSP的一个 解 可 以表述 为一 个循 环 排列 V=(可1,口2,? ,"Un,口1),表示
口1一 口2一 ?一 口 一 口l的一条路 径 ,口 表示该路径 中第 i个 经过 的城市 .设 以 为该 TSP问题 的一个解 集 ,
则 有 VE A,求 解 TSP 问题 就 是 在 以 中 寻 找 一个 解 , 表 示 的路 径 长 度 最 短 .
本文将解 集 A 中 2个 任意解 ,V 的交集 定义 为 :H = Vi n . 表示 ,V 中相同排 列 的子
集 .说 明如下 ,不失 一般 性 ,设解 ,V 分 别 表示 为 :Vi= (? Vk,* * *,口 ,? ,口 ,* * * **,口 ,
? ),vj=(? ,*****, ",? ,73k,* **,口优,?). 0, ep(口 ,* ** **,口 ),(vk,** *,
维普资讯 http://www.cqvip.com
同 济 大 学 学 报 第 31卷
)表示城市数 目和排列顺序 相同的子集(子集 中包含 的城 市数 目大 于等 于 2,在不 同解 中的相对位 置可
能不 同).令 h州=( ,*****, ),h 2=( ,** *, ),则 ,=(h 1,hq2).如果 , 中有 多
个相 同的子集 ,则 =(h ,h啦,? ,h ) ,1≤ z≤ /2.若解 , 无相 同的子 集 ,则 ,= .
在 此 引 入 模 式 的概 念 ,将 中 的 h 1,h ,2,? ,^ 称 为模 式 ,将 h 1,h 2,? ,^ 看 成 一 个个 “积 木 块 ”,
用模 式的概 念来解释蚁群算 法 .蚂蚁周游完 所有城市后 ,对最短 的路径添加信息 素 ,使得该路径上 “好的模
式 ”有 更 高 的概 率 在 下 一 次 周 游 中被 选 中 .而 在 第 二 次 周 游 中 ,选 中 “好 的模 式 ”的 路 径 也 更 有 可 能 发 现 更
短 的路径 .这样周 而复始 ,通过信息素 的正反馈 ,使“好 的模 式”不 断被强 化 ,而通 过信息素 的蒸发丢弃那些
“不 好 的模 式 ”,这 样 不 断 缩 小 搜 索 空 间 ,积 累 “好 的 模 式 ”,通 过 “好 的 模 式 ”的 拼 搭 结 合 ,从 而 找 到 更 优 的
解 .因此 可以看 出 ,如何 有效地发现和利用 “好 的模式”对蚁群算法解 的质量有很 大 的影响 .
3 基 于模 式 的蚁 群 算 法
TSP是 一 个 强 NP完 全 问题 ,即使 在 每 秒 能 计 算 100万 个 解 的计 算 机 上 遍 历 50个 城 市 TSP 的解 空
间 ,也需要将 近 47个世纪 ,而 100个城市 的问题则需要 140个世纪 .以往 的蚁群算 法基本 上都是在整个解
空间 中搜索 ,通过信 息素 的启发来 寻找最优解 .随着城 市数 目的增大 ,其 解空 间急剧放 大 ,使得在有 限时 间
内很难 找到满意 的结果 .而通过调整信 息素和加入变异 的改进蚁群 算法 ,仍 然有计 算 时间长 的缺点 .本文
通 过 两 步来 提 取 和 利 用模 式 以缩 短 计 算 时 间 和提 高 计 算 精 度 .首 先 ,通 过 小 窗 口算 法 将 解 空 间缩 小 几 十 个
数 量 级 ,以更 高 的概 率 得 到 “好 的模 式 ”;在 此 基 础 上 ,将 这 些 模 式 看 作 一 个 个 整 体 ,将 一 个 高 维 空 间转 化 为
一 个低维空 间 ,在较粗 的粒 度上计 算 以提高计算速度 ,并利用 2opt局部 搜索方法提高搜索 效率 .
3.1 小 窗 口算法
本文作者在对 TSP问题 研究 的过程 中发现 ,TSP问题解 空间 中绝大部 分是 劣质 解 ,而且 干扰对优 质
解 的 寻 找 .如 果 能 剔 除 这 些 劣 质 解 ,不 但 可 以缩 小 解 空 间 的搜 索 范 围 ,而 且 可 以减 少 劣 质 解 的 干扰 ,迅 速 发
现 优 质 解 .下 面 用 Oiver30 ysp[6J来 说 明小 窗 口算 法 的原 理 .图 1显 示 了 Oiver30的 最 优 路 线 .
在 图 1中 可 以发 现 ,与 每 个 城 市 相 连 的另 外 2个 城 市 是 与 该 城 市 最 近 的 几 个 城 市 中 的 2个 .如 城 市
15,与 之 相 连 的 城市 14,16就 是 距 离 城 市 15最 近 的城 市 中的 2个 .其 它 的 城 市 也 可 以 发 现类 似 的特 点 .而
绝 不 会 出 现 如 图 2所 示 的 最 优 解 ,或 者说 如 果 出现 了城 市 15~0,16~ 1这 样 的路 径 ,那 么存 在 这 样 路 径 的
解集就一定不是 最优解 .更一般地说 ,在 一个 N 城市 的 TSP问题 中 ,任何 1个城 市有 N 一1个从该 城市 出
发 的路径 ,而在这 N 一1条路径 中 ,只有最短 的几条路径 中的 1条才 可能 是组 成最优 解 的路径之一 ,其 它
的较长 的路径 不可能是最优解 中的 1条 路径 ,因此 ,通过 限定蚂蚁 每次移 动范 围 ,或者说 限定 蚂蚁在 每个
城 市 所 能 “看 到 ”的下 一 个 城 市 的 数 目 ,来 达 到剔 除 劣 质 解 ,缩 小 搜 索 范 围 的 目 的 .在 算 法 中 为 每 个 城 市 建
一 个数组 cityWin[window],保存 window个距 离最 近的城市 .其 中 window 表示窗 15的大 小 ,对窗 15大小
的选择是依 据 TSP问题 的维数而定 的 ,维数越 高 ,窗 15越 大 .蚂蚁每 次移 动就从 cityw in[window]和 tabu
[k]的交 集 中选择移动 的城市 ,根据公 式(1),移 动到下一 个城 市 .若交 集 为空 ,则 只在 tabu[k]中选择 .小
窗 口算法 (I MMAS):
Step1.初始化参数 :Q,口, ,』D,taoMax,taoMin,window,N一 ,tabu[k],cityWin[m];
Step2.迭代 次数 : ++;
Step3.蚂蚁 从 cityWin[window]和 tabu[k]
中选择 允许 到达 的城市 ,根据公式 (1)移动 ;
Step4.若 tabu[k]未满 ,转致 Step4继续 ;
Step5.2opt局 部 优 化 路 径 ;
Step6.记 录本次最短路径 ,置空 tabu[k];
Step7.由公式 (2),(4)更 新 最 短路 径信 息
素 ;
Step8.若 小 于 N一 转 至 Step2;
Step9.输 出 最 优 结 果 .
图 1 Oliver 30的最优 路径
n g.1 Best route 0f帅 30
lO0
80
60
40
20
0
图 2 0Iiv冒 30的可能 路径
n g.2 Feasible route 0fOliwr 30
维普资讯 http://www.cqvip.com
第 11期 李 炳宇 ,等 :基于模 式求解 旅行 商问题 的蚁 群算 法
以 50个城市为例 ,窗 口大小选为 5,则 限定 后 的解 空间 比原解 空间缩 小 了 30个数 量级 ,而算 法 的复
杂为 O(扎,扎2m),与算法 MMAS相 比并没有变化 .实 验结果表明 ,小 窗 口算法较 算法 MMAS有 了一定 程
度 的提 高 ,能 够 得 到 较 好 的 解 .
3.2 基于模式 的算 法
城市数 目对蚁群算法 和其它求解 TSP问题 的算法都有较大 的影响 .基于模式 的算法是 建立在 小窗 EI
算法基 础之 上的 ,在 小窗 口算法得到较好解 的基 础上 ,通过提取解 中的模式 ,将一个个模式看作整体 ,降低
实际计算 中城市 的数 目,利用蚁群算 法在低维空间有较好搜索性能 的特 点 ,提高 算法的运行效率 .首先 ,独
立运 行 2次小窗 口算 法 ,得 到 2个 较 好 的解 ,比较 2个 解 , ,将 2个 解 的 交集 ,= (h 1,h ,2,? ,
h )T保存 的一个二维 数组 model[][]中 ,将 h小,h 2,? ,h 看成 1个个 整 体 ,每 个模 式 看作 1个 点 (城
市 ),Z个模式 看作 1个点 ,减少 TSP中城市 的数 目.在完 成一次 运算后 ,将得 到 的最优解 和 ,V,比较 ,
再 提 取 其 中较 好 2个 解 的 模 式 重 新 计 算 ,直 到 无 更 好 的解 或 超 过 最 大 循 环 次 数 停 止 .基 于模 式 的 算 法 为 :
Step1.LWMMAS(),保存解 Vi,LWMMAS(),保存解 V,;
Step2.getModel(Vi, ),将 交集保存到数组 model[][];
Step3.changStructure(mode1),改变城 市数 目;
Step4.LWMMAS(),保存解 vk;
Step5.将 目前最好 的 2个解 保存 到 , ;
Step6.若未超过最大循 环次数且未 出现停滞 ,则转至 Step3;
Step7.输 出最优结果 .
该算法 的复杂度 为 O(Nc(T/.c.Z"2m 十九 )),其 中 z是减少 城市个 数后运 算 中实 际 的城 市数 目,Nc为
提 取 模 式 的次 数 ,提 取 模 式 的 复 杂 度 是 扎2.由 于 z 和 Nc都 很 小 ,实 际 的复 杂 度 大 大 降 低 了 .
4 实验 结 果 与分 析
本 文使用的应用实例是 采用来 自 www.iwr.uni—heidelberg.de/groups/comopt/software/TSPLIB95/~?
的 TSPLIB实 例 ,Ei151,St70和 Linl05.
4.1 调整信息 素算 法 (见 表 1)与小窗 口算 法 (见表 2)的比较
在此通过与在 MMAS基 础上改进 的动态调整信 息素的算 法的 比较 ,证 明小窗 口算 法的有效性 .
各种参数的设定如 下 ,a:4, =1,Q=taoMax=1,taoMin=0.000 24,window=5,l0:0.8,蚂蚁 数等
于城 市 数 ,即 m = 扎.Ell51 问 题 的 已 知 最 优 解 是 426,由 表 1 和 表 2 得 到 的 平 均 结 果 、偏 差
(^/∑(X—x瞰 ) /n)、最优解、最差解等统计结果见表3.
表 1 动态 调 整信 息 素算 法 EilS1计算 结 果[ ]
Tab.1 Sim ulation results of EilS1 based on adaptively
adjusting pheromone algorithm
表 2 小窗 口算 法 Eil51计算 结 果
Tab.2 Sim ulation results of Ei151 based
Oil little window algo rithm
循环 次数 N一 =250,平 均 时间 (avgtime)=100.54 S 循环 次数 N一 :50,平均 时间 (avgtime):28 7 S
426
429
429
426
430
428
430
427
431
426
428
426
428
430
427
427
426
428
427
430
429
428
427
428
428
表 3 两种 算 法的统 计 结果
Tab.3 Statistical results of the two algorithms
维普资讯 http://www.cqvip.com
同 济 大 学 学 报 第 31卷
由表 3可见 ,本 文算 法各项均大大优于改进后 的动态调 整信 息素算 法 ,尤其是循环次数远远小于该算
法 ,而在实 际中运算 中大多没有循环 N廿n 次就 已经找到 最优解 了.这是 因为小 窗 15I算法 比动态调 整信息
素算法 的解 空间要小 3O个数量级 ,前 者 的运算 效率要 好于 后者 .而 且本文 还对 主要参 数 Q,a, ,l0做 了
测试 ,发 现对算 法无 明显影 响 ,因此本算法无需像 以往许多 蚁群算 法需要大量实验来 寻找合适 的参数 .
4.2 证 明基 于模式 算法的有效性
在 基 于 模 式 的算 法 中 ,设 定 小 窗 口算法 中 的最 大 循 环 次 数 N一 :10,模 式 比较 的次 数 Nc=3.由表 4
可 得 Ei151基 于模 式 算 法 的统 计 结 果 ,平 均 结 果 为 427.04,偏 差 1.327,最 优 解 426,最 差 解 429,平 均 运 行
时 间 9.8 S.可 以看 出 ,各项计算结果都 明显 好于小窗 口算 法 ,尤其是计 算时间大大缩短 了.
在 表 5中列 出了 St70(70个城市 ,已知最优解是 675)20次 的计算结果 ,最优解 675,最 差解 680,平均
值 676.1,偏 差 1.95,平 均 计 算 时 间 29.6 S.从计 算 结 果 上 可 以看 出 ,虽 然 城 市 数 目增 大 了 ,但 与 小 窗 口算
法计算 Eil51的时间相差 不到 1 S.因此 可以证 明模 式算法 的有效 性 .应 用模 式算法 计算 Linl05(105个城
市 ,已知最优解是 14 379),最优解 14 379,最差解 14 448,平 均值 14 397.65,循环 次数 1O次 ,平 均计算 时
间 187.7 S,也 取 得 了很 好 的结 果 .上 面 的数 据 说 明基 于模 式 的 蚁群 算 法 能 够 取 得 较 好 的 实 验结 果 ,同 时 也
说明该算法在解决组 合优 化 问题方面较 同类算法有一 定的优势 ,还需要说 明 的是 ,在这些 实验中算法结 束
条件都是 由一个 固定 的循 环次数 Nan。 决定 ,而算法 获得 最优解 时要小 于有 时远 小于这 个 固定循 环数 ,也
就 是 说 算 法 性 能 较 列 表 说 明 的还 要 好 一 些 .
表 4 EiiSl基 于模式 算 法 的计算 结 果 表 5 St70基 于模式 算 法的计 算 结果
5 结 论
Tab.5 Simulation results of St70 based on m odel algorithm
循 环次数 N~ =10,平 均时 间(avgtime)=29.6 S,Nc=3
675 676 675 675 680
675 675 676 679 675
676 680 676 675 676
676 677 675 675 675
实 验 说 明小 窗 口算 法 通 过 限定 计 算 空 间 在 一定 程 度 上 改 善 了解 的 质 量 ,为 基 于 模 式 的 蚁 群 算 法 提 供
了较 好 的初 始 解 ,保 证 了 有 较 好 的模 式 ,而 基 于 模 式 的 蚁 群 算 法 在 提 取 模 式 的基 础 上 改 变 计 算 粒 度 ,提 高
运算 速度 ,克服 了以往 蚁群算法 的计算 时间长 、精度低 的缺点 ,使得蚁群算法有 了显著的提高 .由于搜 索速
度 的提高 ,本 文算法 可 以满足更多实 际问题要求 ,有利于蚁群算法 的应用和推广 .
参 考文献 :
[1] DorigoM,ManiezzoV,ColomiA.The ant system:Optimization by a colony of cooperating agents[J].IEEETransactions on Systmas.Man ,
andCybernetics-PartB,1996,26(1):29—41.
[2] Dorigo M,Gambardella L.Ant colony system:A cooperative learning approach tO the tmvding 'salesman problem[J]IEEE Transactions On
EvolutionaryComputation,1997,1(1):53—66.
[3] Colomi A,Dorigo M,Maniezzo V,et a1.An t system for job-shop scheduling[J].Belgian Journal of Operations Research,Statistics and
CombuterSeience,1994,34(1):39—53.
[4] Giannl Di Cam,Marco Dorigo.An tNet:Distributed stigrnergetic control for
Research,1998,(9):317—355.
networks[J].Journal of Artificial Intelligence
[5] Th omas Sttitzle,H0lg盯 Hoos.MAX—MIN ant system and local search for the traveling salesman problem[A]Proe IEEE International
Conference on Evolutionary Computation(ICEC’97)[C].Indianapolis:[s.n1],1997.309—314.
[6] 吴庆洪 ,张 纪会 ,徐 心 和 .具 有变异 特征 的蚁群 算法 [J].计算机 研究 与发展 ,1999,36(10):1240—1245.
[7] 覃刚 力 ,杨 家本 .自适 应调整 信息 素 的蚁群算 法 [J].信 息与控 制 ,2002,31(3):198—201.
蓑一
~一~一一一一 一一一一一一一 ~一 一 掰档
维普资讯 http://www.cqvip.com
基于模式求解旅行商问题的蚁群算法.pdf