我自己的遗传算法工具箱

源代码在线查看: 使用说明.txt

软件大小: 9 K
上传用户: zhoujun008
关键词: 算法 工具箱
下载地址: 免注册下载 普通下载 VIP

相关代码

				SGA(Simple Genetic Algorithm)是一种强大的智能多变量优化算法,它模仿种群繁殖规律来进行
				优化。
				本SGA可以优化变量,求最小值,最大值(当把函数倒数也就求最小值啦)
				并且支持浮点编码,grey编码,二进制编码;轮赌法选择,锦标赛选择;单点交叉,均布交叉,浮点交叉;
				单点变异,浮点变异;
				调用时
				Genetic(目标函数名)
				
				
				使用环境:MATLAB6.5+ToolBox
				使用SGA时,
				首先需要一个目标函数(像AimFunc.m),该函数返回适应度
				输入变量为待优化变量x
				输出为一个适应度。
				
				
				
				然后
				修改Genetic.m中可以修改的地方
				例一
				maxgen=200;                         % 进化代数,即迭代次数
				sizepop=100;                        % 种群规模
				AimFunc=StrAimFunc;                 % 计算适应度的函数,本算法以目标函数值为适应度
				fselect='tournament';               % 染色体的选择方法,您可以选择:锦标赛法- 'tournament';轮盘                                      % 赌法-'roulette'
				fcode='float';                      % 编码方法,您可以选择:浮点法-'float';grey法则--'grey';二                                     % 进制法-'binary' 
				pcross=[0.6];                       % 交叉概率选择,0和1之间
				fcross='float';                     % 交叉方法选择,您可以选择: 浮点交叉-'float';单点交叉                                           % -'simple';均匀交叉-'uniform'
				pmutation=[0.2];                    % 变异概率选择,0和1之间
				fmutation='float';                  % 变异方法选择,您可以选择:浮点法-'float';单点法-'simple';
				
				lenchrom=[1 1 1 1 1];               % 每个变量的字串长度,如果是浮点变量,则长度都为1
				bound=[0 1;...                      % 每个变量的取值范围
				        0 1;...
				        0 1;...
				        0 1;...
				        0 1];                       
				
				选择了浮点编码,tournament选择,浮点交叉,浮点变异。
				注:采用浮点编码时,以后的交叉,变异只能是浮点,且lenchrom向量中都为1,向量长度为待优化变量个数。
				bound为各个变量的范围
				
				
				例二
				maxgen=200;                         % 进化代数,即迭代次数
				sizepop=100;                        % 种群规模
				AimFunc=StrAimFunc;                 % 计算适应度的函数,本算法以目标函数值为适应度
				fselect='tournament';               % 染色体的选择方法,您可以选择:锦标赛法- 'tournament';轮盘                                      % 赌法-'roulette'
				fcode='binary';                     % 编码方法,您可以选择:浮点法-'float';grey法则--'grey';二                                     % 进制法-'binary' 
				pcross=[0.6];                       % 交叉概率选择,0和1之间
				fcross='uniform';                   % 交叉方法选择,您可以选择: 浮点交叉-'float';单点交叉                                           % -'simple';均匀交叉-'uniform'
				pmutation=[0.2];                    % 变异概率选择,0和1之间
				fmutation='simple';                 % 变异方法选择,您可以选择:浮点法-'float';单点法-'simple';
				
				lenchrom=[10 10 10 10 10];          % 每个变量的字串长度,如果是浮点变量,则长度都为1
				bound=[0 1;...                      % 每个变量的取值范围
				        0 1;...
				        0 1;...
				        0 1;...
				        0 1];
				选择了二进制编码,tournament选择,均布交叉,单点变异。
				注:采用二进制编码和grey编码时,交叉方法只能是simple,uniform,变异方法只能是simple
				lenchrom向量中表示变量表示成二进制的位数。
				
				例三
				maxgen=200;                         % 进化代数,即迭代次数
				sizepop=100;                        % 种群规模
				AimFunc=StrAimFunc;                 % 计算适应度的函数,本算法以目标函数值为适应度
				fselect='roulette';                 % 染色体的选择方法,您可以选择:锦标赛法- 'tournament';轮盘                                      % 赌法-'roulette'
				fcode='grey';                       % 编码方法,您可以选择:浮点法-'float';grey法则--'grey';二                                     % 进制法-'binary' 
				pcross=[0.6];                       % 交叉概率选择,0和1之间
				fcross='uniform';                   % 交叉方法选择,您可以选择: 浮点交叉-'float';单点交叉                                           % -'simple';均匀交叉-'uniform'
				pmutation=[0.2];                    % 变异概率选择,0和1之间
				fmutation='simple';                 % 变异方法选择,您可以选择:浮点法-'float';单点法-'simple';
				
				lenchrom=[10 10 10 10 10];          % 每个变量的字串长度,如果是浮点变量,则长度都为1
				bound=[0 1;...                      % 每个变量的取值范围
				        0 1;...
				        0 1;...
				        0 1;...
				        0 1];
				选择了grey编码,roulette选择,均布交叉,单点变异。
				
							

相关资源