当前位置:文档之家› 蚁群算法

蚁群算法


基本蚁群算法程序流程图
开始 初始化
循环次数Nc← Nc+1
蚂蚁k=1 蚂蚁k=k+1
按式(1)选择下一元素 修改禁忌表 N Y K≥ m
按式(2)和式(3)进行信息量更新 满足结束条件 Y
Байду номын сангаас输出程序计算结果 结束 N
复杂度分析
对于TSP,所有可行的路径共有(n-1)!/2条,以 此路径比较为基本操作,则需要(n-1)!/2-1次基 本操作才能保证得到绝对最优解。 若1M FLOPS,当n=10, 需要0.19秒 n=20, 需要1929年 n=30, 需要1.4X10e17年
{ ij (t ) | ci , c j C}是t时刻集合C中元素
蚂蚁k(k=1,2,…,m)在运动过程中,根据各条路径上的信息 量决定其转移方向。这里用禁忌表tabuk来记录蚂蚁k当前 所走过的城市,集合随着tabuk进化过程做动态调整。在 搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发 信息来计算状态转移概率。在t时刻蚂蚁k由元素(城市)i 转移到元素(城市)j的状态转移概率:
1) 标有距离的路径图 2) 在0时刻,路径上没有信息素累积,蚂蚁选择路径为任意 3) 在1时刻,路径上信息素堆积,短边信息素多与长边,所以蚂蚁更 倾向于选择ABCDE


