資源簡介
用遺傳算法開發的一個求解非線性規劃的例子,罰函數限制可行域,非常實用,稍微修改就可用于別的例程。
代碼片段和文件信息
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
評論
共有 條評論