蚁群算法研究综述
蚁群算法

蚁群算法作者:付欣李静来源:《硅谷》2012年第03期摘要:在自然界中,蚂蚁群体表现出高度的结构化组织,蚂蚁种群所表现出的能力远远超出单一的个体,科学家们通过对蚂蚁种群觅食、构建巢穴、任务分配等行为能力的研究发现蚂蚁所特有的控制自身周围环境的能力,早在1989年Cross S等通过著名的双桥实验确定信息素对于蚂蚁觅食过程的指导作用,也为后来蚁群算法的模型建立奠定基础。
关键词:蚁群算法;研究;发展中图分类号:TN911 文献标识码:A 文章编号:1671-7597(2012)0210183-011 蚂蚁个体的抽象蚁群算法的起源是模拟自然界中蚂蚁群体行为,但与真实的蚂蚁个体还存在一定的差别,将自然界中的蚂蚁个体进行抽象的目的就是更方便的刻画蚁群的自然行为,同时抛除与问题建模无关的因素。
通过这种方式得到的蚂蚁个体可以视为一些智能体,它们之间可以通过一定的机制互相通信、影响,同时也可以共同完成所求问题的简单解的构造过程。
2 问题空间的抽象蚁群算法是建立在对自然界三维空间的抽象基础之上,通常是用一个二维的平面来代替现实中的蚂蚁觅食三维空间。
同时自然界中蚂蚁觅食的空间是一个连续的二维空间,而在计算机模拟的问题模型中多数属于离散事件,因此还需要将所需求解的问题离散化为点组成的解空间。
这个抽象过程的可行性在于:尽管蚂蚁是在连续平面中运动,但其运动过程是由离散点所组成,因此对问题空间的抽象过程仅提高了离散化的粒度,与蚂蚁自身的觅食机理没有任何冲突。
在多数应用问题中经常使用图(Graph)结构来对问题空间进行描述。
3 觅食路径的抽象觅食过程中蚁群会在食物和巢穴之间构造一个特定的空间,在这一空间中存在大量的蚁群所固有的信息,这些信息可以指引蚂蚁在此空间中的运动方向,在解决优化问题时,人工蚂蚁在平面节点上搜寻路径的过程就对应了解的构造过程;在人工蚂蚁的运动过程中由平面节点间边上的轨迹提供指导信息,即相当于信息素;人工蚂蚁根据路径上信息素的浓度大小按照一定的概率决定下一步前进的方向,以此类推,经过一定时间之后到达目标节点,这样便可以得到可行解。
多目标优化算法综述

多目标优化算法综述随着科技的发展和社会进步,人们不断地提出更高的科学技术要求,其中许多问题都可以用多目标优化算法得到解决。
多目标优化算法的发展非常迅速,当前已经有各种综合性比较全面的算法,如:遗传算法、粒子群算法、蚁群算法、模拟退火算法等。
本文将进一步介绍这些算法及其应用情况。
一、遗传算法遗传算法(Genetic Algorithm,简称GA)是一种源于生物学进化思想的优化算法,它通过自然选择、交叉和变异等方法来产生新的解,并逐步优化最终的解。
过程中,解又称为个体,个体又组成种群,种群中的个体通过遗传操作产生新的个体。
遗传算法的主要应用领域为工程优化问题,如:智能控制、机器学习、数据分类等。
在实际应用上,遗传算法具有较好的鲁棒性和可靠性,能够为人们解决实际问题提供很好的帮助。
二、粒子群算法粒子群算法(Particle Swarm Optimization,简称PSO)是一种基于群体智能的优化算法,其核心思想是通过群体中的个体相互协作,不断搜索目标函数的最优解。
粒子群算法适用于连续和离散函数优化问题。
和遗传算法不同,粒子群算法在每次迭代中对整个种群进行更新,通过粒子间的信息交流,误差及速度的修改,产生更好的解。
因此粒子群算法收敛速度快,对于动态环境的优化问题有着比较突出的优势。
三、蚁群算法蚁群算法(Ant Colony Optimization,简称ACO)是一种仿生学启发式算法,采用“蚂蚁寻路”策略,模仿蚂蚁寻找食物的行为,通过“信息素”的引导和更新,粗略地搜索解空间。
在实际问题中,这些target可以是要寻找的最优解(minimum或maximum)。
蚁群算法通常用于组合优化问题,如:旅行商问题、资源分配问题、调度问题等。
和其他优化算法相比,蚁群算法在处理组合优化问题时得到的结果更为准确,已经被广泛应用于各个领域。
四、模拟退火算法模拟退火算法(Simulated Annealing,简称SA)是一种启发式优化算法,通过随机搜索来寻找最优解。
蚁群算法

