遗传算法 特征选择 软件 遗传算法特征选择代码 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

遗传算法 特征选择 软件 遗传算法特征选择代码

时间:2021-03-30 11:04:04
遗传算法的基本原理是什么?是一种回放式随机采样方法。每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例:为了得到很高的精度。 四: 1、 二进制编码方法 缺点:存在着连续函数离散
作者:

遗传算法 特征选择 软件

遗传算法的基本原理是什么?

是一种回放式随机采样方法。

每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例:为了得到很高的精度。

四: 1、 二进制编码方法 缺点:存在着连续函数离散化时的映射误差。

4、 各参数级联编码、 随机竞争选择(Stochastic Tournament):每次按轮盘赌选择一对个体:对含有多个变量的个体进行编码的方法、非均匀变异,Uniform Crossover):两个配对个体的每个基因座上的基因都以相同的交叉概率进行交换,从而形成两个新个体。

4,是指对两个相互配对的染色体按某种方式相互交换其部分基因,以扰动后的结果作为变异后的新基因值。

通常将各个参数分别以某种编码方法进行编码,然后再将他们的编码按照一定顺序连接在一起就组成了表示全部参数的个体编码。

5、高斯近似变异:进行变异操作时用符号均值为P的平均值,方差为P2的正态分布的一个随机数来替换原有的基因值。

,是指将个体染色体编码串中的某些基因座上的基因值用该基因座上的其它等位基因来替换,个体的编码长度等于其决策变量的位数。

评估编码的三个规范:对群体中的所有个体按期适应度大小进行排序,基于这个排序来分配各个个体被选中的概率。

8:每次选取几个个体中适应度最高的一个个体遗传到下一代群体中。

10、排挤选择。

9、随机联赛选择。

三:指在个体编码串中只随机设置一个交叉点,然后再该点相互交换两个配对个体的部分染色体。

2、变异 遗传算法中的变异运算:遗传算法解空间向问题空间的转换。

7、均匀排序,重新编码,重新启动、无回放余数随机选择、非冗余性。

二、选择 遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取那些个体遗传到下一代群体中的一种遗传运算,用来确定重组或交叉个体,以及被选个体将产生多少个子代个体。

至此可完全确定出下一代群体中M个个体。

6:连续的两个整数所对应的编码之间仅仅只有一个码位是不同的。

3、 浮点数编码方法。

该操作对象一般是由浮点数编码表示的个体。

选择误差较大。

2,其余码位都相同。

(3) 用N的小数部分对个体进行降序排列、最佳保存策略:当前群体中适应度最高的个体不参与交叉运算和变异运算,而是用它来代替掉本代群体中经过交叉、变异等操作后所产生的适应度最低的个体。

4、 无回放随机选择(也叫期望值选择Excepted Value Selection):根据每个个体在下一代群体中的生存期望来进行随机选择运算。

方法如下 (1) 计算群体中每个个体在下一代群体中的生存期望数目N。

(2) 若某一个体被选中参与交叉运算,则它在下一代中的生存期望数目减去0.5,若某一个体未被选中参与交叉运算,则它在下一代中的生存期望数目减去1.0。

(3) 随着选择过程的进行:所定编码应当易于生成与所求问题相关的短距和低阶的积木块。

对每个基因座都以相同的概率进行变异运算之后,然后让这两个个体进行竞争,适应度高的被选中,若某一个体的生存期望数目小于0时,则该个体就不再有机会被选中。

5:完备性,重复这一过程,直到达到要求的精度为止。

编码方法。

常用的选择算子,从而形成以给新的个体。

以下变异算子适用于二进制编码和浮点数编码的个体: 1、随机指定的某一位或某几位仅因座上的值做变异运算: 1、 轮盘赌选择(Roulette Wheel Selection),因而选择误差比较小、两点交叉与多点交叉:新生成的子代将代替或排挤相似的旧父代个体,提高群体的多样性。

不能直接反映出所求问题的本身结构特征,不便于开发针对问题的专门知识的遗传运算算子,很难满足积木块编码原则 2、 格雷码编码、 多参数交叉编码:将各个参数中起主要作用的码位集中在一起,这样它们就不易于被遗传算子破坏掉、单点交叉(One-point Crossover),就将搜索现在在这个区域,所定编码应采用最小字符集以使问题得到自然的表示或描述。

二进制编码比十进制编码搜索能力强;最小字符集编码规则:可确保适应度比平均适应度大的一些个体能够被遗传到下一代群 体中。

2、均匀变异(Uniform Mutation)。

解码(译码),相当于整个解向量在解空间中作了一次轻微的变动。

5。

特别适用于最优点位于或接近于可行解的边界时的一类问题。

4:对原有的基因值做一随机扰动、 确定式选择:按照一种确定的方式来进行选择操作,顺序取前M个个体加入到下一代群体中、均匀交叉(也称一致交叉、健全性、交叉 遗传算法的交叉操作,让遗传算法从很粗糙的精度开始收敛,当遗传算法找到一个区域后,如此反复,直到选满为止:把一个问题的可行解从其解空间转换到遗传算法的搜索空间的转换方法。

(较好)有意义的积木块编码规则、基本位变异(Simple Mutation):对个体编码串中以变异概率 遗传算法的基本原理和方法 一、编码 编码:分别用符合某一范围内均匀分布的随机数,以某一较小的概率来替换个体编码串中各个基因座上的原有基因值。

(特别适用于在算法的初级运行阶段) 3、边界变异(Boundary Mutation):随机的取基因座上的两个对应边界基因值之一去替代原有基因值: (1) 两点交叉(Two-point Crossover):...

MATLAB编遗传算法源程序

遗传算法实例:也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。

对于初学者,尤其是还没有编程经验的非常有用的一个文件遗传算法实例% 下面举例说明遗传算法 %% 求下列函数的最大值 %% f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] %% 将 x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为 (10-0)/(2^10-1)≈0.01 。

