蚁群算法聚类分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蚁群算法聚类分析
摘要:
蚁群算法是今年来才提出的一种基于种群寻优的启发式搜索算法,由意大利学者M.Dorigo等于1991年首先提出。该算法受到自然界中真实蚁群集体行为的启发,利用真实蚁群通过个体间的信息传递、搜索从蚁穴到食物间的最短路径的集体寻优特征,来解决一些离散系统中优化的困难问题。本文就蚁群算法的基本原理、模型特征、聚类分析展开论述。
关键字:
蚁群算法原理模型聚类分析
引言
蚁群算法是最近几年才提出的一种新型的模拟进化算法。蚂蚁是大家司空见惯的一种昆虫,而他们的群体合作的精神令人钦佩。他们的寻食、御敌、筑巢(蚂蚁的筑窝、蜜蜂建巢)之精巧令人惊叹。蚂蚁是自然界中常见的一种生物,人们对蚂蚁的关注大都是因为“蚂蚁搬家,天要下雨”之类的民谚。然而随着近代仿生学的发展,这种似乎微不足道的小东西越来越多地受到学者们的关注。1991年M.DIorigo,V.MaIliezzo等人首先提出了蚁群算法 (Ant Colony Algorithms),人们开始了对蚁群的研究:相对弱小,功能并不强大的个体是如何完成复杂的工作的(如寻找到食物的最佳路径并返回等)。在此基础上一种很好的优化算法逐渐发展起来。
基本蚁群算法的机制原理
模拟蚂蚁群体觅食行为的蚁群算法是作为一种新的计算智能模式引入的,该算法基于如下基本假设:
(1)蚂蚁之间通过信息素和环境进行通信。每只蚂蚁仅根据其周围的局部环境做出反应,也只对其周围的局部环境产生影响;
(2)蚂蚁对环境的反应由其内部模式决定。因为蚂蚁是基因生物,蚂蚁的行为实际上是其基因的适应性表现,即蚂蚁是反应型适应性主体;
(3)在个体水平上,每只蚂蚁仅根据环境做出独立选择;在群体水平上,单只蚂蚁的行为是随机的,但蚁群可通过自组织过程形成高度有序的群体行为;
由上述假设和分析可见,基本蚁群算法的寻优机制包含两个基本阶段:适应阶段和协作阶段。在适应阶段,各候选解根据积累的信息不断调整自身结构,路径上经过的蚂蚁越多,信息量越大,则该路径越容易被选择;时间越长,信息量会越小;在协作阶段,候选解之间通过信息交流,以期望产生性能更好的解,类似于学习自动机的学习机制。
蚁群算法实际上是一类智能多主体系统,其自组织机制使得蚁群算法不需要对所求问题的每一方面都有详尽的认识。自组织本质上是蚁群算法机制在没有外界作用下使系统熵增加的动态过程,体现了从无序到有序的动态演化,其逻辑结构如图1所示。
图1 基本蚁群算法的逻辑结构
由图1可见,先将具体的组合优化问题表述成规范的格式,然后利用蚂蚁算法在“探索(exploration)’’和“利用(exploitation)"之间根据信息素这一反馈载体确定决策点,同时按照相应的信息素更新规则对每只蚂蚁个体的信息素进行增量构建,随后从整体角度规划出蚂蚁活动的行为方向,周而复始,即可求出组合优化问题的最优解。
基本蚁群算法的模型特征
现在大量的工作是围绕组合优化问题进行的,因为蚁群模型的定义要受到问题结构的影响,故而选择一种标准的问题是衡量算法好坏,并与其它算法进行比较的前提,通常选择的问题是旅行商问题(TSP),TsP具有广泛的代表意义和应用前景,许多现实问题均可抽象为TSP 的求解,故我们以TSP为例来描述基本蚁群算法的模型特征。
TSP问题属于一种典型的组合优化问题,其定义为:给定n个城市的集合,寻找一条只经过各城市一次的具有最短长度的闭合路径。设(X i,Y j)是城市i的坐标值,d ij为城市i和城市j 之间的距离,用欧几里德空间距离表示:
(1)
一个TSP问题可由图(N,E)给定,其中N是城市的集合,E是城市之间的支路集合(欧几里德空间中TSP意义下的一个全连接图),令b i(t)(i=1,2,⋯,n)为t时刻位于城市i
的蚂蚁个数,则为蚁群中蚂蚁的总个数。每个蚂蚁可认为具有下列特征的简
单智能体:
(1)其选择城市的概率是城市之间的距离和连接支路所包含的当前信息素余量的函数;
(2)为了强制蚂蚁进行合法的周游,直到周游完一次所有的城市,才允许蚂蚁游走己访问过的城市,设置禁忌表来进行控制;
(3)当完成一次周游后,它在每条访问过的支路上都会留下信息素。
设:u(t)为t时刻在ij连线上残留的信息量,而初始时刻各条路径上的信息量相等,即T ii(O)=c。如果在时间间隔(t,t+1)中m个蚂蚁都从当前城市选择下一个城市,则经过n个时间间隔。为了避免残留信息过多引起的残留信息淹没启发信息的问题,在每一只蚂蚁完成对所有n个城市的访问后(也即一个循环结束后),必须对残留信息进行更新处理,模仿人类记忆的特点,对1日的信息进行削弱。同时,必须将最新的蚂蚁访问路径的信息加入T ij,此时按如下方法修改各条路径上的残留信息。
(2)
(3)
上式中,p为信息残留系数,l—p表征了从时刻t到t+n路径(I,j)上残留信息为本次循环第k只蚂蚁在t与t+n时刻,留在路径(i,j)上的的挥发程度。△T
ij
年位长度上的信息量。
根据Morigo的Ant—Cycle System模型,有
(4)
为第k只蚂蚁在本次循环中所走路径的长度。则t时刻蚂上式中,Q为常量,L
k
蚁k(k=l,2,3,⋯,n)由城市i到城市j的选择概率定义如下:
(5)
定义tabuk为一动态增长的列表,其中记录了蚂蚁k所经过的所有的城市号,为允许第k只蚂蚁访问的城市列表,则为t时刻蚂蚁由城市i选择城市j的某种启发信息。
Ant cycle算法流程如图2所示:
图2 Ant-cycle算法流程图
而后Dorigo等人又提出了蚁群算法的另外两个版本:蚁密算法和蚁量算法,这两种算法在信息素更新的方式上利用的是局部信息,而蚁周算法利用的是整体信息。这两种算法的模型中,每只蚂蚁在每一步后都留下了它的信息素,而不必等到周游结束。在蚁密算法中,蚂蚁每次从i到j都会在支路(ij)上留下数量为Q的信息素:在蚁量算法中,一只从i到j 的蚂蚁在支路(i,j)上留下数量为Q/d ij的信息素。其更新方式定义如下:
(6)