蚁群算法综述摘要:群集智能作为一种新兴的演化计算技术已成为越来越多研究者的关注焦点, 其理论和应用得到了很大的发展。
作为群集智能的代表方法之一,蚁群算法ACO (Ant Colony Optimization, 简称ACO) 以其实现简单、正反馈、分布式的优点得到广泛的应用。
蚁群算法是由意大利学者M. Dorigo 提出的一种仿生学算法。
本文主要讨论了蚁群算法的改进及其应用。
在第一章里介绍了蚁群算法的思想起源及研究现状。
第二章详细的介绍了基本蚁群算法的原理及模型建立,并简要介绍了几种改进的蚁群优化算法。
第三章讨论了蚁群算法的最新进展和发展趋势展望。
关键词:群集智能,蚁群算法,优化问题1 引言1.1 概述人类的知识都来自于对自然界的理解和感悟,如天上的闪电,流淌的河流,挺拔的高山,汪洋的大海,人们从中学会了生存,学会了征服自然和利用自然。
自然界中也存在着很多奇特的现象,水中的鱼儿在发现食物时总能成群结队,天上的鸟儿在迁徙时也是组成很多复杂的阵型,蚂蚁在发现食物时总能找到一条最短的路径。
无论鱼儿,飞鸟或是蜜蜂,蚂蚁他们都有一个共同的特点好像有一种无形的力量将群体中的每个个体组织起来,形成一个统一的整体。
看似庞杂的种群却又有着莫大的智慧,让他们能够完成一个个体所无法完成的使命。
整个群体好像一个社会,形成一个有机整体,这个整体对单个个体要求不高,诸多个体组合起来数量庞大,却极具协调性和统一性,这就是群智能。
群智能算法是利用其个体数量上的优势来弥补单个个体的功能缺陷,使整个群体看起来拥有了个体所无法企及的能力和智慧。
单个个体在探索过程的开始都是处于一种盲目的杂乱的工作状态,因此这些个体所能找到的最优解,对于群体而言却并非是最优的而且这些解也都是无规则的,随着越来越多的个体不断探索,单个个体受到其他成员的影响,大量的个体却逐渐趋向于一个或一条最优的路线,原本杂乱的群体渐渐呈现一种一致性,这样整个群体就具有了寻找最优解的能力。
蚂蚁(蚁群)算法的经典简介以及相关资料说明

蚂蚁(蚁群)算法的经典简介蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术。
它由Marco Dorigo于1992年在他的博士论文中引入,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
为什么小小的蚂蚁能够找到食物?他们具有智能么?设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃。
这是多么不可思议的程序!太复杂了,恐怕没人能够完成这样繁琐冗余的程序。
然而,事实并没有你想得那么复杂,上面这个程序每个蚂蚁的核心程序编码不过100多行!为什么这么简单的程序会让蚂蚁干这样复杂的事情?答案是:简单规则的涌现。
事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。
这就是人工生命、复杂性科学解释的规律!那么,这些简单规则是什么呢?下面:范围蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内。
环境蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。
每个蚂蚁都仅仅能感知它范围内的环境信息。
环境以一定的速率让信息素消失。
觅食规则在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。
否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁多会以小概率犯错误,从而并不是往信息素最多的点移动。
蚁群算法理论、应用及其与其它算法的混合

基本内容
蚁群算法是一种基于自然界中蚂蚁觅食行为的启发式优化算法,被广泛应用 于解决各种优化问题。该算法具有鲁棒性、并行性和自适应性等优点,但同时也 存在一些局限性,如易陷入局部最优解等问题。本次演示将详细介绍蚁群算法的 基本理论、应用场景以及与其它算法的混合使用。
蚁群算法的实现包括两个关键步骤:构造解和更新信息素。在构造解的过程 中,每只蚂蚁根据自己的概率选择下一个节点,这个概率与当前节点和候选节点 的信息素以及距离有关。在更新信息素的过程中,蚂蚁会在构造解的过程中更新 路径上的信息素,以便后续的蚂蚁能够更好地找到最优解。
蚁群算法在许多领域都得到了广泛的应用。在机器学习领域,蚁群算法被用 来提高模型的性能和效果。例如,在推荐系统中,蚁群算法被用来优化用户和物 品之间的匹配,从而提高推荐准确率;在图像处理中,蚁群算法被用来进行特征 选择和图像分割,从而提高图像处理的效果。此外,蚁群算法在数据挖掘、运筹 学等领域也有着广泛的应用。
结论本次演示介绍了蚁群优化算法的理论研究及其应用。通过分析蚁群优化 算法的组成、行为和优化原理,以及其在不同领域的应用案例,本次演示展示了 蚁群优化算法在求解组合优化、路径规划、社会优化和生物信息学等领域问题的 优势和潜力。本次演示展望了蚁群优化算法未来的发展方向和可能挑战,强调了 其理论研究和应用价值。
总之,蚁群算法是一种具有广泛应用价值的优化算法,它通过模拟蚂蚁的觅 食行为来实现问题的优化。未来可以通过进一步研究蚁群算法的原理和应用,以 及克服其不足之处,来提高蚁群算法的性能和扩展其应用领域。
基本内容
理论基础蚁群优化算法由蚁群系统、行为和优化原理三个核心要素组成。蚁 群系统指的是一群相互协作的蚂蚁共同构成的社会组织;行为则是指蚂蚁在寻找 食物过程中表现出的行为模式;优化原理主要是指蚂蚁通过信息素引导和其他蚂 蚁的协同作用,以最短路径找到食物来源。
几种仿生优化算法综述

几种仿生优化算法综述随着机器学习和人工智能技术的不断发展,仿生优化算法越来越重要。
仿生优化算法可以模拟自然选择和进化过程,具有全局搜索能力和较强的鲁棒性。
本文将介绍几种常见的仿生优化算法,包括遗传算法、粒子群算法和蚁群算法,并分析它们的优缺点以及应用场景。
1. 遗传算法遗传算法是一种模拟自然进化过程的优化算法。
它以染色体(即解)为基本单元,通过选择、交叉和变异等操作来生成新的解。
遗传算法具有全局搜索能力,适用于解决复杂的优化问题。
同时,遗传算法的并行化能力也很强,可以加快计算速度。
但是,遗传算法的缺点也显而易见。
它容易陷入局部最优解,因为某些不利因素可能会影响交叉和变异的效果。
此外,遗传算法要求问题能够通过二进制编码进行表示,可能会降低精度和效率。
2. 粒子群算法粒子群算法是一种通过模拟鸟群或鱼群等生物的群体行为来完成优化任务的算法。
粒子群算法的优点在于它具有强大的全局搜索能力和快速收敛速度。
它能够避免落入局部最优解,同时还可以灵活地适应多维问题。
但是,粒子群算法的性能也受到一些限制。
它对问题的初始条件非常敏感,而且可能会出现早熟收敛的情况。
此外,粒子群算法的收敛速度也可能会受到惯性参数的影响。
蚁群算法模拟蚂蚁在寻找食物过程中释放出的信息素。
它通过在搜索过程中建立一个信息素矩阵来指导搜索行为,可以有效地避免落入局部最优解。
蚁群算法还具有分布式和并行性,并且可以应用于动态环境中的优化问题。
然而,蚁群算法也存在一些挑战。
它需要进行大量的计算,因为信息素矩阵需要不断地更新。
此外,蚁群算法的算法参数可能会对搜索性能产生一定的影响。
综上所述,遗传算法、粒子群算法和蚁群算法都是具有广泛应用价值的优化算法。
每种算法都有其优缺点和适用范围,在具体问题中需要根据实际情况选择合适的算法。
对于不同的优化问题,选择合适的算法可以显著提高优化效率和准确性。
蚁群优化算法及其应用

蚁群优化算法及其应用1.引言1.1蚁群行为一只蚂蚁看起来微不足道,但多个蚂蚁形成的蚁群似乎就是一个非常规整的军队,在很多情况下,他可以完成很多单只蚂蚁完成不到的事。
这种行为可以看成多个蚂蚁之间的合作,最典型的一个例子就是寻找食物。
在我们的生活中,我们经常可以观察到蚂蚁排成一条直线非常有规整的搬运食物,它是一条直线而不是别的形状。
当蚁群的行进路线出现障碍的时候,蚂蚁的位置总是非常规整而又均匀。
只要等待时间一会儿,蚂蚁就能找到回蚁穴的最短路径。
蚂蚁可以利用这个信息。
当蚂蚁出去觅食会释放信息素,并且沿着行进的路线释放,而且蚂蚁之间都可以互相感应信息素。
信息素的浓度多少决定了食物与蚁穴之间的距离。
信息素浓度越高,食物与蚁穴距离就越短。
1.2一个关于寻路行为的简单例子戈斯S等人在1989年进行了“双桥”实验。
这个实验说明了,蚁群会选择出食物与蚁穴的最短的距离。
下面的例子也能解释它。
图 1如图1所示,如果路线是从A点到D点,有俩个选择ABD和ACD路线,假如现在有俩只蚂蚁B和C分别在ABD路线和ACD路线上,一个时间单位进一步,8个时间单位后,情况如图2所示:从ABD路线最后到D的蚂蚁,从ACD路线最后到C的蚂蚁. 再过8个单位时间后,可以得到以下情况:B蚂蚁已经到A点了,而C蚂蚁才到D点.图 232个单位时间后,在ABD路线上的蚂蚁已经折返了两次,而在ACD路线上的蚂蚁只有折返一次,是不是可以说明ABD上面的信息素比ACD多出了一倍。
接下来,受信息素的影响,ABD路径会被两倍多的蚂蚁选择,所以ABD路线上会有更多的蚂蚁,也会有更多的信息素。
最后,在32个单位的时间后,信息素浓度的比值将达到3:1。
信息素浓度越来越高蚂蚁也会相应越来越多,而ACD路径将逐渐被放弃。
这就是蚂蚁如何依赖信息素来形成积极反馈的方式。
由于前一条蚂蚁在一开始的路径上没有留下信息素,所以蚂蚁向两个方向移动的概率是相等的。
但是,蚂蚁移动的时候,它会释放信息素。
启发式优化算法综述

启发式优化算法综述启发式优化算法 (Heuristic Optimization Algorithms) 是一类通过模拟自然界生物学中的智能行为来解决优化问题的算法。
这些算法通常能够在较短的时间内找到接近最优解的解决方案,尤其适用于复杂的优化问题,如组合优化、连续优化、多目标优化等。
1. 粒子群优化算法 (Particle Swarm Optimization, PSO)粒子群优化算法模拟了鸟群捕食行为中个体之间的信息交流和寻找最佳食物源的过程。
在算法中,每个解被看作是一个“粒子”,通过调整速度和位置以最优解。
粒子之间通过更新自己和邻居的最佳位置来共享信息,并且通过迭代的方式不断收敛到全局最优解。
2. 遗传算法 (Genetic Algorithm, GA)遗传算法模拟了生物进化的过程。
算法通过构建一组候选解,称为“染色体”,其中包含了问题的可能解决方案。
算法使用选择、交叉和变异等操作来生成新的染色体,并根据染色体的适应度评估解的质量。
通过不断迭代,遗传算法可以全局最优解。
3. 蚁群算法 (Ant Colony Optimization, ACO)蚁群算法模拟了蚂蚁寻找食物的行为。
在算法中,每只蚂蚁通过释放信息素来标记其行走路径。
蚂蚁根据信息素浓度决定下一步的行动,并且信息素浓度会根据蚂蚁的选择进行更新。
通过蚂蚁的协作和信息素的反馈,蚁群算法能够出较优解。
4. 模拟退火算法 (Simulated Annealing, SA)模拟退火算法模拟了固体从高温退火到低温的冷却过程。
算法从一个初始解开始,通过随机地变换当前解以生成新的解,并计算新解的目标函数值。
算法根据目标函数值的变化和当前温度来决定是否接受新解。
通过逐渐降低温度的方式,模拟退火算法最终能够收敛到全局最优解。
这些启发式优化算法在不同的问题领域都取得了一定的成功。
它们被广泛运用于机器学习、数据挖掘、智能优化等领域,解决了很多实际问题。
尽管启发式优化算法在大多数情况下能够找到较优解,但并不能保证找到确切的全局最优解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蚁群算法综述控制理论与控制工程09104046 吕坤一、蚁群算法的研究背景蚂蚁是一种最古老的社会性昆虫,数以百万亿计的蚂蚁几乎占据了地球上每一片适于居住的土地,它们的个体结构和行为虽然很简单,但由这些个体所构成的蚁群却表现出高度结构化的社会组织,作为这种组织的结果表现出它们所构成的群体能完成远远超越其单只蚂蚁能力的复杂任务。
就是他们这看似简单,其实有着高度协调、分工、合作的行为,打开了仿生优化领域的新局面。
从蚁群群体寻找最短路径觅食行为受到启发,根据模拟蚂蚁的觅食、任务分配和构造墓地等群体智能行为,意大利学者M.Dorigo等人1991年提出了一种模拟自然界蚁群行为的模拟进化算法——人工蚁群算法,简称蚁群算法(Ant Colony Algorithm,ACA)。
二、蚁群算法的研究发展现状国内对蚁群算法的研究直到上世纪末才拉开序幕,目前国内学者对蚁群算法的研究主要是集中在算法的改进和应用上。
吴庆洪和张纪会等通过向基本蚁群算法中引入变异机制,充分利用2-交换法简洁高效的特点,提出了具有变异特征的蚊群算法。
吴斌和史忠植首先在蚊群算法的基础上提出了相遇算法,提高了蚂蚁一次周游的质量,然后将相遇算法与采用并行策略的分段算法相结合。
提出一种基于蚁群算法的TSP问题分段求解算法。
王颖和谢剑英通过自适应的改变算法的挥发度等系数,提出一种自适应的蚁群算法以克服陷于局部最小的缺点。
覃刚力和杨家本根据人工蚂蚁所获得的解的情况,动态地调整路径上的信息素,提出了自适应调整信息素的蚁群算法。
熊伟清和余舜杰等从改进蚂蚁路径的选择策略以及全局修正蚁群信息量入手,引入变异保持种群多样性,引入蚁群分工的思想,构成一种具有分工的自适应蚁群算法。
张徐亮、张晋斌和庄昌文等将协同机制引入基本蚁群算法中,分别构成了一种基于协同学习机制的蚁群算法和一种基于协同学习机制的增强蚊群算法。
随着人们对蚁群算法研究的不断深入,近年来M.Dorigo等人提出了蚁群优化元启发式(Ant-Colony optimization Meta Heuristic,简称ACO-MA)这一求解复杂问题的通用框架。
ACO-MH为蚁群算法的理论研究和算法设计提供了技术上的保障。
在蚁群优化的收敛性方面,W.J.Gutjahr做了开创性的工作,提出了基于图的蚂蚁系统元启发式(Graph-Based Ant System Metaheuristic)这一通用的蚁群优化的模型,该模型在一定的条件下能以任意接近l的概率收敛到最优解。
T.StBtzle 和M.Dorigo对一类ACO算法的收敛性进行了证明,其结论可以直接用到两类实验上,证明是最成功的蚁群算法——MMAs和ACS。
N.Meuleau和M.Dorigo研究了随机梯度下降(Stochastic Gradlent Descent,简称SGD)和蚁群优化之间的关系,将蚁群优化看成是一种近似的SGD算法,并根据SGD实现了理论上收敛的蚁群优化算法。
蚁群算法的应用研究一直非常活跃。
继M.Dorigo首先将AS算法用于TSP 问题之后,V.Maniezzo等人首先将AS算法应用于指派问题(QuadraticAssignment Problem,简称QAP)。
最近几年Gambardella,Thailard和StUtzle等也发表了一些用蚁群算法求解QAP问题的文章。
目前,蚁群算法是求解QAP问题最有效的算法之一。
蚁群算法在通讯网络领域(尤其是网络路由问题)的应用受到越来越多的学者的关注。
由于网络中的信息分布性、动态性、随机性和异步性与蚁群算法相似,如利用局部信息发现解,间接的通讯方式和随机状态的转换。
Di Caro和Dorigo 已经在相关的文献中将ACO应用于网络路由问题,并称这种算法为Antnet。
除了各种组合优化问题外,蚁群算法还在函数优化、系统辨识、机器人路径规划、数据挖掘、大规模集成电路的综合布线设计等领域取得了令人瞩目的成果。
三、蚁群算法的原理及数学模型1.蚁群算法的基本原理根据生物学家和仿生学家的长期观察和研究发现,没有视觉的蚂蚁在运动时会通在路径上释放出一种特殊的分泌物——信息素,并通过其来寻找路径。
当它们碰到一个还没有走过的路口时,就随机挑选一条路径前行,同时释放出与路径长度有关的信息素。
蚂蚁走的路径越长,则释放的信息量越小。
当后来的蚂蚁再次碰到这个路口的时候,选择信息量较大路径的概率相对较大,这样便形成了一个正反馈机制。
最优路径上的信息量越来越大,而其他路径上的信息量却会随着时间的推移而逐渐消减,最终整个蚁群会找出最优路径。
同时蚁群还能够适应环境的变化,当蚁群的运动路径上突然出现障碍物时,蚂蚁也能很快地重新找到最优路径。
信息素在蚁群寻找最优路径的过程中发挥了重要作用。
2.蚁群算法的机制原理蚁群算法是作为一种新的计算智能模式引入的,该算法基于如下基本假设:(1)蚂蚁之间通过信息素和环境进行通信。
每只蚂蚁仅根据其周围的局部环境做出反应,也只对其周围的局部环境产生影响。
(2)蚂蚁对环境的反应由其内部模式决定。
因为蚂蚁是基因生物,蚂蚁的行为实际上是其基因的适应性表现,即蚂蚁是反应型适应性主体。
(3) 在个体水平上,每只蚂蚁仅根据环境做出独立选择;在群体水平上,单只蚂蚁的行为是随机的,但蚁群可通过自组织过程形成高度有序的群体行为。
由上述假设和分析可见,基本蚁群算法的寻优机制包含两个基本阶段:适应阶段和协作阶段。
蚁群算法实际上是一类智能多主体系统,其自组织机制使得蚁群算法不需要对所求的问题的每一方面都有非常深入的了解。
3. 蚁群算法的数学描述组合优化(Combinatorial Optimization)是运筹学中最活跃的分支之一,在计算机科学、计算生物学、物流和供应链管理等新兴领域有大量的应用。
组合优化主要通过研究数学方法寻找到离散事件的最优编排、分类、次序或筛选等。
组合优化又称组合规划,是指在给定有限集的所有具备某些条件的子集中,按某种目标找出一个最优子集的一类数学规划。
从最广泛的意义上说,组合规划与整数规划这两者的领域是一致的,都是指在有限可供选择方案组成的集合中,选择使目标函数达到极值的最优子集。
旅行商问题是运筹学的著名命题,也是目前研究最为广泛的组合优化问题之一。
对TSP 的研究成果将对求解NP(Non .deterministic Polynomial Time)类问题产生重要影响。
蚂蚁在运动过程中,根据各条路径上的信息量及路径的启发信息来计算状态转移概率。
每个蚂蚁应用一个状态转移规则来建立一个问题的解决方案,直到所有蚂蚁都建立了完整的解决方案。
完成一次循环后,各路径进行信息量调整,存储所找到的最短路径,直到满足条件为止,其中状态转移规则为:⎝⎛∈••=∑⊂else allowed j t t t t t k allowed s is is ik ij k k ,0,)]([)]([)]([)]([)(P ij 若βαβαητητ (1)),...,2,1(m k tabu k =用以记录蚂蚁k 当前过的城市为记忆列表,其中允许)(k tabu n k -=集合k tabu 随着进化过程动态调整,ij η为先验知识能见度在TSP 问题中为城市转移到城市的启发信息,一般取ij ij /d 1=η,α为路径上ij 残留信息的重要程度,β为启发信息的重要程度。
信息素更新规则采用如下公式:),1,()()1(+∆+•=+t t t t ij ij ij ττρτ (2),)1,()1,(1∑=+∆=+∆mk k ij ij t t t t ττ (3)⎩⎨⎧=+∆否则在本次循环中经过路径如果蚂蚁,0);,(,/),(j i k L Q n t t k k ijτ (4)其中:k L 为第k 只蚂蚁在本次循环中所走的路径长度,Q 是信息素强度,)1,(+∆t t kij τ表示第k 只蚂蚁在时刻)1,(+t t 留在路径),(j i 上的信息素量,)1,(+∆t t ij τ表示本次循环中路径),(j i 的信息素的增量;)1(ρ-为信息素轨迹的衰减系数)(,10∈ρ。
根据具体算法的不同,ij τ∆,k ij τ∆及)(P t kij 的表达形式可以不同,Dorigo 曾给出3种不同模型,分别称为蚁周系统、蚁量系统和蚁密系统,在蚁量系统和蚁密系统中,蚂蚁在建立方案的同时释放信息素,利用的是局部信息;而蚁周系统是在蚂蚁已经建立了完整的轨迹后再释放信息素,利用的是整体信息。
在一系列的标准测试问题上的运行试验表明,蚁周算法的性能优于其他两种算法。
四、 蚁群算法的实现步骤和程序流程图以TSP 为例,基本蚁群算法的具体实现步骤如下:(1)参数初始化。
令时间0=t 和循环次数0=c N ,设置最大循环次数m ax c N ,将m 只蚂蚁置于n 个城市上)(n m <,令有向图上每条边),(j i 的初始化信息量const ij =τ,其中const 表示常数,且初始时刻0)0(=∆ij τ。
(2)循环次数1+←c c N N 。
(3)蚂蚁数目1+←k k 。
(4)蚂蚁个体根据状态转移概率公式(1)计算的概率选择城市j 并前进,{}k tabu C j -∈。
(5)修改禁忌表指针,即选择好之后将蚂蚁移动到新的城市,并把该城市移动到该蚂蚁个体的禁忌表中。
(6)若集合C 中城市未遍历完,即m k <,则跳转到第(3)步,否则执行第(7)步。
(7)根据公式(2)和式(3)更新每条路径上的信息量。
(8)若满足结束条件,即如果循环次数cmac c N N ≥,则循环结束并输出程序计算结果,否则清空禁忌表并跳转到第(2)步。
蚁群算法的程序流程图如下图所示:图1 基本蚁群算法的程序结构流程五、蚁群算法与其它智能算法的比较当前研究的很多算法都是人们受到大自然现象的启发,通过模拟大自然一些物种的行为提出的,如蚁群算法是模拟自然界蚁群行为,遗传算法是基于生物进化理论原理发展起来的,人工神经网络算法是模拟人脑组织结构和运行机制,模拟退火算法来源于固体退火原理等。
这些仿生优化算法通过模拟生物系统中生物体本能特性和无意识的寻优活动优化自身状态,以达到获得求解问题的最优解。
作为同一类的智能算法,它们有许多相同的特点。
(1)都是不确定性的算法生物体在自然界中并不是确定性变化的,正是由于本身一些不确定性因素的影响,导致生物体个体之间的差异,也保证生物种群的多样。
仿生优化算法利用了这种不确定性的特性,它们借助随机特性,保证算法在求解过程中存在一定的不确定性因素,从而实现算法个体求解的多样性。
也正是这种多样性,使得算法在求解某些问题的过程中,能够避免陷入局部解,保证整个求解过程朝着最优解的方向不断进行。