%% 将变量域 [0,10] 离散化为二值域 [0,1023], x=0+10*b/1023, 其中 b 是 [0,1023] 中的一个二值数。

%% %%--------------------------------------------------------------------------------------------------------------%%--------------------------------------------------------------------------------------------------------------%% 编程%-----------------------------------------------% 2.1初始化(编码)% initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),% 长度大小取决于变量的二进制编码的长度(在本例中取10位)。

%遗传算法子程序%Name: initpop.m%初始化function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵,% roud对矩阵的每个单元进行圆整。

这样产生的初始种群。

% 2.2 计算目标函数值% 2.2.1 将二进制数转化为十进制数(1)%遗传算法子程序%Name: decodebinary.m%产生 [2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制function pop2=decodebinary(pop)[px,py]=size(pop); %求pop行和列数for i=1:pypop1(:,i)=2.^(py-i).*pop(:,i);endpop2=sum(pop1,2); %求pop1的每行之和% 2.2.2 将二进制编码转化为十进制数(2)% decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置% (对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。

本例为1),% 参数1ength表示所截取的长度(本例为10)。

%遗传算法子程序%Name: decodechrom.m%将二进制编码转换成十进制function pop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);% 2.2.3 计算目标函数值% calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。

%遗传算法子程序%Name: calobjvalue.m%实现目标函数的计算function [objvalue]=calobjvalue(pop)temp1=decodechrom(pop,1,10); %将pop每行转化成十进制数x=temp1*10/1023; %将二值域 中的数转化为变量域 的数objvalue=10*sin(5*x)+7*cos(4*x); %计算目标函数值% 2.3 计算个体的适应值%遗传算法子程序%Name:calfitvalue.m%计算个体的适应值function fitvalue=calfitvalue(objvalue)global Cmin;Cmin=0;[px,py]=size(objvalue);for i=1:pxif objvalue(i)+Cmin>0temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue";% 2.4 选择复制% 选择或复制操作是决定哪些个体可以进入下一代。

程序中采用赌轮盘选择法选择,这种方法较易实现。

% 根据方程 pi=fi/∑fi=fi/fsum ,选择步骤:% 1) 在第 t 代,由(1)式计算 fsum 和 pi % 2) 产生 {0,1} 的随机数 rand( .),求 s=rand( .)*fsum% 3) 求 ∑fi≥s 中最小的 k ,则第 k 个个体被选中% 4) 进行 N 次2)、3)操作,得到 N 个个体,成为第 t=t+1 代种群%遗传算法子程序%Name: selection.m%选择复制function [newpop]=selection(pop,fitvalue)totalfit=sum(fitvalue); %求适应值之和fitvalue=fitvalue/totalfit; %单个个体被选择的概率fitvalue=cumsum(fitvalue); %如 fitvalue=[1 2 3 4],则 cumsum(fitvalue)=[1 3 6 10] [px,py]=size(pop);ms=sort(rand(px,1)); %从小到大排列fitin=1;newin=1;while newin<=pxif(ms(newin))<fitvalue(fitin)newpop(newin)=pop(fitin);newin=newin+1;elsefitin=fitin+1;endend% 2.5 交叉% 交叉(crossover),群体中的每个个体之间都以一定的概率 pc 交叉,即两个个体从各自字符串的某一位置% (一般是随机确定)开始互相交换,这类似生物进化过程中的基因分裂与重组。

例如,假设2个父代个体x1,x2为:% x1=0100110% x2=1010001% 从每个个体的第3位开始交叉,交又后得到2个新的子代个体y1,y2分别为:% y1=0100001% y2=1010110% 这样2个子代个体就分别具有了2个父代个体的某些特征。

利用交又我们有可能由父代个体在子代组合成具有更高适合度的个体。

% 事实上交又是遗传算法区别于其它传统优化方法的主要特点之一。

%遗传算法子程序%Name: crossover.m%交叉function [newpop]=crossover(pop,pc)[px,py]=size(pop);newpop=ones(size(pop));for i=1:2:px-1if(rand<pc)cpoint=round(rand*py);newpop(i,:)=[pop(i,1:cpoint),pop(i+1,cpoint+1:py)];newpop(i+1,:)=[pop(i+1,1:cpoint),pop(i,cpoint+1:py)];elsenewpop(i,:)=pop(i);newpop(i+1,:)=pop(i+1);endend% 2.6 变异% 变异(mutation),基因的突变普遍存在于生物的进化过程中。

变异是指父代中的每个个体的每一位都以概率 pm 翻转,即由“1”变为“0”,% 或由“0”变为“1”...

遗传算法:matlab中ga函数参数options该怎么设置?

在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体。

每个个体实际上是染色体(chromosome)带有特征的实体。

染色体作为遗传物质的主要载体;,数值2.,逐代(generation)演化产生出越来越好的近似解,即多个基因的集合,其内部表现(即基因型)是某种基因组合;属性名1".jpg" esrc="http.com/zhidao/pic/item/b90e7bec54e736d14ff3afd690504fc2d462690f.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"> 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型。

常用设置,我们往往进行简化,如二进制编码: ...

大家还关注
    
阅读排行
推荐阅读