上传者: 39841882
|
上传时间: 2021-10-15 12:34:45
|
文件大小: 2.1MB
|
文件类型: -
matlab遗传算法gatbx工具箱-gatbx.rar
最近刚刚开始看遗传算法的例子,网上找了一个:
clc;clear all;close all;
%========画出函数图=======
figure;
lb=0;ub=9; %自变量x的取值范围[-2,2]
ezmesh 7*cos',[lb,ub]); %画出函数曲线
hold on;
%================定义遗传算法参数======
ps=10; %种群大小
mds=50; %最大遗传代数
gt=20; %个体长度
dg=0.95; %代沟
px=0.95; %交叉概率
pm=0.08; %变异概率
trace=zeros; %寻优结果的初始值
FD=[gt;lb;ub;1;0;1;1]; %区域描述器
Chrom=crtbp; %创建任意离散随机种群
%=========optimize====
gen=0; %代计数器
X=bs2rv; %初始种群的十进制转化
ObjV=X 10*sin 7*cos; %计算目标函数值
while gen FitnV=ranking; %分配适应度值
SelCh=select; %选择
SelCh=recombin; %重组
SelCh=mut; %变异
X=bs2rv; %子代个体的十进制转换
ObjVSel=X 10*sin 7*cos; %计算子代的目标函数值
[Chrom,ObjV]=reins;%重插入子代到父代,得到新种群
X=bs2rv;
gen=gen 1;
%获取每代的最优解及其序号,Y为最优解,I为个体序号
[Y,I]=max;
trace=X; %记下每代的最优值
trace=Y;
end
plot,trace,'bo');
grid on;
plot; %画出最后一代的种群
hold off;
%==========画进化图=====
figure;
plot);
grid on;
xlabel;
ylabel;
title;
bestY=trace;
bestX=trace;
fprintf,'\nY=',num2str,'\n']);
复制代码
这个不用工具箱是算不出来的。
我本来论坛里搜了一个,用的是gaot_ga工具箱(论坛里有),但是 crtbp.m这个函数总是出错。后来发现是这个工具箱里没有==
于是重新找了gatbx的工具箱,现在结果可以成功复制了,如图:
1.jpg
图1
2.jpg
图2
本来图2是跑不出来的,现在可以了。
gatbx 分享给大家
gatbx.rar