背景
最近在看一些有关于循环取货的相关论文,发现其中很多的算法设计都是涉及到了不少智能算法,因此,对这方面有了一个简单的了解,并做此博客以作记录。
简介
所谓智能算法,是指人们受到了自然界规律的启发,根据其原理,模拟求解问题的算法。
一般来说,智能算法可以分成以下几类:
- 蚁群算法
- 遗传算法
- 模拟退火算法
- 禁忌搜索算法
- 粒子群算法
蚁群算法
- 简介
对于蚁群算法,该算法可以有效地解决路径规划中常见的“旅行商问题(TSP)”:即假如说有n个城市,则需要对n个城市进行访问并且之访问一次,求出这样的访问的最短距离。 - 基本原理
算法利用蚂蚁行走的路径来表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,随着时间的推进,较短的路径上累积的信息素浓度逐渐增高,选择该路径的蚂蚁个数也愈来愈多。最终,整个蚂蚁会在正反馈的作用下集中到最佳的路径上。 - 实现原理
蚂蚁找到最短路径要归功于信息素和环境,假设有两条路可从蚁窝通向食物,开始时两条路上的蚂蚁数量差不多:当蚂蚁到达终点之后会立即返回,距离短的路上的蚂蚁往返一次时间短,重复频率快,在单位时间里往返蚂蚁的数目就多,留下的信息素也多,会吸引更多蚂蚁过来,会留下更多信息素。而距离长的路正相反,因此越来越多的蚂蚁聚集到最短路径上来。 - 具体实现
在具体实现上,假设对于旅行商问题而言,我们可以先定义数个固定的城市的坐标,然后分别计算彼此之间的距离,得到一个对称矩阵。
然后,我们再定义足量的蚂蚁(城市数量相同),按照相对随机的方式来选择城市的行走(但是不可以走重复的城市),并对最优路径长度进行记录。在走过之后,会对路径的信息素进行更新,包括对路径的信息素进行添加并计算路径蒸发的信息素。
将蚂蚁重新归位,然后再根据信息素的浓度,以此来寻找下一个所要到达城市,并对最优路径长度进行更新。
当整个算法的迭代次数达到了我们所要求的次数后,我们就可以停止算法,并且可以得到结论:目前找到的路径为最优路径。 - 特点
- 采用正反馈机制,使得搜索过程得以不断的收敛,最终逼近最优解。
- 每个个体可以通过释放信息素来改变周围的环境,并且每个个体都能够感知周围环境的实时变化,个体之间通过环境间接地进行通讯。
- 这种基于启发式的概率搜索,可以使得搜索不容易陷入局部最优,因此易于寻找全局最优解。