(1)其原理是一种正反馈机制或称增强型学习系统;它通过 信息素的不断更新达到最终收敛于最优路径上; (2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实 际蚂蚁的一种简单模拟,它融进了人类的智能; (3)它是一种分布式的优化方法;不仅适合目前的串行计算 机,而且适合未来的并行计算机; (4)它是一种全局优化的方法;不仅可用于求解单目标优化 问题,而且可用于求解多目标优化问题; 2 (5)它是一种启发式算法;计算复杂性为 O( NC m n ),其 中NC 是迭代次数,m 是蚂蚁数目,n 是目的节点数目。
2.3 人工蚁群算法
基于以上蚁群寻找食物时的最优路径选择问题,可以构造 人工蚁群,来解决最优化问题,如TSP问题。 人工蚁群中把具有简单功能的工作单元看作蚂蚁。二者的 相似之处在于都是优先选择信息素浓度大的路径。较短路径的 信息素浓度高,所以能够最终被所有蚂蚁选择,也就是最终的 优化结果。 两者的区别在于人工蚁群有一定的记忆能力,能够记忆已 经访问过的节点。同时,人工蚁群再选择下一条路径的时候是 按一定算法规律有意识地寻找最短路径,而不是盲目的。例如 在TSP问题中,可以预先知道当前城市到下一个目的地的距离。
信息更新规则:
为了避免残留信息素过多引起残留信息淹没启发信息, 在每只蚂蚁走完一步或者完成对所有n个城市的遍历(也 即一个循环结束)后,要对残留信息进行更新处理。这 种更新策略模仿了人类大脑记忆的特点,在新信息不断 存人大脑的同时,存储在大脑中的旧信息随着时间的推 移逐渐淡化,甚至忘记。由此,t+n时刻在路径(i, j)上 的信息量可按如下规则进行调整
TSP是NP-C问题 n城市规模的TSP,存在(n-1)!/2条不同闭合路径。
基本蚁群算法数学模型
设bi(t)表示t时刻位于元素i的蚂蚁数目,τij (t)为t时 刻路径(i, j)上的信息量,n表示TSP规模,m为蚁 群中蚂蚁总数,则
m bi (t )
i 1
n
(城市)两两连接lij上残留信息量的集合,在初始 时刻各条路径上的信息量相等,并设τij(0)=const, 基本蚁群算法的寻优是通过有向图g=(C, L, Γ)实 现的。
3.4 信息素的更改
信息素的更新分为全局和局部两种 方式。全局方式(同步更新方式) 的主要思想是在若干只蚂蚁完成n个 城市的访问后,统一对残留信息进 行更新处理。 信息素的局部更新(异步更新方式) 即蚂蚁每行走一步,立即回溯并且 更新行走路径上的信息素。
蚁群算法可研究问题
蚁群算法的研究与发展历史毕竟较短,还存在诸多问题:
LOGO
蚁群算法
2 蚁群算法概念
2.1 蚁群算法原理 2.2 简化的蚂蚁寻食过程 2.3 人工蚁群算法
2.1 蚁群算法原理
蚁群算法是对自然界蚂蚁的寻径方式进行 模似而得出的一种仿生算法。 蚂蚁在运动过程中,能够在它所经过的路径 上留下一种称之为外激素(pheromone)的物质 进行信息传递,而且蚂蚁在运动过程中能够感 知这种物质,并以此指导自己的运动方向,因 此由大量蚂蚁组成的蚁群集体行为便表现出一 种信息正反馈现象:某一路径上走过的蚂蚁越 多,则后来者选择该路径的概率就越大。
时间复杂度 空间复杂度
3 技术问题
3.1 解的表达形式与算法的实现 3.2 节点的记忆信息和系数的确定 3.3 蚁群的规模和停止规则 3.4 信息素的更改
3.1 解的表达形式
解的表达形式 基于TSP问题的蚁群优化 算法,其解的形式是所有城市的一个排列(闭 环,这种情况下谁在第一并不重要),信息素 痕迹按每个弧记录。而对于一般以顺序作为解 的优化问题,谁在第一是很重要的。蚁群算法 在解决这类问题时,只需要建立一个虚拟的始 终点,就可以把TSP问题的解法推广,用于诸 多的优化问题。诸如车间作业及下料等问题, 他们的共同特点是解以一个顺序表示。
ij (t n) (1 ) ij (t ) ij (t )
ij (t ) ij (t )
k k 1 m
(2) (3)
注释:
式中,ρ表示信息素挥发系数,则1-ρ表示信息素 残留因子,为了防止信息的无限积累, ρ的取值 范围为[0,1), Δτij(t)表示本次循环中路径(i, j)上的 信息素增量,初始时刻Δτij(t) =0, Δτijk(t) 表示第k 只蚂蚁在本次循环中留在路径(i, j)上的信息量。 根据信息素更新策略的不同,Dorigo M提出了三 种不同的基本蚁群算法模型,分别称之为AntCycle模型、Ant-Quantity模型及Ant-Density模型, 其差别在于Δτijk(t)求法的不同。
3.2 系数的确定
残留信息的相对重要程度 和预见值的相对重 要程度 体现了相关信息痕迹和预见度对蚂蚁 决策的相对影响。Dorigo在求解TSP问题时, 推荐参数的最佳设置为:
1, 5, 0.5
3.3 蚁群的规模和停止规则
一、蚁群大小 一般情况下蚁群中蚂蚁的个数不超过TSP图中节点的个 数。 二、终止条件 1 给定一个外循环的最大数目,表明已经有足够的蚂蚁 工作; 2 当前最优解连续K次相同而停止,其中K是一个给定的 整数,表示算法已经收敛,不再需要继续; 3 目标值控制规则,给定优化问题(目标最小化)的一 个下界和一个误差值,当算法得到的目标值同下界之差小 于给定的误差值时,算法终止。
Ant-Cycle模型
Q , 若第k只蚂蚁在本次循环中经过(i, j ) k ij (t ) Lk (4) 0, 否则
式中,Q表示信息素强度,它在一定程度上影响 算法的收敛速度;Lk表示第k只蚂蚁在本次循环中 所走路径的总长度。
Ant-Quantity模型
Q d , 若第k只蚂蚁在t和t 1之间经过(i, j ) k ij (t ) ij (5) 0, 否则
基本蚁群算法的实现
(5)蚂蚁个体根据状态转移概率公式(1)计算的概 率选择元素(城市) j 并前进,j∈{C - tabuk}。 (6)修改禁忌表指针,即选择好之后将蚂蚁移动 到新的元素(城市),并把该元素(城市)移动到该 蚂蚁个体的禁忌表中。 (7)若集合C中元素(城市)未遍历完,即k<m,则 跳转到第(4)步,否则执行第(8)步。 (8)根据公式(2)和式(3)更新每条路径上的信息量。 (9)若满足结束条件,即如果循环次数Nc≥ Ncmax 则循环结束并输出程序计算结果,否则清空禁 忌表并跳转到第(2)步。
基本蚁群算法的实现
以TSP为例,基本蚁群算法的具体实现步 骤如下:
(1)参数初始化。令时间t=0和循环次数Nc=0,设 置最大循环次数Ncmax, 将m个蚂蚁置于n个元素 (城市)上,令有向图上每条边(i, j)的初始化信息 量τij(t)=const, 其中const表示常数,且初始时刻 Δτij(0)=0 (2)循环次数Nc← Nc+1。 (3)蚂蚁的禁忌表索引号k=1。 (4)蚂蚁数目 k←k+1 。
基本蚁群算法的数学模型
TSP (Traveling Salesman Problem)
TSP简单形象描述
给定n个城市,一个旅行商从某一城市出发,访问各 城市一次且仅有一次后再回到原出发城市,要求找出 一条最短的巡回路径 可分为对称TSP (Symmetric Traveling Salesman Problem) 和非对称TSP (Asymmetric Traveling Salesman Problem)
案例注释:
假设蚂蚁每经过一处所留下的信息素为一个单位,则 经过36个时间单位后,所有开始一起出发的蚂蚁都经过不 同路径从D点取得了食物,此时ABD的路线往返了2趟,每 一处的信息素为4个单位,而 ACD的路线往返了一趟,每 一处的信息素为2个单位,其比值为2:1。 寻找食物的过程继续进行,则按信息素的指导,蚁群 在ABD路线上增派一只蚂蚁(共2只),而ACD路线上仍 然为一只蚂蚁。再经过36个时间单位后,两条线路上的信 息素单位积累为12和4,比值为3:1。 若按以上规则继续,蚁群在ABD路线上再增派一只蚂 蚁(共3只),而ACD路线上仍然为一只蚂蚁。再经过36 个时间单位后,两条线路上的信息素单位积累为24和6, 比值为4:1。 若继续进行,则按信息素的指导,最终所有的蚂蚁会 放弃ACD路线,而都选择ABD路线。这也就是前面所提到 的正反馈效应。
2.2 简化的蚂蚁寻食过程
LC=2LB
蚂蚁从A点出发,速度相同,食物在D点,可能随机选择路线 ABD或ACD。假设初始时每条分配路线一只蚂蚁,每个时间单位 行走一步,本图为经过9个时间单位时的情形:走ABD的蚂蚁到 达终点,而走ACD的蚂蚁刚好走到C点,为一半路程。
相关主题