仿真的多目标优化(蚁群算法在旅行商问题中的应用)
蚁群算法在旅行商问题优化中的应用方法

蚁群算法在旅行商问题优化中的应用方法旅行商问题(Traveling Salesman Problem,TSP)是指一个旅行商需要经过若干个城市,并返回出发城市,要求在所经过的城市中路径最短的问题。
蚁群算法(Ant Colony Optimization,ACO)是一种模拟蚂蚁觅食行为的算法,通过蚂蚁在路径选择过程中释放信息素来优化路径选择。
蚁群算法在旅行商问题优化中有着广泛的应用。
蚁群算法的基本原理是模拟蚂蚁在寻找食物时释放和感知路径上的信息素。
在旅行商问题中,蚂蚁可以被视为旅行商,城市可以被视为路径上的节点。
蚂蚁选择路径的概率与路径上的信息素浓度有关,信息素浓度越高,路径被选择的概率越大。
蚁群算法在旅行商问题中的应用方法可以分为两个阶段:路径构建和路径优化。
在路径构建阶段,蚂蚁依次选择下一个要访问的城市。
每只蚂蚁根据概率选择下一个城市,概率计算的依据是路径上的信息素浓度和城市之间的距离。
信息素浓度越高、距离越近的城市被选择的概率越大。
一旦蚂蚁选择了下一个城市,它将更新当前路径,并释放信息素到路径上。
在路径优化阶段,蚂蚁在构建路径的同时,释放的信息素会逐渐积累在路径上。
信息素的更新是基于蚂蚁的路径选择和路径上信息素的挥发。
路径选择后,蚂蚁释放的信息素会根据路径的长度进行调整。
较短的路径会释放更多的信息素,较长的路径会释放较少的信息素。
同时,路径上的信息素会随着时间的推移逐渐挥发。
这样,蚂蚁倾向于选择较短的路径,更多的信息素会沿着较短的路径累积,进一步增加这条路径被选择的概率,从而优化整体路径的选择。
蚁群算法在旅行商问题优化中的应用方法包括参数设置、信息素更新策略和蚁群数量等。
首先,参数设置对蚁群算法的性能影响重大。
例如,信息素浓度和距离之间的权重比例决定了选择下一个城市的概率。
合理的参数设置可以加快算法的收敛速度和稳定性。
其次,信息素更新策略决定了信息素的时变规律。
一般来说,信息素的更新有两个过程:局部信息素更新和全局信息素更新。
蚁群算法在优化问题中的应用

蚁群算法在优化问题中的应用蚁群算法是一种基于模拟蚂蚁行为的优化算法。
它主要适用于NP难问题(NP-hard problem),如图论、组合优化和生产调度问题等。
在这些问题中,找到近似最优解是非常困难的,蚁群算法通过模拟蚂蚁寻找食物的过程,利用蚂蚁的群智能来搜索最优解。
蚁群算法的基本思路是通过模拟蚂蚁找食物的过程,来寻找问题的最优解。
蚂蚁在寻找食物时,会在路径上释放一种信息素,这种信息素可以吸引其它蚂蚁跟随自己的路径。
信息素的浓度会随着路径的通行次数增加而增加,从而影响蚂蚁选择路径的概率。
在寻找最优解的过程中,蚂蚁的行为规则主要包括路径选择规则和信息素更新规则。
在路径选择规则方面,蚂蚁主要通过信息素浓度和距离来选择路径。
信息素浓度越高的路径,蚂蚁越有可能选择这条路径。
但是为了防止蚂蚁陷入局部最优解,蚂蚁也会有一定概率选择比较远的路径。
在信息素更新规则方面,主要是根据蚂蚁走过的路径长度和路径的信息素浓度来更新信息素。
如果一条路径被蚂蚁选中并走过,就会在路径上留下一定浓度的信息素。
而浓度高的路径会被更多的蚂蚁选择,从而增加信息素的浓度。
但是信息素会随着时间的推移而挥发,如果路径在一段时间内没有被选择,其上的信息素浓度就会逐渐减弱。
在实际应用中,蚁群算法主要用于优化问题,如图论、组合优化和生产调度问题等。
例如,在图论中,蚁群算法可以用来寻找最短路径问题。
在组合优化中,蚁群算法可以用来求解旅行商问题和装载问题等。
在生产调度问题中,蚁群算法可以用来优化生产过程和资源分配。
总之,蚁群算法是一种非常有用的优化算法,它可以利用群智能来搜索最优解,具有较好的鲁棒性和适应性。
未来,蚁群算法还可以应用于更多领域,如金融、医疗和物流等,为各行各业的优化问题提供更好的解决方案。
多目标蚁群算法及其实现

多目标蚁群算法及其实现李首帅(2012101020019)指导老师:张勇【摘要】多目标优化问题对于现阶段来说,是十分热门的。
本文将对多目标规划当中的旅行商问题,通过基于MATLAB的蚁群算法来解决,对多目标问题进行局部优化。
【关键词】旅行商问题;蚁群算法;MATLAB一、背景介绍旅行商问题是物流领域当中的典型问题,它的求解十分重要。
蚁群算法是受自然界中真实蚁群的集体行为的启发而提出的一种基于群体的模拟进化算法,属于随机搜索算法。
M. Dorigo等人充分利用了蚁群搜索食物的过程与旅行商问题(TSP)之间的相似性,通过人工模拟蚁群搜索食物的行为(即蚂蚁个体之间通过间接通讯与相互协作最终找到从蚁穴到食物源的最短路径)来求解TSP问题。
为区别于真实蚁群,称算法中的蚂蚁为“人工蚂蚁”。
人们经过大量研究发现,蚂蚁个体之间是通过一种称之为信息素(pheromone)的物质进行信息传递,从而能相互协作,完成复杂的任务。
蚁群之所以表现出复杂有序的行为,个体之间的信息交流与相互协作起着重要的作用。
蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且能够感知这种物质的存在及其强度,并以此指导自己的运动方向。
蚂蚁倾向于朝着该物质强度高的方向移动。
因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。
蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。
二、蚁群算法原理介绍1.蚁群在路径上释放信息素;2.碰到还没走过的路口,就随机挑选一条路走。
同时释放与路径长度有关的信息素;3.信息素浓度与路长成反比;4.最优路径上的信息浓度越来越大;5.最终蚁群找到最优路径。
其实自然界中,蚁群这种寻找路径的过程表现是一种正反馈的过程,与人工蚁群的优化算法很相近。
所以我们简单功能的工作单元视为蚂蚁,则上述的搜寻路径过程可以用来解释人工蚁群搜寻过程。
人工蚁群和自然界蚁群各具特点。
蚁群优化算法的改进及其在旅行商问题中的应用

