-
大小: 648KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-03
- 語言: 其他
- 標(biāo)簽: Rosenbrock??函數(shù)??源程序??
資源簡介
Rosenbrock函數(shù)的最大值實驗報告源程序

代碼片段和文件信息
#include?
#include?
#include?
/*?常量定義?*/
#define????????POPSIZE????????500????????????//群體大小
#define????????MAXIMIZATION????1????????//最大標(biāo)志,尋找最大解
#define????????MINIMIZATION????2????????//最小標(biāo)志,尋找最小解
/*?數(shù)據(jù)定義?(對于不同的問題,可能會有少許差別)?*/
#define?Cmax????????100????????????????//確定的最大值
#define?Cmin????????0????????????????//確定的最小值
#define????LENGTH1????????10????????????????//第一個染色體長度?
#define?LENGTH2????????10????????????????//第二個染色體長度
#define?CHROMLENGTH?LENGTH1+LENGTH2????//染色體總長度
int?FunctionMode????=????MAXIMIZATION;????//求解最優(yōu)值類型:最大?最小
int?PopSize????????????=????80;????????????????//群體規(guī)模M
int?MaxGeneration????=????200;????????????//最大代數(shù)
double?Pc????????????=????0.6;????????????//交叉概率
double?Pm????????????=????0.001;????????????//變異概率
/*?數(shù)據(jù)結(jié)構(gòu)定義?*/
struct?individual????????????????????????//個體數(shù)據(jù)結(jié)構(gòu)
{
????char????chrom[CHROMLENGTH+1];????????//個體的基因型,用字符串表示
????double????value;????????????????????????//個體的目標(biāo)值
????double??fitness;????????????????????//個體的適應(yīng)度
};
/*?全局變量定義?*/
int????????generation;????????????????????????//代數(shù)
int????????best_index;????????????????????????//最優(yōu)個體的索引
int????????worst_index;????????????????????//最壞個體的索引
struct????individual????bestindividual;????????//當(dāng)代最優(yōu)個體
struct????individual????worstindividual;????//當(dāng)代最壞個體
struct????individual????currentbest;????????//迄今為止,最好的個體
struct????individual????population[POPSIZE];//群體
/*?函數(shù)原型聲明?*/
void?GenerateInitialPopulation(void);
void?GenerateNextPopulation(void);
void?EvaluatePopulation(void);
long?DecodeChromosome(char?*intint);
void?CalculateFitnessValue(void);
void?CalculateobjectValue(void);
void?FindBestAndWorstIndividual(void);
void?PerformEvolution(void);
void?SelectionOperator(void);
void?CrossoverOperator(void);
void?MutationOperator(void);
void?OutputTextReport(void);
/*主程序?*/
void?main(void)
{
????generation?=0;
????GenerateInitialPopulation();
????EvaluatePopulation();
????while(generation ????{
????????generation++;
????????GenerateNextPopulation();
????????EvaluatePopulation();
????????PerformEvolution();
????????OutputTextReport();
????}
}
/*?函數(shù):產(chǎn)生第一代個體??????參數(shù):void?*/
void?GenerateInitialPopulation(void)
{
????int?ij;
????srand(time(NULL));
????for(i=0;i ????{
????????for(j=0;j ????????{
????????????population[i].chrom[j]=(rand()%10<5)?‘0‘:‘1‘;
????????}
????????population[i].chrom[CHROMLENGTH]=0;
????}
}
/*函數(shù):初始化第一代個體?????參數(shù):void*/
void?GenerateNextPopulation(void)
{
????SelectionOperator();
????CrossoverOperator();
????MutationOperator();
}
/*函數(shù):通過特定的方程式評估群體?????
參數(shù):void*/
void?EvaluatePopulation(void)
{
????CalculateobjectValue();????????
????CalculateFitnessValue();
????FindBestAndWorstIndividual();
}
/*
函數(shù):將染色體的基因型解碼成表現(xiàn)型
參數(shù):void
備注:返回值可能是正、或負(fù)。對于不同的解碼方法,這個值也可能是“unsigned?int”
*/
long????DecodeChromosome(char?*stringint?pointint?length)
{
????int?i;
????long?decimal=0L
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????618496??2009-08-31?20:17??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值).doc
?????文件???????8501??2009-06-22?16:34??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\rosenbrock.c
?????文件???????3447??2009-06-22?15:02??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\rosenbrock.dsp
?????文件????????545??2009-06-22?16:38??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\rosenbrock.dsw
?????文件??????33792??2009-06-22?16:38??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\rosenbrock.ncb
?????文件??????48640??2009-06-22?16:38??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\rosenbrock.opt
?????文件????????768??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\rosenbrock.plg
?????文件?????208970??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\rosenbrock.exe
?????文件?????215324??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\rosenbrock.ilk
?????文件??????15779??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\rosenbrock.obj
?????文件?????188068??2009-06-22?15:02??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\rosenbrock.pch
?????文件?????492544??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\rosenbrock.pdb
?????文件??????33792??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\vc60.idb
?????文件??????53248??2009-06-22?16:35??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug\vc60.pdb
?????目錄??????????0??2009-08-31?20:18??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)\Debug
?????目錄??????????0??2009-08-31?20:18??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)\實驗報告(用遺傳算法求解Rosenbrock函數(shù)的最大值)?(1)
?????目錄??????????0??2009-08-31?20:18??用遺傳算法求解Rosenbrock函數(shù)的最大值(實驗報告+vc源程序)
-----------?---------??----------?-----??----
??????????????1921914????????????????????17
評論
共有 條評論