差分进化算法及其应用研究
来源:
随着微电子技术和计算机技术渗透到各个科学领域,人类正在步入一个技术迅速发展的新时期。计算机科学与其他学科的交叉产生了许多新学科,推动着科学技术向更广阔的领域发展,正在对人类社会产生深远的影响。科学技术的发展和工程应用的需要,特别是对计算速度和人工智能的需要,人们期望寻找一种高效的智能算法。进化算法通过模拟某一自然现象或过程来解决问题,具有高度并行及自组织、自适应、自学习等特征,因而逐渐受到人们越来越多的关注。近年来,一种新颖的演化算法即差分进化算化简称DE) 在各种演化算法中脱颖而出,该算法是和Kenneth Price为求解切比雪夫多项式而提出的, 已在约束优化计算,模糊控制器优化设计,神经网络优化,滤波器设计等方面得到了广泛地应用。与遗传算法(GA),粒子群优化(PSO)等智能算法相比,差分进化算法具有实现简单,稳定性强,获得近似解速度快等优点,在非线性函数优化中得到广泛应用。但和其它进化算法一样,标准差分进化算法易陷入问题局部最优,算法仍存在早熟现象。
针对目前标准差分进化算法存在的不足,本文的主要工作是改善标准差分进化算法的性能,提出一些改进的差分进化算法,并将该算法应用于数值计算问题,主要包括多项式求根、神经网络的训练、动力学模型参数估计等。最后通过数值实验,计算机仿真结果表明本文提出的改进差分进化算法能克服传统计算方法的不足,所取得的结果具有较大的理论价值和应用价值。
关键词:进化算法差分进化 神经网络 非线性方程 人工智能 模拟退火非线性参数估计
1 绪论
本文问题研究的现状与进展方程求根问题是一个很古老的问题,也是一个具有重要实践意义的问题,解决科学技术和工程实践中遇到的数学问题,常常需要先解决高次代数方程或方程组的求根问题,有时还需要解决超越方程或方程组的求根问题.在实际问题中对解方程的要求是多种多样的,有时只要求求出实根,有时要求求出所有的根,有时已知根的近似值要求精确化.关于求实根的问题,长久以来,人们就已经找出了许多方法.目前求解多项式实根主要采用数值方法和符号计算方法。数值方法出现较早,十三世纪,宋代数学家秦九韶在他所著的《数书九章》这部书的“正负开方术”里,充分研究了高次多项式的求正根法。17世纪,牛顿提出了求解代数方程的牛顿迭代法,后来出现了二分法和弦截法,特征值法和同伦法。
世纪初,穆勒提出了求解代数方程的抛物线法。1943年,林士谔提出求代数方程数值解的劈因子法(Bairstow)[1]。Ramon Moore在1959年引入区间分析和区间计算[2]。区间法与各种数值方法相结合,构成新的方法,如:区间Newton法,Gauss-Seidel法区间[3,4]等。对于符号计算方法,目前国际上使用这种方法进行多项式实根求解的研究越来越多,总体来说,主要有三种: Grōbner 基方法、Ritt-Wu 方法和基于结式的方法[5] 。Grōbner 基是1964 年由H.Hironaka 首先引入,他称其为标准基。稍后(1965年),B.Buchberger 在博士论文中公开了他独立研究的相同方法[6,7]。其中, Ritt-Wu 方法是美国数学家Ritt在20世纪50年代引入的, 而后由吴文俊教授进行改造和发展的一种方法[8] 。除此之外,还有Collins,G.E. 提出了柱形代数剖分算法[9] 。1998年,杨路研究员提出了不等式证明的降维算法与通用程序[10]。
基于结式的方法,常用计算结式的方法有Sylvester 结式、Dixon 结式和Macaulay 结式。在Dixon 结式的基础上,杨路提出了聚筛法( Gather-and-Sift) [12],刘忠在文献中提出DPS法,文献[6]中讨论了结式的其他计算方法,如U2结式法、隐藏变元法等。
等提出对Bezout Dixon 结式计算的快速算法。
现有的求解多项式实根的数值方法和符号计算方法都各有优缺点。其中,符号解法可以求出多项式系统的所有零点并且是精确的,但是速度较慢,一般较适合于解决中小问题。
相对而言,数值解法较为成熟,速度快, 但对f (x)都有较强的限制性要求,如连续、可导,有时甚至要求有高阶导数.算法的收敛性和最终结果也与初值的选取有较大的关系,一般都要求有相当精度的根的近似值作为初值,而且初值的选取依赖于人们对问题背景的认识。针对一个具体问题,人们往往需要有相当的知识去判断使用哪种方法较为合适.另外,从精确计算的角度看,众多的数值算法都是不适用的,他们往往只能求出部分解,而且通常只能求出近似解。目前出现了利用智能优化算法来解代数方程根的算法,1998年,