基于MATLAB的蚁群算法解决旅行商问题(附带源程序、仿真)

合集下载

基于蚁群算法的TSP问题求解

基于蚁群算法的TSP问题求解
度 : 表 示本 次循 环所 有 蚂 蚁在 路径 上 (,) 释放 的信 息 素浓 度 之和 。 △ iJ 所 3问题 求 解 3 1设 定 3 城市 的坐 标位 置 . O个
C= 32 l5 5 4 : 1 : : 9 9 6 1 : 4 0 1 : 4 6 1 : [ : : :4 7 3 1 0 8 7 : :0 2 1 :7 3 1 : 2 9
在运 动过 程 中, 据各 条路 径上 的信 息素 的浓度 决定转 移方 r, ) 根 N p ( 表示在 t ,
时刻 刻蚂蚁 k从送 货 点 i 移 到送 货点 J的概率 , 转 其计 算公 式为
3 2 参数 设置 : . 最大 迭代 次数 :C m x2 0 N a= 0 : 蚂蚁 个数 := 0 m3 : 信息 素重 要程 度 :lh = : Ap a l 启发 式因子 重要 程度 :ea 5 B t= ; 信 息 素蒸 发系 数 :h = . : Ro O 1 信 息 素增加 强度 系数 := 0 : Q 10 R b s 代表 最佳路 线 :- e t 代 表最 佳路线 的 长度 。 et L bs 3 3 编制 函数
1 1 1 ; 1 6 8: 1 7 l 2 7 4 2 0; 7 9 5 9 1 4: 0 7: 0 2 9 9 2 6 1 1 1 : 5 1 1 1 2 l 1 5 1 2 1
前 行 。与此 同时释 放 出与路线 长度 有关 的信 息素 。路径越 长 , 放 的激素浓 释 度 越低 。当后 来的蚂 蚁再 次碰 到这个 路 口的时 候 , 选择 激素 浓度 较高 路径 概 率 就会相 对较 大 。这样 形成 了一个 正反 馈 。最 优路 径上 的激 素浓度 越 来越 大 而 其它 的路 径上 激素 浓度 却会 随着 时 间的流 逝而 消减 。这样 , 整个 蚁群 最 终 会 找 出最 优 路 径 。

浅谈旅行商问题与蚁群算法

浅谈旅行商问题与蚁群算法
摘 要 :蚁群算法是继模拟退火算法、遗传算法、禁忌搜 索算法、人工神经网络算法等启发式搜 索 算法之后的又一种应用于组合优化 问题的算法。根据蚁群算法的特性 ,求解旅行商问题 ,利用仿真实验 程序 对蚁群 求解 旅 行 商问题进 行模 拟 。 关键词:蚁群算法 ;信息素 ;旅行商问题(S) TP 中国分类 号 :T 3 2 P 1 文献标 识码 :A 文 章编 号 :1 7 —14 2 1 0 6 2 0 7( 0 0) 6—0 1 — 3 0 7 0
题 ,通 信 网络负载 问题 ,0 1 _ 背包 问题 ,甚 至军 事
3 、模拟 蚁群算法
31 .利用jv语言模拟 atylss m 法 d .a ncc t 算 eye
看 成是 图上 的节点 ,费用 c为连接顶点 V、V边上 i i 的权 ,则 问题 就是 在 一 个具 有 n 节点 的完全 个
f 利用数学中的排列组合求 出该问题的所有 2 )
不 同的 回路 ; (汗U 3 用循环 、判 断 、比较得 到最优 回路 。 在 第 2 中 , 可 以 得 到 一 个 完 全 图 的 步
D I 0 3 6  ̄ is. 6 2 0 7 2 1 . 6 0 O :1 . 9 9 . n 17 —1 . 0 0 0 . 5 s 4
引 言
蚁群算法就是利用群集智能解决组合优化 问 题的典型例子。它是继模拟退火算法、遗传算法、 禁忌搜索( b a h T u er ) a S c 算法、人工神经网络算法等
a 的值由于( 1 勺 n ) 作用变得异常的庞大 ,这对计算 —f l
的速率带来 问题 。 首 先 需要 通过 n 到 所 有 的Ha io回路 ,计 得 mln t 算 该步 时程序 片段将 会根 据n 大小 而 出现大量 的 的 嵌 套循环 ,而这点 是难 以忍 受的 ,而且 由于不得 不

蚁群算法在求解旅行商问题中的改进

蚁群算法在求解旅行商问题中的改进

搜索范围; 并在 进 行 全 局信 息 素 更 新 时 , 到 目前 为 止 的最 优 解 、 差解 和 普通 解 采 用不 同 对 最 的更新 策 略 。实验 结果 表 明 , 改进 的蚁 群算 法在 实验 环 境 下 , 决 旅 行商 问题 时 的性 能较 基 解
本蚁 群 算 法有 较好 的表 现 。 关 键 字 : 群 算法 ; 蚁 旅行 商 问题 ; 息素初 始化 ; 息 素更 新 信 信
( ) , 个旅 行 商从 某一个 城市 出发 , 问每个 r )一 i 访
城市 一 次 且仅 一 次后 再 回到原 出发城 市 , 要求 找 出一 条 最短 的旅 行路 线 。 即寻找 一条巡 回路径 R=
( , , n) 使 得公式 ( ) 示 的 目标 函数 最小 。 r r …r, , 2 1所
蚁群算法在 求解旅行 商 问题 中的改进
严 小 燕 , 李 呖 夏 桂 林 z 2
( 1安徽 农业 大 学信 息 与计算 机学 院 , 徽 合 肥 2 0 3 ) 安 3 0 6 ( 2巢 湖 学 院计算 机系 , 安徽 巢湖 2 8 0 ) 3 0 0
摘 要 : 群算 法是 一种 启 发式优 化 算 法 。 求 解旅 行 商 问题 等 多种 组合优 化 问题 上 有着 优 蚁 在 越 性 。 基 本蚁 群 算法 收敛速 度 慢 , 但 易于 陷入 局部 最优 解 , 导致停 滞现 象 出现 。 针对 算 法 的这 些缺 点 , 出给各 条边赋 予不 同 的信息 素初始 量 以加 强算 法初 期信 息 素 的作用 , 小 算 法 的 提 缩

T P问 题 在 科 学 、 程及 经 济 的各 个 方 面具 S 工
有广泛 的应用 如 : 网络 通 讯 、 网 规 划 、 道 铺 电 管 设 、 通 调度 、 流 货物 配送 等 。这些 问题 或 者是 交 物

关于旅行商问题的数学模型

关于旅行商问题的数学模型

关于旅行商问题的数学模型旅行商问题(TravelingSalesmanProblem,TSP)是著名的组合优化问题,它的目标是找到一条路径,使得一个旅行商可以经过所有给定的城市,路径总长度最短。

这个问题在实际生活中有着广泛的应用,例如物流配送、电路板布线、DNA序列比对等领域。

本文将介绍旅行商问题的数学模型和解法。

1. 问题描述假设有n个城市,它们的位置分别为(xi,yi),i=1,2,...,n。

旅行商要从一个城市出发,经过所有城市恰好一次,最后回到出发城市。

城市之间的距离可以用欧几里得距离表示:d(i,j) = sqrt((xi-xj)^2 + (yi-yj)^2)旅行商问题的目标是找到一条路径,使得路径总长度最短。

2. 数学模型2.1 定义变量我们定义变量xij表示从城市i到城市j的路径是否被选择,如果被选择则xij=1,否则xij=0。

例如,x12表示从城市1到城市2的路径是否被选择。

2.2 目标函数旅行商问题的目标是找到一条路径,使得路径总长度最短。

因此,我们可以定义目标函数为:minimize ∑i∑j d(i,j)xij其中,i,j表示城市的编号,d(i,j)表示城市i和城市j之间的距离,xij表示从城市i到城市j的路径是否被选择。

2.3 约束条件旅行商需要经过所有城市恰好一次,因此我们需要添加以下约束条件:1. 每个城市只能被经过一次:∑j xij = 1, i=1,2,...,n2. 每个城市离开后只能到达一个城市:∑i xij = 1, j=1,2,...,n3. 不能出现子回路:∑i∈S ∑j∈S xij ≤ |S|-1, S{1,2,...,n}, |S|≥2其中,第一个约束条件表示每个城市只能被经过一次,第二个约束条件表示每个城市离开后只能到达一个城市,第三个约束条件表示不能出现子回路。

3. 解法旅行商问题是一个NP难问题,没有多项式时间算法可以求解。

因此,我们需要使用一些启发式算法来求解这个问题。

旅行商问题的两种算法

旅行商问题的两种算法
10.学位论文曲亚东旅行商问题的混合遗传算法求解1999
关于组合优化TSP的求解一直是遗传算法研究的热点,该文在分析了多种近似算法的基础上,提出了一种用于求解TSP的混合遗传算法(HGA).首先,文章介绍了TSP的一些基本概念,如城市间距离的分布特征、路径长的统计分析,满意度的概念及现有的求解算法等,并指出目前求解TSP的遗传算法的不足之处.接着论文系统地阐述了"混合型遗传算法",它基于普通遗传算法和局部择优算法--爬山法,并采用了以下遗传搜索技术;随机初始化种群、有记忆的种群更新技术等,综合了遗传算法的全局搜索优势和爬山法的局部搜索优势,加快了遗传算法在程序执行后期局部择优的能力.最后,混合遗传算法使用Visual C++编程语言实现,对比计算结果显示,在设置合理的控制参数及算法终止判据之后,时间花费显著小于传统遣传算法.
翻5。3聿莩奉一撰麓
Fig.5.3Sample-Error
国5。4徉奉鼗鼙一设蘩Fig.5.4Sample NumwError
旅行商问题的两种算法
作者:冯昊
学位授予单位:大连理工大学
1.期刊论文吴小菁.Wu Xiao-jing求解旅行商问题的模拟进化算法-福建金融管理干部学院学报2008(5)
本文链接:/Thesis_Y1227497.aspx
下载时间:2010年4月26日
3.期刊论文曲晓丽.潘昊.柳向斌.QU Xiaoli.PAN Ha技术2007,30(18)
旅行商问题(TSP)是组合优化领域里的一个典型的、易于描述却难以处理的NP难题,其可能的路径数目与城市数目是呈指数型增长的,求解非常困难.首先介绍了旅行商问题,模拟退火算法原理及其算法实现.应用模拟退火算法对TSP进行研究,给出解决TSP的一种比较精确的算法并用Matlab实现了算法.最后用该算法对TSP进行了仿真,验证了该算法的有效性.

蚁群优化算法

蚁群优化算法
规则虽然简单,但在地点数目增多后求解却极为复杂。以42个地点 为例,如果要列举所有路径后再确定最佳行程,那么总路径数量之 大,几乎难以计算出来。 多年来全球数学家绞尽 脑汁,试图找到一个高 效的算法。 TSP问题在物流中的描 述是对应一个物流配送 公司,欲将n个客户的 订货沿最短路线全部送 到。如何确定最短路线。
第9章 智能优化方法
Contents
1 2
遗传算法
蚁群优化算法 粒子群优化算法
3
蚁群优化算法
先看1个最优化例子
“旅行商问题”(Travel Salesman Problem, TSP 问题)常被称为“旅行推销员问题”,是指一名推销员要 拜访多个地点时,如何找到在拜访每个地点一次后再回到 起点的最短路径。
k 1 m
5.2 算法流程
路径构建 信息素更新
5.2 算法流程
例5.1 给出用蚁群算法求解一个四城市的TSP问题的执 行步骤,四个城市A、B、C、D之间的距离矩阵如下
3 1 2 3 5 4 W dij 1 5 2 2 4 2
假设蚂蚁种群的规模m=3,参数=1,=2,r=0.5。
5.2 算法流程
信息素更新
(1)在算法初始化时,问题空间中所有的边上的信息素都被初始 化为0。 (2)算法迭代每一轮,问题空间中的所有路径上的信息素都会发 生蒸发,我们为所有边上的信息素乘上一个小于1的常数。信息素 蒸发是自然界本身固有的特征,在算法中能够帮助避免信息素的 无限积累,使得算法可以快速丢弃之前构建过的较差的路径。 (3)蚂蚁根据自己构建的路径长度在它们本轮经过的边上释放信 息素。蚂蚁构建的路径越短、释放的信息素就越多。一条边被蚂 蚁爬过的次数越多、它所获得的信息素也越多。 (4)迭代(2),直至算法终止。

路径规划毕业论文

基于蚁群算法的机器人路径规划摘要当前机器人朝着智能化的方向发展着,已经能够解决一些人类自身难以完成的任务。

机器人的研究方向分为好多个分支,其中机器人路径规划就是热点问题之一。

主要用于解决机器人在复杂环境下做出路径选择,完成相应任务的问题。

典型的路径规划问题是指在有障碍物的工作环境中,按照一定的评价标准(行走路线最短、所用时间最少等)为机器人寻找一条从起点到终点的运动路径,让机器人在运动过程中能安全、无碰撞地通过所有的障碍物。

基于蚁群算法的机器人路径规划的研究,利用仿真学的基本思想,根据生物蚂蚁协作和觅食的原理,建立人工蚁群系统。

本文介绍了使用基本蚁群算法和改进蚁群算法在机器人路径规划中的应用,以栅格法作为路径规划的环境模型建立方法。

其中改进蚁群算法依据最大最小蚂蚁系统原理和信息素奖励思想,还增加了其它启发信息来指导路径的搜索。

本文中介绍的基本蚁群算法应用蚁周模型对找到的路径进行信息素的更新,而在改进蚁群算法中,则综合使用了局部信息素更新原则和全局信息素更新原则。

另外在本文中介绍的改进蚁群算法使用了回退策略和落入陷阱时的信息素惩罚机制,帮助处理了蚂蚁在寻找路径过程中,落入陷阱后的问题。

不过改进后的蚁群算法的及时寻找到最优解的特性仍然有待于进一步的提高。

关键词:路径规划,蚁群算法,改进Path Planning for Robot Based on Ant ColonyAlgorithmAbstractNow robots are developing in the direction of intelligent, they have been able to solve some hard task as human beings do. Robot research has divide into the direction of large number of branches, where the robot path planning is one of hot issues. it is mainly used to solve the robot path in a complex environment to make choices, to complete the task. A typical path planning problem is that there are obstacles in the work environment, according to certain evaluation criteria (the shortest walking route, the minimum time spent, etc.) to find a robot's movement from origin to destination path, let the robot in motion of safe, collision-free through all the obstacles.Robot path planning research based on ant colony algorithm, is according to the simulation research, use the biological ant principles of feeding and cooperation and the establishment of artificial ant colony system. This article describes the use of basic ant colony algorithm and improved ant colony algorithm in robot path planning applications with using the grid method to establish the environment model of path planning. Improved ant colony algorithm is based on the maximum and minimum ant system theory and pheromone reward ideas. It has added other enlightening information to guide the path research. The basic ant colony algorithm described in this article uses the ant-cycle model to update the pheromone for the found path, in the improved ant colony algorithm, uses both the local pheromone updating principles and global pheromone updating the principles. Improved ant colony algorithm in this paper uses the fallback strategy, and the pheromone punishment mechanism when falling into trap to help deal with the ants in the process of finding a path falling into the trap. But the improved ant colony algorithm to find the optimal solution remains to be further improved in the optimal properties.Keywords: path planning, ant colony algorithm, improvedII目录第1章引言 (1)1.1问题的提出 (1)1.1.1研究的背景 (1)1.1.2研究的意义 (2)1.2本文研究路线 (3)1.2.1主要工作内容 (3)1.2.2目标 (3)1.3论文的主要内容 (3)第2章蚁群算法与机器人路径规划研究概述 (5)2.1蚁群算法和机器人路径规划的发展历史,现状,前景 (5)2.1.1蚁群算法的发展历史,现状,前景 (5)2.1.2移动机器人路径规划的发展历史,现状,前景 (6)2.2蚁群算法的特点 (7)2.2.1并行性 (7)2.2.2健壮性 (7)2.2.3 正反馈 (8)2.2.4局部收敛 (8)2.3基于蚁群算法的机器人路径规划实现的开发方式 (8)2.3.1开发语言的选择 (8)2.3.2开发工具的选择 (8)2.4蚁群算法介绍 (9)2.4.1 基本蚁群算法 (9)2.4.2 基本蚁群算法改进方案简介 (11)2.5机器人路径规划的环境模型建立 (11)2.5.1 栅格法 (11)2.6使用matlab仿真 (12)2.6.1 matlab仿真介绍 (12)2.7本章小结 (12)第3章基于蚁群算法的机器人路径规划分析与设计 (13)3.1基于蚁群算法的机器人路径规划需求设计 (13)3.2基于蚁群算法的机器人路径规划的要求 (13)3.3 主要的数据结构 (13)3.4基本蚁群算法实现机器人路径规划功能模块 (14)3.4.1程序入口模块 (14)3.4.2 算法运行的主体函数模块 (14)3.4.3 程序运行的清理模块 (15)3.4.4 下一步选择模块 (15)3.4.5 随机性选择模块 (16)3.4.6 路径处理和信息记录模块 (17)3.5 基本蚁群算法实现机器人路径规划整体逻辑设计 (17)3.5.1基本蚁群算法实现机器人路径规划整体结构图 (17)3.5.2基本蚁群算法实现机器人路径规划逻辑结构图 (19)3.6改进蚁群算法实现机器人路径规划功能模块 (20)3.6.1 程序运行环境处理修改部分 (20)3.6.2 下一步选择的修改部分 (20)3.6.3信息素更新和路径处理修改部分 (21)3.7 改进蚁群算法实现机器人路径规划整体逻辑设计 (22)3.7.1改进蚁群算法实现机器人路径规划整体结构图 (22)3.7.2改进蚁群算法实现机器人路径规划逻辑结构图 (23)3.8系统开发环境介绍 (24)3.8.1开发环境 (24)3.8.2调试环境 (24)3.8.3测试环境 (24)第4章基于蚁群算法的机器人路径规划的实现 (25)4.1基于基本蚁群算法的实现 (25)4.1.1算法运行的主体函数模块 (25)4.1.2 下一步选择模块 (26)4.2基于改进蚁群算法的实现 (27)4.2.1下一步选择模块 (28)4.2.2随机性选择模块 (29)4.3本章小结 (31)第5章基于蚁群算法实现机器人路径规划的仿真实验 (32)5.1运行环境 (32)5.2基于基本蚁群算法实现机器人路径规划仿真实验 (32)5.2.1 仿真步骤 (32)5.2.2 使用地图模型为5-1的仿真 (32)5.2.3 使用基本蚁群算法仿真结果 (33)IV5.2.4基于改进蚁群算法的仿真 (35)5.3 多次重复仿真实验记录 (36)5.4 本章小结 (37)第6章结论 (38)致谢 (39)参考文献 (40)基于蚁群算法的机器人路径规划第1章引言1.1问题的提出1.1.1研究的背景蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。

基于互信息的混合蚁群算法及其在旅行商问题上的应用


a d is a p ia i n t r v l g s l s a r b e n t p l to o t a ei a e m n p o lm c n
DuZ a w i Y n o gi S nYo g in Z a gC i n‘ hn e a gY nj n a u n xo g hn h u j
l 提出将互信 息用于 图像 配准 后 , a 互信 息在 遥感 和 医学等领域 开始得到广泛 应用. 蚁群 算法最 早 由 C lri oon 等 提 出 , 于解 决 用

大类 复杂 的组 合 优 化 问题 . o ri 由蚂 蚁 在 C ln 等 o
觅食时 的现象受到 启发 , 抽象 出基 于路径概率 性选
p sda o tm ni rv o xe th o t npr r a c dtecp cyo mp got oe l rh c gi a mpo e osmeetn tesl i e o nea a ai fu i u t uo f m n h t j n
o o a ni u . flc lmi m m
引 文 格 式 :杜 占玮 , 永 健 , 永 雄 , . 杨 孙 等 基于 互 信息 的混 合 蚁 群剪 法 及 其 在 旅 行 商 问 题 上 的 应 用 [ ] 东 南 大 学 学 报 : J. 自然 科 学 版 ,0 14 2 1 ,1 ( )4 8— 8 .[ o:0 3 6 /.sn 10 00 .0 10 .0 ] 3 :7 4 1 d i1 .99 ji .0 1— 5 52 1 .30 9 s
配准算 法产 生 . 了使 该 算 法 更 加 适 用 于 T P问 为 S 题 , 据 问题领域 的具 体 环境 , 混 合 算法 中 的算 根 对 式 进行 了一 定 的化 简 , 其在 计 算 上更 加 简 单 、 使 易 操作. 通过使 用标 准测试 集 O ie3 l r0对算 法进行 测 v 试 , 明本 文提 出的算法 在求 解性 能和跳 出局部 最 表 小 解方 面较 原算法 均有 一定 的提高 .

基于蚁群算法的TSP问题求解


Vo . 6 № . 11 5
Sp2 0 e .08
基 于蚁群算 法 的 T P问题 求解 ’ S
王 果, 戴 冬
( 河南机 电高等专科学校,河南 新乡 43 O ) 5O 2
摘要 : S T P问题是典型的 N P—hr ad组合优化 问题, 蚁群算 法是一种求解此类问题 的优化算法 , 通过模 拟蚂蚁觅食
经过若 干个城 市 后又 返 回原 城 市 的最 短 路 径 。城 市 基本 蚁群算法 的寻优是通过有 向图 g=( , , ) c L T 管道铺设 优化 、 流业 的 车辆 调 度 、 物 制造 业 中的 切割 来实现 的 。一般设 b( ) 示 t 刻位 于元 素 i £表 时 的蚂 路径优 化 等 , 实 生 活 中 的优 化 问题 都 可 以归 结 为 蚁数 目; () t 现 t为 时刻路径(, 上的信息量; ) n表示 T P问题进 行 求解 。寻 找一 种 有 效 的解 决 该 问题 S TP规模 ; S m为蚁群 中蚂蚁 的总数 目, m =∑b() 则 。t ; 的算法 , 具有重要 的现实 意义 。 r ()I , 是 时刻 集合 C中元 素两两 连 c i 蚁 群算法是 D roM 等提 出的 , oi g 该算法 采用 了分 厂={ t ;cCC} t 布式并 行计算 机制 , 于 与其 他方 法 结 合 , 易 而且 具 有 接 f上残 留信 息 量 的集合 。在 初 始 时刻 各 条路 径 上 0 cnt s 强的鲁棒性 , 是求解 T P问题 的一种 理想 方法 。算法 信息 素相等 , ( ): o.。 S 蚂 蚁 k( k=12 … , 在运 动过程 中 , , , m) 根据各 条 的主要思想为 : 模拟蚂 蚁觅 食行 为 。蚂 蚁在 运行 过程 中会 释放 一 种特 殊 的分 泌 物 一信 息 素来 寻找 路 径 。 路径上 的信息量决 定其 转移 方 向。这里 用禁 忌表 t. a 信息素会随着时 间消 减 , 面的蚂 蚁选 择信 息素 多 的 6 k=12 … , 来记 录蚂蚁 k当前所走过 的城 市 。 后 “( ,, m) 路径, 这样便形成 了一个 正反 馈机 制 口 。在 整个 寻径 在搜索过 程 中, J 蚂蚁 根据各条 路 径上 的信息 素及路 径

基于遗传-蚁群混合算法求解旅行商问题


