1、一种基于蚁群算法求方程组数值解的新方法摘要:解方程组是工程研究中的基本问题.本文提出了一种基于蚁群算法求方程组数值解的新方法.首先,引入方程组求解模型;然后,介绍了一种用于连续函数优化的蚁群算法;最后,分析了该法的特点和性能.实验结果表明该法是有效可行的,进一步提高解精度与求解效率的关键在于对蚁群算法本身的研究.关键词: 蚁群算法 方程组 连续函数优化 New method based on ant colony system for resolving equation groupsAbstract: Resolving equation groups is a principal prob
2、lem in engineering study. A new method for resolving equation groups is proposed, which is based on Ant Colony System. First, the resolving model of equation group is described; then, according to Ant Colony System, an algorithm for continuous function optimization is introduced; finally the perform
3、ance is analyzed. The results of experiment show that the new method is effective and feasible, and the key to improve the precision of results and the efficiency of the resolving process lies in the further research of the Ant Colony System.Keywords: ant colony system equation group continuous func
4、tion optimization 1.引言 (Introduction)求解方程组(本文指的是:求方程组的数值解)是实际工程应用研究中的常见问题. 各种方程组的解法长期以来一直是数学界和工程界的一个重要研究方向.因为方程组特性的复杂多样性,目前的研究成果大都是仅对某一类特定方程组的解法;对许多方程形式复杂的方程组,甚至还没有有效的解法.蚁群算法是一种解决复杂问题的有效方法,具有很强的通用性1.本文根据求解方程组问题的共同特点,基于蚁群算法建立了一个适用于各类方程组求解的通用模型.在此模型基础上,引入了一种新的求方程组数值解的通用算法.实验证明此算法是有效可行的;求解精度与效率的进一步提高与蚁
5、群算法的品质有关.2.方程组求解思想的引入 (The appearance of equation groups solution)设一个方程组,由 n 个方程组成,每个方程涉及 m 个变量:X X = , = X| 12()0,.(),.0.infxffx12,.,.jmxx(,)jjxab另设 , X . 1()|()|niiFXf(1)求解上述方程组等价于下面一个求极值问题:求一 X,使式(1)取得最小值,当其最小值为 0 时,所对应的 X,即为原方程组的解;当其最小值不为 0 时,则此方程组无解 . 3.算法描述 (Algorithm description) 为描述问题清晰和压缩篇幅
6、需要起见,对于涉及 n 个方程,m个自变量的方程组求解算法的描述过程一律基于一元方程求解过程的描述.只要理解了算法的实质,从一元方程推广到多元方程组便不难. 另外,对于蚁群算法的一般模型及应用场合,本文也不另作介绍,有兴趣者可参阅文献4.设问题要求精确到小数点后 d 位,则自变量 x 可以用 d 个十进制数来近似表示.我们就可以构造如下 d*10+2 个“城市”:这些城市分为 d+2 层;其中首尾两层分别仅含一个城市:一个为起始城市,一个为终止城市;中间 d 层,从左往右分别表示自变量的十分位、百分位这些城市中,只有 k-1 层与 k 层(k 2,d+2)之间的各个城市有连接通路.记 k-1
7、层中代表十进制数 a 的城市与 k 层代表十进制数 b 的城市之间的连接上残留的信息量为 .蚂蚁 n 在一次kb循环中第 m 步所在城市用 T(n,m)表示,并设蚂蚁总数为 .首先用0N一个较小的值 初始化所有的 .让每只蚂蚁的第一步为 0,即令0kabT(n,1)=0 (n=1,2,., ).然后,就为每一只蚂蚁选择路径 .若蚂蚁 n0N当前所在的城市为 T(n,k-1)=a,根据如下公式选择每只蚂蚁下一步应该到达的城市: (2) 其中,q 为0,1 上00argmx,(,)kabqQSqTnk的随机数, 是0,1上的常数,用于确定伪随机选择的概率. 表0Q rs示用伪随机选择来确定下一步要
8、走的城市,也就是根据下式计算蚂蚁选择下一层中每一个城市的概率,然后按此概率用遗传算法中的转盘式选择法确定要选择的城市: (3) 其90(,)/()kkabaxp中,p(a,b)表示从当前城市 a 转移到下一层的城市 b 的概率.由于本算法中仅允许蚂蚁有上一层的城市向下一层的城市转移,所以这个公式与普通蚁群算法的转移概率计算公式有所不同. 当每只蚂蚁按上面的公式到达了 d+1 层时,都将转移到 d+2 层的唯一城市 0. 蚂蚁在城市上建立路径的过程中,要不断地在经过的路径上按公式(4)减弱上面残留的信息量,这样就可以减小下一只蚂蚁选择同样路径的概率,除非经过多次循环后已确定一条极优的路径.这个过
9、程叫做残留信息量的局部更新. (,1),(,) (,1),(,)0()k kTnnk Tnnk (4 ) 其中, 为(0 ,1)上的常数,表示路径上残留信息量减弱的速度. 当所有蚂蚁都按上面的步骤完成了一次循环,这时就对路径上的信息量进行全局更新.首先对每只蚂蚁选择的路径解码,计算出蚂蚁 n 对应的自变量值: (5 )然后,计算112()(,)0dkkxnT每只蚂蚁对应的函数值,并选择出函数值最小的蚂蚁,称为最优蚂蚁. (6) 对这只最优蚂蚁经过路径上的minargi()fxn信息量按下式做全局更新: (7) 其1min(1)()k kij ij f中 i=T( ,k-1), j=T( ,k)
10、, k 2,d+2, 为(0,1)上的常数.minmin至此就完成了一个循环.反复进行上面的步骤直到达到指定的循环次数或得到的解在一定的循环次数后没有改进. 将算法的具体求解过程归纳如下: (1) 初始化各条路径的信息量;(2) 将所有蚂蚁置于初始城市;(3) 对所有的 k-1 到 k 层城市执行步骤(4 )(8);(4) 对每只蚂蚁执行步骤(5)(6 ) ;(5) 根据公式(2)和(3 )选择蚂蚁在第 k 层应该到达的城市;(6) 每只蚂蚁选择城市后都立即按公式(4)执行信息量的局部更新规则;(7) 根据公式(5)(7 )评选出最优蚂蚁并执行信息量的全局更新规则;(8) 判断是否满足终止条件
11、.如满足,则结束计算输出计算结果计算.(说明:对于多元方程组求解,可增设自变量,具体可参阅文献3.)4.算法性能分析和实验结果 (Performance analysis and experiment results)本算法的数学模型概括了方程组求解的本质特点,从而决定了算法的通用性,使其具有很强的适应性.不管方程是否可微、连续或形式复杂,方程组是否完备、良态或有解,都不影响其求解.为证明本算法是有效可行的,本次实验选取文献2中的某些具有代表性的方程(组)进行对比求解. =0.8, =0.8, ,0.8Q,d=7, ,运行循环次数:1000 0.102N表 1 与文献2之对比结果Table 1
12、 The comparative results to reference 3序号 方程组 文献3算法解求解时间(s)本文算法解求解时间(s )1 |sin(30x)| (1-|x|/2)-0.9739626=0x (-100,100)x=0.051825.41 x=0.05180.122(9.701)0sin5cos(.93yx,y-2,2x=0.2909y=0.000036.90x=0.2909y=0.00190.2322305xyzxyx,y,z-1.732,1.732x=1.0000y=0.9998z=1.000151.57 x=0.9390y=1.0600z=0.99720.3表 2
13、 选取典型函数测试之结果Table 2 The results of selective functions序号方程组 本文算法解 求解时间12 0.9cos9.701513.307xSinxSinxCosx X=73.55074 0.1s232 1090.1710.30.6957SinxSinxCosxxX=0.60583 0.1s33210iix123.0.x0.3s5.结束语 (Conclusion and valuation)本文提出了一种基于蚁群算法求方程组数值解的通用算法.实验结果表明此算法是有效可行的,尤其在求解一元方程时,其求解精度与速度都非常优越;但在求解多元方程组时,精度有
14、所下降,但速度仍然非常快.因此本算法可作为工程应用研究的一个通用工具.参考文献 (References )1Macro Dorigo,Vittorio Maniezzo,Alberto Colorni. The Ant System: Optimization by a colony of cooperating agentsA.IEEE Transactions on Systems, Man,and Cybernetics,Part-B,Vol.26,No.1, pp.1-13,1996,2胡小兵,吴树范等. 一种基于遗传算法求代数方程组数值解的新方法J. 控制理论与应用. 2002.19
15、(8):567-570Hu xiao-bing,Wu Shu-fan. New method based on genetic algorithm for resolving algebraic equation groupsJ.Control Theory and Applications,2002,19(8): 567-570(Ch).3陈烨. 下限未知函数优化蚁群算法A. 青岛大学学报增刊-2003 年全国理论计算机科学学术年会论文集. 2003(8 )Chen Ye. Ant Colony System for Optimization of Function with Lower B
16、ound UnknownA. Journal of Qing Dao University (Natural Science Edition) Vol.16.Suppl.Aug:2003(Ch). 4魏平,熊伟清. 用于一般函数优化的蚁群算法J. 宁波大学学报(理工版).2001.14(4):52-55Wei Ping,Xiong Wei-Qing. Ant Colony Algorithm for General Function Optimization ProblemJ. Journal of Ningbo University (NSEE), 2001.14( 4):52-55(Ch).本文作者简介 叶楠,男,1984 年生. 现为四川大学电气信息学院电气工程及其自动化专业 2002 级本科生.本篇论文发表在计算机科学 (10 月增刊)2004 年全国理论计算机科学学术年会论文专刊。 通信地址:四川大学望江校区 17 号信箱 E-mail: 电话:028-85461008