论文部分内容阅读
遗传退火算法作为一种新型的模拟自然界生物进化过程的混合遗传算法,本身具有鲁棒性、通用性等特点,已经在众多应用领域中取得了成功。对非线性方程组的求解一直以来都是工业应用、科学研究等领域研究的热点。从最初的牛顿法、拟牛顿法等传统方法,到近期发展起来的遗传算法、耦合神经网络算法、鱼群算法等,人们将这些算法运用到非线性方程组的求解中,并取得了一定的成效。但是由于含有超越函数的非线性方程组的复杂性,这些方法在求解该类非线性方程组时存在着易陷入局部最优、精度低等缺陷,而利用遗传退火算法求解该类方程组能在一定程度上避免这些缺陷。基于多核处理器的流行和多线程编程的发展,在多核处理器环境下将遗传退火算法进行多线程设计将是提高算法性能的一个重要手段,同时将改进后的遗传退火算法运用于非线性方程组的求解,也是可以研究的一个重要课题。论文在研究前人成果的基础上,将遗传退火算法针对复杂非线性方程组的特性进行改进,并运用在非线性方程组的求解中。论文的主要工作如下:针对求解复杂非线性方程组时对遗传退火算法改进的需要,进行相关知识的准备和介绍。简要介绍了遗传算法以及模拟退火算法的发展概况、基本概念、基本原理、基本理论及相关方面的应用,同时也介绍了遗传退火算法这种新型的混合遗传算法的一些基本情况。介绍了堆结构的概念、基本思想、实现方式等,着重介绍了堆结构一些基本操作的时间复杂度。同时介绍了java多线程机制的基本情况,对其所涉及的安全风险、线程调度风险、性能风险做了较为详细深入的分析。在标准遗传算法的基础上,结合了模拟退火算法,并针对非线性方程组的特性,将堆结构引入遗传退火算法,建立一种以堆排名为核心的筛选机制,提出了改进的遗传退火算法;在多核处理器环境下,对遗传退火算法进行多线程设计,合理规避安全风险、线程调度以及性能风险,在一定程度上提高了机器的资源利用率;对搜索区间的二分划分进行探讨,有效的避免了多个线程在某个区间内的重复搜索;最后用Java语言实现算法并进行仿真实验,实验结果表明,与传统算法相比,改进遗传退火算法求解非线性方程组时具有易收敛,精度高等优点,同时对遗传退火算法进行多线程设计并划分了子区间之后,算法的效率较改进前有了较大的提升。