蚂 蚁系 统 (Ant System,AS),是 继模 拟退火 、遗传 算 法 和 人 工 神 经 网路 等 算 法 后 的 又 一 种仿 生 优 化 算 法 ,在调 度 问题翻、旅 行 商 问题 (Traveling Sale¥man
提 高算法 的全 局性 能 。
2 蚁群优化算法的原理
Problem P)_3l、网 络 路 由 等 方 面 得 到 广 泛 应 用
1 概 述
射 进 行 信 息 素 初始 化 【1】1,并 使 用 反 向学 习 策 略【 2】进 行 初始化 信息 素 的更新 。2)信 息素 挥发 因子 的动态
蚁群 优 化 (Ant Colony Optimization,ACO)算 更 新方 式 根据 文献 【 31对 信息 素挥 发 因子 的研 究结
针 对 一 些 改 进算 法 的缺 陷 .主 要 做 了如 下 工
,=(1一 )。。c,-4- ’To其中: 0=1/nLm为初始
信息 素, ∈(O 1)为参 源自 。 (11 全局更新方 式只对最优蚂蚁使用 。其更 新公式 为 :
f , +1)=(1一,))’ )+P‘ l,(,)
f21
第 2期
刘 好斌 :蚁 群优化算 法 的改进及其 在旅 行商 问题 中的应用
59
转移 到城 市 i的概率 。为 :
I argmax{I ( I ·1%(0r},其中 § , allo,
劈 1 ∑ ( .【 ( 一中… …… …w…峨。
(3) 其 中 , 表 示 城 市 i与 城 市 j之 间 的 启 发 式 因 子 ,一般 取值 为 :1/da;仅和 B分 别 表示 信 息 素和 启 发式 因子 的相对 重 要程 度 。
基于蚁群算法的旅行商问题解决方案

基于蚁群算法的旅行商问题解决方案描述旅行商问题是一个经典的组合优化问题,也是计算机科学领域中的一个问题。
它是指一个旅行商要在多个城市之间旅行,他需要找到从一个城市出发,经过若干个城市,最终返回原来的城市所需的最短路径。
蚁群算法是一种启发式搜索算法,模拟了蚁群在寻找食物时的行为。
该算法通过模拟蚂蚁在场景中的行动策略,找到最优解。
在蚁群算法中,蚂蚁根据已知的信息和他们自身的记忆快速找到最优路径。
因此,蚁群算法成功地被应用于解决许多优化问题,包括旅行商问题。
蚁群算法中,每个蚂蚁都会向其他蚂蚁释放信息,来传递它所发现的路径的信息。
其他蚂蚁会通过“估算函数”来决定哪一条路径更值得去选择。
通过不断地多轮迭代,我们最终得到一个最优的路径。
解决方案步骤1. 建立距离矩阵在使用蚁群算法解决旅行商问题时,首先需要建立起各个城市之间的距离矩阵。
这里距离的定义可以是距离、时间、成本等。
距离矩阵通常是一个对称矩阵,因为从城市 A 到城市 B 的距离等于从城市 B 到城市 A 的距离。
2. 初始化信息素在蚁群算法中,信息素有很大的作用。
初始化信息素的方式有很多种,最常用的方法是将任意小的值分配给连接任意两个城市的路径上的信息素。
3. 计算蚂蚁的转移概率蚂蚁在寻找食物时也是根据“成本”和“信息素”来选择路径的。
在这里,“成本”可以表示为距离,而“信息素”则用于表示蚂蚁传递信息的强度。
蚂蚁在寻找路径时,会考虑到两个城市之间的距离和路径上的信息素,然后他们会根据之前的经验来找到最短路径。
4. 路径更新在路径更新过程中,蚂蚁会遵循之前所述的方法,计算出路径的长度,并依据此更新路径上的信息素。
蚂蚁所建立的信息素数量为该蚂蚁走过的路径长度的某个变体。
5. 调整信息素残留量在运行过程中,信息素量也需要适当的调整。
在信息素量退火时,需要将所有的信息素小幅更新,并且平衡化当前的信息素与上一轮更新的信息素。
优点相比于其他优化算法如遗传算法和模拟退火算法等,蚁群算法有以下优点:1. 效率高蚁群算法可以在较短的时间内找到较优的解,且需要的计算量不大。
蚁群算法求解旅行商问题及实现

2014. 05图 1 旅行商城市示意图 图 2 蚁群算法求解结果王文举(72506 部队, 河南 驻马店 463219)摘 要: 介绍了蚁群算法的基本原理、 设计思路和在求解旅行商问题中的具体应用, 并给出了完 整的代码实现, 对于读者学习和应用蚁群算法有很好的借鉴作用。
关键词: C# 语言; 蚁群算法; 旅行商问题1 引言蚁群算法是近年来出现的一种新型的模拟进化算法 。
它 是 由 意 大 利 学 者 M.Dorigo 等 人 首 先 提 出 来 的 , 他们充分利用蚁 群搜索食物的过程与旅行商问题 (TSP) 之间的相似性, 解 决 了 TSP 问题, 取得了很好的结果 。
随 后 , 蚁群算法被用来求解分 配 问 题 、 武 器-目 标 分 配 问 题 、 指 派 问 题 、 频 率 分 配 问 题 、 电 力系统故障诊断等问题 , 显示出蚁群算法在求解复杂优化问题 方面的优越性。
实验观察表明, 蚂蚁在运动过程中会留下一种分泌物 ,其 后面的蚂蚁可根据前边走过的蚂蚁所留下的分泌物选择其要走 的路径。
一条路径上的分泌物 越 多 , 蚂蚁选择这条路径的概率 就越大。
因此, 蚂蚁群体的集体行为实际上构成一种学习信息 的正反馈现象, 蚂蚁之间通过这种信息交流寻求通向食物的最 短路径。
蚁群算法正是模拟了这样的优化机制 ,即 通 过 个 体 之 间的信息交流与相互协作最终找到最优解 。
2 设计思路 以 旅 行 商 (TSP) 问题为例来说明基本蚁群算法的 实 现 过程 , 图 1 为旅行商问题中 32 个 城 市 示 意 图 , 已知城市的相对 坐 标 (int [] center_x , int [] center_y ) 和城市相邻矩阵(int [,] NeighbourM atri x ), 城市间的距离采用 Hamilton 距 离 。
图 2 为利用蚁群算法求解旅行商问 题 的 结 果 。
蚁群算法在优化问题中的应用

蚁群算法在优化问题中的应用蚁群算法(Ant Colony Optimization,简称ACO)是一种模拟蚁群寻找食物的行为,应用于求解优化问题的自适应启发式算法。
自1990年首次提出以来,蚁群算法已经被广泛应用于诸如旅行商问题、调度问题、路径规划等各种优化问题中。
本文将面对蚁群算法的原理、模型和应用于实际问题中的案例进行探讨。
1. 原理蚁群算法的实现依赖于大量蚂蚁的协同合作。
蚂蚁之间能够通过一种称为信息素的化学物质相互通信,这种物质主要起到标记路径的作用。
当蚂蚁在探索路径时,如果某一路径上的信息素浓度较高,它们就会倾向于选择该路径,并在其上释放更多的信息素,使得这条路径更易于被其他蚂蚁选择。
随着时间的推移,信息素会逐渐蒸发,低浓度的信息素会消失。
这样,优良的路径将得到更多的标记,成为更有吸引力的路径,代表更优的解决方案。
2. 模型蚁群算法的模型包含三个部分:蚂蚁的移动行为、信息素更新策略和路径规划策略。
蚂蚁的移动行为:每个蚂蚁在搜索过程中,会按照一定的规则进行移动。
首先,在搜索过程中每只蚂蚁都具有一个起点和一个终点。
然后,每只蚂蚁根据概率选取下一步移动的目标位置,概率由信息素浓度和路径长度等因素影响。
最后,蚂蚁到达终点之后会根据距离和所经历的路径浓度计算出路径的适应度,再将该适应度反馈给整个蚁群。
信息素更新策略:当蚂蚁经过一段路径时,它会在路径上留下一些信息素。
这些信息素的浓度将影响其他蚂蚁在下一轮搜索时选择路径的概率。
为了使搜索过程更加高效,这些信息素的浓度应该根据一定的规则进行更新。
在蚁群算法中,有两种更新策略:全局更新和局部更新。
全局更新指,当所有蚂蚁完成一次迭代之后根据已经获得的适应度来更新信息素。
局部更新指,当某只蚂蚁在搜索过程中经过某条路径时,会根据该蚂蚁在该路径上的适应度更新信息素浓度。
这两种更新策略可以结合在一起,使蚁群算法更为高效。
路径规划策略:在路径规划策略中,蚁群算法通常有两种模式:最短路径模式和最优路径模式。
蚁群算法应用场景

蚁群算法应用场景
蚁群算法是一种模拟蚂蚁寻找食物的算法,它可以应用于许多实际问题中,例如:
1. 路径规划:蚁群算法可以用于寻找最短路径,例如在交通网络中找到最短路径。
2. 旅行商问题:蚁群算法可以用于解决旅行商问题,即找到一条最短路径,使得旅行商能够访问所有城市。
3. 任务分配:蚁群算法可以用于任务分配,例如在生产线上分配任务给不同的机器人或工人。
4. 网络优化:蚁群算法可以用于优化网络拓扑结构,例如在无线传感器网络中优化传感器节点的位置。
5. 组合优化:蚁群算法可以用于求解组合优化问题,例如在装载物品时找到最优的组合方式。
综上所述,蚁群算法具有广泛的应用场景,能够解决许多实际问题,特别是在路径规划、旅行商问题、任务分配、网络优化和组合优化方面表现出色。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蚁群算法在旅行商问题中的应用(多目标优化模型)蚁群算法在旅行商问题中的应用摘要本文将对蚁群算法的仿真学原理进行概要介绍和对蚁群算法产生、发展、优化进行介绍以及阐述蚁群算法的几点重要基本规则,并对蚁群算法的优缺点进行讨论。
蚁群算法是受自然界中蚁群搜索食物行为启发而提出的一种智能多目标优化算法,通过介绍蚁群觅食过程中基于信息素的最短路径的搜索策略,给出基于MATLAB的蚁群算法在旅行商问题中的应用。
关键字:蚁群算法;旅行商问题;仿真;多目标优化一、问题重述旅行商问题(TSP)是一个经典的组合优化问题。
TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。
应如何选择行进路线,以使总的行程最短。
从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton 回路。
由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个N P完全问题。
随着问题规模的增大,人们对复杂事物和复杂系统建立数学模型并进行求解的能力是有限的,目标函数和约束条件往往不能以明确的函数关系表达,或因函数带有随机参、变量,导致基于数学模型的优化方法在应用于实际生产时,有其局限性甚至不适用。
基于仿真的优化(Simulation Based Optimization,SBO)方法正是在这样的背景下发展起来的。
本文将使用一种近似算法或启发式算法—蚁族算法。
1、蚁群算法的提出蚁群算法(Ant Colony Optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。
它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
2、蚁群算法的仿生学原理蚁群算法最初是通过对蚂蚁群落的观察,受蚁群行为特征启发而得出的。
蚂蚁是一种群居昆虫,在觅食、清理巢穴征启发而得出的。
蚂蚁是一种群居昆虫,在觅食、等活动中,彼此依赖、相互协作共同完成特定的任务。
等活动中,彼此依赖、相互协作共同完成特定的任务。
就个体来讲,单个蚂蚁的智力和体力是极其有限的,体来讲,单个蚂蚁的智力和体力是极其有限的,服务于整个群落的生存与发展;就群体来讲,蚁群在行为上的分工协作、群落的生存与发展;就群体来讲,蚁群在行为上的分工协作、在完成任务过程中所体现的自组织特征等反应出蚁群具有较高的智能和自我管理能力,具有很高层次组织性,高的智能和自我管理能力,具有很高层次组织性,这使得蚁群能够完成一些复杂的任务。
群能够完成一些复杂的任务。
蚁群的行为是整体协作,相互分工,蚁群的行为是整体协作,相互分工,以一个整体去解决一些对单个蚂蚁看上去是不可能完成的任务。
些对单个蚂蚁看上去是不可能完成的任务。
就目前来讲,蚁群至少有三个方面的行为特征对算法研究有很好的启发意义,分别是觅食行为、任务分配、死蚁堆积阁。
蚁群的觅食行为指蚂蚁从巢穴出发寻找食物并且将食物搬回巢穴的行为.当蚂蚁出外寻找食物时,会在自己走过的路径上释放一种称为信息家的物质,径上释放一种称为信息家的物质,后续的蚂蚁一般更愿意走那些信息素强度更高的路径。
这样,那些信息素强度更高的路径。
这样,较短路径上单位时间内通过的蚂蚁数目较多,留下的信息素也较多(浓度更高) 通过的蚂蚁数目较多,留下的信息素也较多(浓度更高),对蚂蚁产生了更强的吸引,使得更多的蚂蚁走较短的路径。
妈蚁产生了更强的吸引,使得更多的蚂蚁走较短的路径。
这就形成了一个正反馈机制,就形成了一个正反馈机制,使得最终所有的蚂蚁都走蚁穴到食物源的最短路径. 食物源的最短路径.3、蚁群算法实现的重要规则(1)范围蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内。
(2)环境蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。
每个蚂蚁都仅仅能感知它范围内的环境信息。
环境以一定的速率让信息素消失。
(3)觅食规则在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。
否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁都会以小概率犯错误,从而并不是往信息素最多的点移动。
蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。
(4)移动规则每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。
为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。
(5)避障规则:如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。
(6)播撒信息素规则:每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。
根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。
比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。
二、问题分析旅行商问题的各个城市间的距离可以用代价矩阵来表示,就是邻接矩阵表示法。
如果E j i ∉),(,则∞=ij c 。
先说明旅行商问题具有最优解结构。
设s s s s p ,,.....,,21是从s 出发的一条路径长度最短的简单回路,假设从s 到下一个城市1s 已经求出,则问题转化为求1s 到S 的最短路径,显然s s s s p ,,.....,,21一定构成一条从1s 到S 的最短路径,如果不然,设s r r r s q ,,.....,,,211是一条从1s 到S 的最短路径且经过n-1个城市,则s r r r s s q ,,.....,,,,211将是从S 出发的路径长度最短的简单回路且比s s s s s p ,,.....,,,21要短,从而导致矛盾。
所以,旅行商问题一定满足最优性原理。
四、符号说明五、模型的建立与求解1.旅行商模型:),(E V G =为一个带权图,},2,1{n V =为顶点集,},,),({{j i V j i j i e E ij ≠∈==为边集。
),,(j i V j i d ij ≠∈为顶点i 到顶点j 的距离, 其中0≥ij d 且∞≠ij d ,同时),,(V j i d d ji ij ∈=则经典TSP 的数学模型为:)1(min ∑≠=j i ijij xx d F)2(0`,1..⎪⎩⎪⎨⎧=不在最优路径上,边在最优路径上边ij ij ij e e x st )3(,1j i ∑≠∈=Vi x ij)4(,1j i ∑≠∈=V j x ij )5(,,∑∈sj i G s s 的子图是 其中s 是图s 的顶点数。
(1)为ctsp 的目标函数,求经过所有顶点的回路的最小距离。
(2)-(4)限定回路上每个顶点仅有一条入边和一条出边。
( 5 ) 限定在回路中不出现子回路。
模型实质上是在一个带权图中求一条H a m i l t o n 回路。
若对所有i ,j,k ∈V , 不等式ik jk ij d d d ≥+均成立, 则称该问题是满足三角不等式的。
2.蚂蚁算法求解TSP 问题的具体过程如下:(1)首先初始化,设迭代次数为NC 。
初始化NC=0,各),(j i τ初始化;10-=nn nL τ(2)将m 个蚂蚁置于n 个顶点上;(3)构造解。
每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条线路。
蚂蚁任务是访问所有的城市后回到起点,生成一条回路。
设蚂蚁k 当前所在的顶点为i ,那么,蚂蚁k 由点i 向点j 移动要遵循(1)式的状态变化规则而不断迁移,按不同概率来选择下一点。
[])1(00)()()()(max arg ⎪⎪⎩⎪⎪⎨⎧∈=>≤n Exloitatio q q J n Exloitatio q q ij ij allowed k j βαητ (1)式中,k k tabu n alowed --=}1,1,0{ 表示蚂蚁k 当前能选择的城市集合,k tabu 为禁忌表,它记录蚂蚁k 已路过的城市,用来说明人工蚂蚁的记忆性 ;式中ij τ相当于真实蚂蚁沿途散播的信息素,是一个正实数,与图G 中弧(i ,j )关联,其值在运行时不断改变,用于表示蚂蚁从点i 向点j 移动的动力;ij η用于评价蚂蚁从点i 向点j 移动的启发函数,其值通常用距离的倒数来求得,即1),(-=j i ij c c d η。
βα,体现了信息素和启发信息对蚂蚁决策的影响。
α取值为1;参数0>β描述启发函数的重要性;参数)10(00≤≤q q 决定利用和开发的相对重 要性,利用(Exploitation )是指走最好的路,开发(Exploration )是指按浓度高概率高的原则选路V ,这样可以保证选择路径的多样性;q 是在[0,1] 取的随机数,当0q q ≤时,按(1)式选最好的路,否则按(2)式的概率进行选路:⎪⎪⎩⎪⎪⎨⎧∈=∑∈otherwiseallowed j if t t p k allowedk ik ik ij ij k ij 0)())(()()()(βαβαητητ (4)局部更新信息素值。
应用局部信息素更新规则来改变信息素值。
在构造解时,蚂蚁k 对其走过的每条弧用:0)1(ρττρτ+-=old ij new ij局部信息素更新规则来改变弧上关联的信息素值,其中10<<ρ是信息素挥发参数。
(5)若所有的m 个蚂蚁都构造完解,则转(6) ;否则转(3) ;(6)全局更新信息素值。
应用全局信息素更新规则来改变信息素值。
当所有m 个蚂蚁生成了m 个解,其中有一条最短路径是本代最优解,将属于这条路线上的所有弧相关联的信息素值按下式更新:)()()1()1(t t t gb ij ij ij τρτρτ∆+-=+⎩⎨⎧∈=∆otherwise T j i arc if t L t gb gb gb ij 0),()(/1)(τ其中10<<ρ是挥发参数;)(t L gb 是目前得到的全局最优解的路线长度。
全局信息素更新的目的是在最短路线上注入额外的信息素,即只有属于最短路线的弧上的信息素才能得到加强,这是一个正反馈的过程,也是一个强化学习的过程。