蚁群算法简介(修改稿9.4)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1) 标有距离的路径图 2) 在0时刻,路径上没有信息素累积,蚂蚁选择路径为任意 3) 在1时刻,路径上信息素堆积,短边信息素多与长边,所以蚂蚁更 倾向于选择ABCDE


(1)其原理是一种正反馈机制或称增强型学习系统;它通过 信息素的不断更新达到最终收敛于最优路径上; (2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实 际蚂蚁的一种简单模拟,它融进了人类的智能; (3)它是一种分布式的优化方法;不仅适合目前的串行计算 机,而且适合未来的并行计算机; (4)它是一种全局优化的方法;不仅可用于求解单目标优化 问题,而且可用于求解多目标优化问题; 2 (5)它是一种启发式算法;计算复杂性为 O( NC m n ),其 中NC 是迭代次数,m 是蚂蚁数目,n 是目的节点数目。
基本蚁群算法的实现
(5)蚂蚁个体根据状态转移概率公式(1)计算的概 率选择元素(城市) j 并前进,j∈{C - tabuk}。 (6)修改禁忌表指针,即选择好之后将蚂蚁移动 到新的元素(城市),并把该元素(城市)移动到该 蚂蚁个体的禁忌表中。 (7)若集合C中元素(城市)未遍历完,即k<m,则 跳转到第(4)步,否则执行第(8)步。 (8)根据公式(2)和式(3)更新每条路径上的信息量。 (9)若满足结束条件,即如果循环次数Nc≥ Ncmax 则循环结束并输出程序计算结果,否则清空禁 忌表并跳转到第(2)步。
[ ij (t )] [ik (t )] , if j allowed k [ is (t )] [is (t )] pij k (t ) (1) s allowed k elsewise 0
状态转移概率公式注解:
allowedk={C-tabuk}表示蚂蚁k下一步允许选择的城市; α为信息启发式因子,表示轨迹的相对重要性,反映了蚂 蚁在运动过程中积累的信息在蚂蚁运动时所起的作用,其 值越大,则该蚂蚁越倾向于选择其它蚂蚁经过的路径,蚂 蚁之间的协作性越强; β为期望启发式因子,表示能见度的相对重要性,反映蚂 蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度, 其值越大,则该状态状态转移概率越接近于贪心规则; ηij(t)为启发函数, ηij(t) =1/dij 式中dij表示相邻两个城市之间的距离。对蚂蚁k而言, dij越小,则ηij(t)越大,pijk也就越大。显然,该启发函数表 示蚂蚁从元素(城市)i转移到元素(城市)j的期望程度。
Ant-Density模型
Q, 若第k只蚂蚁在t和t 1之间经过(i, j ) ij (t ) (6) 0, 否则
k
区别: 式(5)和式(6)中利用的是局部信息,即蚂蚁完成一步后更新路径上的信息 素;而式(4)中利用的是全局信息,即蚂蚁完成一个循环后更新所有路径 上的信息素,在求解TSP时性能较好,因此通常采用式(4)作为蚁群算法 的基本模型。
2.3 人工蚁群算法
基于以上蚁群寻找食物时的最优路径选择问题,可以构造 人工蚁群,来解决最优化问题,如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)求法的不同。
2.2 简化的蚂蚁寻食过程
LC=2LB
蚂蚁从A点出发,速度相同,食物在D点,可能随机选择路线 ABD或ACD。假设初始时每条分配路线一只蚂蚁,每个时间单位 行走一步,本图为经过9个时间单位时的情形:走ABD的蚂蚁到 达终点,而走ACD的蚂蚁刚好走到C点,为一半路程。
2.2 简化的蚂蚁寻食过程
本图为从开始算起,经过18个时间单位时的情形:走ABD的蚂 蚁到达终点后得到食物又返回了起点A,而走ACD的蚂蚁刚好走 到D点。
时间复杂度 空间复杂度
3 技术问题
3.1 解的表达形式与算法的实现 3.2 节点的记忆信息和系数的确定 3.3 蚁群的规模和停止规则 3.4 信息素的更改
3.1 解的表达形式
解的表达形式 基于TSP问题的蚁群优化 算法,其解的形式是所有城市的一个排列(闭 环,这种情况下谁在第一并不重要),信息素 痕迹按每个弧记录。而对于一般以顺序作为解 的优化问题,谁在第一是很重要的。蚁群算法 在解决这类问题时,只需要建立一个虚拟的始 终点,就可以把TSP问题的解法推广,用于诸 多的优化问题。诸如车间作业及下料等问题, 他们的共同特点是解以一个顺序表示。
基本蚁群算法的数学模型
TSP (Traveling Salesman Problem)
TSP简单形象描述
给定n个城市,一个旅行商从某一城市出发,访问各 城市一次且仅有一次后再回到原出发城市,要求找出 一条最短的巡回路径 可分为对称TSP (Symmetric Traveling Salesman Problem) 和非对称TSP (Asymmetric Traveling Salesman Problem)
信息更新规则:
为了避免残留信息素过多引起残留信息淹没启发信息, 在每只蚂蚁走完一步或者完成对所有n个城市的遍历(也 即一个循环结束)后,要对残留信息进行更新处理。这 种更新策略模仿了人类大脑记忆的特点,在新信息不断 存人大脑的同时,存储在大脑中的旧信息随着时间的推 移逐渐淡化,甚至忘记。由此,t+n时刻在路径(i, j)上 的信息量可按如下规则进行调整
3.2 系数的确定
残留信息的相对重要程度 和预见值的相对重 要程度 体现了相关信息痕迹和预见度对蚂蚁 决策的相对影响。Dorigo在求解TSP问题时, 推荐参数的最佳设置为:
1, 5, 0.5
3.3 蚁群的规模和停止规则
一、蚁群大小 一般情况下蚁群中蚂蚁的个数不超过TSP图中节点的个 数。 二、终止条件 1 给定一个外循环的最大数目,表明已经有足够的蚂蚁 工作; 2 当前最优解连续K次相同而停止,其中K是一个给定的 整数,表示算法已经收敛,不再需要继续; 3 目标值控制规则,给定优化问题(目标最小化)的一 个下界和一个误差值,当算法得到的目标值同下界之差小 于给定的误差值时,算法终止。
(1)它的发展远没有形成完整的理论体系;
(2)模型对问题具有依赖性,研究者必须根据问题的特点 选择和修正模型; (3)算法的参数选择更多的是依靠实验和经验,没有定理 或公认的确定方法;
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
{ ij (t ) | ci , c j C}是t时刻集合C中元素
LOGO
蚁群算法
主讲人:雷喆
武汉科技大学工业工程
Leabharlann Baidu
2 蚁群算法概念
2.1 蚁群算法原理 2.2 简化的蚂蚁寻食过程 2.3 人工蚁群算法
2.1 蚁群算法原理
蚁群算法是对自然界蚂蚁的寻径方式进行 模似而得出的一种仿生算法。 蚂蚁在运动过程中,能够在它所经过的路径 上留下一种称之为外激素(pheromone)的物质 进行信息传递,而且蚂蚁在运动过程中能够感 知这种物质,并以此指导自己的运动方向,因 此由大量蚂蚁组成的蚁群集体行为便表现出一 种信息正反馈现象:某一路径上走过的蚂蚁越 多,则后来者选择该路径的概率就越大。
3.4 信息素的更改
信息素的更新分为全局和局部两种 方式。全局方式(同步更新方式) 的主要思想是在若干只蚂蚁完成n个 城市的访问后,统一对残留信息进 行更新处理。 信息素的局部更新(异步更新方式) 即蚂蚁每行走一步,立即回溯并且 更新行走路径上的信息素。
蚁群算法可研究问题
蚁群算法的研究与发展历史毕竟较短,还存在诸多问题:
基本蚁群算法程序流程图
开始 初始化
循环次数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年
基本蚁群算法的实现
以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 。
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, 否则
案例注释:
假设蚂蚁每经过一处所留下的信息素为一个单位,则 经过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路线。这也就是前面所提到 的正反馈效应。
(城市)两两连接lij上残留信息量的集合,在初始 时刻各条路径上的信息量相等,并设τij(0)=const, 基本蚁群算法的寻优是通过有向图g=(C, L, Γ)实 现的。
蚂蚁k(k=1,2,…,m)在运动过程中,根据各条路径上的信息 量决定其转移方向。这里用禁忌表tabuk来记录蚂蚁k当前 所走过的城市,集合随着tabuk进化过程做动态调整。在 搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发 信息来计算状态转移概率。在t时刻蚂蚁k由元素(城市)i 转移到元素(城市)j的状态转移概率:
相关文档
最新文档