一、背景
1.1、TSP问题
- 旅行商问题,是数学领域中著名问题之一,假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
- 令 V = { a , … , z } V=\{a, \ldots ,z\} V={ a,…,z}表示城市集合, A = { ( r , s ) : r , s ∈ V } A=\{ (r,s):r,s\in V \} A={ (r,s):r,s∈V}表示边的集合,同时 δ ( r , s ) = δ ( s , r ) \delta (r,s)=\delta(s,r) δ(r,s)=δ(s,r)表示边 ( r , s ) (r,s) (r,s)上的距离成本。例如,城市 r ∈ V r \in V r∈V的坐标为 ( x r , y r ) (x_r,y_r) (xr,yr), δ ( r , s ) \delta (r,s) δ(r,s)表示城市 r r r和 s s s之间的欧几里得距离。
- TSP问题的一些数据:http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/tsp/
1.2、蚁群算法
- Ant System模仿自然界中的蚂蚁觅食的行为。在两个城市 r r r、 s s s间不仅有距离成本 δ ( r , s ) \delta(r,s) δ(r,s),而且有信息素的记录 τ ( r , s ) \tau (r,s) τ(r,s)。每只蚂蚁通过probabilistic state transition rule来选择城市以完成自己的旅程;当所有蚂蚁完成了自己的旅程后,global pheromone updating rule开始应用,然后不断地迭代以上过程。
- Ant Colony System是在Ant System上做的改进,主要表现在以下三个方面:the state transition rule为蚂蚁提供了探索新边和基于原先经验(信息素)进行选择的平衡;the global updating rule只针对最优路径进行更新;当蚂蚁完成一次旅程后,用local pheromone updating rule进行更新。
二、算法的主要内容
2.1、ACS State Transition Rule(状态转换,伪随机比例规则)
在城市 r r r上的蚂蚁通过该规则选择下一个城市 s s s, s = { arg max u ∈ J k ( r ) { [ τ ( r , u ) ] ⋅ [ η ( r , u ) ] β } , if q ≤ q 0 (exploitation) S , otherwise(biased exploration) s= \begin{cases}\arg \max_{u\in J_k(r)}\{[\tau(r,u)]\cdot[\eta(r,u)]^{\beta}\}, & \text {if $q\leq q_0$(exploitation)} \\ S, & \text{otherwise(biased exploration)} \end{cases} s={ argmaxu∈Jk(r){ [τ(r,u)]⋅[η(r,u)]β},S,if q≤q0(exploitation)otherwise(biased exploration) q q q是均匀分布, q 0 q_0 q0是一个参数, S S