遗传算法c语言程序二次方程,遗传算法的c语言程序.doc
WORD格式可编辑
专业知识分享
一 需求分析
1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代数计算最大适应度所在的代数
2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。
3.测试数据
输入初始变量后用y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)其中-2.048<=x1,x2<=2.048作适应度函数求最大适应度即为函数的最大值
二 概要设计
1.程序流程图
开始
开始
Gen=0
编码
随机产生M个初始个体
满足终止条件?
计算群体中各个体适应度
从左至右依次执行遗传算子
j = 0
j = 0
j = 0
根据适应度选择复制个体
选择两个交叉个体
选择个体变异点
执行变异
执行交叉
执行复制
复制的个体添入新群体中
交叉后添入新群体中
变异后添入新群体中
j = j+1
j = j+2
j = j+1
Gen=Gen+1
输出结果
终止
Y
N
Y
Y
Y
N
N
N
pc
pm
2.类型定义
int popsize; //种群大小
int maxgeneration; //最大世代数
double pc; //交叉率
double pm; //变异率
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];
3.函数声明
void generateinitialpopulation();
void generatenextpopulation();
void evaluatepopulation();
long decodechromosome(char *,int,int);
void calculateobjectvalue();
void calculatefitnessvalue();
void findbestandworstindividual();
void performevolution();
void selectoperator();
void crossoveroperator();
void mutationoperator();
void input();
void outputtextreport();
4.程序的各函数的简单算法说明如下:
(1).void generateinitialpopulation ()和void input ()初始化种群和遗传算法参数。
input() 函数输入种群大小,染色体长度,最大世代数,交叉率,变异率等参数。
(2) void calculateobjectvalue();计算适应度函数值 。
根据给定的变量用适应度函数计算然后返回适度值。
(3)选择函数selectoperator()
在函数selectoperator()中首先用rand ()函数产生0~1间的选择算子,当适度累计值不为零时,比较各个体所占总的适应度百分比的累计和与选择算子,直到达到选择算子的值那个个体就被选出,即适应度为fi的个体以fi/∑fk的概率继续存在;
显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可
能被选中,以便增加下一代群体的多样性。
(4)染色体交叉函数crossoveroperator()
这是遗传算法中的最重要的函数之一,它是对个体两个变量所合成的染色体进行交叉,而不是变量染色体的交叉,这要搞清楚。首先用rand ()函数产生随机概率,若小于交叉概率,则进行染色体交叉,同时交叉次数加1。这时又要用rand()函数随机产生一位交叉位,把染色体的交叉位的后面部分交叉即可;若大于交叉概率,则进行简单的染色体复制即可。
(5)染色体变异函数mutation()
变异是针对染色体字符变异的,而不是对
遗传算法c语言程序二次方程,遗传算法的c语言程序.doc相关推荐
- C语言一元二次方程表示如下,C语言一元二次方程day6
交换数和一元二次方程 交换数 代码: F11运行后,随机输入两个数 (注意两数之间要空格分开) 解一元二次方程 代码: 如果⊿=b*b-4ac>0,方程有解. 如:输入1 -1 -6(数字空格分 ...
- R语言中的遗传算法详细解析
前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学 ...
- c语言最优化问题,基于遗传算法的最优化问题求解
摘要:遗传算法是一种有效的解决最优化问题的方法,在解决复杂的全局优化问题方面,遗传算法已得到了成功的应用.对遗传算法的基本步骤进行总结,通过最优化问题求解实例描述了遗传算法的具体运行过程,包括产生初始 ...
- 分布式电源优化配置与选址定容MATLAB程序基于遗传算法
分布式电源优化配置与选址定容MATLAB程序基于遗传算法 (1)该程序为基于遗传算法的分布式电源优化配置与选址定容程序,硕士学位论文源程序,配有该论文. (2)本程序可有效配置分布式电源容量与安装位置 ...
- 基于遗传算法的风电储能蓄电池容量优化配置matlab优化程序
基于遗传算法的风电储能蓄电池容量优化配置 风电+储能蓄电池微电网配置(基于matlab的遗传算法微电网配置优化程序) 参考文献:基于遗传算法的风电储能蓄电池容量优化配置 摘要:为了降低独立风力发电系统 ...
- 遗传算法综述(一、 遗传算法简介)
遗传算法的定义与简介: 遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制.交叉(cross ...
- 遗传算法 python 简书_遗传算法入门
遗传算法简介: 遗传算法(Genetic algorithm)属于演化计算( evolutionary computing),是随着人工智能领域发展而来的一种智能算法.正如它的名字所示,遗传算法是受达 ...
- 加速遗传算法 matlab,求加速遗传算法,不是自适应遗传算法
就是用第一次.第二次进化迭代所产生的优秀个体的变量变化空间, 作为变量新的初始变化区间, 算法进入步 1, 重新运行 SGA ,如此加速循环, 直到最优个体的优化准则函数值小于某一设定值或算法运行达到 ...
- c 应用程序多语言版本,c – 在win32 API应用程序中实现全球化/多语言功能
Windows上多语言应用程序的基础是使用"资源".资源是附加在可执行文件末尾的块,它只包含数据,并以非常特定的方式格式化,以便Windows能够解释这些数据. 在资源中,您可以找 ...
- 程序员语言也有鄙视链!某美团程序员爆料:筛选简历时,用go语言的基本不看!网友:当韭菜还当出优越感了!...
程序员使用的语言有鄙视链吗?有人说有,有人说没有.一个美团员工发帖说,筛选简历时用go语言的基本不看.短短一句话,把对go语言的鄙视体现得淋漓尽致,难道go语言真的不如其他语言? 和他一样想法的前阿里 ...
最新文章
- jmeter 线程执行顺序_Jmeter-线程组执行顺序控制
- cocoaChina中整理的知识点-对文件重新命名-利于查阅
- java 并发 面试_Java 并发基础常见面试题总结
- powerdesigner显示工具面板_photoshop教程-画笔工具预设与选项设置
- zipkin brave mysql_Zipkin和Brave实现http服务调用的跟踪
- 怎么更改wifi频段_科普 | 你了解WiFi信号扩展器吗?
- 使用A2P2V针对特定目标生成攻击序列
- Live2D和wallpaperEngine公用
- 计算机仿真技术交通灯设计,交通灯的设计心得体会总结
- word2016 插入书签域
- user declined directory sharing Creating xxxx
- 谷雨,微信公众号图文排版必备素材集锦
- python结课总结_Python课程学习总结
- 蓝牙(四)LMP协议之一
- 系统安装无法创建新的系统分区的解决方法
- 关于Ubuntu下的PDF阅读器
- 平塘天眼和大数据有什么关系_“中国天眼”选址贵州平塘的缘由
- MFC隐藏进程自身(任务管理器不可见,wSysCheck等工具可见)
- 乐视网:截至2月已逾期金融机构借款类债务20.84亿元
- 昨天拿到红皮书和黄皮书!
热门文章
- c语言 倒计时不清屏_c语言 清屏函数
- 浙大版c语言程序设计第三版邀请码,浙大版《C语言程序设计(第3版)》题目集 习题9-5 通讯录排序...
- 迅捷pdf转换器——PDF批量转化成JPG
- VMware虚拟机下载及安装教程
- 基于AI的恶意软件分析技术(3)
- EXCEL拆分单元格代码
- oracle餐厅网络点餐系统_开餐厅,餐饮老板到底要怎么选餐饮管理系统?
- c语言九九乘法表倒三角问题,c语言问题九九乘法表
- 辽宁移动计算机类专业笔试题库,2019辽宁中国移动笔试行测模拟题(八)
- 2018中国移动校招笔试记录