资源简介

用遗传算法开发的一个求解非线性规划的例子,罚函数限制可行域,非常实用,稍微修改就可用于别的例程。

资源截图

代码片段和文件信息

cputime=0;
tic
a2=0.4;
%定义遗传算法
NIND=100;        %个体数目(Number of individuals)
NVAR=2;         %变量数目
MAXGEN=50;      %最大遗传代数(Maximum number of generations)
PRECI=20;       %变量的二进制位数(Precision of variables)
GGAP=0.8;       %代沟(Generation gap)
FieldD=[rep([PRECI][1NVAR]);[00;a250];rep([1;0;1;1][1NVAR])];%译码矩阵 rep:产生1*NVAR个PRECI
Chrom=crtbp(NIND NVAR*PRECI);   %初始种群 0-1 染色体的数量*变量的个数
gen=0;                           %迭代计数器
trace=zeros(2MAXGEN);           %遗传算法性能跟踪
x=bs2rv(Chrom FieldD); %计算初始种群的十进制转换   将CHROM转换成为实值向量
ObjV=mygafun1(x); %计算目标函数值 
ObjV=ObjV‘;  
while gen      FitnV=ranking(ObjV);                         %分配适应度值(Assign fitness values) 
      %   按照个体的目标值objv由小到大的顺序对它们进行排序,并返回一包含个体适应度值的fitnv的列向量
      SelCh=select(‘sus‘ Chrom FitnV GGAP);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1967  2010-06-15 20:08  gamin.m

     文件        711  2010-06-15 20:09  mygafun1.m

----------- ---------  ---------- -----  ----

                 2678                    2


评论

共有 条评论