-
大小: 648KB文件类型: .rar金币: 2下载: 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
相关资源
- Wolfram Mathematica 矩阵初等变换函数(
- scratch3.0 源程序(说相声)
- 一个labview仿真的函数信号发生器.vi
- 实现小波变换例子 upcoef 函数
- 改进的BP神经网络算法
- 光立方制作(原理图 源程序 LED搭接方
- 《复变函数》习题答案(第四版)
- FM1702调试源程序
- 外罚函数程序
- 矩阵基本运算函数库
- OpenGL文档,api大全,可直接查询函数
- 二维傅里叶变换函数的使用
- 智能寻迹机器人源程序及pcb图
- 单片机数字时钟包附电路图 源程序
- STC12C系列单片机函数库
- C 纸牌游戏——21点
- 16X16点阵程序(附仿真图和源程序)
- 基于ARM蓝牙传输源程序
- 简单函数发生器,能产生常见的三种
- C读DXF源程序及AutoCAD中的DXF参考文件
- Gamma函数的解法
- 路由选择算法源程序(最短路径算法
- 复变函数参考答案(西安交通大学版
- VHDL带分频功能的函数发生器实现六种
- 数字电压表(源程序 protues仿真)
- WinAPI 函数库(大全)
- ADAMS 驱动函数
- Delphi中制作DLL中回调函数的应用
- 从目前的关于介子-光子跃迁形状因数
- 彩色玻璃冷凝物密度矩阵:Lindblad演化
评论
共有 条评论