- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法在方程求根中的应用概要
遗传算法在方程求根中的应用
1 前言
方程求根是个古老的问题,也是一个具有重要实践意义的问题,解决科学技术和工程实践中遇到的数学问题,,常常需要先解决高次代数方程或方程组的求根问题, 有时还需要解决超越方程的求根间题。长久以来人们找出了很多方程求根的方法,常用的有二分法,Newton法,割线法等等,这些方法存在着以下缺点:
1.一般对f(x)都有较强 的限制性要求如连续可导有时甚至要求有高阶导数对于一般的超越方程而言是不满足这些条件的。 .
2.算法的收敛性和最终结果与初值的选取有较大的关系一般都要求有相当精度的根的近似值 。
遗传算法 GA(genetic algorithm)是借用生物进化中“适者生存”的规律而提出的解优化问题的有效方法。在算法中 首先利用复函数方程根的分布理论,确定根的个数和范围 ;在确定的范围内利用模拟退火遗传算法进行求根,算法简???实用。本文探讨GA算法的设计和实现。
2 问题描述
定理 幅角原理
令 z =x +i y 为复数 。
如果f (z)=u +i v 在简单闭曲线C上和在C内解析,且在C上不等于零, 那么 f(z)在C内零点的 个数等于1/(2π)乘以当z沿C的正向绕行一周f(z)的幅角的改变量,M重零点算m个零点。
推论 设 f (z)=u +i v 在简单闭曲线C 上和 在 C 内解析,且在C 上不等于零,点 z0 =x0 +i y 0 沿 C 的正向绕行一周,设向量(u , v)作正方向的旋转次数为 Np ,作负方向的旋转次数为 Nn ,那么在封闭曲线C内f(z)=0的根的个数N =Np -Nn 。
对于所有的方程求根问题, 包括复函数方程求根问题都可以转换为求函数最小值问题。
3 算法设计
设在圆形区域S 内求复函数方程f(z)= 0 的根,算法首先根据推论1 求出在区域S 内的根的个数Ns,如果Ns 2 ,将区域S 划分为多个子区域S 1 S 2 , …,Si , … , Sr .Si 是与区域S 同圆心的环, Sr 可看成为内圆半径为0的环。在图1 中表示S 分为4 个子区域.对于子区域Sm(1 ≤m ≤4)分3 种情况讨论:
1)若在子区域Sm 中, 复函数方程f(z)=0 根的个数为0 .则说明该区域无根, 不用再划分该区域求根。
2)若在子区域Sm 中, 复函数方程f(z)=0 根的个数为1。
① 若子区域Sm 内外圆半径的差值小于给定的允许误差,认为方程根在以区域S 圆心为圆心, 以Sm 内外圆半径差值的一半与Sm 内圆半径之和作为半径的圆弧上。最后利用基于模拟退火的GA 在该圆弧上求|f(z)|的最小值。
② 若子区域Sm 内外圆半径的差值大于给定的允许误差,则再细分该区域为多个子区域环,直至子区域内外圆半径的差值小于给定的允许误差。
3)若在子区域Sm中,复函数方程f(z)=0 根的个数大于1, 则再细分该区域为多个子区域环, 直至子区域Sm′内外圆半径的差值小于给定的允许误差;这时将区域Sm划分为多个同圆心扇环。对于子区域分3 种情况讨论:
①若在子区域中, 复函数方程f(z)=0 根的个数为0。则说明该区域无根, 不用再划分该区域求根。
②若在子区域中, 复函数方程f(z)=0 根的个数为1。利用基于模拟退火的GA 在该圆弧上求|f(z)|的最小值。
4 算法实现
种群初始化
定义宏RAND-NUM(M , N )和RANDOM, 宏RAND-NUM(M ,N )表示在[ M ,N] 范围内产生随机数, 宏RANDOM 表示在[ 0 , 1] 区间内产生随机数, 来初始化种群中一个染色体。
2)计算适值
采用线性排名方法,该方法不论是对求最大值、还是对求最小值问题, 都简单易行.首先假设群体成员按适值大小从好到坏依次排列,然后根据一个线性函数分配选择概率Psi .设种群规模为N 。
有了选择概率,即可以按类似于赌轮法进行选择算子。
3)选择.
选择策略为“轮盘赌”式的正比选择法。令p(k是个体k 的选择概率, 则
p(k)=fitness(k)/fitsum(k =1 , … ,m)
令S(0)=0 ,
S(k)= p(1)+p(2)+ … +p(k), k =1 , … ,m
产生(0 , 1)区间上的均匀分布的随机数ξS(S =1 , …, m)。若S(k -1) ξS S(k), 则选个体k 为下一代的亲代, 即个体k 选入种群.在每一代进行选择操作时保留取优的个体。最优个体为对应的适应函数值为fitmin 的个体。
4)交叉算子
交叉算子是指把两个父代个体的部分结构加以替换重组而生成新个体的操作,在自然界生物进化过程中起核心作用的是生物遗传基因的重组。同样,GA 中起核心作用的是遗传操作的交叉算子。在本文中, 交叉算子采用实向量编码中算术
文档评论(0)