?? genvacuum.hpp
字號(hào):
//頭文件: MLeader.hpp
//目的: 多首領(lǐng)遺傳算法類(lèi),本類(lèi)用自定義小生境技術(shù),總個(gè)體適合度
// 計(jì)算綜合考慮個(gè)體適合度值以及個(gè)體間距離影響,即每代個(gè)體
// 總適合度按如下方式計(jì)算:設(shè)Fit(i)為原個(gè)體適合度,F(xiàn)itN(i)
// 為新個(gè)體適合度,則新個(gè)體適合度如下:
// FitN(0)=Fit(0)
// FitN(i)=max(FitN(i-1)-1/(Fit(k)*D(k))) k=i,i+1,...,n
// D(k)=d(k,0)+d(k,1)+...+d(k,i-1)
// 式中:D(k)--個(gè)體k與前i-1個(gè)個(gè)體距離和
// d(k,m)--個(gè)體k與個(gè)體m的距離函數(shù),表征個(gè)體間相似性
// 按上述方式計(jì)算個(gè)體適合度的目的在于使相似個(gè)體的適合度只
// 有一個(gè)能取較大值,這樣保證最終適合度高的個(gè)體之間的相似
// 性較小,從而避免匯聚的發(fā)生
//語(yǔ)言: VC++ 6.0
//時(shí)間: 2001年3月
//作者: 劉康
//環(huán)境: Win32
//注意: EvalVal(INIDIVIDUAL&)應(yīng)由用戶(hù)類(lèi)覆蓋,以提供正確的評(píng)價(jià)函數(shù).
//////////////////////////////////////////////////////////////////////
#ifndef __GENVACUUM_HPP
#define __GENVACUUM_HPP
#include "genetic.hpp"
#include "genvacuum.hpp"
class GenVacuum : public Genetic
{
protected:
double DisThrd; //距離門(mén)檻值
//個(gè)體間距離函數(shù),如果需要應(yīng)被重載
virtual double Distance(INDIVIDUAL&,INDIVIDUAL&);
//重載總適合度計(jì)算函數(shù)
virtual void CalFitIndex();
public:
//構(gòu)造函數(shù)
GenVacuum():Genetic(){DisThrd=0;};
GenVacuum(int n,int gl):Genetic(n,gl){DisThrd=0;};
GenVacuum(GenVacuum&g):Genetic(g){DisThrd=0;};
//設(shè)置距離門(mén)檻值
void SetDisThrd(double t){DisThrd=t;};
};
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -