应用篇-第11章-蚁群算法的仿真与实现
蚁群算法的原理与实现

蚁群算法的原理与实现蚁群算法的原理与实现蚁群算法是一种基于蚁群行为觅食的启发式搜索算法,它模拟了蚁群觅食的过程,通过蚂蚁之间的信息交流和相互合作,最终找到最优解。
蚁群算法具有自组织、分布式计算和并行搜索等特点,被广泛应用于优化问题的求解。
蚁群算法的基本原理是模拟蚂蚁觅食的行为。
在蚂蚁觅食的过程中,蚂蚁们会释放信息素,并根据信息素的浓度选择路径。
当一只蚂蚁找到食物后,它会返回蚁巢,并释放更多的信息素,吸引其他蚂蚁跟随它的路径。
随着时间的推移,路径上的信息素浓度会逐渐增加,越来越多的蚂蚁会选择这条路径,形成正反馈的效应。
最终,蚂蚁们会找到一条最优路径连接蚁巢和食物。
蚁群算法的实现过程可以分为两个阶段,即路径选择阶段和信息素更新阶段。
在路径选择阶段,蚂蚁根据信息素的浓度和距离选择路径。
通常情况下,蚂蚁倾向于选择信息素浓度高且距离短的路径。
在信息素更新阶段,蚂蚁会根据路径的质量释放信息素。
一般来说,路径质量好的蚂蚁会释放更多的信息素,以吸引更多的蚂蚁跟随。
为了实现蚁群算法,需要定义一些重要的参数,如信息素浓度、信息素挥发率、蚂蚁的移动速度和路径选择的启发因子等。
信息素浓度表示路径上的信息素浓度大小,信息素挥发率表示信息素的衰减速度,蚂蚁的移动速度表示蚂蚁在路径上的移动速度,路径选择的启发因子表示蚂蚁在选择路径时信息素和距离的权重。
蚁群算法的优势在于它能够找到全局最优解,并且对解空间的搜索范围不敏感。
同时,蚁群算法还能够处理具有多个局部最优解的问题,通过信息素的传播和挥发,逐渐淘汰次优解,最终找到全局最优解。
然而,蚁群算法也存在一些不足之处。
首先,算法的收敛速度较慢,需要进行多次迭代才能达到较好的结果。
此外,算法的参数设置对算法的性能影响较大,需要进行调优。
最后,蚁群算法在处理大规模问题时,需要消耗较大的计算资源。
总的来说,蚁群算法是一种有效的优化算法,能够解决许多实际问题。
通过模拟蚂蚁的觅食行为,蚁群算法能够找到最优解,具有自组织、分布式计算和并行搜索等特点。
蚁群算法的原理及流程

蚁群算法的原理及流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!蚁群算法的原理及流程在实际中的应用一、原理阐述阶段。
蚁群算法是一种模拟自然界中蚂蚁觅食行为的仿生算法。
蚁群算法的原理与应用论文

蚁群算法的原理与应用论文引言蚁群算法(Ant Colony Optimization,简称ACO)是一种模拟蚂蚁觅食行为的优化算法。
它源于对蚂蚁在寻找食物过程中的集体智能行为的研究,通过模拟蚂蚁在寻找食物时的信息交流和路径选择,来寻求最优解。
蚁群算法具有全局搜索能力、自适应性和高效性等特点,被广泛应用于各个领域的优化问题求解中。
蚁群算法的原理蚁群算法的原理主要包括蚂蚁行为模拟、信息交流和路径选择这三个方面。
蚂蚁行为模拟蚂蚁行为模拟是蚁群算法的核心,它模拟了蚂蚁在寻找食物时的行为。
蚂蚁沿着路径前进,释放信息素,并根据信息素的浓度选择下一步的移动方向。
当蚂蚁在路径上发现食物时,会返回到蚂蚁巢穴,并释放更多的信息素,以引导其他蚂蚁找到这条路径。
信息交流蚂蚁通过释放和感知信息素来进行信息交流。
蚂蚁在路径上释放信息素,其他蚂蚁在感知到信息素后,会更有可能选择这条路径。
信息素的浓度通过挥发和新的信息素释放来更新。
路径选择在路径选择阶段,蚂蚁根据路径上的信息素浓度选择移动的方向。
信息素浓度较高的路径更有可能被选择,这样会导致信息素逐渐积累并形成路径上的正反馈。
同时,蚂蚁也会引入一定的随机因素,以增加算法的多样性和全局搜索能力。
蚁群算法的应用蚁群算法已经在各个领域得到广泛的应用,下面列举了几个常见的领域:•路径规划:蚁群算法能够用于求解最短路径和最优路径问题。
通过模拟蚂蚁寻找食物的行为,可以得到最优的路径解决方案。
•旅行商问题:蚁群算法被广泛应用于旅行商问题的求解中。
通过模拟蚂蚁的行为,找到最优的旅行路径,使得旅行商能够有效地访问多个城市。
总结蚁群算法是一种模拟蚂蚁觅食行为的优化算法,通过模拟蚂蚁的行为和信息交流,来寻找最优解。
蚁群算法具有全局搜索能力、自适应性和高效性等特点,在各个领域都得到了广泛应用。
未来,随着对蚁群算法的深入研究和改进,相信它会在更多的优化问题求解中发挥重要作用。
以上是关于蚁群算法的原理与应用的论文,希望对读者有所帮助。
蚁群算法最全集PPT课件

