Sheffield遗传算法工具箱

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安装参考/kissrat/archive/2008/10/15/1311563.ht ml

安装:

1、解压gatbx-origin.zip,得到DOC和SRC文件夹;

2、拷贝SRC到Matlab安装目录下的toolbox文件夹中,并将SRC更名为gatbx;

3、打开toolbox\local\目录下的pathdef.m文件,在适当位置添加以下两行代码:(也可addpath)

Code in pathdef.mmatlabroot,'\toolbox\gatbx;',... matlabroot,'\toolbox\gatbx \TEST_FNS;',...

这样子就表示安装好了吧,哈哈。。

>> v=ver('gatbx')

v =

Name: 'Genetic Algorithm Toolbox'

Version: '1.2'

Release: ''

Date: '15-Apr-94'

Licenses: {'unknown'}

然而,事不尽人意,正准备好好研究下它的内置函数时,,

% 创建初始种群

clc;clear;

Nind=60; %种群个体数

Lind=30; %个体长度

[Chrom,Lind,BaseV]=CRTBP(Nind,Lind); %创建随机二进制矩阵

却报错了,错误如下。。。。

Cannot find an exact (case-sensitive)

match for 'CRTBP.m'

The closest match is E:\my programming

software\matlab\matlab

2012a\toolbox\gatbx\CRTBP.M

To change the file extension, cd to the

file's folder, type:

movefile CRTBP.M CRTBP.m_bad;

movefile CRTBP.m_bad CRTBP.m

and then cd back.

Error in sheffield (line 10)

[Chrom,Lind,BaseV]=CRTBP(Nind,Lind);

%创建随机二进制矩阵

上网找了一个解决方法。。

/thread-277326-1-1.html

但,仍然出错,,继续找解决方法

/matlabcentral/answers/89490-cannot-find-an-exact -case-sensitive-match

/help/matlab/matlab_env/toolbox-path-caching-in-t he-matlab-program.html

(⊙o⊙)嗯,原来清空路径缓存就可以啦,开心!(英语还是蛮有用的,以后要好好学,O(∩_∩)O哈哈~)

好啦,弄了一上午,终于可以开启我的遗传算法之旅了!

之前,遗传算法都是自己一点点摸索一点点写的,但是,很不幸,解决问题的效果不好。这就是在打击我的自信心嘛,(⊙o⊙)…所以,决定换个思路,,

这几天整理知识,看了《Matlab智能算法30个案例分析》这本书,嗯,为了更好的解决问题,还是学学著名的Sheffield遗传算法工具箱啦。。

这篇博文整理得还不错/zhengnanlee/p/3439649.html

1.创建种群

crtbase:创建基向量

crtbp:创建任意离散随机种群

crtrp:创建实质初始种群

2.适应度计算

ranking:基于排序的适应度分配

scaling:比率适应度计算

3.选择函数

rws:轮盘选择

sus:随机遍历采样

select:高级选择例程

4.交叉算子

recdis:离散重组

recint:中间重组

recline:线性重组

recmut:具有变异特征的线性重组

xovdp:两点交叉算子

xovdprs:减少代理的两点交

xovmp:通常多点交叉

xovsh:洗牌交叉

xovshrs:减少代理的洗牌交叉

xovsp:单点交叉

xovsprs:减少代理的单点交叉

recombin:高级重组算子

5.变异算子

mut:离散变异

mutate:高级变异函数

mutbga:实值变异

6.重插入

reins:一致随机和基于适应度的重插入7.子种群的支持

migrate:在子种群间交换个体

8.实用函数

bs2rv:二进制串到实值的转换

rep:矩阵的复制

遇到了一个区域描述器的概念,有点棘手。。

某一元函数优化

FieldD=[PRECI;lb;ub;1;0;1;1]; %区域描述器某二元函数优化

FieldD=[PRECI PRECI;lbx lby;ubx uby;11;00;11;11]; %区域描述器

X=bs2rv(Chrom,FieldD);

区域描述器行数必须为7

len; (num)

lb; (num)

ub; (num)

code; (0=binary | 1=gray)

scale; (0=arithmetic | 1=logarithmic)

lbin; (0=excluded | 1=included)

ubin]; (0=excluded | 1=included)

len是包含在Chrom中的每个子串的长度,注意sum(len)=length(Chrom);

lb、ub是行向量,分别指明每个变量使用的上界和下界;

code是二进制行向量,指明子串是怎样编码的,code(i)=1为标准二进制编码,code(i) =0则为格雷编码

scale是二进制行向量,指明每个子串是否使用对数或算术刻度,scale(i)=0为算术刻度,scale(i)=1则为对数刻度;

lbin、ubin是二进制行向量,指明表示范围中是否包含每个边界,选择lbin=0或ubin= 0,表示从范围中去掉边界;lbin=1或ubin=1则表示范

围中包含边界。

相关文档
最新文档