遗传算法

一、遗传算法介绍

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

 

 

 

 

 

 

 

 

posted @ 2019-11-19 14:36  zzb1234  阅读(1294)  评论(0编辑  收藏  举报