遗传算法-由MATLAB程序设计语言编写
文件大小: 84k
源码售价: 10 个金币 积分规则     积分充值
资源说明:本遗传算法由12个M文件组成,其中Genetic.m包含了主函数,其余文件均为包含子函数的文件,由主函数调用。下面对包含子函数的文件进行一一说明。 function Population = PopulationInitialize( MemberLength,MemberNumber ) 此函数返回一群二进制编码的初始染色体(MemberNumber* MemberLength的矩阵,不同的行代表不同的染色体),参数MemberNumber, MemberLength分别指定了染色体的数目和每个染色体的长度。 function PopulationFitness = Fitness( PopulationCode,FunctionFitness,MinX,MaxX,MemberLength ) 此函数返回每个染色体的适应值, 参数PopulationCode包含了染色体群体,参数FunctionFitness指定了计算适应度的函数(也即目标函数), 为一字符串,MinX,MaxX两个参数指定了自变量的区间,MemberLength依然是染色体长度。 function PopulationData = Translate( PopulationCode,MinX,MaxX,MemberLength ) 此函数是Fitness的子函数,用来计算二进制编码的染色体所对应的十进制数。 function PopulationFitness = Transfer( PopulationCode,,FunctionFitnessMinX,MaxX,MemberLength ) 此函数是Fitness的子函数,计算在自变量去某个值时的目标函数值。 function PopulationFitnessF = FitnessF( PopulationFitness,Fmin ) 此函数根据每个染色体的目标函数值,计算其适应值。 function PopulationProbability = Probability( PopulationFitness ) 此函数根据染色体的适应值,计算染色体的生存概率。 function [ NewPopulationIncludeMax,CurrentBest,EachGenMaxFitness ] = Elitist( Population,PopulationFitness,MemberLength ) 此函数根据“适者生存”的原则,淘汰不适者,然后更新染色体群。 function NewPopulation = Mutation( Population,MutationProbability ) 此函数根据变异概率,是染色体发生变异,把变异后的染色体群作为新的染色体群。 function NewPopulation = Select( Population,PopulationProbability,MemberNumber ) 此函数起着“择优保留”的作用。 function NewPopulation = Crossing( Population,FunctionFitness,MinX,MaxX,MemberLength ) 此函数完成染色体交叉互换的过程。 在CommandWindow中输入命令: >>[ Count,Result,BestMember ] = Genetic( 22,6,'sin(x)',-1,2,-2,0.01,50 ).参数含义如下: 染色体群体一共有6个,每个染色体长度为22,目标函数为sin(x),搜索区间为[-1,2],Fmin=-2,变异概率为0.01,遗传代数为40。 返回值含义如下: 遗传代数50代,在遗传到第50代时,自变量为1.5502,目标函数值为 0.9998.
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。