改进的混沌遗传算法

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

改进的混沌遗传算法

李辉

(计算机学院2004级研究生 04720746)

摘要:混沌遗传算法(chaos genetic algorithm, CGA)是基于混沌优化的遗传操作,将使子代个体均匀地分布于定义空间,从而可避免早熟,以较大的概率实现全局最优搜索.与传统的遗传算法相比较, CGA 的在线和离线性能都有较大的改进。而遗传算法作为一种智能算法,是解决非线性复杂优化问题的有利工具,但它在搜索过程中易陷入局部最优,收敛速度慢的缺陷又限制了它的寻优效能。混沌遗传算法具有两者的优点,大大提高了优化的效率。

关键词:遗传算法混沌混沌优化

Abstract:Chaos genetic algorithm (CGA)is a genetic operation,which based on chaos optimization,makes the individuals of subgeneration distribute uniformly in the defined space and avoids the premature of subgeneration.To compare the performances of the CGA with those of the traditional GA,The results demonstrated that the CGA’s on-line and off–line performance was all superior to that of the traditional GA.As an inteliengence algorithm,GA is a effectual toos to resolve the problem of the liner-optimization,but the slower convergence and the premature restrict its efficiency.And CGA which has the two strongpoint has promoted is efficiency in optimization.

Key words: genetic algorithm chaos chaos optimization

1 引言:

遗传算法(GA)最早由美国Michigan大学的John Holland教授提出,通过模拟自然界中的生命进化过程,有指导地而不是盲目地进行随机搜索,适用于在人工系统中解决复杂特定目标的非线性反演问题。De Jong首先将遗传算法应用于函数优化问题的研究,他的工作表明在求解数学规划时,GA是一种有效的方法。但对于大型复杂系统,尤其是非线性系统优化问题的求解,GA仍有许多缺陷,如无法保证收敛到全局最优解,群体中最好的染色体的丢失,进化过程的过早收敛等。

混沌是自然界中一种较为普遍的现象,具有“随机性”、“遍历性”及“规律性”等特点,在一定范围内能按其自身的“规律”不重复地遍历所有状态的。在搜索空间小时混沌优化方法效果显著,但搜索空间大时几乎无能为力。

混沌遗传算法(CGA)的基本思想是将混沌状态引入到优化变量中,并把混沌运动的遍历范围“放大”到优化变量的取值范围,然后把得到的混沌变量进行编码,进行遗传算子操作。再给混沌变量附加—混沌小扰动,通过一代代地不断进化,最后收敛到一个最适合环境的个体上,求得问题的最优解。

2 传统遗传算法

传统遗传算法:

population old_pop,new_pop;/*current and next population*/ int pop_size,generation;

float p_cross,p_mutation; /*prob. Of crossover & mutation*/

1 old_pop=initial random

population={ind1,ind2,….indpopsize}

2 while(generation

3 fitness_evaluate(old_pop); /*calculate fitness of indiciduals*/

4 new_pop=select_copy(N,old_pop);/*select N member of old_pop*/

5 new_pop=crossover(p_cross,new_pop);

6 old_pop=mutate(p_mutation,new_pop);

7 generation++;

8 endWhile

9 return(individual with greatest fitness);

population为种群,in为求解问题许可解的染色体代码表示,其中fitness_evaluate, select_copy, crossover,mutate是4种遗传算子,分别代表适应度估值、选种、杂交、变异等操作。

通过其伪码,我们可以看出,传统遗传算法的

对遗传算子的操作进行的仅仅是复制、交叉和变异,这样对比较简单的系统可能很快求出最优解,随着系统的庞大,尤其是求解非线性系统优化问题的时候,很容易陷入局部寻优,染色体丢失,进化过程过早收敛等等。

3 混沌

提出混沌的起因有很多,其中之一时这样的:巴西热带雨林的一直蝴蝶拍动了一下翅膀,结果导致美国德克萨斯州的一场龙卷风,事实固然可能没有那么严重,但是也从侧面反映了一个微小事物的扰动可能引起的巨大后果。

有的地方把混沌分为8种[8]:如lorenz 蝴蝶效应现象、阿瑟的路径锁定效应、Logistic 倍周期分叉现象等。其中,Logistic 倍周期分叉现象是指事物在经历了一定的阶段之后,就必然会迎来一个崭新的阶段。在新旧阶段交替的点上,人们将面临选择的两难困境,同时,人们也只能在各种两难选择方案中确定其中之一种,作为其发展的道路。这种选择的过程,就称为倍周期分叉现象。

下面从数学的角度对Logistic 分配现象做一下解释[3]:

Logistic 方程通常写为:X n+1=μ*x n *(1-x n ),它是定义一类把0到1区间映射到自身的不可逆映射。

通过上式我们可以看出当x n =0.5时,X n+1最大,所以μ的范围为(0,4),为了便于理解,对此函数用matlab 做图:

logistic 倍周期分配图

当μ=3时,主序列在周期1和2之间开始分叉,

1 3.45μ=+=时,主序列在周期2和4之

间开始分叉,最终进入混沌。当μ=4的时候到达完全混沌。

由于该现象类似于昆虫的繁殖,因此和生物的

遗传可能有着密切的联系,在此作者将其引入混沌遗传算法。

4 改进混沌遗传算法原理

4、1一般混沌遗传算法:

结合传统遗传算法,一般的混沌算法的基本步骤如下:

步骤0 对优化对象二进制编码,生成初始群体,计算各个适应值;

步骤1 根据选择概率/

i i i p f f =∑

(i f 为个

体适应值)按规定的种群规模选择个体进入下一代; 步骤 2 以交叉概率c p 按适当的交叉方式对选中

的多对个体交叉;

步骤 3 以变异概率m p 按适当的变异方式对选中的个体变异;

步骤4 解码,计算各个体适应值;

步骤5 对适应值最大的部分个体做混沌优化运算,若新个体适应值大于原个体,则替换,否则不变; 步骤6 重复步骤1至步骤5,直到终止条件得以满足。

改进的混沌遗传算法原理从一般的混沌遗传算法步骤可以看出:它的算法是先进行遗传算法,后进行混沌优化,没有考虑它们之间在优化时的某种相似之处。其实,步骤5所进行的混沌优化和遗传算法的交叉和变异两个算子存在重复性的工作.

4.2改进的混沌遗传算法 4.2.1 编 码

为了克服二进制编码的Hamming 悬崖,使用Gray 编码(一种循环编码机制),采用交叉编码方案。

例如:当011111+0000001=100000时,各个数字都要变化,而采用Gray 编码,可以仅改变一位。

4.2.2模型优化

不失一般性,考虑如下的优化问题

1m ax (,......,)...........()(1,...,)......()

r i i i f x x A a x b i r B ≤≤=

[,]i i a b i 为x 的变化区间,r 变量个数。式(A)是模型的优化函数,式(B)是模型的约束条件.

4.2.3 随机扰动

*

(1).............(3)k X

X αα=-+'

k 令X

*

X 为当前最优解*

*

1(,......,)r X X 映射到

[0,1]区间后形成的向量,称为最优混沌向量;

X k 为迭代k 次后的混沌向量,X ′k 为加了随机扰动后(x 1,…,x r )对应的混沌向量;其中0<α<1,采用自适应选取,这是因为搜索初期希望(x 1,…,x r )变动较大,需要较大的α。随着搜索的进行,(x 1,…,x r )逐渐接近最优点,故需要选用较小的α,以便在

相关文档
最新文档