蚁群算法(Ant System)(AS)
基本蚁群算法(AS)是采用人工蚂蚁的行走路线来表示待求解问题可行解的一种方法。没只蚂蚁在解空间中独立地搜索可行解,当它们碰到一个没有走过的路口时,就随机挑选一条路径前行,同时释放出与路径程度有关的信息素。路径越短信息素的浓度就越大。当后续的人工蚂蚁再次碰到这个路口的时候,以相对较大的概率选择信息素较多的路径,并在“行走路线”上留下更多的信息素,影响后来的蚂蚁,形成正反馈机制 。随着算法的推进,代表最优解路线上的信息素越来越多,选择它的蚂蚁也逐渐增多,其他路径上的信息素却会随着时间的流逝而逐渐消减,最终整个蚁群在正反馈的作用下集中到代表最优解的线路上,也就找到了最优解。在整个寻优过程中,单只蚂蚁的选择能力有限,但蚁群具有高度的自组织性,通过信息素交换路径信息,形成集体自催化行为,找到最优路径。
基本蚁群算法的具体实现
基于蚁周模型进行实现: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210523153547917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdV9OaW5nXzY2Ng==,size_16,color_FFFFFF,t_70)
步骤
第1步:初始化参数。时间
t
t
t=0,循环次数
N
N
N
c
c
c,设置最大循环次数
N
N
N
c
m
a
x
cmax
cmax,令路径(
i
,
j
i,j
i,j)的初始化信息量
τ
\tau
τ
i
j
ij
ij(
t
t
t)
=
c
o
n
s
t
=const
=const,初始时刻
τ
\tau
τ
i
j
ij
ij(
0
0
0)
=
0
=0
=0。 第2步:将
m
m
m只蚂蚁随机放在
n
n
n个城市上。 第3步:循环次数
N
N
N
c
c
c=
N
N
N
c
c
c+1。 第4步:令蚂蚁禁忌表索引号
k
k
k=1。 第5步:
k
k
k =
k
+
1
k+1
k+1。 第6步:根据状态转移概率公式(6.2)计算蚂蚁选择城市
j
j
j的概率,
j
j
j
∈
\in
∈{
C
−
t
a
b
u
C-tabu
C−tabu
k
k
k}。 第7步:选择具有最大状态转移概率的城市,将蚂蚁移动到该城市,并把该城市记入禁忌表中。 第8步:若没有访问完集合
C
C
C中的所有城市,即
k
<
m
k |