📄 gawarehouse.cpp
字号:
// GAWarehouse.cpp: implementation of the CGAWarehouse class.
//
//////////////////////////////////////////////////////////////////////
#include "GAWarehouse.h"
#include "ProjectHead.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGAWarehouse::CGAWarehouse()
{
m_iNowSize=0;m_iWarehouseSize=0;
return;
}
/********************************************************/
/* WAREHOUSE INITIAL */
/* 基因库初始化函数 */
/*********************************************************/
void CGAWarehouse::Initial(int size1)
{
m_iWarehouseSize=size1;
m_lpGAUnite=(CGAUnite *)malloc(sizeof(CGAUnite)*size1);
if(m_lpGAUnite==NULL) {cout<<"内存分配失败!"<<endl;exit(0);}
return;
}
/********************************************************/
/* STATISTIC FUCATION */
/* 基因库统计函数 */
/*********************************************************/
void CGAWarehouse::Statistic()
{
int i;
double sum1;
sum1=0.0;
if(m_iNowSize!=0)
{ for(i=0;i<m_iNowSize;i++) sum1=sum1+m_lpGAUnite[i].m_dFitness;
m_dAverageFitness=sum1/(double)m_iNowSize; }
else
m_dAverageFitness=0.0;
return;
}
/********************************************************/
/* ADD INDIVIDUAL */
/* 基因库增加基因函数 */
/*********************************************************/
int CGAWarehouse::AddIndividual(CGAUnite pop1)
{ int i;
if(m_iNowSize<m_iWarehouseSize)
{
m_lpGAUnite[m_iNowSize]=pop1;
m_iNowSize++;
}
else
{
for(i=0;i<m_iWarehouseSize;i++)
{
if(pop1.m_dFitness>m_lpGAUnite[i].m_dFitness)
m_lpGAUnite[i]=pop1;
break;
}
}
return(1);
}
CGAWarehouse::~CGAWarehouse()
{
free(m_lpGAUnite);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -