蚁群算法 (ANT COLONY OPTIMIZATION,ACO)是什么?

蚁群算法 (Ant Colony Optimization,ACO)

蚁群算法:来源于蚂蚁寻找食物的过程。

科学家发现:蚂蚁总能发现一条从蚁巢到食物源的最短路径。原因就是:它们会在经过的路途中,留下“信息素” (pheromone)作为标记,用来指导自己的活动轨迹。

 

比如:

图(a)中,有一群蚂蚁。假如左边(Nest)是蚁巢,右边是食物源。这群蚂蚁将会沿着蚁巢和食物源之间的直线路径走。

 

假如在了两点之间,突然出现了一个障碍物(图(b))。那么,这些蚂蚁要做出决策,到底是向左行驶还是向右行驶?

 

因为,当有蚂蚁走过时,它会在它走过的路上,释放出信息素,并且这种信息素会以一定的速率,散发掉。

⚠️:信息素就是蚂蚁之间交流的工具之一。

它后面的蚂蚁,会通过路上信息素的浓度,做出决策。

 

很明显,沿着短边的的路径上的信息素,会越来越浓(图(c)),然后就会吸引越来越多的蚂蚁沿着这条路径行驶(就是最短路径)。

 

 


应用

蚁群算法就是对蚂蚁的这种行为,进行抽象。

蚁群优化算法已经应用在许多的组合优化问题里面。

比如:第一个蚁群算法,就被应用在「旅行商问题」里面。

内容就是:每只蚂蚁都会沿着城市进行一次往返。 在每个阶段,蚂蚁会根据一些规则,来进行移动,比如:

  • 它只能访问每个城市一次;
  • 较远的城市,被选中的机会较小(因为可见度visibility小);
  • 在两个城市之间的信息素越强烈,被选择的可能性就越大;
  • 如果旅程很短,蚂蚁会在它经过地方,沉积更多的信息素;
  • 每次迭代后,信息素的踪迹都会挥发掉。

 

 


涉及到的概念

(1) 信息素因子

信息素因子:蚂蚁在移动过程中,积累的信息素浓度。

相当于图中每一条边的权值。

 

 

(2) 启发因子

启发因子:就是启发式信息,在蚁群搜索过程中的重要程度。

它的值越大,路径选择的随机性会越弱,蚁群更倾向于选择之前走过的路径;

它的值越小,随机性越强,算法很难收敛,找不到最优解。

 

(3) 信息素挥发因子

因为信息素会随时间,不断挥发。

所以信息素挥发因子:表示信息素的消失水平。

它和算法的全局搜索能力和收敛速度有直接的关系。

 

(4) 信息素常数

信息素常数:就相当于 “信息素”。

它的值越大,表示蚂蚁在已经走过的路径上,积累的信息素越快,有助于快速收敛。

 

(5) 算法步骤

算法的基本步骤:

① 步骤1:定义问题。然后数据预处理。初始化参数(比如:蚁群数量、信息素因子、启发因子等参数)。

② 步骤 2:把蚂蚁「随机」放在不同的出发节点。通过计算,指定蚂蚁的下一访问节点,直到遍历完所有的节点。

③ 步骤3:每次迭代完成后,计算所有蚂蚁经过的路线,更新信息素值。路径越短,信息素的浓度越高。

④ 步骤4:判断是否达到最优解,如果没有,从步骤2开始再进行迭代。

⑤ 步骤5:输出全局最优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值