在传统解决方法 中 ,遗传算法 ( eei Agrh s A G nt l i m ,G )以其 快速全局搜索能力在物 流领域获得 了广泛 的应 c ot
s l t n o p r x ma e o t m ou in c n b otn u i g t e A g r h n o u ain l e f in y i ic a e . o u i r a p i t p i o o mu s l t a e g t sn h l o t ms a d c mp t t a f c e c s n r s d o e i o i e Ke r s r v l g S l s n P o lm;An ln g r h ;G n t —A tCoo y Alo i ms o i is y wo d :T a e i ae ma r be n tCoo y Alo t ms e ei i c n ln g r h ;l gs c t t
真 。仿 真 计 算 结果 表 明 ,该 算法 可 以 找到 最优 解 或 近似 最优 解 ,并提 高 了求 解 效 率 。
关 键 词 :旅 行 商 问题 ;蚁 群 算 法 :遗传 一 蚁 群 混 合 算 法 :物 流 中 图 分 类号 :F 5 23 文 献标 识 码 :A 文 章 编 号 :l 0 — l 0 ( o 10 — l 8 0 0 2 30 2 7 4 0 2 — 4 0
Ab t a t A y i a u sin i o it s i l , s l t n o r v l g S ls n P o l m s f b t h o e ia in f a c a d sr c : s a t p c l q e t n l gsi f d ou i f T a e i ae ma r b e i o c e o n o oh t e r t l sg i c n e n c i p a t a mp  ̄ n e r c i l i o a c .Ge e i l o t ms a d n oo y l o t ms h v e n a o td e t n iey i i ovn b fr .B t t e c n t A g r h n A t C ln A g r h a e b e d p e x e sv l n t s li g eo e u h y c i i s a e o ef c e a s n t Alo t ms o v r e s wl n t oo y l o t ms i r n o r p i o a p i m.G ・ r n t p r t b c u e Ge e i e c g r h c n e g s l y a d An C ln A g r h s p o e t t n lc l o t i o i a mu e
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

- -- - . -word资料- 摘 要:旅行商问题的传统求解方法是遗传算法,但此算法收敛速度慢,并不能获得问题的最优化解。蚁群算法是受自然界中蚁群搜索食物行为启发而提出的一种智能优化算法,通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略,给出基于MATLAB的蚁群算法在旅行商问题中的应用,对问题求解进行局部优化。经过计算机仿真结果表明,这种蚁群算法对求解旅行商问题有较好的改进效果。 关键词:蚁群算法;旅行商问题;MATLAB;优化

一、意义和目标 旅行商问题是物流领域中的典型问题,它的求解具有十分重要的理论和现实意义。采用一定的物流配送方式,可以大大节省人力物力,完善整个物流系统。 已被广泛采用的遗传算法是旅行商问题的传统求解方法,但遗传算法收敛速度慢,具有一定的缺陷。本文采用蚁群算法,充分利用蚁群算法的智能性,求解旅行商问题,并进行实例仿真。进行仿真计算的目标是,该算法能够获得旅行商问题的优化结果,平均距离和最短距离。 二、国内外研究现状 仿生学出现于20世纪50年代中期,人们从生物进化机理中受到启发,提出了遗传算法、进化规划、进化策略等许多用以解决复杂优化问题的新方法。这些以生物特性为基础的演化算法的发展及对生物群落行为的发现引导研究人员进一步开展了对生物社会性的研究,从而出现了基于群智能理论的蚁群算法,并掀起了一股研究的热潮。 20世纪90年代意大利科学家M.Dorigo M最早提出了蚁群优化算法——蚂- -- - . -word资料- 蚁系统(Ant system, AS),在求解二次分配、图着色问题、车辆调度、集成电路设计以及通信网络负载问题的处理中都取得了较好的结果。 旅行商问题(TSP, Traveling Salesman Problem)被认为是一个基本问题,是在1859年由威廉·汉密尔顿爵士首次提出的。所谓TSP问题是指:有N个城市,要求旅行商到达每个城市各一次,且仅一次,并回到起点,且要求旅行路线最短。这是一个典型的优化问题,对一个具有中等顶点规模的图来说,精确求解也是很复杂的,计算量随着城市个数的增加而呈指数级增长,即属于所谓的 NP问题。TSP在工程领域有着广泛的应用 ,并常作为比较算法性能的标志。如网络通讯、货物运输、电气布线、管道铺设、加工调度、专家系统、柔性制造系统等方面, 都是TSP广泛应用的领域。求解算法包括贪婪法(GM)、极小代数法(MA)、模拟退火法(SA)和遗传算法(GA)等。而应用蚁群算法求解旅行商问题是近年来研究的新方向,由于其并行性与分布性,特别适用于大规模启发式搜索,实验结果证明了其可行性和有效性。 三、蚁群系统基本原理 在蚂蚁群找到食物时,它们总能找到一条从食物到巢穴之间的最优路径。这是因为蚂蚁在寻找路径时会在路径上释放出一种特殊的信息素(phero-mone)。当它们碰到一个还没有走过的路口时,就随机地挑选一条路径前行。与此同时释放出与路径长度有关的信息素。路径越长,释放的激素浓度越低。当后来的蚂蚁再次碰到这个路口的时候,选择激素浓度较高路径概率就会相对较大。这样形成了一个正反馈。最优路径上的激素浓度越来越大,而其它的路径上激素浓度却会随着时间的流逝而消减。最终整个蚁群会找出最优路径。在整个寻径过程中,虽然单个蚂蚁的选择能力有限,但是通过激素的作用,整个蚁群之间交换着路径信- -- - . -word资料- 息,最终找出最优路径。 四、基于MATLAB的蚁群算法求解旅行商问题 TSP问题描述如下: 设有n个城市C=(1,2,...,n),任意两个城市i,j之间的距离为dij

,求一

条经过每个城市的路径π=(π(1),π(2),...,π(n)),使得距离最小。 主要符号说明 C n个城市的坐标,n×2的矩阵 NC_max 最大迭代次数 m 蚂蚁个数 Alpha 表征信息素重要程度的参数 Beta 表征启发式因子重要程度的参数 Rho 信息素蒸发系数 Q 信息素增加强度系数 R_best 各代最佳路线 L_best 各代最佳路线的长度 求解TSP问题的蚂蚁算法中,每只蚂蚁是一个独立的用于构造路线的过程,若干蚂蚁过程之间通过自适应的信息素值来交换信息,合作求解,并不断优化。这里的信息素值分布式存储在图中,与各弧相关联。蚂蚁算法求解TSP问题的过程如下: (1)首先初始化,设迭代的次数为NC。初始化NC=0 (2)将m个蚂蚁置于n个顶点上 (3)m只蚂蚁按概率函数选择下一座城市,完成各自的周游 - -- - . -word资料- 每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条回路。蚂蚁的任务是访问所有的城市后返回到起点,生成一条回路。设蚂蚁k当前所在的顶点为i,那么,蚂蚁k由点i向点j移动要遵循规则而不断迁移,按不同概率来选择下一点。 (4)记录本次迭代最佳路线 (5)全局更新信息素值 应用全局信息素更新规则来改变信息素值。当所有m个蚂蚁生成了m个解,其中有一条最短路径是本代最优解,将属于这条路线上的所有弧相关联的信息素值进行更新。 全局信息素更新的目的是在最短路线上注入额外的信息素,即只有属于最短路线的弧上的信息素才能得到加强,这是一个正反馈的过程,也是一个强化学习的过程。在图中各弧上,伴随着信息素的挥发,全局最短路线上各弧的信息素值得到增加。 (6)终止 若终止条件满足,则结束;否则NC=NC+1,转入步骤(2)进行下一代进化。终止条件可指定进化的代数,也可限定运行时间,或设定最短路长的下限。 (7)输出结果 - --

- . -word资料- 五、数据实验及结果 通过计算机仿真,得出旅行商问题优化结果和平均距离和最短距离,如图所示: - --

- . -word资料- 六、分析与总结 本文设计了一种基于MATLAB实现的蚁群算法,用以求解组合优化难题中的典型代表旅行商问题。对30个城市旅行商问题进行了测试,所得结果能达到优化作用,实现了本文的研究目标。 经过对旅行商问题的深入理解,得到了能解决问题的基本数学模型,然后设计算法的基本思想,技术路线,最后编码。在多次调试,修改后,本算法成功运行,并实现了最初的设定目标。另外,MATLAB具有丰富的绘图函数,对于绘图十分方便,这是选择MATLAB解决TSP问题的算法编写、调试的原因。 蚁群算法研究处于初期,还有许多问题值得研究,如算法的参数选择、蚂蚁数的比例等只能通过仿真实验,无法给出理论指导。 - --

- . -word资料- 附 录: 蚁群算法解决旅行商问题MATLAB程序 function yy=ACATSP x=[41 37 54 25 7 2 68 71 54 83 64 18 22 83 91 25 24 58 71 74 87 18 13 82 62 58 45 41 44 4]'; y=[94 84 67 62 64 99 58 44 62 69 60 54 60 46 38 38 42 69 71 78 76 40 40 7 32 35 21 26 35 50]'; C=[x y]; NC_max=50; m=30; Alpha=1.5; Beta=2; Rho=0.1; Q=10^6; %%------------------------------------------------------------------------- %% 主要符号说明 %% C n个城市的坐标,n×2的矩阵 %% NC_max 最大迭代次数 %% m 蚂蚁个数 %% Alpha 表征信息素重要程度的参数 %% Beta 表征启发式因子重要程度的参数 %% Rho 信息素蒸发系数 %% Q 信息素增加强度系数 %% R_best 各代最佳路线 %% L_best 各代最佳路线的长度 %%========================================================================= %%第一步:变量初始化 n=size(C,1);%n表示问题的规模(城市个数) D=zeros(n,n);%D表示完全图的赋权邻接矩阵 for i=1:n for j=1:n if i~=j D(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5; else D(i,j)=eps; %i=j时不计算,应该为0,但后面的启发因子要取倒数,用eps(浮点相对精度)表示 end D(j,i)=D(i,j); %对称矩阵 end end - -- - . -word资料- Eta=1./D; %Eta为启发因子,这里设为距离的倒数 Tau=ones(n,n); %Tau为信息素矩阵 Tabu=zeros(m,n); %存储并记录路径的生成 NC=1; %迭代计数器,记录迭代次数 R_best=zeros(NC_max,n); %各代最佳路线 L_best=inf.*ones(NC_max,1); %各代最佳路线的长度 L_ave=zeros(NC_max,1); %各代路线的平均长度 while NC<=NC_max %停止条件之一:达到最大迭代次数,停止 %%第二步:将m只蚂蚁放到n个城市上 Randpos=[]; %随即存取 for i=1:(ceil(m/n)) Randpos=[Randpos,randperm(n)]; end Tabu(:,1)=(Randpos(1,1:m))'; %%第三步:m只蚂蚁按概率函数选择下一座城市,完成各自的周游 for j=2:n %所在城市不计算 for i=1:m visited=Tabu(i,1:(j-1)); %记录已访问的城市,避免重复访问 J=zeros(1,(n-j+1)); %待访问的城市 P=J; %待访问城市的选择概率分布 Jc=1; for k=1:n if length(find(visited==k))==0 %开始时置0 J(Jc)=k; Jc=Jc+1; %访问的城市个数自加1 end end %下面计算待选城市的概率分布 for k=1:length(J) P(k)=(Tau(visited(end),J(k))^Alpha)*(Eta(visited(end),J(k))^Beta); end P=P/(sum(P)); %按概率原则选取下一个城市 Pcum=cumsum(P); %cumsum,元素累加即求和 Select=find(Pcum>=rand); %若计算的概率大于原来的就选择这条路线 to_visit=J(Select(1)); Tabu(i,j)=to_visit; end end if NC>=2 Tabu(1,:)=R_best(NC-1,:); end %%第四步:记录本次迭代最佳路线 L=zeros(m,1); %开始距离为0,m*1的列向量

相关文档
最新文档