研究生期间,跟随导师进行复杂网络相关研究,我的方向是复杂网络的社团识别,在阅读相关文献中,决定从蚁群算法入手,利用蚁群算法进行社团划分。以下是近期学习的整理:
蚁群算法原理
其原理是一种正反馈机制或称增强型学习系统; 它通过【最优路径上蚂蚁数量的增加→信息素强度增加→后来蚂蚁选择概率增大→最优路径上蚂蚁数量更大增加】达到最终收敛于最优路径上L
根据仿生学家的研究结果,蚂蚁凭借路径寻优的能力能够找到蚁巢与食物之间的最短路径,其原理在于:蚂蚁在所经过的路径上留下一种挥发性分泌物(pheromone,以下称为信息素),信息素随着时间的推移会逐渐挥发消失.蚂蚁在觅食过程中能够感知这种物质的存在及其强度,并以此来指导自己的运动方向,倾向于朝着这种物质强度高的方向移动,即选择该路径的概率与当时这条路径上该物质的强度成正比.信息素强度越高的路径,选择它的蚂蚁就越多,则在该路径上留下的信息素的强度就更大,而强度大的信息素又吸引更多的蚂蚁,从而形成一种正反馈.通过这种正反馈,蚂蚁最终可以发现最佳路径,导致大部分的蚂蚁都会走此路径.
蚂蚁运动
蚂蚁的运动过程可以简单归纳如下:
- 当周围没有信息素指引时,蚂蚁的运动具有一定的惯性,并有一定的概率选择其他方向
- 当周围有信息素的指引时,按照信息素的浓度强度概率性的选择运动方向
- 找食物时,蚂蚁留下家相关的A信息素,找家时,蚂蚁留下食物相关的B信息素,并随着移动距离的增加,洒播的信息素越来越少
- 随着时间推移,信息素会自行挥发
复杂度
它是一种启发式算法, 计算复杂性为o (Nc*n2*m) , 其中Nc 是迭代次数, m 是蚂蚁数目, n 是目的节点数目L
存在问题
影响蚂蚁是否能够找到好的最优解,依赖这几个关键因素:
- 信息素怎么洒播(比如维持在一个特地范围的值等)
- 信息素怎么挥发(除了全局挥发,可以让蚂蚁自身进行局部挥发等手段)
- 通过怎样的方式让蚂蚁选择运动方向,减少盲目性和不必要性(给蚂蚁一点点智能和经验)
- 给蚂蚁和环境一定的记忆能力能够帮助减少搜索空间
- 如何建立正反馈机制,定义启发函数,递增地进行问题求解,并且使得到的解与问题定义中现实世界的情况相对应。
- 基于蚁群的算法要初