本文找了两个遗传算法的例子,分别是求一元函数和二元函数的最大值,用MATLAB进行了实现,以下是具体过程:
(1)下载遗传算法需要的工具箱,Genegic Algorithm Toolbox(GA工具箱)。下载方法:在百度中输入关键字“Genegic Algorithm 官网”,然后点击第二个(Genegic Algorithm Toolbox)网页进入后,点击Download即下载完毕,下载后的文件后面有。
(2)批量修改GA工具箱的文件后缀名。由于下载的GA工具箱文件后缀都为.M,会导致后面用不了里面的函数,所以需要修改文件后缀为.m。修改方法:
把一个文件格式转化为另外一种格式普遍方法为:在文件列表中新建一个txt文档,在里面输入ren *.(原文件后缀) *.(将要改的后缀),然后把txt改为bat即可。在这里要将M文件改为m文件,需要先以jpg为铺垫,先把M改为jpg,再将jpg修改为m。具体方法如下:先新建一个txt文档。在里面输入ren *.M *.jpg,然后点击保存后修改该txt后缀为bat,点确定可以看到M文件全变为jpg文件。再新建一个txt文件,输入ren *.jpg *.m,然后点击保存后修改该txt后缀为bat,点确定可以看到jpg文件全变为m文件。
(3)添加工具箱到matlab中。先把工具箱文件夹gatbx复制到matlab安装路径下的toolbox文件夹中(也可以省略此步找到路径直接添加也可),然后在MATLAB中点击File-Set path-Add with Subfolders,找到gatbx文件夹的路径-save即可。
(4)检验工具箱添加是否成功。在MATLAB命令行输入help reins(可随意输入GA工具箱中任意的一个函数检验),出现该函数的用法说明等则表示添加成功,若没有添加成功会提示not found。,
(5)遗传算法一元函数MATLAB实现。
实例:用遗传算法求函数f(x)=x*cos(5*pi*x)+3.5在区间[-1,2.5]上的最大值。(注:pi表示π)
先在工作区建立上面函数的一个m文件输入以下代码并保存,保存M文件时默认为函数名命名,所以不需要修改文件名,同时注意M文件的保存路径要与当前的工作空间保持一致,不然在运行命令文件时会找不到该函数,导致出错。
function y=fun_sigv(x)
y=x.*cos(5*pi*x)+3.5;
然后在命令行输入以下代码运行即可:
opt_minmax=1; %目标优化类型:1最大化、0最小化
num_ppu=50; %种群规模即个体个数 初始种群的大小一般是20-100,这里选择的是50个
num_gen=60; %最大遗传代数
len_ch=20; %基因长