?? gendup.cpp
字號:
//頭文件: GenDup.hpp
//目的: 為沒有重復(fù)個(gè)體的穩(wěn)態(tài)再生遺傳算法提供基類,本類為GenSteady的派生類
//語言: VC++ 6.0
//時(shí)間: 1999年7月
//作者: 劉康
//環(huán)境: Win32
//注意: EvalVal(INIDIVIDUAL&)應(yīng)由用戶類覆蓋,以提供正確的評價(jià)函數(shù).
//////////////////////////////////////////////////////////////////////
#include "GenDup.hpp"
//重復(fù)個(gè)體檢查函數(shù)
bool GenDup::IndividualDup(INDIVIDUAL& ind)
{
bool dup = false;
int i = 0;
while(!dup && i<IndNumber)
{
if(ind.Chrom==Individual[i].Chrom) dup=true;
i++;
}
return dup;
}
//進(jìn)行一代再生
void GenDup::Generation()
{
CurrentChild = 0;
if(Elitism==ELITISM) GenElitism();
while(CurrentChild < ChildrenNum-1)
{
if(OperatorSelect()==1 || CurrentChild>=ChildrenNum-1)
GenMutation();
else
GenCross();
}
int chi = 0;
for(int i=0; i<ChildrenNum; i++)
{
if(!IndividualDup(Children[i]))
{
Individual[IndIndex[IndNumber-chi-1]].Chrom = Children[i].Chrom;
chi++;
}
}
Prepare();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -