基于罚函数的小生境遗传算法在MATLAB中的实现.pdf
文本预览下载声明
算法研究 学术探讨
基于罚函数的小生境遗传算法在MATLAB 中的实现
蒋昀昕
(福建卫生职业技术学院公共基础部,福建 福州 350101)
[摘 要] 介绍了罚函数的基本概念及目的,阐述了基于罚函数的小生境遗传算法的基本思想及算法步骤,探讨了在MAT-
LAB 环境中实现该算法各算子的编程方法,并通过数值实验说明基于罚函数的小生境遗传算法具有较好的多峰搜索能力。
[关键词] 小生境遗传算法;罚函数;
matlab
行效率。
1.引言
3 .基于罚函数的小生境遗传算法思想
生物学上,小生境(niche)是指在特定环境中一种组织(or-
ganism) 的功能,把有共同特性的组织称作物种(species)。小生 在小生境遗传算法中引入罚函数的目的是为了使个体能
境技术就是将每一代个体划分为若干类,每个类中选出若干 够在整个约束空间分散开来,更好地维护种群的多样性。该算
适应度较大的个体作为一个类的优秀代表组成一个群,再在 法的思想是:首先两两比较群体中各个个体之间的距离,若这
种群中以及不同种群中之间杂交、变异产生新一代个体群。同 个距离在预先指定的距离L 之内的话,再比较两者之间的适
时采用预选择机制和排挤机制或分享机制完成任务。基于这 应度大小,并对其中适应度较低的个体施加一个较强的罚函
种小生境的遗传算法 (Niching Genetic Algorithms,NGAs) ,可 数,极大地降低其适应度。这样,对于在预先指定的某一个距
以更好地保持解的多样性,同时具有很高的全局寻优能力和 离L 之内的两个个体,其中较差的个体经处理后其适应度变
收敛速度,特别适合于复杂多峰函数的优化问题。常见的小生 得更差,它在后面的进化过程中被淘汰掉的概率就极大。也就
境遗传算法主要有适应值共享遗传算法、拥挤遗传算法、隔离 是说,在距离L 之内将只存在一个优良的个体,从而维护了群
小生境遗传算法等。在小生境遗传算法中,为了使个体能够在 体的多样性,又使得各个个体之间保持一定的距离,并使得个
整个约束空间分散开来,更好地维护种群的多样性,有学者提 体能够在整个约束空间分散开来。算法的步骤可描述如下:
出在传统的小生境遗传算法中引入罚函数的思想。本文从编 (1) 设置进化代数计数器t=1 ;随即生成M 个初始个体组
程角度出发,详细阐述如何使用MATLAB 语言实现该算法并 成初始群体P(t) ,并求出各个个体的适应度F (i=1,2,…,M)。
i
给出数值实验测试。 (
显示全部