采用智能优化算法,如遗传算法、粒子群算法等,对算法参数进行 优化,以寻找最优参数组合,提高算法性能。
04
蚁群算法的实现流程
问题定义与参数设定
问题定义
明确待求解的问题,将其抽象为优化 问题,并确定问题的目标函数和约束 条件。
参数设定
根据问题的特性,设定蚁群算法的参 数,如蚂蚁数量、信息素挥发速度、 信息素更新方式等。
动态调整种群规模
根据搜索进程的需要,动态调整参与搜索的蚁群规模,以保持种群 的多样性和搜索的广泛性。
自适应调整参数
参数自适应调整策略
根据搜索进程中的反馈信息,动态调整算法参数,如信息素挥发速 度、蚂蚁数量、移动概率等。
参数动态调整规则
制定参数调整规则,如基于性能指标的增量调整、基于时间序列的 周期性调整等,以保持算法性能的稳定性和持续性。
06
蚁群算法的优缺点分析
优点
高效性
鲁棒性
蚁群算法在解决组合优化问题上表现出高 效性,尤其在处理大规模问题时。
蚁群算法对噪声和异常不敏感,具有较强 的鲁棒性。
并行性
全局搜索
蚁群算法具有天然的并行性,可以充分利 用多核处理器或分布式计算资源来提高求 解速度。
蚁群算法采用正反馈机制,能够实现从局 部最优到全局最优的有效搜索。
强化学习
将蚁群算法与强化学习相结合,利用强化学习中的奖励机制指导 蚁群搜索,提高算法的探索和利用能力。
THANKS
感谢观看
蚂蚁在移动过程中会不断释放新 的信息素,更新路径上的信息素 浓度。
蚂蚁在更新信息素时,会根据路 径上的信息素浓度和自身的状态 来决定释放的信息素增量。
搜索策略与最优解的形成
搜索策略
蚁群算法简述及实现

蚁群算法简述及实现1 蚁群算法的原理分析蚁群算法是受自然界中真实蚁群算法的集体觅食行为的启发而发展起来的一种基于群体的模拟进化算法,属于随机搜索算法,所以它更恰当的名字应该叫“人工蚁群算法”,我们一般简称为蚁群算法。
M.Dorigo等人充分的利用了蚁群搜索食物的过程与著名的TSP问题的相似性,通过人工模拟蚁群搜索食物的行为来求解TSP问题。
蚂蚁这种社会性动物,虽然个体行为及其简单,但是由这些简单个体所组成的群体却表现出及其复杂的行为特征。
这是因为蚂蚁在寻找食物时,能在其经过的路径上释放一种叫做信息素的物质,使得一定范围内的其他蚂蚁能够感觉到这种物质,且倾向于朝着该物质强度高的方向移动。
蚁群的集体行为表现为一种正反馈现象,蚁群这种选择路径的行为过程称之为自催化行为。
由于其原理是一种正反馈机制,因此也可以把蚁群的行为理解成所谓的增强型学习系统(Reinforcement Learning System)。
引用M.Dorigo所举的例子来说明蚁群发现最短路径的原理和机制,见图1所示。
假设D 和H之间、B和H之间以及B和D之间(通过C)的距离为1,C位于D和B的中央(见图1 (a))。
现在我们考虑在等间隔等离散世界时间点(t=0,1,2……)的蚁群系统情况。
假设每单位时间有30只蚂蚁从A到B,另三十只蚂蚁从E到D,其行走速度都为1(一个单位时间所走距离为1),在行走时,一只蚂蚁可在时刻t留下浓度为1的信息素。
为简单起见,设信息素在时间区间(t+1,t+2)的中点(t+1.5)时刻瞬时完全挥发。
在t=0时刻无任何信息素,但分别有30只蚂蚁在B、30只蚂蚁在D等待出发。
它们选择走哪一条路径是完全随机的,因此在两个节点上蚁群可各自一分为二,走两个方向。
但在t=1时刻,从A到B的30只蚂蚁在通向H的路径上(见图1 (b))发现一条浓度为15的信息素,这是由15只从B走向H的先行蚂蚁留下来的;而在通向C的路径上它们可以发现一条浓度为30的信息素路径,这是由15只走向BC的路径的蚂蚁所留下的气息与15只从D经C到达B留下的气息之和(图1 (c))。
蚁群算法及算例范文

蚁群算法及算例范文蚁群算法的核心思想是通过模拟蚂蚁在路径选择过程中释放的信息素来寻找到达目标的最优路径。
蚂蚁在觅食过程中会释放一种化学物质(信息素),用于标记已经走过的路径。
当其他蚂蚁经过时,会受到这些信息素的影响,从而倾向于选择已经标记过的路径。
通过这种方式,蚂蚁群体能够找到从巢穴到食物的最短路径。
蚁群算法的算例可以参考旅行商问题(TSP,Traveling Salesman Problem)。
旅行商问题是一种经典的组合优化问题,要求在给定的城市之间找到最短的回路,使得每个城市恰好访问一次。
下面是一个应用蚁群算法解决旅行商问题的算例:1.初始化城市和蚂蚁的信息。
2.随机放置若干蚂蚁在城市中。
3.每只蚂蚁根据当前城市和信息素浓度选择下一个城市。
选择过程可以使用蚂蚁选择概率来确定,概率与信息素浓度和距离有关。
假设蚂蚁A 位于城市B,需要选择下一个城市C,蚂蚁选择概率计算公式如下:p(C)=(τ(B,C)^α)*(η(B,C)^β)/Σ[(τ(B,i)^α)*(η(B,i)^β)]其中τ(B,C)表示城市B到城市C之间的信息素浓度,η(B,C)表示城市B到城市C的适应度(与距离相关),α和β是调节信息素和适应度对蚂蚁选择的相对重要性的参数。
4.更新信息素。
当所有蚂蚁行走完成后,根据蚂蚁走过的路径长度更新信息素浓度。
更新公式如下:Δτ(B,C)=Q/L其中Δτ(B,C)表示城市B到城市C之间的信息素增量,Q是常数,L 是蚂蚁行走的路径长度。
5.重复步骤3和步骤4直到满足终止条件。
通常终止条件可以是达到最大迭代次数或者找到最优路径。
6.输出蚂蚁群体找到的最优路径和路径长度。
蚁群算法通过模拟蚂蚁觅食行为,利用信息素的正反馈机制,能够在很短的时间内找到高质量的解。
它被广泛应用于旅行商问题、资源调度问题、网络优化问题等领域。
《蚁群算法介绍》课件
输出最优解和相关性能指标。
详细描述
这一步是将最优解和相关性能指标输出,以 便于对算法的性能进行分析和评估。
04
蚁群算法的性能分析
收敛性分析
收敛速度
蚁群算法在优化问题中的收敛速度取决于初始信息素分布、蚂蚁数量、迭代次数等因素 。
最优解质量
蚁群算法在某些问题上可能找到全局最优解,但在其他问题上可能只能找到近似最优解 。
VS
详细描述
这一步是生成初始解的过程,需要按照设 定的规则,将蚂蚁随机放置在解空间中, 并初始化每条路径上的信息素。
迭代优化
总结词
通过蚂蚁的移动和信息素的更新,不断优化 解的质量。
详细描述
这一步是蚁群算法的核心部分,通过模拟蚂 蚁的移动和信息素的更新机制,不断迭代优 化解的质量,最终找到最优解。
结果
多目标优化问题的蚁群算法
针对多目标优化问题,蚁群算法需要 进行相应的改进。
VS
多目标优化问题要求算法在满足多个 冲突目标的同时找到最优解。这需要 对蚁群算法进行相应的调整,以适应 多目标优化的特性。例如,可以通过 引入权重因子来平衡各个目标之间的 矛盾,或者采用非支配排序方法对解 进行分层处理,以便更好地处理多目 标优化问题。
蚁群算法的优化目标
寻找最短路径
蚁群算法的主要目标是找到起点到终 点之间的最短路径,这在实际应用中 可用于解决如旅行商问题、车辆路径 问题等优化问题。
平衡搜索与探索
蚁群算法需要在搜索和探索之间取得 平衡,以避免陷入局部最优解,提高 算法的全局搜索能力。
03
蚁群算法的实现步骤
问题建模
总结词
将实际问题抽象为蚁群算法能够解决的问题模型。
蚂蚁根据局部信息素浓度选择移动方向,倾向于选择信息素浓度较高的路径。
蚁群算法python编程实现
蚁群算法python编程实现蚁群算法是一种基于群体智能的优化算法,在很多实际问题的求解中得到了广泛的应用。
本文将介绍如何使用Python语言实现蚁群算法,并提供一个简单的案例来说明其应用。
一、蚁群算法原理蚁群算法是一种模拟蚂蚁觅食行为的优化算法。
在蚂蚁觅食过程中,一只蚂蚁会释放一种信息素来引导其他蚂蚁找到食物,这种信息素会随着时间的推移逐渐消散。
而当一只蚂蚁找到食物时,它会释放更多的信息素,以加强路径的吸引力。
蚁群算法的基本流程如下:1. 初始化蚂蚁的位置和信息素的浓度。
2. 蚂蚁根据信息素和启发函数选择路径,更新信息素。
3. 重复第2步,直到满足停止条件。
4. 输出最优解。
二、蚁群算法python实现以下是一个简单的蚁群算法的Python实现:``` pythonimport random# 蚂蚁数量ants_num = 50# 迭代次数iter_num = 100# 信息素的初始浓度pheromone = 1.0# 信息素挥发系数evaporate = 0.5# 信息素增强系数enhance = 1.0# 启发函数中的信息素重要度alpha = 1.0# 启发函数中的路径长度重要度beta = 1.0# 城市距离矩阵distance_matrix = [[0, 10, 15, 20],[10, 0, 35, 25],[15, 35, 0, 30],[20, 25, 30, 0]]# 初始化信息素浓度矩阵pheromone_matrix = [[pheromone for j in range(4)] for i in range(4)]# 初始化蚂蚁位置ants = [[random.randint(0, 3)] for i in range(ants_num)] # 迭代过程for iter in range(iter_num):# 每只蚂蚁按照信息素和启发函数选择路径for i in range(ants_num):current_city = ants[i][-1]prob = [0 for j in range(4)]sum_prob = 0# 计算选择每个城市的概率for j in range(4):if j in ants[i]:prob[j] = 0else:prob[j] = (pheromone_matrix[current_city][j] ** alpha) * ((1.0 / distance_matrix[current_city][j]) ** beta)sum_prob += prob[j]# 选择下一个城市if sum_prob == 0:ants[i].append(random.randint(0, 3))else:r = random.uniform(0, sum_prob)s = 0for j in range(4):if j not in ants[i]:s += prob[j]if s > r:ants[i].append(j)break# 更新信息素for i in range(4):for j in range(4):if i != j:pheromone_matrix[i][j] *= evaporatefor k in range(ants_num):if j in ants[k] and i in ants[k]:pheromone_matrix[i][j] += enhance / distance_matrix[i][j] # 输出最优解best_ant = []best_distance = 0for i in range(ants_num):distance = 0for j in range(len(ants[i]) - 1):distance += distance_matrix[ants[i][j]][ants[i][j + 1]] if distance > best_distance:best_ant = ants[i][:]best_distance = distanceprint('Iteration {}: {} {}'.format(iter, best_ant,best_distance))```三、案例分析假设有4个城市需要进行旅行,它们之间的距离如下:```0 10 15 2010 0 35 2515 35 0 3020 25 30 0```运行以上Python代码,逐步输出结果如下:```Iteration 0: [0, 3, 1, 2, 0] 70Iteration 1: [0, 3, 1, 2, 0] 70Iteration 2: [0, 3, 1, 2, 0] 70...Iteration 98: [0, 3, 1, 2, 0] 70Iteration 99: [0, 3, 1, 2, 0] 70```可以看到,经过多次迭代后,蚂蚁选择的路径都是0-3-1-2-0,并且总路程为70。
应用篇-第11章-蚁群算法的仿真与实现
11.2.6
信息素挥发的抽象
自然界中的真实蚂蚁总是在所经路径上连续不断地留下信息素,而 信息素也会随着时间的推移而连续不断地挥发。由于计算机处理的 事件只能是离散事件,所以必须使信息素的挥发离散发生。通常的 做法是,当蚂蚁完成从某一节点到下一节点的移动后,即经过一个 时间单位之后,进行一次信息素的挥发,而这种在离散时间点进行 信息素挥发的方式与蚂蚁觅食过程的机理是完全相符的。11.2.2来自基本蚁群算法的机制原理
模拟蚂蚁群体觅食行为的蚁群算法是作为一种新的计算智能 模式引入的,该算法基于如下基本假设: (1)蚂蚁之间通过信息素和环境进行通信。每只蚂蚁仅根 据其周围的局部环境做出反应,也只对其周围的局部环境产 生影响。 (2)蚂蚁对环境的反应由其内部模式决定。因为蚂蚁是基 因生物,蚂蚁的行为实际上是其基因的适应性表现,即蚂蚁 是反应型适应性主体。 (3)在个体水平上,每只蚂蚁仅根据环境做出独立选择; 在群体水平上,单只蚂蚁的行为是随机的,但蚁群可通过自 组织过程形成高度有序的群体行为。
(1) 人工蚂蚁存在于一个离散的空间中,它们的移动是从一个状态到另一 个状态 的转换;
(2) 人工蚂蚁具有一个记忆其本身过去行为的内在状态;
(3) 人工蚂蚁存在于一个与时间无关联的环境之中; (4) 人工蚂蚁不是完全盲从的,它还受到问题空间特征的启发。例如有的 问题中 人工蚂蚁在产生一个解后改变信息量,而有的问题中人工蚂蚁每作出 一步选择 就更改信息量,但无论哪种方法,信息量的更新井不是随时都可 进行的; (5) 为了改善算法的优化效率,人工蚂蚁可增加一些性能,如预测未来、 局部优化、回退等,这些行为在真实蚂蚁中是不存在的。在很多具体应用中, 人工蚂 蚁可在局部优化过程中相互交换信息,还有一些改进蚁群算法中的人 工蚂蚁可 实现简单预测。
【转】蚁群算法原理及其实现(python)
【转】蚁群算法原理及其实现(python)蚁群算法(AG)是⼀种模拟蚂蚁觅⾷⾏为的模拟优化算法,它是由意⼤利学者Dorigo M等⼈于1991年⾸先提出,并⾸先使⽤在解决TSP(旅⾏商问题)上。
之后,⼜系统研究了蚁群算法的基本原理和数学模型.蚁群算法的基本思想:蚁群算法的基本原理:1、蚂蚁在路径上释放信息素。
2、碰到还没⾛过的路⼝,就随机挑选⼀条路⾛。
同时,释放与路径长度有关的信息素。
3、信息素浓度与路径长度成反⽐。
后来的蚂蚁再次碰到该路⼝时,就选择信息素浓度较⾼路径。
4、最优路径上的信息素浓度越来越⼤。
5、最终蚁群找到最优寻⾷路径。
⼈⼯蚁群与真实蚁群对⽐:基于TSP问题的基本蚁群算法:TSP求解中,假设蚁群算法中的每只蚂蚁是具有以下特征的简单智能体:每次周游,每只蚂蚁在其经过的⽀路(i,j)上都留下信息素。
‚蚂蚁选择城市的概率与城市之间的距离和当前连接⽀路上所包含的信息素余量有关。
ƒ为了强制蚂蚁进⾏合法的周游,直到⼀次周游完成后,才允许蚂蚁游⾛已访问过的城市(这可由禁忌表来控制)。
基本蚁群的两个过程:(1)状态转移(2)信息素更新(1)状态转移为了避免残留信息素过多⽽淹没启发信息,在每只蚂蚁⾛完⼀步或者完成对所有n个城市的遍历(也即⼀个循环结束)后,要对残留信息进⾏更新处理。
由此,t+n时刻在路径(i,j)上的信息量可按如下规则进⾏调整:(2)信息素更新模型蚁周模型(Ant-Cycle模型)蚁量模型(Ant-Quantity模型)蚁密模型(Ant-Density模型)区别:1.蚁周模型利⽤的是全局信息,即蚂蚁完成⼀个循环后更新所有路径上的信息素;2.蚁量和蚁密模型利⽤的是局部信息,即蚂蚁完成⼀步后更新路径上的信息素。
基本流程:蚁群算法中主要参数的选择:蚁群算法中主要参数的理想选择如下:国内外,对于离散域蚁群算法的改进研究成果很多,例如⾃适应蚁群算法、基于信息素扩散的蚁群算法等,这⾥仅介绍离散域优化问题的⾃适应蚁群算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Ant-Cycle模型中
Q k ij t Lk 0 , 若第k只蚂蚁在本次循环中经过(i,j) , 否则
式中,Q表示信息强度,它在一定程度上影响算法的收敛速度;Lk表示第k只蚂蚁 在本次循环中所走路径的总长度。
在Ant-Quantity模型中
Q k ij t = d ij 0 , , 若第k只蚂蚁在 t 和 t 1之间经过(i,j ) 否则
第11章 蚁群算法的仿真与实现
蚁群算法是近年来兴起的一种新型仿生优化算法,具有其他 进化算法不可比拟的优势。该算法是继神经网络、遗传算法、 模拟退火算法、粒子群算法、免疫算法等仿生搜索算法以后 的又一种应用于组合优化问题的启发式搜索算法。由于蚁群 算法采用分布式并行计算机制,具有较强的鲁棒性,容易与 其它算法结合等优点,一经提出,立即受到各个领域学者的 重视,展开了对其的研究。目前蚁群算法已经被广泛的应用 于求解旅行商问题,自动组卷系统问题等等、本章则对于这 两个问题做出了详细的阐述。
a r t . t ij ik , 若j allowed k n a k pij t is t . ik t s allowedk 0 , 否则
11.2.4
问题空间的描述
自然界中的真实蚂蚁存在于一个三维的环境中,而问题空间的求解一般 是在平面内进行的,因此需要将蚂蚁觅食的三维空间抽象为一个平面。 这一点比较容易理解,因为蚂蚁觅食所走的路径本来就存在于一个二维 空间(平面或者曲面)上。另外一个问题是真实蚂蚁是在一个连续的二 维平面中行走的,而我们无法用计算机直接来完整的描述一个连续的平 面,因为计算机处理的是离散事件,因此必须将连续的平面离散化由一 组点组成的离散平面,人工蚂蚁可在抽象出来的点上自由运动。这个抽 象过程的可行性在于,尽管蚂蚁是在连续平面行动,但其行动经过的总 是离散点,因此抽象过程只是提高了平面点离散分布的粒度,与其觅食 行为的本身机理没有任何冲突。 基于上述分析,很容易得到蚁群算法所求解的问题空间可用一个重要的 数学工具——图( graph)来描述。在工程实际中的很多问题都可以用图来 描述,这便使蚁群算法的广泛应用成为可能。
蚁群算法是从自然界中真实蚂蚁觅食的群体行为得到启发而 提出的,其很多观点都来源于真实蚁群,因此算法中所定义 的人丁蚂蚁与真实蚂蚁存在如下共同点。 (1)都存在一个群体中个体相互交流通信的机制
(2)都要完成一个相同的任务
(3)利用当前信息进行路径选择的随机选择策略
在从真实蚁群行为获得启发而构造蚁群算法的过程中,人工蚂蚁还 具备了真实蚂蚁所不具有的一些特性:
11.2 蚁群算法原理
11.2.1 蚁群行为描述
根据仿生学家的长期研究发现:蚂蚁虽没有视觉,但运动时会通过在路 径上释放出一种特殊的分泌物——信息素来寻找路径。当它们碰到~个还 没有走过的路口时,就随机地挑选一条路径前行,同时释放出与路径长 度有关的信息素。蚂蚁走的路径越长,则释放的信息量越小。当后来的 蚂蚁再次碰到这个路口的时候,选择信息量较大路径的概率相对较大, 这样便形成了一个正反馈机制。最优路径上的信息量越来越大,而其他 路径上的信息量却会随着时间的流逝而逐渐消减,最终整个蚁群会找出 最优路径。同时蚁群还能够适应环境的变化,当蚁群的运动路径上突然 出现障碍物时,蚂蚁也能很快地重新找到最优路径。可见,在整个寻径 过程中,虽然单只蚂蚁的选择能力有限,但是通过信息素的作用使整个 蚁群行为具有非常高的自组织性,蚂蚁之间交换着路径信息,最终通过 蚁群的集体自催化行为找出最优路径。
t+n 1 ij t ij t
k ij t ij t k 1 m
式中,ρ表示信息素挥发系数,则1-ρ表示信息素残留因子,为了防止信息的无 限积累,ρ的取值范围为:ρ⊂[0,1];ΔГij(t)表示本次循环中路径(i,j)上的信息 素增量,初始时刻ΔГij(0) =0,ΔГijk(t)表示第k只蚂蚁在本次循环中留在路径 (I,j)上的信息量。 根据信息素更新策略的不同,Dorigo M提出了三种不同的基本蚁群算法模型, 分别称之为Ant-Cycle模型、Ant-Quantity模型及Ant-Density模型,其差别在于 ΔГijk(t)求法的不同。
11.2.6
信息素挥发的抽象
自然界中的真实蚂蚁总是在所经路径上连续不断地留下信息素,而 信息素也会随着时间的推移而连续不断地挥发。由于计算机处理的 事件只能是离散事件,所以必须使信息素的挥发离散发生。通常的 做法是,当蚂蚁完成从某一节点到下一节点的移动后,即经过一个 时间单位之后,进行一次信息素的挥发,而这种在离散时间点进行 信息素挥发的方式与蚂蚁觅食过程的机理是完全相符的。
11.2.2
基本蚁群算法的机制原理
模拟蚂蚁群体觅食行为的蚁群算法是作为一种新的计算智能 模式引入的,该算法基于如下基本假设: (1)蚂蚁之间通过信息素和环境进行通信。每只蚂蚁仅根 据其周围的局部环境做出反应,也只对其周围的局部环境产 生影响。 (2)蚂蚁对环境的反应由其内部模式决定。因为蚂蚁是基 因生物,蚂蚁的行为实际上是其基因的适应性表现,即蚂蚁 是反应型适应性主体。 (3)在个体水平上,每只蚂蚁仅根据环境做出独立选择; 在群体水平上,单只蚂蚁的行为是随机的,但蚁群可通过自 组织过程形成高度有序的群体行为。
11.2.7
启发因子的引入
以上几点是对真实蚂蚁觅食行为的抽象,整个过程体现了蚁群算法的自组 织性,但是这种自组织系统存在一个缺陷,即系统的演化需要耗费较长的 时间。而实际应用时对算法运行时间的要求也是必不可少的,因此在决定 蚂蚁行走方向的状态转移概率时,引入了一个随机搜索的过程,即引入了 启发因子,根据所求问题空间的具体特征,给蚁群算法一个初始的引导, 这个过程极大地增加了算法的时间有效性,从而使蚁群算法的有效应用成 为可能。 以上几点是对真实蚂蚁觅食行为的抽象,整个过程体现了蚁群算法的自组 织性,但是这种自组织系统存在一个缺陷,即系统的演化需要耗费较长的 时间。而实际应用时对算法运行时间的要求也是必不可少的,因此在决定 蚂蚁行走方向的状态转移概率时,引入了一个随机搜索的过程,即引入了 启发因子,根据所求问题空间的具体特征,给蚁群算法一个初始的引导, 这个过程极大地增加了算法的时间有效性,从而使蚁群算法的有过对蚂蚁的长期观察研究发现,每只蚂蚁的智能并不 高,看起来没有集中的指挥,但它们却能协同工作,集中食物, 建起坚固漂亮的蚁穴并抚养后代,依靠群体能力发挥出超出个体 的智能。蚁群算法(ant colony optimization, ACO) 是最新发展的 一种模拟昆虫王国中蚂蚁群体智能行为的仿生优化算法。它具有 较强的鲁棒性、优良的分布式计算机制、易于与其他方法相结合 等优点尽管蚁群算法的严格理论基础尚未奠定,国内外的相关研 究还处于实验探索和初步应用阶段,但是目前人们对蚁群算法的 研究已经由当初单一的旅行商问题(traveling salesman problem, TSP)领域渗透到了多个应用领域,由解决一维静态优化问题发展 到解决多维动态组合优化问题,由离散域范围内的研究逐渐拓展 到了连续域范围内的研究,而且在蚁群算法的硬件实现上也取得 了很多突破性的研究进展,从而使这种新兴的仿生优化算法展现 出勃勃生机和广阔的发展前景。
蚁群算法具有很强的自学习能力,可根据环境的改变和过去的行 为结果对自身的知识库或自身的组织结构进行再组织,从而实现 算法求解能力的进化,而这种进化是环境变化与算法自学习能力 交互作用的产物,同时算法机理的复杂性和环境变化的不确定性 进一步增加了蚁群算法的不可预测性。
11.3 基本蚁群算法的数学模型
蚂蚁k(k=l,2,…,m)在运动过程中,根据各条路径上的信息量决定其转移方 向。这里用禁忌表tabuk(k=l,2,…,m)来记录蚂蚁k当前所走过的城市,集合随 着tabuk进化过程作动态调整。在搜索过程中,蚂蚁根据各条路径上的信息量 及路径的启发信息来计算状态转移概率。pkij(t)表示在t时刻蚂蚁k由元素(城 市)i转移到元素(城市)j的状态转移概率
(1) 人工蚂蚁存在于一个离散的空间中,它们的移动是从一个状态到另一 个状态 的转换;
(2) 人工蚂蚁具有一个记忆其本身过去行为的内在状态;
(3) 人工蚂蚁存在于一个与时间无关联的环境之中; (4) 人工蚂蚁不是完全盲从的,它还受到问题空间特征的启发。例如有的 问题中 人工蚂蚁在产生一个解后改变信息量,而有的问题中人工蚂蚁每作出 一步选择 就更改信息量,但无论哪种方法,信息量的更新井不是随时都可 进行的; (5) 为了改善算法的优化效率,人工蚂蚁可增加一些性能,如预测未来、 局部优化、回退等,这些行为在真实蚂蚁中是不存在的。在很多具体应用中, 人工蚂 蚁可在局部优化过程中相互交换信息,还有一些改进蚁群算法中的人 工蚂蚁可 实现简单预测。
1 ij t dij
式中,dij表示相邻两个城市之间的距离。对蚂蚁k而言,dij越小, 则ηij(t)越大,pkij(t)也就越大。显然,该启发函数表示蚂蚁从元 素(城市)j转移到元素(城市)j的期望程度。
为了避免残留信息素过多引起残留信息淹没启发信息,在每只蚂蚁走完一步或 者完成对所有n个城市的遍历(也即一个循环结束)后,要对残留信息进行更 新处理。这种更新策略模仿了人类大脑记忆的特点,在新信息不断存人大脑的 同时,存储在大脑中的旧信患随着时间的推移逐渐淡化,甚至忘记。由此, t+n时刻在路径(i,j)上的信息量可按如下规则进行调整
11.2.5
寻找路径的抽象
真实蚂蚁在觅食过程中主要按照所处环境中的信息量来决定其前进 的方向,而人工蚂蚁是在平面的节点上运动的,因此可把觅食过程 抽象成算法中解的构造过程,将信息素抽象为存在于图的边上的轨 迹。在每一节点,人工蚂蚁感知连接该节点与相邻节点边上的信息 素轨迹浓度,并根据该浓度大小决定走向下一节点的概率。用任意 两个节点分别表示蚂蚁的巢穴(初始节点)和食物源(目标节点), 人工蚂蚁从初始节点按照一定状态转移概率选择下一节点,依此类 推,最终选择行走到目标节点,这样便得到了所求问题的一个可行 解。