资源简介
实数编码的单目标遗传算法程序,含不等式约束的处理,对于初学者提供很好地范例
代码片段和文件信息
function gaDat=ga(g)
%
% Basic Genetic Algorithm
%
% gaDat=ga(gaDat)
% gaDat : Data structure used by the algorithm.
%
% Data structure:
% Parameters that have to be defined by user
% gaDat.FieldD=[lb; ub]; % lower (lb) and upper (up) bounds of the search space.
% % each dimension of the search space requires bounds
% gaDat.Objfun=‘costFunction‘; % Name of the 0bjective function to be minimize
%
% Parameters that could be defined by user in other case there is a default value
% gaDat.MAXGEN={gaDat.NVAR*20+10}; % Number of generation gaDat.NVAR*20+10 by default
% gaDat.NIND={gaDat.NVAR*50} ; % Size of the population gaDat.NVAR*50 by default
% gaDat.alfa={0}; % Parameter for linear crossover 0 by default
% gaDat.Pc={0.9}; % Crossover probability 0.9 by default
% gaDat.Pm={0.1}; % Mutation probability 0.1 by default
% gaDat.ObjfunPar={[]}; % Additional parameters of the objective function
% % have to be packed in a structure empty by default
% gaDat.indini={[]}; % Initialized members of the initial population empty
% % by default
%
% Grupo de Control Predictivo y Optimizaci髇 - CPOH
% Universitat Polit鑓nica de Val鑞cia.
% http://cpoh.upv.es
% (c) CPOH 1995 - 2012
if nargin==1
gaDat=g;
else
error(‘It is necessary to pass a data structure: gaDat.FieldD and gaDat.Objfun‘)
end
% If the parameter doesn‘t exist in the data structure it is created with the default value
if ~isfield(gaDat‘NVAR‘)
gaDat.NVAR=size(gaDat.FieldD2);
end
if ~isfield(gaDat‘MAXGEN‘)
% gaDat.MAXGEN=gaDat.NVAR*20+10;
gaDat.MAXGEN= 1000;
end
if ~isfield(gaDat‘NIND‘)
% gaDat.NIND=gaDat.NVAR*50;
gaDat.NIND= 100;
end
if ~isfield(gaDat‘alfa‘)
gaDat.alfa=0;
end
if ~isfield(gaDat‘Pc‘)
gaDat.Pc=0.9;
end
if ~isfield(gaDat‘Pm‘)
gaDat.Pm=0.1;
end
if ~isfield(gaDat‘ObjfunPar‘)
gaDat.ObjfunPar=[];
end
if ~isfield(gaDat‘indini‘)
gaDat.indini=[];
end
gaDat.MAXGEN = 2000;
gaDat.NIND = 100;
% Internal parameters
gaDat.Chrom=[];
gaDat.ObjV=[];
gaDat.xmin=[];
gaDat.fxmin=inf;
gaDat.xmingen=[];
gaDat.fxmingen=[];
gaDat.rf=(1:gaDat.NIND)‘;
gaDat.gen=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Main loop
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Generation counter
gen=0;
% Initial population ---------------------------------------
gaDat.Chrom=crtrp(gaDat.NINDgaDat.FieldD); % Real codification
% Individuals of gaDat.indini are randomly added in the initial population
if not(isempty(gaDat.indini))
nind0=size(gaDat.indini1);
posicion0=ceil(rand(1nind0)*gaDat.NIND);
gaDat.Chrom(posicion0:)=gaDat.indini;
end
while (gaDat.gen gaDat.gen=gen;
gaDat=gaevolucion(gaDat);
% Increase generation counter ------------------
gaDat.xmingen(gen+1:)=gaDat.xmin;
gaDat.fxmingen(gen+1:)=gaDat.fxmin;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14617 2013-12-22 12:46 单目标优化\ga.m
文件 257 2013-04-25 10:44 单目标优化\gaExample_4.m
文件 370 2012-11-10 03:08 单目标优化\gaiteration.m
文件 363 2012-11-10 18:12 单目标优化\garesults.m
文件 754 2013-04-25 10:57 单目标优化\objfun_example4.m
目录 0 2013-12-22 12:41 单目标优化\
相关资源
- 原子分解算法Atomizer
- 室内定位RSS位置指纹法-KNN代码与数据
- 利用联合对角化技术进行信号盲分离
- 直流无刷电机双闭环控制系统仿真模
- 郑州大学随机信号处理大作业 附程序
- 气候分析中检验突变程序(滑动t检验
- 双馈风电机组DFIG的详细仿真模型
- 基于LIBSVM的图像分类
- 转子动力学求解转子系统前三个临界
- 图片颜色互相转换:RGB HSV CIE Lab CIE
- 卡尔曼滤波动态跟踪.rar
-
em
bedded Coder Support Package for Texas In - 直流微电网模型含蓄电池控制.zip
- 搭建双向DC-DC双电路,实现直流微网并
- CORDIC的资源
- MATLAB夜间车牌识别程序
- PSO_final 光伏阵列MPPT
- servo_foc
-
simuli
nk 利用Matlab/simuli nk搭建纯电 - 基于H桥级联型五电平逆变器的Matlab仿
- 自动泊车
- 轴承动力学建模matlab
- 晶粒再结晶的元胞自动机模拟
- 自己开发的风资源分析工具包WindAna
- 基于分数阶傅里叶变换的双随机图像
- InSAR_Mt_Etna仿真代码
- 基于遗传算法优化的BP神经网络
- 交互式多模型 IMMCA/CV混合及代码实现
- HEVC-SCC中使用IBC的CU分布
- 蒙特卡罗-无信息变量消除 特征提取
评论
共有 条评论