資源簡(jiǎn)介
用遺傳算法開(kāi)發(fā)的一個(gè)求解非線性規(guī)劃的例子,罰函數(shù)限制可行域,非常實(shí)用,稍微修改就可用于別的例程。
代碼片段和文件信息
cputime=0;
tic
a2=0.4;
%定義遺傳算法
NIND=100;????????%個(gè)體數(shù)目(Number?of?individuals)
NVAR=2;?????????%變量數(shù)目
MAXGEN=50;??????%最大遺傳代數(shù)(Maximum?number?of?generations)
PRECI=20;???????%變量的二進(jìn)制位數(shù)(Precision?of?variables)
GGAP=0.8;???????%代溝(Generation?gap)
FieldD=[rep([PRECI][1NVAR]);[00;a250];rep([1;0;1;1][1NVAR])];%譯碼矩陣?rep:產(chǎn)生1*NVAR個(gè)PRECI
Chrom=crtbp(NIND?NVAR*PRECI);???%初始種群?0-1?染色體的數(shù)量*變量的個(gè)數(shù)
gen=0;???????????????????????????%迭代計(jì)數(shù)器
trace=zeros(2MAXGEN);???????????%遺傳算法性能跟蹤
x=bs2rv(Chrom?FieldD);?%計(jì)算初始種群的十進(jìn)制轉(zhuǎn)換???將CHROM轉(zhuǎn)換成為實(shí)值向量
ObjV=mygafun1(x);?%計(jì)算目標(biāo)函數(shù)值?
ObjV=ObjV‘;??
while?gen ??????FitnV=ranking(ObjV);?????????????????????????%分配適應(yīng)度值(Assign?fitness?values)?
??????%???按照個(gè)體的目標(biāo)值objv由小到大的順序?qū)λ鼈冞M(jìn)行排序,并返回一包含個(gè)體適應(yīng)度值的fitnv的列向量
??????SelCh=select(‘sus‘?Chrom?FitnV?GGAP);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1967??2010-06-15?20:08??gamin.m
?????文件????????711??2010-06-15?20:09??mygafun1.m
-----------?---------??----------?-----??----
?????????????????2678????????????????????2
評(píng)論
共有 條評(píng)論