研究背景——蚁群算法数学模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TSP51问题各算法性能比较表 算法 基本蚁群算法 平均最优解 449.3535 平均迭代次数 124 平均运行时间(s) 29
最大最小蚁群算法
本文改进算法 文献[48]算法 文献[49]算法
437.9628
443.9927 439.9628 447.7771
98
104 未知 未知
29
23 31 33
地收敛于可接受解;而且粒子群优化算法参数少,算法简单易实现,效率较高。
解决问题:
实例仿真法:综合考虑算法的全局搜索能力和收敛速度两项性能指标, 确定各参数的合理区间. 采用“三步走”策略确定蚁群算法参数的较优组合:
(1)利用实例仿真法确定的各个参数的合理区间 (2)利用粒子群优化算法,确定参数的最佳组合 (3)多次结果,求平均
4.89 5.10 5.08 4.75 1.25
4.90 5.79 5.00 5.04
m
34 33 30 34 20
34 40 28 46
0.75 0.78 0.80 0.74 0.50
0.1 0.8 0.50 0.80
最优路径长度
Q
4 5 5 6 1
8 9 4 2
7544.7 7554.0 7576.1 7614.87 8027.0
蚂蚁所留下的分泌物(信息素)选择其要走的路径。其选择一条路径 的概率与该路径上分泌物的强度成正比。因此,由大量蚂蚁组成的 群体的集体行为实际上构成一种学习信息的正反馈现象:某一条路 径走过的蚂蚁越多,后面的蚂蚁选择该路径的可能性就越大。蚂蚁 的个体间通过这种信息的交流寻求通向食物的最短路径。 这种优化过程的本质: 协调机制:蚂蚁间实际上是通过分泌物来互相通信、协同工作的。 选择机制:信息素越多的路径,被选择的概率越大。 更新机制:路径上面的信息素会随蚂蚁的经过而增长,而且同时也 随时间的推移逐渐挥发消失。
max { uallowedk iu } if q q0 P ' P
ij (t ) ik ' p kallowedk 0
j tabuk
本文算法改进——研究过程(3)
3:信息素更新策略策略的改进
采用两层信息素更新策略和最大最小蚁群算法思想
蚁群算法研究及其应用
主要内容
1:论文研究背景 2:本文改进算法 3:蚁群算法参数组合优化 4:TSP仿真系统介绍 5:本文结论 6:致谢
研究背景——蚁群算法原理
蚂蚁算法是一种用来寻找最优解决方案的机率型技术,其灵 感来源于蚂蚁在寻找食物过程中发现最短路径的行为. 自然蚂蚁寻找食物行为:蚂蚁在路径上前进时会根据前边走过的
7794.6 8059.2 7670.4 8205.24
参数最 佳组合
2 3 4 5
6
参数随 机组合
7 8 9
应用推广——研究背景
蚁群算法提出十几年来,取得了丰硕的应用性成果,主要 有:物流配送问题、VRP问题、函数优化问题、车间作业调 度问题、网络路由问题、电力系统机器人领域、控制参数组 合优化问题、聚类分析、数据挖掘、数字图象处理、生命科 学化学工业等等。大量有价值的研究成果将陆续发表,不断 地拓宽了其应用领域。 本文主要从算法实现方面进行应用推 广。 本文采用软件工程思想,利用软件开发技术,设计并实现 了蚁群算法参数训练系统及蚁群算法TSP问题仿真系统;通 过参数训练仿真系统,用户可以训练得到蚁群算法参数的理 想组合;通过蚁群算法仿真系统,用户可以记录并查看算法 求解TSP问题过程的中间数据,最优解及最优路径,查看收 敛图,路径收敛趋势图及算法间性能比较图。
研究背景——蚁群算法数学模型(1)
本文以著名的旅行商问题(TSP)为例,建立蚁群算法数学模型,该问 题可以描述为:一个旅行商从n个城市的某一出发个访问其他所有城市一 次且仅一次后再回到出发城市,要求找出一条最短的路径;该问题可抽象 像为求完全图( n个节点)的最短路径问题。
初始时刻(
t 0 ),各条路径上的信息素相等.
应用推广——研究方案
采用方法:软件工程方法,UML方法
模块划分:
关键技术——UML关键类图
CAnt 成员属性 int *ptabu int m_dLength int m_iCityCount int *pAllowedCity 成员方法 Cant( ) ~Cant( ) int addcity(int city) int ChooseNextCity( ) int MoveTo(int city) int MoveToLast( ) int UpdateResult( ) int Clear( ) CMapInfo 成员属性
ij
0
sallowedk
研究背景——蚁群算法数学模型(2)
更新机制:在 t+n时刻,此时所有的蚂蚁完成了一次遍历,为了避免
残留信息素过多而淹没距离因素,在每只蚂蚁走完一步或者迭代一次后 ,要对路径上的信息素进行更新操作,各路径上信息素可根据以下公式 做调整:
ij (t n) (1 ) ij (t ) ij
k ij ij k 1 m
根据计算方式不同,有蚁周模型、蚁量模型和蚁密模型三种基本模型 ,本文的研究都是基于蚁周模型的,其模型为:
Q if 第k只蚂蚁在本次迭代中过 (i, j ) k ij Lk 0 else
研究背景——蚁群算法研究方向
研究表明蚁群算法具有较强的鲁棒性、分布式计算、易于与其优化算法 结合等优点;但随着问题规模的扩大,算法的运行时间和最优解都不能认 人满意,性能明显下降。大量研究表明蚁群算法也存在一些不足,主要有:
参数组合优化——关键技术
开始 初始化 生成粒子群 循环迭代 Y 求全局最佳位置以及最优适应度函数值 求每个粒子个体最佳位置 移动粒子 更新粒子速度向量 Y
满足循环条件?
N
结束
N
参数组合优化——有效性验证
参数类型 组 次
1
参数取值
1.60 1.49 1.05 1.01 1.35
2.50 3.50 1.00 5.30
两层信息素更新策略:
第1层:原有信息素的挥发 ij(t n) (1 ) ij (t ) 第2层:借鉴奖惩蚁群算法思想,在完成每次循环进行信息素挥发后,根据蚂蚁所建 立路径的长短,进行排序,只有前w只建立短路径的蚂蚁被挑选出来进行奖励,其 他 (m-w )只建立路径的蚂蚁进行惩罚。
针对蚁群算法参数空间大、参数选择难的问题,本文 对蚁群算法参数的组合优化问题进行了讨论。采用实例仿 真法确定各个参数的合理取值区间,采用粒子群算法首次 对蚁群算法的五个重要参数的组合优化问题进行了探讨, 提出了基于粒子群的蚁群算法参数最优组合优化方案。
参数组合优化——研究过程
提出问题:本文将蚁群算法抽象为一个函数,其五个参数为函数的自变量,则
w Q ij (t n) m w r if 0 r w r 1 ij (t n) m Q (t n) if w r m ij r w1 m w r
最大最小蚁群算法思想:若某段路径弧段的信息素相对其他路径弧段的信息
本文算法改进——研究过程(1)
1:初始信息素
基本蚁群算法中,路径上的初始信息素大小是相同的,蚁群创建的第 一条路径所获得的信息主要是城市之间的距离信息,此时,蚁群算法相当 于贪婪算法。第一次循环中蚁群在所经过的路径上留下的信息素不一定能 反映出最优路径的方向。正反馈的作用会使得这条不是最优解的路径上的 信息素得到不应有的增强,阻碍以后的蚂蚁发现更好的全局最优解。为此, 本文改进算法在任意两个城市之间安排的信息素是等量的,但是这等量的信 息素要平均到两个之间的路径上,由于城市之间的距离是不相同的,所以平均 到每一小段上的信息素量就是距离的倒数与分配到这两城市之间的信息素 量之积。为提高初始阶段蚂蚁的搜索能力,改进算法将各路径上的初始信 息素的值按照最大最小蚁群算法思想限定其大小。所以其数学模型为:
选择机制:在 t(t 0 ) 时刻,蚂蚁在运动过程中根据各条路 径上信息素和路径长度因素共同决定移动方向,蚂蚁由位 置i移动到位置j 的转移概率的计算公式如下: ij (t ) ij (t ) if j allowedk P k (t ) is (t ) is (t )
1:算法易出现局部最优、停滞等不良现象
2:在求解较大规模问题时,算法的运行时间过长
3:算法的收敛速度慢
4:算法参数的设置带有很强的经验性和随机性,没有严格的理论认证
蚁群算法研究方向: 算法理论改进 参数分析 应用推广
数学证明
算法改进——研究背景
针对蚁群算法存在的不足,国内外学者开展了大量 有意义的研究。研究成果主要涉及路径搜索策略、信息 素更新策略和最优解保留策略等方面;研究行为主要是 进行算法改进或验证。有些改进算法的性能相比基本蚁 群算法而言有了较大水平的提高,如最大最小蚁群算法 是目前求解TSP问题的最好方法之一;有些已成为主流 的蚁群算法,如:蚁群系统,基于排序的蚁群系统,最优 最差蚁群系统等。 针对基本蚁群算法的不足,本文在借鉴其他算法优 点的基础上提出一种改进的蚁群算法。该算法从以下几 个方面对基本蚁群算法进行了改进: 1:初始信息素的改进 2:路径选择策略的改进 3:信息素更新策略的改进
min ij (0) max
Q ij (0) d ij 0
if i j else
本文算法改进——研究过程(2)
2:路径选择策略的改进
相关文献表明,自然蚂蚁无视觉能力,无法感知距离的远近,在节点选择 时,仅能依靠信息素浓度。为更好的模拟自然蚂蚁,本文改进算法在选择 下一个城市时不再考虑距离因素,仅考虑信息素浓度。同时为有效的提高 优化速度,降低局部最优解停滞的可能性,本文采用伪随机性选择策略,并在 搜索过程中动态地调整确定性选择的概率。即蚂蚁 在 t时刻有城市 i 到城 市 j 的转移概率由下式确定:
素而言在数量上占据绝对的优势时,会引起算法过早地收敛。对这一不足,本文借 鉴MMAS思想,对各路径上的信息素量施加最小最大限制。
min ij (t ) max
本文算法改进——算法流程
开始 初始化 蚂蚁构建路径 N
所有蚂蚁结束?
Y
路径排序 信息素更新 N
满足结束条件?
Y
结束
本文算法改进——性能验证
有函数 f ( , , , m, Q),那么参数的连续区域优化问题可以定义为:确定蚁群算 法五个主要参数 的值,使得函数 取得最优值。由这个定义我们自然地可以将参 数的优化看成一个组合优化问题,而且是一个连续域的组合优化问题。
选定方wenku.baidu.com:粒子群算法,因粒子群优化算法具有很强的全局优化能力,能较快
CAntProject 成员属性
CAnt *ants double m_dLength 成员方法 CAntProject( ) ~CAntProject( ) int initMap( ) int UpdateTrail( ) int GetAnt( ) int StartSearch( )
CAgent 成员属性 double dpos[iAgentDim] double dbest[iAgentDim] double dv[iAgentDim] double m_dFitness double m_dBestFitness 成员方法 CAgent( ) ~CAgent( ) int UpdateFitness( ) int UpdatePos( )
TSP76问题的实验结果 算法 基本蚁群算法 最大最小蚁群系统 本文改进算法 平均最优解 564.6498 559.2238 561.3410 平均迭代次数 238 198 189 平均运行时间 39 34 26
参数组合优化——研究背景
蚁群算法的参数数目众多,参数对算法性能的影响较 大。文献表明:蚁群算法参数的合理组合能够在一定程度上 提高算法的全局搜索能力和加快算法的收敛速度,但遗憾 的是,目前各参数该如何取值只是根据经验来选取合适的 参数值。
最大最小蚁群算法
本文改进算法 文献[48]算法 文献[49]算法
437.9628
443.9927 439.9628 447.7771
98
104 未知 未知
29
23 31 33
地收敛于可接受解;而且粒子群优化算法参数少,算法简单易实现,效率较高。
解决问题:
实例仿真法:综合考虑算法的全局搜索能力和收敛速度两项性能指标, 确定各参数的合理区间. 采用“三步走”策略确定蚁群算法参数的较优组合:
(1)利用实例仿真法确定的各个参数的合理区间 (2)利用粒子群优化算法,确定参数的最佳组合 (3)多次结果,求平均
4.89 5.10 5.08 4.75 1.25
4.90 5.79 5.00 5.04
m
34 33 30 34 20
34 40 28 46
0.75 0.78 0.80 0.74 0.50
0.1 0.8 0.50 0.80
最优路径长度
Q
4 5 5 6 1
8 9 4 2
7544.7 7554.0 7576.1 7614.87 8027.0
蚂蚁所留下的分泌物(信息素)选择其要走的路径。其选择一条路径 的概率与该路径上分泌物的强度成正比。因此,由大量蚂蚁组成的 群体的集体行为实际上构成一种学习信息的正反馈现象:某一条路 径走过的蚂蚁越多,后面的蚂蚁选择该路径的可能性就越大。蚂蚁 的个体间通过这种信息的交流寻求通向食物的最短路径。 这种优化过程的本质: 协调机制:蚂蚁间实际上是通过分泌物来互相通信、协同工作的。 选择机制:信息素越多的路径,被选择的概率越大。 更新机制:路径上面的信息素会随蚂蚁的经过而增长,而且同时也 随时间的推移逐渐挥发消失。
max { uallowedk iu } if q q0 P ' P
ij (t ) ik ' p kallowedk 0
j tabuk
本文算法改进——研究过程(3)
3:信息素更新策略策略的改进
采用两层信息素更新策略和最大最小蚁群算法思想
蚁群算法研究及其应用
主要内容
1:论文研究背景 2:本文改进算法 3:蚁群算法参数组合优化 4:TSP仿真系统介绍 5:本文结论 6:致谢
研究背景——蚁群算法原理
蚂蚁算法是一种用来寻找最优解决方案的机率型技术,其灵 感来源于蚂蚁在寻找食物过程中发现最短路径的行为. 自然蚂蚁寻找食物行为:蚂蚁在路径上前进时会根据前边走过的
7794.6 8059.2 7670.4 8205.24
参数最 佳组合
2 3 4 5
6
参数随 机组合
7 8 9
应用推广——研究背景
蚁群算法提出十几年来,取得了丰硕的应用性成果,主要 有:物流配送问题、VRP问题、函数优化问题、车间作业调 度问题、网络路由问题、电力系统机器人领域、控制参数组 合优化问题、聚类分析、数据挖掘、数字图象处理、生命科 学化学工业等等。大量有价值的研究成果将陆续发表,不断 地拓宽了其应用领域。 本文主要从算法实现方面进行应用推 广。 本文采用软件工程思想,利用软件开发技术,设计并实现 了蚁群算法参数训练系统及蚁群算法TSP问题仿真系统;通 过参数训练仿真系统,用户可以训练得到蚁群算法参数的理 想组合;通过蚁群算法仿真系统,用户可以记录并查看算法 求解TSP问题过程的中间数据,最优解及最优路径,查看收 敛图,路径收敛趋势图及算法间性能比较图。
研究背景——蚁群算法数学模型(1)
本文以著名的旅行商问题(TSP)为例,建立蚁群算法数学模型,该问 题可以描述为:一个旅行商从n个城市的某一出发个访问其他所有城市一 次且仅一次后再回到出发城市,要求找出一条最短的路径;该问题可抽象 像为求完全图( n个节点)的最短路径问题。
初始时刻(
t 0 ),各条路径上的信息素相等.
应用推广——研究方案
采用方法:软件工程方法,UML方法
模块划分:
关键技术——UML关键类图
CAnt 成员属性 int *ptabu int m_dLength int m_iCityCount int *pAllowedCity 成员方法 Cant( ) ~Cant( ) int addcity(int city) int ChooseNextCity( ) int MoveTo(int city) int MoveToLast( ) int UpdateResult( ) int Clear( ) CMapInfo 成员属性
ij
0
sallowedk
研究背景——蚁群算法数学模型(2)
更新机制:在 t+n时刻,此时所有的蚂蚁完成了一次遍历,为了避免
残留信息素过多而淹没距离因素,在每只蚂蚁走完一步或者迭代一次后 ,要对路径上的信息素进行更新操作,各路径上信息素可根据以下公式 做调整:
ij (t n) (1 ) ij (t ) ij
k ij ij k 1 m
根据计算方式不同,有蚁周模型、蚁量模型和蚁密模型三种基本模型 ,本文的研究都是基于蚁周模型的,其模型为:
Q if 第k只蚂蚁在本次迭代中过 (i, j ) k ij Lk 0 else
研究背景——蚁群算法研究方向
研究表明蚁群算法具有较强的鲁棒性、分布式计算、易于与其优化算法 结合等优点;但随着问题规模的扩大,算法的运行时间和最优解都不能认 人满意,性能明显下降。大量研究表明蚁群算法也存在一些不足,主要有:
参数组合优化——关键技术
开始 初始化 生成粒子群 循环迭代 Y 求全局最佳位置以及最优适应度函数值 求每个粒子个体最佳位置 移动粒子 更新粒子速度向量 Y
满足循环条件?
N
结束
N
参数组合优化——有效性验证
参数类型 组 次
1
参数取值
1.60 1.49 1.05 1.01 1.35
2.50 3.50 1.00 5.30
两层信息素更新策略:
第1层:原有信息素的挥发 ij(t n) (1 ) ij (t ) 第2层:借鉴奖惩蚁群算法思想,在完成每次循环进行信息素挥发后,根据蚂蚁所建 立路径的长短,进行排序,只有前w只建立短路径的蚂蚁被挑选出来进行奖励,其 他 (m-w )只建立路径的蚂蚁进行惩罚。
针对蚁群算法参数空间大、参数选择难的问题,本文 对蚁群算法参数的组合优化问题进行了讨论。采用实例仿 真法确定各个参数的合理取值区间,采用粒子群算法首次 对蚁群算法的五个重要参数的组合优化问题进行了探讨, 提出了基于粒子群的蚁群算法参数最优组合优化方案。
参数组合优化——研究过程
提出问题:本文将蚁群算法抽象为一个函数,其五个参数为函数的自变量,则
w Q ij (t n) m w r if 0 r w r 1 ij (t n) m Q (t n) if w r m ij r w1 m w r
最大最小蚁群算法思想:若某段路径弧段的信息素相对其他路径弧段的信息
本文算法改进——研究过程(1)
1:初始信息素
基本蚁群算法中,路径上的初始信息素大小是相同的,蚁群创建的第 一条路径所获得的信息主要是城市之间的距离信息,此时,蚁群算法相当 于贪婪算法。第一次循环中蚁群在所经过的路径上留下的信息素不一定能 反映出最优路径的方向。正反馈的作用会使得这条不是最优解的路径上的 信息素得到不应有的增强,阻碍以后的蚂蚁发现更好的全局最优解。为此, 本文改进算法在任意两个城市之间安排的信息素是等量的,但是这等量的信 息素要平均到两个之间的路径上,由于城市之间的距离是不相同的,所以平均 到每一小段上的信息素量就是距离的倒数与分配到这两城市之间的信息素 量之积。为提高初始阶段蚂蚁的搜索能力,改进算法将各路径上的初始信 息素的值按照最大最小蚁群算法思想限定其大小。所以其数学模型为:
选择机制:在 t(t 0 ) 时刻,蚂蚁在运动过程中根据各条路 径上信息素和路径长度因素共同决定移动方向,蚂蚁由位 置i移动到位置j 的转移概率的计算公式如下: ij (t ) ij (t ) if j allowedk P k (t ) is (t ) is (t )
1:算法易出现局部最优、停滞等不良现象
2:在求解较大规模问题时,算法的运行时间过长
3:算法的收敛速度慢
4:算法参数的设置带有很强的经验性和随机性,没有严格的理论认证
蚁群算法研究方向: 算法理论改进 参数分析 应用推广
数学证明
算法改进——研究背景
针对蚁群算法存在的不足,国内外学者开展了大量 有意义的研究。研究成果主要涉及路径搜索策略、信息 素更新策略和最优解保留策略等方面;研究行为主要是 进行算法改进或验证。有些改进算法的性能相比基本蚁 群算法而言有了较大水平的提高,如最大最小蚁群算法 是目前求解TSP问题的最好方法之一;有些已成为主流 的蚁群算法,如:蚁群系统,基于排序的蚁群系统,最优 最差蚁群系统等。 针对基本蚁群算法的不足,本文在借鉴其他算法优 点的基础上提出一种改进的蚁群算法。该算法从以下几 个方面对基本蚁群算法进行了改进: 1:初始信息素的改进 2:路径选择策略的改进 3:信息素更新策略的改进
min ij (0) max
Q ij (0) d ij 0
if i j else
本文算法改进——研究过程(2)
2:路径选择策略的改进
相关文献表明,自然蚂蚁无视觉能力,无法感知距离的远近,在节点选择 时,仅能依靠信息素浓度。为更好的模拟自然蚂蚁,本文改进算法在选择 下一个城市时不再考虑距离因素,仅考虑信息素浓度。同时为有效的提高 优化速度,降低局部最优解停滞的可能性,本文采用伪随机性选择策略,并在 搜索过程中动态地调整确定性选择的概率。即蚂蚁 在 t时刻有城市 i 到城 市 j 的转移概率由下式确定:
素而言在数量上占据绝对的优势时,会引起算法过早地收敛。对这一不足,本文借 鉴MMAS思想,对各路径上的信息素量施加最小最大限制。
min ij (t ) max
本文算法改进——算法流程
开始 初始化 蚂蚁构建路径 N
所有蚂蚁结束?
Y
路径排序 信息素更新 N
满足结束条件?
Y
结束
本文算法改进——性能验证
有函数 f ( , , , m, Q),那么参数的连续区域优化问题可以定义为:确定蚁群算 法五个主要参数 的值,使得函数 取得最优值。由这个定义我们自然地可以将参 数的优化看成一个组合优化问题,而且是一个连续域的组合优化问题。
选定方wenku.baidu.com:粒子群算法,因粒子群优化算法具有很强的全局优化能力,能较快
CAntProject 成员属性
CAnt *ants double m_dLength 成员方法 CAntProject( ) ~CAntProject( ) int initMap( ) int UpdateTrail( ) int GetAnt( ) int StartSearch( )
CAgent 成员属性 double dpos[iAgentDim] double dbest[iAgentDim] double dv[iAgentDim] double m_dFitness double m_dBestFitness 成员方法 CAgent( ) ~CAgent( ) int UpdateFitness( ) int UpdatePos( )
TSP76问题的实验结果 算法 基本蚁群算法 最大最小蚁群系统 本文改进算法 平均最优解 564.6498 559.2238 561.3410 平均迭代次数 238 198 189 平均运行时间 39 34 26
参数组合优化——研究背景
蚁群算法的参数数目众多,参数对算法性能的影响较 大。文献表明:蚁群算法参数的合理组合能够在一定程度上 提高算法的全局搜索能力和加快算法的收敛速度,但遗憾 的是,目前各参数该如何取值只是根据经验来选取合适的 参数值。