?? gendup.cpp
字號:
//頭文件: GenDup.hpp
//目的: 為沒有重復個體的穩態再生遺傳算法提供基類,本類為GenSteady的派生類
//語言: VC++ 6.0
//時間: 1999年7月
//作者: 劉康
//環境: Win32
//注意: EvalVal(INIDIVIDUAL&)應由用戶類覆蓋,以提供正確的評價函數.
//////////////////////////////////////////////////////////////////////
#include "GenDup.hpp"
//重復個體檢查函數
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;
}
//進行一代再生
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();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -