免疫算法C代码

免疫算法C代码

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define LENGTH1 10
#define LENGTH2 10
#define CHROMLENGTH LENGTH1+LENGTH2
#define POPSIZE 300
int MaxGeneration =200;

struct individual
{
char chrom[CHROMLENGTH+1];
double value;//适应度
double affective;//亲和力
double concentration;//浓度
double activity;//激励度
};
int generation;
int best_index;
struct individual population[POPSIZE];
struct individual nextpopulation[POPSIZE];
struct individual array[POPSIZE];
struct individual A;
struct individual B;
struct individual bestindividual;
struct individual currentbest;

int PopSize =80;//全局变量
double umu =0.08;//全局变量
double r =0.001;//全局变量
double rad =0.3;
int clone_total =0;//全局变量
//*****************************************************************************
void GenerateInitialPopulation();
long DecodeChromosome(char *string,int point,int length);
void CalculateObjectValue(struct individual array[],int n);
void Calculateaffective(struct individual array[],int n);
void EvaluatePopulation();
void affectivesort(struct individual array[],int n);
void clonenum();
void MutationOperator(void);
void GenerateNextPopulation(void);
double CalculateSimilarity(struct individual A,struct individual B);
void Inhibition(void);
void chongzu();
void CalculateConcentrationValue(struct individual population[],int n);
void CalculateActivityValue(struct individual population[],int n);
void activeslect();
void sortnewmember();
void PerformEvolution();
void FindBestIndividual();
void OutputTextReport();
//******************************************************************************
void main()
{
generation=0;
GenerateInitialPopulation();
EvaluatePopulation();
while(generation<MaxGeneration)
{
generation++;
GenerateNextPopulation();
EvaluatePopulation();
PerformEvolution();
OutputTextReport();
}
}
//***********************************************************************************
void GenerateInitialPopulation()
{
int i,j;
for(i=0;i<PopSize ;i++)
{
for(j=0;j<CHROMLENGTH;j++)
{
population[i].chrom[j]=(rand()%10<5)?'0':'1';
}
population[i].chrom[CHROMLENGTH]='\0';
}
}
//*******************************************************************************
void GenerateNextPopulation(void)
{
affectivesort(population,PopSize);//排序选择亲和力高的进行克隆
clonenum();
MutationOperator();
Inhibition();
chongzu();
activeslect();
sortnewmember();
}
//********************************************************************************
void EvaluatePopulation(void)
{
CalculateObjectValue ( population,PopSize);
Calculateaffective

你可能喜欢

  • 智能优化算法
  • 人工免疫算法
  • 算法研究
  • C语言经典算法100例
  • 蚁群算法 matlab
  • 聚类分析
  • 无标度网络

免疫算法C代码相关文档

最新文档

返回顶部