蚁群聚类算法综述
蚁群算法概述ACO

在众多NP-难度的组合优化问题的应用中,当蚁群优化算法与局部搜索相结合时,算法表现出来的性能最好,局部搜索算法局部地优化蚂蚁构建的解,这些经局部优化的解将在信息更新步骤中使用。
在ACO算法中使用局部搜索算法,两者能够相互补充。
两者的结合可以有效地提高蚂蚁构建的解得质量。
蚁群算法收敛速度慢、易陷入局部最优。
蚁群算法中初始信息素匮乏。
蚁群算法一般需要较长的搜索时间,其复杂度可以反映这一点;而且该方法容易出现停滞现象,即搜索进行到一定程度后,所有个体发现的解完全一致,不能对解空间进一步进行搜索,不利于发现更好的解(群体智能算法的主要特点是个体之间可以交互信息,从而提高全局搜索能力,但同时陷入局部最优是群体智能算法都可能存在的问题。
所以现在遗传和蚁群的文章中,有提利用其全局能力强去解决问题的,也有提易陷入局部最优的,从而去改进的)。
下面是几篇综述文章中的说法。
段海滨是南航毕业的博士,现在北航,写了本蚁群算法的书,蚁群算法他在国内算是做的比较多的。
虽然算法具有分布式并行机制、易于与其他算法相结合、具有鲁棒性等优点,但搜索时间长、易陷入局部最优是其突出缺点[段海滨,王道波,朱家强.蚁群算法理论及应用研究进展[J].控制与决策,2004, 19(12):1321—1326,134] 近年来,国内外学者在蚁群算法的模型改进和应用方面做了大量的工作,其共同目的是在合理时间复杂度的限制条件下,尽可能提高蚁群算法在一定空间复杂度下的寻优能力,从而改善蚁群算法的全局收敛性,并拓宽蚁群算法的应用领域[段海滨.蚁群算法原理及其应用[M].北京:科学出版社,2005]目前对蚁群算法的研究,不仅有算法意义上的研究,还有从仿真模型角度的研究, 并且不断有学者提出对蚁群算法的改进方案:有的将蚁群算法与遗传算法相结合,有的给蚁群系统加入变异特征,还有的提出所谓最大最小蚁群算法(MMAS).应当指出, 现阶段对蚁群算法的研究还只是停留在仿真阶段,尚未能提出一个完善的理论分析,对它的有效性也没有给出严格的数学解释.但是,从以前模糊控制所碰到的情况看,理论上的不完善并不妨碍应用,有时应用还会超前于理论,并推动理论研究,蚁群算法也是如此.(忻斌健,江镭,吴启迪,蚁群算法的研究现状和应用及蚂蚁智能体的硬件实现,同济大学学报,,2002,30(1).)蚁群与其他算法的融合策略:(1)针对蚁群算法初始信息素匮乏的缺点,采用其他算法生成初始信息素分布,利用蚁群算法求精确解,从而提高时间效率和求解精度。
蚁群聚类算法研究及应用

-5009-0引言俗话说“物以类聚,人以群分”,人们在不知不觉中进行着聚类活动,它是人们认识和探索事物之间内在联系的有效手段。
聚类在数据挖掘中有着重要的地位,它既可以用作独立的数据挖掘工具,来发现数据库中数据分布的一些深入信息,也可以作为其它数据挖掘算法的预处理步骤。
因此,聚类算法的研究具有很重要的现实意义。
蚁群算法不依赖于具体问题,具有全局优化能力,因此受到了广大学者的注意。
此后蚁群算法不断被改进并应用于不同领域。
在聚类分析方面,Deneubourg等人受蚂蚁堆积尸体和分类它们的幼体启发,最早将蚁群算法用于聚类分析,从此开始了蚁群聚类算法的研究。
本文详细地讨论了现有的蚁群聚类算法的基本原理与性能,在归纳总结的基础上提出需要完善的地方,以推动蚁群聚类算法的进一步研究及在更广阔的领域内得到应用。
1聚类概念及数学模型聚类就是把一组个体按照相似性归为若干类或簇,使得属于同一类或簇的个体之间的差别尽可能的小,而不同类或簇的个体间的差别尽可能大。
聚类质量是用对象的相异度来评估,而不同类型变量的相异度的计算方法是不同的,常用的度量方法是区间标度变量中的欧几里得距离。
聚类的数学描述:设样本集={,=1,2,…,},其中为维模式向量,其聚类问题就是找到一个划分={1,2,…,},满足==1,≠,=,,=1,2,…,,≠,且使得总的类内离散度和==1,最小,其中为的聚类中心,=1,2,…,;,为样本到其聚类中心的距离,即,=‖‖。
聚类目标函数为各样本到对应聚类中心的距离总和,聚类中心=1,||为的样本数目。
2蚁群聚类算法分类及应用由于现实的蚁群运动过程接近于实际的聚类问题,所以近年来涌现出大量的蚁群聚类算法。
这些算法不仅思想、原理不同,而且算法的特性也根据解决问题的不同而不同,如初始参数及待聚类数据的要求、聚类形状等。
根据改进方式的不同,蚁群聚类算法可分3类:①基于蚂收稿日期:2007-10-17 E-mail:05lihua@作者简介:裴振奎(1962-),男,山东东营人,博士研究生,副教授,硕士生导师,研究方向为机器学习与计算智能;李华(1977-),女,山东滨州人,硕士研究生,研究方向为数据挖掘、自然计算;宋建伟(1982-),女,河北廊坊人,硕士研究生,研究方向为网络安全、计算智能;韩锦峰(1981-),女,山西大同人,硕士研究生,研究方向为计算智能、数据库系统理论。
(完整word版)蚁群算法报告

蚁群算法报告学院:专业:学号:姓名:目录第一部分:蚁群算法原理介绍 (3)1.1蚁群算法的提出 (3)1.2蚁群算法的原理的生物学解释 (3)1.3蚁群算法的数学模型 (3)1.4蚁群算法实现步骤 (5)第二部分:蚁群算法实例--集装箱码头船舶调度模型 (6)2.1集装箱码头船舶调度流程图 (6)2.2算例与MATLAB编程的实现 (6)2.2.1算法实例 (6)2.2.2 Matlab编程 (8)第三章:MATLAB 优化设计工具箱简介 (14)3.1M ATLAB优化工具箱 (14)3.1.1优化工具箱功能: (15)3.2M ATLAB 优化设计工具箱中的函数 (15)3.2.2 方程求解函数 (15)3.2.3最小二乘(曲线拟合)函数 (16)3.2.4 使用函数 (16)3.2.5 大型方法的演示函数 (16)3.2.6 中型方法的延时函数 (16)3.4优化函数简介 (17)3.4.1优化工具箱的常用函数 (17)3.4.2 函数调用格式 (17)3.5模型输入时所需注意的问题 (19)第一部分:蚁群算法原理介绍1.1蚁群算法的提出蚂蚁是地球上最常见、数量最多的昆虫种类之一,常常成群结队地出现于人类的日常生活环境中。
受到自然界中真实蚁群集体行为的启发,意大利学者M.Dorig 。
于20世纪90年代初,在他的博士论文中首次系统地提出了一种基于蚂蚁种群的新型优化算法—蚁群算法}28}(Ant Colony Algorithm, ACA),并成功地用于求解旅行商问题,自1996年之后的五年时间里,蚁群算法逐渐引起了世界许多国家研究者的关注,其应用领域得到了迅速拓宽。
1.2蚁群算法的原理的生物学解释据观察和研究发现,蚂蚁倾向于朝着信息激素强度高的方向移动。
因此蚂蚁的群体行为便表现出了一种信息激素的正反馈现象。
当某条路径上经过的蚂蚁越多,该路径上存留的信息激素也就越多,以后就会有更多的蚂蚁选择它。
蚁群算法聚类设计

B
20ants 30ants
A
A
A
图3 蚂蚁选路过程示例
二.算法的基本原理
Nest
Food
Obstacle
图4 蚂蚁最终绕过障碍物找到最优路径
三.模型建立
基于蚂蚁构造墓地和分类幼体的聚类分析模型
基于蚂蚁觅食行为和信息素的聚类分析模型
三.模型建立
1.基于蚂蚁构造墓地和分类幼体的聚类分析模型
三.模型建立
2.基于蚂蚁觅食行为和信息素的聚类分析模型 蚂蚁在觅食的过程中,能够分为搜索食物和搬运食物两个环节。 每个蚂蚁在运动过程中都将会在其所经过的路径上留下信息素,而且 能够感知到信息素的存在及其强度,比较倾向于向信息素强度高的方 向移动,同样信息素自身也会随着时间的流逝而挥发,显然某一路径 上经过的蚂蚁数目越多,那么其信息素就越强,以后的蚂蚁选择该路 径的可能性就比较高,整个蚁群的行为表现出了信息正反馈现象。
五.算法改进
程序运行完后,仿真结果如图所示。从图中可以看出 MMAS 聚类 效果比基本蚁群聚类效果要好,但分类效果还不是太好,说明该三元 色不适合使用该算法分类。
五.算法改进
程序运行结果:
t= 1001 time = 84.9270 cluster_center = 1.0e+03 * 1.9095 2.3453 1.6705 0.4709 3.1052 2.2664 1.7053 2.0221 2.1305 1.6203 2.1557 2.0522 best_solution_function_value = 4.1595e+04 index1 = 1 至 15 列 1 3 8 14 15 19 22 24 45 16 列 47
蚁群算法研究综述(附视频)

• 设置蚂蚁数k=1
• 每条边上信息素浓度相同 ij (0) 0
• 将m只蚂蚁随机放到n个城市
初始化
确定行走 方向
更新禁忌 表
求信息素 增量
判断终止 条件
2.蚁群算法简述
❖ 蚁群算法步骤:
• 转移概率公式:
初始化
确定行走 方向
更新禁忌 表
ij (t)
求信息素
判断终止
增量
准则
2.蚁群算法简述
❖ 蚁群算法步骤:
• 将访问过的城市加入禁忌 表
• 禁忌表:作用是防止蚂蚁 走重复的路径,走过一个 城市,就把它的编号加入 到禁忌表。
初始化
确定行走 方向
更新禁忌 表
求信息素 增量
判断终止 准则
2.蚁群算法简述
❖ 蚁群算法步骤:
• 更新每条支路上信息素
每条边的信息素增量
初始化
确定行走 方向
2.蚁群算法简述
❖ MATLAB仿真:Eil51数据库
3.蚁群算法的应用
蚁群算法主要用来解决路径规划等离散优化问题,比如旅行商问题、
指派问题、调度问题等。其后,许多研究者进一步发展了这一算法, 并将他们的研究成果应用到许多领域。蚁群算法的应用主要表现在 以下几个方面
❖ 组合优化问题中的应用
• 聚类问题 • 路由算法设计 • 图着色问题 • 车辆调度 • 路径规划
更新禁忌 表
求信息素 增量
判断终止 准则
2.蚁群算法简述
❖ 蚁群算法步骤: 判断迭代次数是否是达到
预先设置的NCmax,若没有则继 续迭代,否则输出结果。
初始化
确定行走 方向
更新禁忌 表
求信息素 增量
蚁群聚类算法综述

计算机工程与应用2006.16引言聚类分析是数据挖掘领域中的一个重要分支[1],是人们认和探索事物之间内在联系的有效手段,它既可以用作独立的据挖掘工具,来发现数据库中数据分布的一些深入信息,也以作为其他数据挖掘算法的预处理步骤。
所谓聚类(clus- ring)就是将数据对象分组成为多个类或簇(cluster),在同一簇中的对象之间具有较高的相似度,而不同簇中的对象差别大。
传统的聚类算法主要分为四类[2,3]:划分方法,层次方法, 于密度方法和基于网格方法。
受生物进化机理的启发,科学家提出许多用以解决复杂优问题的新方法,如遗传算法、进化策略等。
1991年意大利学A.Dorigo等提出蚁群算法,它是一种新型的优化方法[4]。
该算不依赖于具体问题的数学描述,具有全局优化能力。
随后他其他学者[5~7]提出一系列有关蚁群的算法并应用于复杂的组优化问题的求解中,如旅行商问题(TSP)、调度问题等,取得著的成效。
后来其他科学家根据自然界真实蚂蚁群堆积尸体分工行为,提出基于蚂蚁的聚类算法[8,9],利用简单的智能体仿蚂蚁在给定的环境中随意移动。
这些算法的基本原理简单懂[10],已经应用到电路设计、文本挖掘等领域。
本文详细地讨现有蚁群聚类算法的基本原理与性能,在归纳总结的基础上出需要完善的地方,以推动蚁群聚类算法在更广阔的领域内到应用。
2聚类概念及蚁群聚类算法一个簇是一组数据对象的集合,在同一个簇中的对象彼此类似,而不同簇中的对象彼此相异。
将一组物理或抽象对象分组为类似对象组成的多个簇的过程被称为聚类。
它根据数据的内在特性将数据对象划分到不同组(或簇)中。
聚类的质量是基于对象相异度来评估的,相异度是根据描述对象的属性值来计算的,距离是经常采用的度量方式。
聚类可用数学形式化描述为:设给定数据集X={x1,x2,…,xn},!i∈{1,2,…,n},xi={xi1,xi2,…,xip}是X的一个对象,!l∈{1,2,…,p},xil是xi对象的一个属性。
蚁群算法研究综述

蚁群算法综述控制理论与控制工程09104046 吕坤一、蚁群算法的研究背景蚂蚁是一种最古老的社会性昆虫,数以百万亿计的蚂蚁几乎占据了地球上每一片适于居住的土地,它们的个体结构和行为虽然很简单,但由这些个体所构成的蚁群却表现出高度结构化的社会组织,作为这种组织的结果表现出它们所构成的群体能完成远远超越其单只蚂蚁能力的复杂任务。
就是他们这看似简单,其实有着高度协调、分工、合作的行为,打开了仿生优化领域的新局面。
从蚁群群体寻找最短路径觅食行为受到启发,根据模拟蚂蚁的觅食、任务分配和构造墓地等群体智能行为,意大利学者M.Dorigo等人1991年提出了一种模拟自然界蚁群行为的模拟进化算法——人工蚁群算法,简称蚁群算法(Ant Colony Algorithm,ACA)。
二、蚁群算法的研究发展现状国内对蚁群算法的研究直到上世纪末才拉开序幕,目前国内学者对蚁群算法的研究主要是集中在算法的改进和应用上。
吴庆洪和张纪会等通过向基本蚁群算法中引入变异机制,充分利用2-交换法简洁高效的特点,提出了具有变异特征的蚊群算法。
吴斌和史忠植首先在蚊群算法的基础上提出了相遇算法,提高了蚂蚁一次周游的质量,然后将相遇算法与采用并行策略的分段算法相结合。
提出一种基于蚁群算法的TSP问题分段求解算法。
王颖和谢剑英通过自适应的改变算法的挥发度等系数,提出一种自适应的蚁群算法以克服陷于局部最小的缺点。
覃刚力和杨家本根据人工蚂蚁所获得的解的情况,动态地调整路径上的信息素,提出了自适应调整信息素的蚁群算法。
熊伟清和余舜杰等从改进蚂蚁路径的选择策略以及全局修正蚁群信息量入手,引入变异保持种群多样性,引入蚁群分工的思想,构成一种具有分工的自适应蚁群算法。
张徐亮、张晋斌和庄昌文等将协同机制引入基本蚁群算法中,分别构成了一种基于协同学习机制的蚁群算法和一种基于协同学习机制的增强蚊群算法。
随着人们对蚁群算法研究的不断深入,近年来M.Dorigo等人提出了蚁群优化元启发式(Ant-Colony optimization Meta Heuristic,简称ACO-MA)这一求解复杂问题的通用框架。
蚁群算法概述

Thank You!
L/O/G/O
2.2蚁群算法的实现
那么,t时刻位于城市i的蚂蚁k选择城市j为目标城市的概 率是:
ij (t ) ij (t ) k p ij (t ) ik (t ) ik (t ) k tabu k 0
( j tabu
k
)
otherwise
k
ACS模型中
T
k ij
Q L k 0
Q d ij 0
若第 k 只蚂蚁用边( 其它
i ,j )
AQS模型中
T
k ij
若第 k 只蚂蚁用边 其它
i , j
ADS模型中
T ij
k
Q 0
若第 k 只蚂蚁用边( 其它
i ,j)
Lk di j分别表示第k 只蚂蚁走的总长和ij 城市之间的距离,q 未常数。
1991年M· Dorigo等人首先提出了蚁群算法(Ant Colony Algorithms),人们开始了对蚁群的研究:相对 弱小,功能并不强大的个体是如何完成复杂的工作的。 在此基础上一种很好的优化算法逐渐发展起来。
Macro Dorigo
2.1蚁群算法原理
正如在关于蚁群算法的第1篇文章中指出的:
2.2蚁群算法的实现
首先,了解一个问题:TSP。 旅行商问题(Traveling Salesman Problem)又译 为旅行推销员问题、货郎担问题,是数学领域中著名问 题之一。假设有一个旅行商人要拜访n个城市,他必须 选择所要走的路径,路径的限制是每个城市只能拜访一 次,而且最后要回到原来出发的城市。路径的选择目标 是要求得的路径路程为所有路径之中的最小值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程与应用2006.16引言聚类分析是数据挖掘领域中的一个重要分支[1],是人们认和探索事物之间内在联系的有效手段,它既可以用作独立的据挖掘工具,来发现数据库中数据分布的一些深入信息,也以作为其他数据挖掘算法的预处理步骤。
所谓聚类(clus- ring)就是将数据对象分组成为多个类或簇(cluster),在同一簇中的对象之间具有较高的相似度,而不同簇中的对象差别大。
传统的聚类算法主要分为四类[2,3]:划分方法,层次方法, 于密度方法和基于网格方法。
受生物进化机理的启发,科学家提出许多用以解决复杂优问题的新方法,如遗传算法、进化策略等。
1991年意大利学A.Dorigo等提出蚁群算法,它是一种新型的优化方法[4]。
该算不依赖于具体问题的数学描述,具有全局优化能力。
随后他其他学者[5~7]提出一系列有关蚁群的算法并应用于复杂的组优化问题的求解中,如旅行商问题(TSP)、调度问题等,取得著的成效。
后来其他科学家根据自然界真实蚂蚁群堆积尸体分工行为,提出基于蚂蚁的聚类算法[8,9],利用简单的智能体仿蚂蚁在给定的环境中随意移动。
这些算法的基本原理简单懂[10],已经应用到电路设计、文本挖掘等领域。
本文详细地讨现有蚁群聚类算法的基本原理与性能,在归纳总结的基础上出需要完善的地方,以推动蚁群聚类算法在更广阔的领域内到应用。
2聚类概念及蚁群聚类算法一个簇是一组数据对象的集合,在同一个簇中的对象彼此类似,而不同簇中的对象彼此相异。
将一组物理或抽象对象分组为类似对象组成的多个簇的过程被称为聚类。
它根据数据的内在特性将数据对象划分到不同组(或簇)中。
聚类的质量是基于对象相异度来评估的,相异度是根据描述对象的属性值来计算的,距离是经常采用的度量方式。
聚类可用数学形式化描述为:设给定数据集X={x1,x2,…,xn},!i∈{1,2,…,n},xi={xi1,xi2,…,xip}是X的一个对象,!l∈{1,2,…,p},xil是xi对象的一个属性。
根据数据的内在特性将X分解成C={C1,C2,…,Ck}。
其中#ki=1Ci=X,!i,j∈{1,2,…,k},Ci≠!,Cj≠!,且(Ci∧Cj=!)(i≠j)。
K={X,C}称为一个聚类空间,Ci称为聚类空间的第类(簇)。
在数据挖掘中,聚类是一个活跃的研究领域[11],涉及的范围从社会学、心理学、生物学到计算机科学。
存在多种聚类方法,这些方法不仅算法原理(决定运行时间及可测量性)不同,而且许多基本特性也不相同,例如处理的数据对象,有关簇形状的设想,最终划分的形式或必须提供的参数等。
计算机科学家通过模仿生物行为已经提出一系列解决问题的新颖的成功方法。
1991年Deneubour等介绍了基于蚂蚁的聚类和分类[9]方法,当时主要用于机器人作业调度中。
后来Lumer等[8]修改了这个算法并将之应用于对数字数据分析上。
者简介:张建华(1978-),男,硕士生,主要研究领域为聚类分析,算法分析与设计。
江贺(1980-),男,博士,讲师,主要研究领域为分布式算法设计,无线传感器网络路由,数据挖掘等。
张宪超(1971-),男,博士,副教授,主要研究领域为组合优化,算法分析与设计,并行分布式计算等。
蚁群聚类算法综述张建华1,2江贺1张宪超11(大连理工大学软件学院,大连116621)2(阜阳师范学院计算机系,安徽阜阳236032)E-mail:jianhuazhang2008@摘要数据聚类是重要的数据挖掘技术,在工程和技术等领域具有广泛的应用背景。
蚁群算法作为一种新型的优化方法,具有很强的鲁棒性和适应性。
文章着重介绍蚁群聚类算法的研究情况,阐述当今流行的蚁群聚类算法的基本原理及其特性,旨在为蚁群聚类算法的发展提供引导作用。
关键词数据挖掘蚁群算法聚类文章编号1002-8331-(2006)16-0171-04文献标识码A中图分类号TP301Survey of Ant Colony Clustering AlgorithmsZhang Jianhua1,2 Jiang He1 Zhang Xianchao11(School of Software,Dalian University of Technology,Dalian 116621)2(Department of Computer,Fuyang Normal College,Fuyang,Anhui 236032)Abstract:Clustering is an important technique of data mining.It is widely used in fields of engineering and technology.Ant colony algorithms are robust and adaptable as novel optimization methods.This paper emphatically introduces theresearch of ant colony clustering algorithms,and describes the basic principle and characteristics of existing popular antcolony clustering algorithms.It affords direction for the future work of ant colony clustering algorithms.Keywords:data mining,ant colony algorithm,clustering1712006.16计算机工程与应用来应用于数据挖掘[12],图像分割[13]和文本挖掘中[14]。
2002年broche等提出基于蚂蚁化学识别系统的聚类方法。
总的说,基于蚁群算法的聚类方法从原理上可以分为四种:(1)运用蚁觅食的原理,利用信息素来实现聚类[15];(2)利用蚂蚁自我集行为聚类;(3)基于蚂蚁堆的形成原理实现数据聚类;(4)运蚁巢分类模型,利用蚂蚁化学识别系统进行聚类的。
算法分析.1基于蚂蚁觅食的聚类算法蚂蚁的觅食过程可以分为搜索食物和搬运食物两个环节[16]。
个蚂蚁在运动过程中都会在其经过的路径上释放信息素,并够感知信息素及其强度。
经过蚂蚁越多的路径其信息素越,同时信息素自身也会随着时间的流逝而挥发。
蚂蚁倾向于息素强度高的方向移动,某一路径上走过的蚂蚁越多,后来蚂蚁选择该路径的概率就越大,整个蚁群的行为表现出信息反馈现象。
基于蚂蚁信息素痕迹的聚类分析基本思想如下: 将数据视为具有不同属性的蚂蚁,聚类中心是蚂蚁所要寻的“食物源”,那么数据聚类过程就可以看作蚂蚁寻找食物源过程[17]。
假设数据对象为:X={X|Xi=(xi1,xi2,…,xim),i=1,2,,N},算法首先进行初始化,将各个路径的信息素置为0,即j(0)=0,设置簇的半径为r,统计误差为"等参数。
计算对象到Xj之间的加权欧氏距离dij,计算各路径上的信息素j(t):!ij(t)=1 dij≤r0 dij>"r(1)对象Xi合并到Xj的概率为:pij(t)=!#ij(t)$%ij(t)s∈S$!#sj(t)$%sj(t)(2)其中S={Xs|dsj≤r,s=1,2,…,j,j+1,…,N}。
如果pij(t)大于值p,就将Xi合并到Xj的领域内。
这里$ij是dij的倒数,称它能见度。
#,%为调节因子[18],起到既防止所有蚂蚁均沿相同路得到相同结果所产生的停滞搜索,又再现了经典的贪心算法想。
该聚类方法中的#,%的选择对算法运行效率和聚类结果响较大,选择不当将影响算法执行效率和效果,所需时间增等缺点[19]。
可以根据情况尝试不同的方法避免算法陷于局部优。
算法虽然不需要预先指定簇的数目,但是由于簇的半径预置的,所以聚类的规模受到限制。
另外在实际计算中,在给循环次数的条件下很难找到最优解。
再者信息素分配策略、径搜索策略、最优解保留策略等方面均带有经验性和直觉,导致算法的求解效率不高,收敛性差。
.2基于蚂蚁自我聚集行为的聚类算法蚂蚁能够通过自我聚集行为构建一个树状结构,称之为蚂树(AntTree)[20]。
用蚂蚁表示数据并代表该树的节点,初始时蚁放在一个称为支点的固定点上,这个点相当于树根。
蚂蚁这棵树上或已经固定在树上的蚂蚁身上移动,来寻找适合自的位置。
假设蚂蚁能够到达树的任何地方并能粘在该结构的何位置,不过在结构树形成的过程中受对象间的作用,蚂蚁趋于固定在树枝的末端[21,22]。
树的局部结构及蚂蚁表示的数之间的相似性引导它的移动,当所有蚂蚁都在树上固定下来后,算法结束,获得对数据集的划分。
为了更好描述算法过程,采用蚂蚁表示的数据代表树中的每个节点,用欧氏距离作为相似度尺度,用Sim(i,j)表示。
相似度公式为:Sim(i,j)=1-1MMk=1$(vik-vjk)2%(3)其中M表示每个数据对象的属性值,vik表示数据对象i的第k个属性。
每对数据(di,dj),i∈[1,N],j∈[1,N]的相似度值Sim(i,j)在[0,1]之间(N表示数据集内的对象数),意味着di,dj完全不同,表示它们相同。
AntTree主要原理如下:节点a表示树根,蚂蚁逐步连接到这个初始节点上或连接到固定在该节点的蚂蚁上,直到所有的蚂蚁均连接到结构上(蚂蚁树的停止标准)。
移动的蚂蚁ai根据Sim(i,j)值和它的局部邻居决定自身的位置。
每只蚂蚁ai只有一个父亲结点,最多有Lmax个孩子结点。
对每只蚂蚁ai都定义一个相似度阀值TSim(ai)和相异度阀值TDissim(ai),并且由ai进行局部更新,用来判断蚂蚁ai表示的数据di与其它蚂蚁表示的数据的相似或相异程度。
蚂蚁的局部行为:第一只蚂蚁直接连接到a 0上,对后来的蚂蚁ai要考虑两种情况:第一种情况是ai在支点上。
设a+为支点上且与ai最相似的蚂蚁,如果ai和a+足够相似Sim(ai,a+)≥TSim(ai),那么ai向a+移动,使它们能尽可能的聚集在同一子树上,即在同一个簇内。
否则(如ai与a+不相似)如果ai与a+足够相异Sim(ai,a+)<TDissim(ai),那么它就连接在支点上,意味着创建了一棵新子树,该子树上的蚂蚁将尽可能的与以a 0为根的其他子树上的蚂蚁不同。
如果a已经有Lmax孩子结点,那么ai向a+移动。
假如ai和a+既不足够相似也不足够相异,则用TSim(ai)←TSim(ai)*#和TDissim(ai)←TDissim(ai)+%来更新阀值,增加ai下次连接的概率。
#,%为调节因子,实验中通常选择0.9与0.01,因为它能提供更好的结果[11]。