-
大小: 648KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-03
- 语言: 其他
- 标签: Rosenbrock 函数 源程序
资源简介
Rosenbrock函数的最大值实验报告源程序
代码片段和文件信息
#include
#include
#include
/* 常量定义 */
#define POPSIZE 500 //群体大小
#define MAXIMIZATION 1 //最大标志,寻找最大解
#define MINIMIZATION 2 //最小标志,寻找最小解
/* 数据定义 (对于不同的问题,可能会有少许差别) */
#define Cmax 100 //确定的最大值
#define Cmin 0 //确定的最小值
#define LENGTH1 10 //第一个染色体长度
#define LENGTH2 10 //第二个染色体长度
#define CHROMLENGTH LENGTH1+LENGTH2 //染色体总长度
int FunctionMode = MAXIMIZATION; //求解最优值类型:最大?最小
int PopSize = 80; //群体规模M
int MaxGeneration = 200; //最大代数
double Pc = 0.6; //交叉概率
double Pm = 0.001; //变异概率
/* 数据结构定义 */
struct individual //个体数据结构
{
char chrom[CHROMLENGTH+1]; //个体的基因型,用字符串表示
double value; //个体的目标值
double fitness; //个体的适应度
};
/* 全局变量定义 */
int generation; //代数
int best_index; //最优个体的索引
int worst_index; //最坏个体的索引
struct individual bestindividual; //当代最优个体
struct individual worstindividual; //当代最坏个体
struct individual currentbest; //迄今为止,最好的个体
struct individual population[POPSIZE];//群体
/* 函数原型声明 */
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();
}
}
/* 函数:产生第一代个体 参数: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;
}
}
/*函数:初始化第一代个体 参数:void*/
void GenerateNextPopulation(void)
{
SelectionOperator();
CrossoverOperator();
MutationOperator();
}
/*函数:通过特定的方程式评估群体
参数:void*/
void EvaluatePopulation(void)
{
CalculateobjectValue();
CalculateFitnessValue();
FindBestAndWorstIndividual();
}
/*
函数:将染色体的基因型解码成表现型
参数:void
备注:返回值可能是正、或负。对于不同的解码方法,这个值也可能是“unsigned int”
*/
long DecodeChromosome(char *stringint pointint length)
{
int i;
long decimal=0L
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 618496 2009-08-31 20:17 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值).doc
文件 8501 2009-06-22 16:34 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\rosenbrock.c
文件 3447 2009-06-22 15:02 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\rosenbrock.dsp
文件 545 2009-06-22 16:38 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\rosenbrock.dsw
文件 33792 2009-06-22 16:38 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\rosenbrock.ncb
文件 48640 2009-06-22 16:38 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\rosenbrock.opt
文件 768 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\rosenbrock.plg
文件 208970 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\rosenbrock.exe
文件 215324 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\rosenbrock.ilk
文件 15779 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\rosenbrock.obj
文件 188068 2009-06-22 15:02 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\rosenbrock.pch
文件 492544 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\rosenbrock.pdb
文件 33792 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\vc60.idb
文件 53248 2009-06-22 16:35 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug\vc60.pdb
目录 0 2009-08-31 20:18 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)\Debug
目录 0 2009-08-31 20:18 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)\实验报告(用遗传算法求解Rosenbrock函数的最大值) (1)
目录 0 2009-08-31 20:18 用遗传算法求解Rosenbrock函数的最大值(实验报告+vc源程序)
----------- --------- ---------- ----- ----
1921914 17
相关资源
- 详细介绍哦ioctl函数用法, 一看必然
- 支持向量机小波核函数
- excel中30种常用函数详解
- 数字钟仿真+源程序.zip
- 28个CEC基本测试函数
- Mamdani模糊推理程序,根据输入条件得
- gauss-gamma双窗函数
- Arduino 超声波库函数
- 编译原理讨论课PPTpl0编译器源程序讲
- 加权的核函数最小化程序
- 用win32GDI函数编程推箱子
- 此函数用FISTA算法解决压缩感知
- 模型预测控制的S函数
- 图像中点扩散函数的获取
- 万能遥控器源程序
- 虚拟现实源程序代码虚拟现实代码
- STM32库函数代码自动生成器V1.2破解版
- DS1302的Arduino函数库
- nRF51822低功耗睡眠函数应用
- gaot遗传算法优化工具箱介绍及源程序
- 基于s函数的电机建模与仿真
- 带有MPPT的算法光伏阵列模型m函数(
- 书中源程序代码.rar
- 定义一个Document类,包含成员变量na
- 圆球圆环构造opengl函数
- opengl画圆柱体直接函数法,逼近法
- 基于DS18B20的数字温度计设计原理图
- 基于DSP28335生成spwm源程序 三相120度移
- RC522 STM32F103C8 库函数 可任意修改
- 悬挂运动控制系统详细源程序
评论
共有 条评论