怎么样学会蚂蚁算法?

怎么样学会蚂蚁算法?

该算法是由意大利学者M.Dorigo、V.Maniez-zo、A.Colorini等人首先提出的,称之为蚁群系统(antcolonysystem), 该模型已成功应用于求旅行商问题(TSP),二次指派问题,排序问题等NP-困难的组合最优化问题,结果可与模拟退火,遗传算法等通用的启发式算法相媲美.蚁群算法和局部搜索算法相结合(称为混合蚁群算法)应用于解二次指派问题和排序问题,得到的结果可以与专用算法相媲美].受其影响,蚁群系统模型逐渐引起了其它研究者的注意,D.Costa和A.Hertz.

在M.Dorigo等人研究成果的基础上,提出了一种求解分配类型问题(assignmenttypeproblem)的一般模型,并用来研究图着色问题.G.Bilchev、I.C.Parmee研究了求解连续空间优化问题的蚁群系统模型.。

蚁群算法是模仿蚂蚁工作方式的一种新的启发式算法.生物学研究表明一群互相协作的蚂蚁能够找到食物源和巢之间的最短路径,而单只蚂蚁则不能.蚂蚁间相互协作的方法是它们在所经过的路上留下一定数量的信息素(迹),该迹能被其它蚂蚁检测出来,一条路上的迹越多,其它蚂蚁将以越高的概率跟随此路径,从而该路径上的迹会被加强.

蚂蚁算法伪码
Begin
初始化:
t← 0
iteration← 0 (iteration为迭代步数)
将 m个蚂蚁随机置于 n个顶点上 ;
Loop:
将所有蚂蚁的初始出发点置于当前解集中 ;
for i← 0 to n-1 do
for k← 1 to m do
按概率 选择顶点 j;
移动蚂蚁 k至顶点 j;
将顶点j置于蚂蚁k的当前解集

end for
t←t+1
end for
计算各蚂蚁的 L个目标函数值
更新当前的理想解
计算各个解的满意度

置 t← t+1
重置所有 ← 0
iteration← iteration+1
若 iteration<预定的迭代次数
则 goto Loop
输出目前的最满意解
End