遗传算法
一、遗传算法介绍
1.基本概述
遗传算法的基本思想是从初始种群出发,采用优胜劣汰、 适者生存的自然法则选择个体,并通过杂交、变异来产生新 一代种群,如此逐代进化,直到满足目标为止。
2. 特点
遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法的共同特征为:
① 首先组成一组候选解
② 依据某些适应性条件测算这些候选解的适应度
③ 根据适应度保留某些候选解,放弃其他候选解
④ 对保留的候选解进行某些操作,生成新的候选解。
在遗传算法中,上述几个特征以一种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它搜索算法区别开来。
3.基本流程
4.基本概念
遗传算法的基本思想是从初始种群出发,采用优胜劣汰、 适者生存的自然法则选择个体,并通过杂交、变异来产生新 一代种群,如此逐代进化,直到满足目标为止。
遗传算法所涉及到的基本概念主要有以下几个:
种群(Population)
种群是指用遗传算法求解问题时, 初始给定的多个解的集合。遗传算法的求解过程是从这个子集开始的。
个体(Individual)
个体是指种群中的单个元素,它通常 由一个用于描述其基本遗传结构的数据结构来表示。例如, 可以用0、1组成的长度为l的串来表示个体。
染色体(Chromosome)
染色体是指对个体进行编码后 所得到的编码串。染色体中的每1位称为基因,染色体上由 若干个基因构成的一个有效信息段称为基因组。
适应度(Fitness)函数
适应度函数是一种用来对种群中 各个个体的环境适应性进行度量的函数。其函数值是遗传 算法实现优胜劣汰的主要依据。
遗传操作(Genetic Operator)
遗传操作是指作用于种 群而产生新的种群的操作。标准的遗传操作包括以下3种基 本形式:
– 选择(Selection)
– 杂交(Crosssover)
– 变异(Mutation)
二、代码分析
GA.m
fun.m
Drawfunc.m
Rastrigin.m
Schaffer.m
function y=Schaffer(x)
[row,col]=size(x);
if row>1
error('输入的参数错误');
end
y1=x(1,1);
y2=x(1,2);
temp=y1^2+y2^2;
y=0.5-(sin(sqrt(temp))^2-0.5)/(1+0.001*temp)^2;
y=-y;
(这边这张截图不知为何一直上传不了,只好直接把代码贴上来)
三、实验结果分析
1)空间维度20,种群规模60
2)空间维度10,种群规模80
3)空间维度5,种群规模40
4)空间维度2,种群规模40