改进的蚂蚁算法及其在暴雨强度公式参数优化中的应用.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 37卷第 5期四川大学学报 (工程科学版 Vol. 37No. 5 2005年 9月 JO UR NAL OF S IC HUAN UNIVERSITY (ENGINEERING S CIENC E EDITION Sept. 2005文章编号 :100923087(2005 0520009205
改进的蚂蚁算法及其在暴雨强度公式参数优化中的应用邹长武 1, 2, 熊建秋 1, 2, 李祚泳 1, 2
(1. 四川大学水电学院 , 四川成都 610065; 2. 成都信息工程学院 , 四川成都610041
摘要 :蚂蚁算法是解决组合优化问题的一种优秀的算法 , 但直接用于解决连续优化问题存在很大困难。

本文通过引入带可变邻域搜索项的进化策略对蚂蚁算法进行了改进 , 然后将改进的蚂蚁算法应用到解决暴雨强度公式的参数优化这类连续问题中 , 并和其它优化方法得到的优化结果进行了比较。

结果表明 , 改进的蚂蚁算法可以成功用于暴雨强度公式的参数优化 , 并且在实验采用的各种优化算法优化参数得到的暴雨强度公式拟合原始数据的效果比较中只有免疫进化算法在优化过程中迭代次数和迭代规模都要大得多的情况下才和改进的蚂蚁算法差不多 , 而比其它的优化方法都要好。

关键词 :进化策略 ; 蚂蚁算法 ; 暴雨强度 ; 参数优化
中图分类号 :TV122文献标识码 :A
Improved Ant Colony Algorithm and its Application to Parameters
Optimization in Storm Intensity Formula
ZOU Chang 2wu 1, 2, X IO NG Jian 2qiu 1, 2, L I Zuo 2yong 1, 2
(1. School of Hydraulic Eng. , Sichuan Univ. , C hengdu 610065, Chi na;2. C hengdu Univ. of Info. Tech. , Chengdu 610041, C hina
Abstract:E volutionary strate gy with searching in variable neighborhood parameter is taken to improve ant colony algorithm (ACA.After that, the improved AC A is applied to optimizing the parameter of storm intensity formula and the optimiz 2 ing result is compared with those of other optimizing algorithms. The results show the improved AC A can be used to solve the c ontinued problem, and the formula w hose parameter is optimized by the improved AC A can simulate the primary data better than those w hose parameter are optimiz ed by other optimizing methods except the immune evolutionary algorithm (IE A , and the improved ACA can get almost the same result with less optimization scale and shorter optimization time than IEA.
Key words:evolutionary strategy; ant colony algorithm; storm intensity; para meter optimization
蚂蚁算法又称为蚁群算法 (A nt Colony Algorithm 简称 ACA , 是由意大利学者Dorigo 等人受到人们对自然界中真实的蚁群集体行为的研究成果的启发而率先提出的一种新型的仿生算法 [1, 2]。

自然界中的
收稿日期 :2005-03-03
基金项目 :国家自然科学基金资助项目 (40271024 ; 成都信息工程学院科研基金资助项目 (CRF200311
作者简介 :邹长武 (1974- , 男 , 博士生 . 研究方向 :水文学及水资源 . 蚂蚁群在搜索食物的过程中个体之间可以通过信息交流与相互协作 , 最终找到从巢穴到食物源的最短路径 , D origo 等人根据旅行商问题 (Travelling Sales 2 man Problem , TSP 与这一过程之间的相似性 , 通过释放 /人工蚂蚁 0最终解决了 TSP 问题。

随后 , 蚂蚁算法在 job 2shop 调度问题、指派问题、序列求序 (se 2 quential ordering 等一系列组合优化问题上获得了成功的应用 , 显示出蚂蚁算法在求解复杂离散优化问题方面的优越性。

但是 , 连续优化问题和组合优化
问题不同 , 求解连续优化问题需要算法能在连续的解空间上自己产生新的解以进行寻优 , 而蚂蚁算法本身不具有这个功能 , 因此 , 蚂蚁算法直接用于求解连续优化问题存在很大困难 [3~5]。

在对许多进化算法应用于连续优化问题的情况进行深入研究的基础上 , 本文尝试将进化策略引入蚂蚁算法对其进行改进 , 以期其能很好地应用于连续优化问题 , 从而将这种优秀的算法引入到水文水资源领域解决大量的连续优化问题。

1蚂蚁算法简介
自然界中的蚂蚁在寻找食物源时 , 能在走过的路径上释放一种特有的分泌物信息素 (pheromone , 使得一定范围内的其它蚂蚁能够察觉到并由此影响它们以后的行为。

当某路径比较短时 , 在单位时间内来回搬运食物的蚂蚁在上面通过的次数也越多 , 其留下的信息素也越来越多 , 以致其强度不断增大 (当然 , 随时间的推移会同时逐渐减弱 , 后来蚂蚁选择该路径的概率也越高 , 从而更增加了该路径的信息素强度 , 最终所有的蚂蚁都会选择到该路径上来。

蚂蚁算法的基本原理就是模仿生物世界中的蚂蚁这种在没有任何可见提示下寻找从其巢穴至食物源的最短路径的能力 , 适应性地搜索问题的最优解。

下面以蚂蚁算法求解 TS P 问题为例说明其基本原理。

TSP 可简单描述为求某售货员从某城市出发遍历且仅经过一次 n 个城市并回到起点城市的最短路程。

设城市集合为 C ={1, 2, , , n},任意两城市间的距离为 d i j (1[i [n, 1[j [n, i X j , 传统的蚂蚁算法求解 TSP 问题的步骤为 :
1 随机地将 m 只蚂蚁分布在 n 个城市上 , 对任意一只蚂蚁 k 将其初始所在城市 i 作为初始位置 (称为状态转移 , 并建立禁忌表 T k ={i};
2 在集合 K =C-T 中任取一个城市 j, 计算蚂蚁 k 从城市 i 转移到城市 j 的概率公式为 :
P k (i, j =
S A ij @G B ij
E
u I K
(S A i u @G B iu
(1
式中 , S i j 是城市 i 和城市 j 之间路径上的信息素强度 , 初始值取为一个很小的正常数 ; G i j 是蚂蚁 k 由城市 i 转移到城市 j 的期望度 , 通常取为 1/d i j ; A 、 B 是参数 , 体现信息素强度和期望度之间的重要性 , 已有的研究结果认为 A 、 B 的取值范围为 0[A [5、 0[ B [5, 通常取 A =1、 B =1;
把城市 j 加入禁忌表 , 同时更新各路径上的信息素变化量 $S ij 。

$S ij 的初始值赋为 0, 以后每当有蚂蚁从上面经过一次其值增加一个小正常数 c 。

即 $S ne w i j =$S old ij +c (2 4 重复第 2 、 3 步 , 直到蚂蚁 k 遍历所有的城市并回到初始位置 ;
5 重复 2 、 3 、 4 步 , 直到所有 m 只蚂蚁完成一次遍历过程 , 更新各路径上的信息素强度。

信息素 S i j 的更新规则为
S ne w i j =Q S old ij +$S i j (3 其中 , Q 是信息素保留强度 , 已有的研究结果认为 Q 的取值范围为 0. 1[Q [0. 99, 通常取 Q =0. 7; 6 比较所有蚂蚁经过的路程 , 选择其中最短的一条路径作为当前最优解 ;
7 重复 2 、 3 、 4 、 5 、 6 步 , 直到完成指定次数的寻优。

2改进的蚂蚁算法的基本思想和优化过程
对组合优化问题来说 , 其寻优过程只需要在已经存在的不同的解分量之间进行不同的组合并根据寻优规则最终找到最优解 , 即使出现维数灾难其可能的解的数目尽管很大但仍然是有限多的 ; 但对于连续优化问题来说即使解空间很小 , 其可能的解的数目都是无限多的 , 按照求解组合优化问题的优化方法不加以改进来求解连续优化问题就根本不可能实现。

因此 , 要使蚂蚁算法能用于连续优化问题就必
须要进行有效的改进。

对许多进化算法应用于连续优化问题求解过程进行深入研究发现有两点对于实现这一过程是非常关键的 :1 、在初始解的基础上能够产生新的子代解 , 当然 , 不同的进化算法产生子代解的方式不同 ; 2 根据一定的规则实现对子代解的寻优 , 即淘汰对问题不适合的子代解而保留对问题适合的子代解 , 同样 , 不同的进化算法实现对子代解寻优的规则也不同。

因此考虑引入进化策略使改进的蚂蚁算法可以在初始解的基础上产生新的子代解 , 以蚂蚁算法中的转移概率实现改进的蚂蚁算法对子代解的寻优。

此外 , 一种优秀的优化算法不仅要有好的全局寻优效果 , 还要有良好的寻优速度 , 因此考虑在进化策略生成的子代解后面添加一个可变的邻域搜索项 , 以保证改进的蚂蚁算法的优化效果和优化速度。

以对任一连续函数 y =f (x 求最值为例 , 改进的蚂蚁算法用于求解连续优化问题的过程
10四川大学学报 (工程科学版第 37卷
1 在连续函数 y =f (x 的解空间 R 上随机分布 (通常采用均匀分布 m 只蚂蚁 (初始解 ;
2 对任意一只蚂蚁 i(解 x i 根据添加可变邻域搜索项的进化策略生成一定规模的子代蚂蚁 (子代解。

然后计算蚂蚁 i 和所有子代蚂蚁对应的函数值 , 根据函数值由最值条件仅保留一个当前最优解而淘汰掉其它的解。

根据添加可变邻域搜索项的进化策略生成子代解的公式为 :
x t+1R
=x t R +
0. 15(x sup -x lo w
m -1
@
exp (-t/T @N R (0, 1 (4
式中 , x t+1表示子代解 ; x t 表示初始解 ; N (0, 1 是服从正态分布的随机数 , 均值为 0, 标准差为 1; R 表示
解的维数 ; 0. 15(x sup -x l ow
m-1
@exp (-t/T 就是添加的可变邻域搜索项 , x sup 表示函数的解空间的上界 , x l ow 表示函数的解空间的下界 , t 是优化过程中的当前优化次数 , T 是指定的总的优化次数。

可变邻域搜索项中系数
(x sup -x lo w
m -1
的意义是 m 只蚂蚁等
分函数的解空间 , 由于 N (0, 1 产生的随机数以接近 1的概率分布在 (-3, +3 区间内 , 0. 15
(x sup -x low
m -1
@N (0, 1 就可以使得产生的子代解分布在初始解的附近 , 即邻域项 ; 系数 exp (-t/T 调节在开始优化时子代解分布在初始解的较宽的邻域空间 , 从而保证收敛速度 ; 在后期优化时子代解分布在初始解的较窄的邻域空间 , 从而保证优化精度 , 即可变项。

3 重复步骤 2 对所有 m 只蚂蚁 (初始解完成一次更新 ;
4 计算第 i 只蚂蚁淘汰其它任意一只蚂蚁 j 的期望度 G i j 。

G i j 的计算式为
G i j =F(x i -F (x j
(5
式中 , F (x i 表示蚂蚁 i 对问题的适应度 , 比如对求函数最大值 F (x i 就可以取为函数值 , 而对求函数最小值则 F(x i 可以取为函数值倒数或者相反数 ;
5 若期望度 G i j <0, 表示蚂蚁 i 不能淘汰蚂蚁 j, 不进行任何操作 ; 若期望度 G ij >0, 表示蚂蚁 i 可能淘汰蚂蚁 j, 计算蚂蚁 i 淘汰蚂蚁 j 的概率
P(i, j =
S A
i
@G B
ij E
G iu
>0
(
S A i @G B i u
(6
式中 , 符号 A 、 B 意义同蚂蚁算法 ,
E
G iu
>0
S A i @G B
i u 表示只
对 G i u >0的蚂蚁 u 求和 , 即只对可能被蚂蚁 i 淘汰 , , 相
当于蚂蚁算法中的信息素强度 S ij , 其计算式为
S ne w
i
=Q S ol d
i +$S i
(7
式中 , Q 为蚂蚁生存能力遗传率 , 其值取为 0. 618; $S i 是蚂蚁 i 生存竞争能力增加量 , 初始值赋为 0;
6 根据概率淘汰规则进行蚂蚁淘汰 , 并更新蚂蚁 i 的生存竞争能力增加量 $S
i 。

蚂蚁 i 每淘汰其它蚂蚁一次 $S i 值增加一个小正常数 c, 即
$S ne w
i =$S old i +c
(8
7 对所有蚂蚁重复 4 、 5 、 6 步 , 然后比较当前
所有蚂蚁的适应度 , 取适应度最大的蚂蚁作为当前最优解 ;
8 重复 2 、 3 、 4 、 5 、 6 、 7 步 , 直到所有蚂蚁都搜索到同一个点或者完成指定的寻优次数。

通过引入进化策略 , 改进的蚂蚁进化算法就可以在解空间上生成新的解 , 从而可以应用于解决连续优化问题 ; 而在进化策略中引入可变的邻域搜索项可以在优化过程中动态调整进化策略生成新解的范围 , 从而兼顾了优化速度和优化精度 ; 以蚂蚁算法对解进行概率淘汰可以一定概率保留一部分较优解 , 从而可以更好地避免所得解为局部最优。

这就是改进的蚂蚁算法的基本思想。

3 改进的蚂蚁算法用于暴雨强度公
式参数优化
根据我国现行的排水规范 , 单一重现期的暴雨强度公式形式为 :
i =a /(t +b
n
(9
式中 , i 为暴雨强度 , mm/s ; t 为降雨历时 , min ; a , b, n 为参数。

它是一种常用的洪水灾害危险性分析数学模型 , 已被广泛用于给水排水设计等洪水灾害管理中。

由于该公式是超定非线性方程 , 公式的参数优化问题实际上是一个非线性优化问题 ; 而传统的优化方法不仅计算复杂、通用性差 , 且求得的往往不是全局最优解。

文献 [6]提出的优选回归法、文献 [7]提出的加速遗传算法 (AGA 法以及文献 [8]提出的免疫进化算法都应用到暴雨强度公式参数优化的实例计算 , 获得了优于传统方法的计算结果。

采用文献 [6]附表中提供的不同重现期暴雨强度与降雨历时的数据 {(t j , i j , j =1, 2, , , m},采用改进的蚂蚁算法来优化暴雨强度公式参数 a , b, n 。

优化过程中蚂蚁算法的参数通常取为 A =1、 B =1、 Q =0. 7, 暴雨强度公式参数的取值范围同文献 [7]a I 3[0]、 0, 211
第 5期邹长武 , 等 :改进的蚂蚁算法及其在暴雨强度公式参数优化中的应用
数为实测值和公式拟合值的残差平方和最小 , 即
min Q =
E
m
j=1
[a /(t j +b n -i j ]2
(10
在 Matlab6. 5环境下采用 20只蚂蚁优化 50次 , 所得的参数值及所得公式拟合原始数据的最小残差平方和列于表 1中。

表 1 各种优化方法优化暴雨强度公式参数的结果
Ta b. 1 The result o f par ameter optimization by va ried optimizing methods
重现期 (a
优化方法
参数估计值
a
b n 最小残差平方和
100
改进的蚂蚁算法 12. 6856. 3870. 5270. 0399免疫进化算法
12. 6056. 3310. 5260. 0399AGA 法 13. 5566. 9280. 5400. 0406优选法 14. 6907. 6300. 5600. 045650
改进的蚂蚁算法 12. 0426. 4910. 5370. 0253免疫进化算法
12. 4176. 8150. 5440. 0252AGA 法 14. 6848. 6810. 5810. 0270优选法 14. 2307. 9400. 5800. 030020
改进的蚂蚁算法 11. 4596. 9710. 5580. 0178免疫进化算法
11. 4236. 9120. 5580. 0177AGA 法 11. 0136. 6850. 5500. 0188优选法 13. 1408. 0900. 5900. 019610
改进的蚂蚁算法 11. 4097. 6930. 5850. 0128免疫进化算法
11. 1697. 4850. 5800. 0128AGA 法 8. 6025. 0070. 5190. 0288优选法 12. 8908. 6800. 6100. 03265
改进的蚂蚁算法 10. 0557. 1980. 5900. 0074免疫进化算法
10. 2387. 3990. 5940. 0074AGA 法 12. 1529. 1960. 6300. 0082优选法 11. 8708. 6000. 6300. 00842
改进的蚂蚁算法 10. 2278. 4030. 6430. 0030免疫进化算法
10. 2558. 4160. 6440. 0030AGA 法 11. 5409. 5930. 6700. 0033优选法 11. 4709. 2900. 6700. 00341
改进的蚂蚁算法 9. 9988. 8900. 6860. 0012免疫进化算法
10. 2329. 1010. 6910. 0012AGA 法 10. 4369. 4270. 6940. 0012优选法
11. 390
9. 900
0. 720
0. 0015 为了便于比较 , 表 1中同时给出文献 [6]的优选回归法 (简称优选法、文献 [7]的 AG A 法以及文献 [8]的免疫进化算法优化同样的原始数据得到的暴雨强度公式的参数及所得公式拟合原始数据的最小
残差平方和。

由表 1中各种优化方法得到的暴雨强
度公式拟合原始数据的最小残差平方和可以看出 , 改进后的蚂蚁算法优化结果与免疫进化算法的优化结果差不多 , 而远优于其它的优化方法的优化结果。

文献 [8]中的免疫进化算法也是新近提出的一种优秀的优化算法 , 这里专门把它和改进的蚂蚁算法进行一下比较。

尽管对暴雨强度公式的参数优化的结果两种方法都差不多 , 但免疫进化算法是在群体规模为 200, 迭代 300次得到的优化结果 , 而改进后的蚂蚁算法仅用了 20只蚂蚁优化 50次就可以得到几乎相同的结果 , 笔者在运行改进后的蚂蚁算法的优化程序时还注意到往往优化不到 50次就可以得到比较接近的结果 , 比如对重现期为 1年的暴雨强度公式只需要优化 16次就可以得到残差平方和为 0. 0012的参数 , 说明改进后的蚂蚁算法具有更快的优化速度。

从原理上来说免疫进化算法是单一初始点的寻优过程 , 而改进的蚂蚁算法的寻优思路是学习的免疫进化算法 , 但是以蚂蚁群体规模为初始点数的寻优过程 , 即相当于有蚂蚁群体规模的免疫进化算法在并行运行 , 优化速度自然要快。

此外 , 改进的蚂蚁算法在寻优过程中利用蚂蚁算法特有的概率淘汰规则保留了一定数量的较优解 , 可以更好的避免优化过程收敛到局部最优 , 只是本次实验中因为参数优化本身的局部收敛欺骗性不强 , 所以效果体现不明显。

4结论
1 通过引入带可变邻域搜索项的进化策略进行改进后的蚂蚁算法可以用于连续优化问题 , 从而为解决连续优化问题找到了一种新的方法。

水文水资源领域存在大量的参数优化问题 , 可以预见改进的蚂蚁算法在这一领域具有广泛的应用前景 ;
2 各种优化算法应用于暴雨强度公式的参数优化的结果比较表明改进的蚂蚁算法应用于解决连续优化问题不仅优化效果好 , 并且优化速度快。

参考文献 :
[1]Colo rni A, Do rigo M, Maniezzo V. Dis tributed o pti mization by ant co lo
nies[A].Proc of ECAL 912Euro pean Conference on Ar 2 tificial Life[C].France:Paris, Elsevier, 1991.
[2]Co lorni A, D ori go M, Maniezzo V. An investigatio n o f so me pro perties of an ant algorithm[A]. Proc of PPSN c 92[C].Bel 2 gium:Brussels, Elsevier, 1992.
[3]胡昌振 , 李贵涛 . 面向 21世纪网络安全和防护 [M].北京 :北京希望电子出版社 , 1999.
[4]Do ro thy Denning. An intrusion detection model [J]. ID DD Transactio n o n So ftware Engineering, 1987, 2(2 :222~232. [5]Chen Yue. A di stributed securi ty mo del based on di vide and rule[J]. Computer Science, 2001, 27(4 :7~9.
[6]Yang Kai, Cheng Xiaoru. A sample fo r calculating the parame 2 ter B o f s torm
i ntensity formula [J]. People . s Yangtze River. 1996, 27(3 :16~22. [杨开 , 程晓如 . 暴雨强度公式中系数 B 统计算法一例 [J].人民长江 , 1996, 27(3 :16~ 22. ]
[7]金菊良 , 丁晶 . 遗传算法及其在水科学中的应用 [M].成都 :四川大学出版社 , 2000.
[8]Ni Changjian, Din Jing, Li Zuoy ong. Immune ev olutionary algo 2 rith m and its applicatio n to parameters opti mization in sto rm in 2 tensi ty formula[J]. Journal o f Y angtze Riv er Scientific Research Ins titute, 2002, 19(6 :59~61. [倪长健 , 丁晶 , 李祚
泳 . 免疫进化算法及其在暴雨强度公式参数优化中的应用 [J].长江科学院院报 , 2002, 19(6 :59~61. ]
(编辑张琼。

相关文档
最新文档