⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用说明.txt

📁 我自己的遗传算法工具箱
💻 TXT
字号:
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选择,均布交叉,单点变异。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -