动态蚁群遗传混合算法的研究及应用(河北工程学院,河北邯郸056038)摘要:蚁群算法是一种源于大自然生物世界的仿生类算法,该算法采用分布式并行计算和正反馈机制。
易于与其他方法结合,具有很强的鲁棒性和适应性,但存在搜素时间长、易陷入局部最优解的缺点。
为了克服这一缺点, 文中给出一种新的蚁群算法——动态蚂蚁遗传混合算法。
在基本蚁群算法中引入变异机制, 采用最佳融合点评估策略来交叉地调用两种算法。
动态地控制遗传算法与蚂蚁算法的调用时机,并设计了相应的信息素更新方法,有效减少了算法的冗余迭代次数,提高了搜索速度,同时引入迭代调整阈值控制算法后期的遗传操作和蚂蚁规模,加快了种群进化速度,从而更快地找到最优解。
该法具有较快的收敛速度,节省计算时间,实验结果表明该方法是行之有效的。
关键词:蚁群算法; TSP问题; 遗传算法; 动态蚂蚁遗传混合算法1 引言蚁群算法 (Ant Colony Algorithms,ACO)又称蚂蚁算法。
是一种用来在图中寻找优化路径的机率型技术。
蚂蚁在寻找食物时,总是能找到较短的路径。
受到蚁群系统信息共享机制的启发,意大利学者Macro Dorigo于1992年在他的博士论文中首次系统提出了蚁群算法,并成功地将该算法应用到求解旅行商问题(TSP)和二次分配问题(QAP)中。
取得了一系列较好的实验结果。
解决一些实际问题也有很好的效果。
但蚁群算法同其它生物进化算法一样存在过早收敛易陷入局部极小值等问题。
结合其它优化算法形成混合蚁群算法是克服这些缺点的有效手段。
遗传算法(genetic algorithm,GA)以决策变量的编码作为运算对象,在优化过程中借鉴生物学中染色体和基因的概念,模拟自然界中生物和遗传进化等机理,通过个体适应度来进行概率选择操作,通过交叉变异产生新的个体,从而遗传算法具有较强的全局性。
为克服蚁群算法搜索速度慢、易陷入局部最优等缺点。
本文提出了一种新的动态蚁群遗传混合算法(Dynamic Ant Algorithm -Genetic Algorithm,DAAGA)。
该算法采用最佳融合点评估策略来交叉地调用两种算法,其框架是用蚂蚁算法的解作为遗传操作的种子,每当种群进化接近停滞时,调用蚂蚁算法。
这种结构可以动态地控制遗传算法和蚂蚁算法的调用时机,再配合相应的信息素更新方法,可以提高算法的收敛速度和收敛性能;同时这种算法还引入了迭代调整阈值来控制算法后期的遗传操作和蚂蚁规模,即在种群已进化至最优解附近,遗传算法作用减少时,只做变异操作以减少算法计算工作量,增加蚂蚁规模以更快地找到最优解。
2 基本蚁群算法的原理蚁群算法是一种由于受自然界生物的行为启发而产生的“自然”算法。
它是从对蚁群行为的研究中产生的。
自然界中,诸如蚂蚁、蜜蜂等群居昆虫,虽然个体昆虫的行为极其简单,但由单个简单的个体所组成的群体却表现出非常复杂有序的集体行为。
经过大量观察研究,仿生学家发现,蚂蚁个体之间通过一种称之为信息素( pheromone) 的物质进行信息传递。
从而能相互协作,完成复杂的任务。
蚁群算法计算过程主要包括两个阶段:信息素的积累阶段和蚂蚁间的相互协作阶段,前者包括各候选解积累的信息不断调整自身结构的过程,即蚂蚁不断选择从信息素量大的路径上通过,使得此路径上蚂蚁留下的信息素越来越大,而信息素量小的路径,则蚂蚁选择的概率越来越小,会逐渐被淘汰;在蚂蚁的协作阶段,候选解相互间用过信息交流,一起发现更为优越的路径,产生更优的解。
通过人工模拟蚂蚁搜索食物的过程,我们称这种算法为“人工蚁群算法”。
为了说明人工蚁群系统的原理, 我们先简要介绍一下蚂蚁搜索食物的具体过程。
这里用图1形象说明自然界蚂蚁的觅食行为,图2形象说明“人工蚁群算法”的路径搜素原理和机制。
Fig. 1. An example with real anta) Ants follow a path between points A and E.b) An obstacle is interposed; ants can choose to go around it following one of the two different paths with equal probability.c) On the shorter path more pheromone is laid down.Fig. 2. An example with artificial antsa) The initial graph with distances.b) At time t=0 there is no trail on the graph edges; therefore, ants choose whether to turn right or left with equal probability.c) At time t=1 trail is stronger on shorter edges, which are therefore, in the average, preferred by ants.2.1基本蚁群算法的数学模型蚁群算法的寻优是在有向图G'=(C,L,Γ)上通过三个准则(转移概率准则、局部调整准则和全局信息素调整准则)加以实现的。
(1)转移概率准则:[][][][])1(,,0)()()()()(k k ir ir ij ij k ij allowed s allowed j t t t t t p allowedk N ⊂∈⎪⎪⎩⎪⎪⎨⎧=∑⊂,否则βαβαητητ其中allowed k ={C-tabu k }表示蚂蚁k 下一步允许选择的城市;α为信息启发式因子,τij(t)为从i 城市到j 城市的路径信息素。
α表示轨迹的相对重要性,α值越大,蚂蚁选择该路径的可能性就越大。
如果α过大其选择的随机性就越小,容易陷入局部最优解,反之α过小易造成算法收敛程度过慢;β为期望启发式因子,表示能见度的相对重要性,β越大,则该状态状态转移概率越接近于贪心规则;ηij (t)为启发函数,ηij (t) =1/d ij ;式中d ij 表示相邻两个城市之间的距离。
对蚂蚁k 而言,d ij 越小,则ηij (t)越大,p ijk 也就越大。
显然,该启发函数表示蚂蚁从元素(城市)i 转移到元素(城市)j 的期望程度。
(2)局部调整准则这种局部调整准则模仿了真实世界的外激素挥发原则,随着时间的推移而历史信息素逐步挥发。
蚁群算法中,经过h 个时刻,两个元素状态之间的局部信息素数量可根据以下调整:)2()/(1)()1()(m in 00nl t h t ij ij =+-=+τξττξτ其中,[]1,0⊂ξ,min l 表示集合C 中量个最近元素之间的距离。
(3)全局信息素调整准则(t+n )时刻在路径(i, j)上的信息量可按如下规则进行调整)4()()()3()()()1()(1t t t t n t mk k ij ij ij ij ij ∑=∆=∆∆+-=+ττττρτ式中,ρ表示信息素挥发系数,则1-ρ表示信息素残留因子,为了防止信息的无限积累, ρ的取值范围为[0,1), Δτij (t)表示本次循环中路径(i, j)上的信息素增量,初始时刻Δτij (t) =0, Δτijk (t) 表示第k 只蚂蚁在本次循环中留在路径(i, j)上的信息量。
Ant-Cycle 模型对)(t kijτ∆的定义 ⎪⎩⎪⎨⎧=∆)(否则)过(只蚂蚁在本次循环中经若第5,0,)(,j i k Kk ij L Q t τ 2.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 。
(5)如果到了算法规定的H 时刻,根据式(2)进行信息素挥发。
(6)蚂蚁个体根据状态转移概率公式(1)计算的概率选择元素(城市)j 并前,{}k tabu C j -∈。
(7)修改禁忌表指针,即选择好之后将蚂蚁移动到新的元素(城市),并把该元素(城市)移动到该蚂蚁个体的禁忌表中。
(8)若集合C 中元素(城市)未遍历完,即k<m ,则跳转到第(4)步,否则执行第(8)步。
(9)根据公式(3)和式(4)更新每条路径上的信息量。
(10)若满足结束条件,即如果循环次数Nc ≥ Ncmax 则循环结束并输出程序计算结果,否则清空禁忌表并跳转到第(2)步。
3 蚁群遗传混合算法原理及流程3.1最佳融合点评估策略传统的蚂蚁遗传混合算法使算法整体收敛速度偏慢。
对此,本文提出一种最佳融合点评估策略来交叉地调用两种算法。
首先,用蚂蚁算法的解作为遗传操作的种子,优化遗传算法的初始种群,再用最佳融合点评估策略来判断是否调用蚂蚁算法,一旦进化的种群满足最佳融合点的条件,则开始调用蚂蚁算法,运用蚂蚁算法局部寻优能力强的特点继续寻找最优解。
这种动态交叉调用的策略可以更好地结合两种算法的优点,使这种DAAGA 算法可以得到全局搜素速度和局部寻优最强的特点。
最佳融合点评估策略来交叉地调用两种算法具体步骤如下:步骤1:调用蚂蚁算法,生成初始种群,更新全局最优解。
步骤2:用蚂蚁算法生成的解种群和全局最优解作为遗传操作的种子,优化遗传算法的初始种群。
步骤3:开始遗传操作,灭此生成的种群都用最佳融合点评估策略来进行评估,看是否转向蚂蚁算法。
最佳融合点评估策略如下。
(1)是指遗传操作的最小迭代次数min NG 和最大迭代次数m ax NG ( max min NG NG <)(2)在设定的迭代次数范围内,如果连续n 代,都满足)6(1-∆<∆nf f n 其中,n nn f f f --=∆max (nf max 表示遗传算法第n 代种群的最大适应度值,n f -表示遗传算法第n 代种群的平均适应度值)3.2信息素更新方法的改进动态蚁群遗传算法,从遗传算法每一代种群中找出最优的个体,以此作为启发信息来再次更新信息素。
同时,由于新算法采用最佳融合点评估策略来保证了算法的种群进化方向,与传统方法相比该法可更快地反应出各路径的优劣,以尽快找到最优解。
设L gb 为现有种群中最优解的值,在全局最优解更新信息素时,L gb设定为全局最优解的值,则利用蚂蚁算法的解。
遗传算法每代最优个体以及全局最优解来更新信息素的规则如下: )7(/1)()()()1(gb best best L t t t t ij ij =∆∆+=+ττρττ其中3.3迭代调整阈值设计遗传算法有良好的全局收敛性,蚁群算法有良好的局部寻优能力。