遗传算法c语言 x^2,c语言遗传算法 解决 y=x2问题
c语言遗传算法 解决 y=x2问题
// 遗传算法 解决 y=x2问题
//编译环境 vc++6.0
//声明:部分代码来自网络
//email: happyppme@http://doc.docsou.com
#include
#include
#include
#include
#define POPSIZE 500 //种群大小
#define chromlength 8 //染色体长度
int popsize ; //种群大小
int maxgeneration; //最大世代数
double pc = 0.0; //交叉率
double pm = 0.0; //变异率
struct individual //定义染色体个体结构体
{
int chrom[chromlength]; //定义染色体二进制表达形式,edit by ppme 将char 转为 int
double value; //染色体的值
double fitness; //染色体的适应值
};
int generation; //当前执行的世代数
int best_index; //最好的染色体索引序号
int worst_index; //最差的染色体索引序号
struct individual bestindividual; //最佳染色体个体
struct individual worstindividual; //最差染色体个体
struct individual currentbest; //当前最好的染色体个体 currentbest
struct individual population[POPSIZE];//种群数组
//函数声明
void generateinitialpopulation(); //ok-初始化当代种群
void generatenextpopulation(); //??产生下一代种群
void evaluatepopulation(); //评价种群
void calculateobjectfitness(); //计算种群适应度
//long decodechromosome(char *,int,int);//染色体解码
double decodechromosome(int,int); //染色体解码
void findbestandworstindividual(); //寻找最好的和最坏的染色体个体
void performevolution(); //进行演变进化
void selectoperator(); //选择操作
void crossoveroperator(); //交换操作
void mutationoperator(); //变异操作
void input(); //输入接口
void outputtextreport(); //输出文字报告
void main() //主函数
{
int i;
srand((unsigned)time(NULL)); //强制类型转化,以当前时间戳定义随机数种子
printf("本程序为求函数y=x*x的最大值\n");
generation=0; //初始化generation当前执行的代
input(); //初始化种群大小、交叉率、变异率
/*edit by ppme*/
//调试用。。。。。显示input()结果
printf("popsize %d;maxgeneration %d;pc %f;pm %f\n\n",popsize,maxgeneration,pc,pm);
/*edit by ppme*/
generateinitialpopulation(); //产生初始化种群
evaluatepopulation(); //评价当前种群,(A.计算种群/个体的适应度;B.找出最好和最差的个体)
while(generation
{
generation++;
generatenextpopulation(); //生成子代种群(A.选择; B.交叉; C.变异)
evaluatepopulation(); //评价新生子代种群
performevolution(); //进行子代进化
outputtextreport(); //输入当代最终种群
}
printf("\n");
printf(" 统计结果: ");
printf("\n");
printf("最大函数值等于:%f\n",currentbest.fitness);
printf("其染色体编码为:");
//计算currentbest的value
for( i = 0 ; i < chromlength ; i++ )
printf(" %d",currentbest.chrom[i]);
}
void gen
遗传算法c语言 x^2,c语言遗传算法 解决 y=x2问题相关推荐
- R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型、通过method参数指定算法名称
R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型.通过method参数指定算法名称.通过trainControl函数控 ...
- 采用遗传算法求解最大值c语言,遗传算法求解y=x2.doc
遗传算法求解y=x2 初始遗传算法及一个简单的例子 遗传算法(Genetic Algorithms, GA)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法.它模拟自然选择和自然遗传过程中发生的 ...
- c语言转换为python语言_python和c语言
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! c语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台, ...
- 用遗传算法求3维函数 的最小值_遗传算法可视化项目(4):遗传算法
昨天讲了一下关于距离的计算,没有看昨天或者之前的文章,点一下历史消息或者这里: 遗传算法可视化项目(1):概述 遗传算法可视化项目(2):获取信息 遗传算法可视化项目(3):创建图的数据结构 遗传算法 ...
- r语言 断轴 画图_R语言基础画图/绘图/作图
R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...
- c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...
[摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...
- 学单片机需要多少C语言基础,C语言单片机编程教程
很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...
- R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator
R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator 目录 R语言构建随机森林模型错误解决:Erro ...
- 为什么可以说Java语言是准动态语言?
什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如JavaScript便是一个典型的动态语言. 除此之外如Ruby.Python ...
- c语言课件 文件,C语言课件--文件.ppt
C语言课件--文件 例12-5 /*将字符串"apple", "grape", "pear" 写入到磁盘文件f12-5.txt中,然后再从该 ...
最新文章
- 用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)
- 滑动窗口——TCP可靠传输的实现[转]
- Java获取近七天的数据条数,及页面实现折线图(附前后端代码)
- filecoin的思考
- 【Unity与23种设计模式】访问者模式(Visitor)
- Path(1)vrep中的贝塞尔点、控制点的简单区分
- android 日历_适用于Android的十大最佳日历应用
- java求sobel算子代码_sobel算子原理与实现
- xamarin UWP ActivityIndicator
- Visual Studio Qt vs tools 下载教程及加速教程
- Choerodon猪齿鱼1.0先行版已发布!
- 简单点的java_简单点,学习的方式简单点,java零基础入门语法教学(简单篇)...
- MYSQL查看表结构
- 模拟登录淘宝并拍下购物车商品
- Java8-Stream流整合(1)
- @Value(“${}“)
- 大数据开发【3】 -- hadoop的云集群配置
- IE8常见兼容问题及解决方法总结
- 计算机辅助决策系统基本原理,计算机辅助决策设计分析解析系统.ppt
- 计算机辅助审计技术MYSQL_虚拟机windows7密钥