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相关推荐

  1. C语言一元二次方程表示如下,C语言一元二次方程day6

    交换数和一元二次方程 交换数 代码: F11运行后,随机输入两个数 (注意两数之间要空格分开) 解一元二次方程 代码: 如果⊿=b*b-4ac>0,方程有解. 如:输入1 -1 -6(数字空格分 ...

  2. R语言中的遗传算法详细解析

    前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学 ...

  3. c语言最优化问题,基于遗传算法的最优化问题求解

    摘要:遗传算法是一种有效的解决最优化问题的方法,在解决复杂的全局优化问题方面,遗传算法已得到了成功的应用.对遗传算法的基本步骤进行总结,通过最优化问题求解实例描述了遗传算法的具体运行过程,包括产生初始 ...

  4. 分布式电源优化配置与选址定容MATLAB程序基于遗传算法

    分布式电源优化配置与选址定容MATLAB程序基于遗传算法 (1)该程序为基于遗传算法的分布式电源优化配置与选址定容程序,硕士学位论文源程序,配有该论文. (2)本程序可有效配置分布式电源容量与安装位置 ...

  5. 基于遗传算法的风电储能蓄电池容量优化配置matlab优化程序

    基于遗传算法的风电储能蓄电池容量优化配置 风电+储能蓄电池微电网配置(基于matlab的遗传算法微电网配置优化程序) 参考文献:基于遗传算法的风电储能蓄电池容量优化配置 摘要:为了降低独立风力发电系统 ...

  6. 遗传算法综述(一、 遗传算法简介)

    遗传算法的定义与简介: 遗传算法(Genetic Algorithm,简称GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制.交叉(cross ...

  7. 遗传算法 python 简书_遗传算法入门

    遗传算法简介: 遗传算法(Genetic algorithm)属于演化计算( evolutionary computing),是随着人工智能领域发展而来的一种智能算法.正如它的名字所示,遗传算法是受达 ...

  8. 加速遗传算法 matlab,求加速遗传算法,不是自适应遗传算法

    就是用第一次.第二次进化迭代所产生的优秀个体的变量变化空间, 作为变量新的初始变化区间, 算法进入步 1, 重新运行 SGA ,如此加速循环, 直到最优个体的优化准则函数值小于某一设定值或算法运行达到 ...

  9. c 应用程序多语言版本,c – 在win32 API应用程序中实现全球化/多语言功能

    Windows上多语言应用程序的基础是使用"资源".资源是附加在可执行文件末尾的块,它只包含数据,并以非常特定的方式格式化,以便Windows能够解释这些数据. 在资源中,您可以找 ...

  10. 程序员语言也有鄙视链!某美团程序员爆料:筛选简历时,用go语言的基本不看!网友:当韭菜还当出优越感了!...

    程序员使用的语言有鄙视链吗?有人说有,有人说没有.一个美团员工发帖说,筛选简历时用go语言的基本不看.短短一句话,把对go语言的鄙视体现得淋漓尽致,难道go语言真的不如其他语言? 和他一样想法的前阿里 ...

最新文章

  1. jmeter 线程执行顺序_Jmeter-线程组执行顺序控制
  2. cocoaChina中整理的知识点-对文件重新命名-利于查阅
  3. java 并发 面试_Java 并发基础常见面试题总结
  4. powerdesigner显示工具面板_photoshop教程-画笔工具预设与选项设置
  5. zipkin brave mysql_Zipkin和Brave实现http服务调用的跟踪
  6. 怎么更改wifi频段_科普 | 你了解WiFi信号扩展器吗?
  7. 使用A2P2V针对特定目标生成攻击序列
  8. Live2D和wallpaperEngine公用
  9. 计算机仿真技术交通灯设计,交通灯的设计心得体会总结
  10. word2016 插入书签域
  11. user declined directory sharing Creating xxxx
  12. 谷雨,微信公众号图文排版必备素材集锦
  13. python结课总结_Python课程学习总结
  14. 蓝牙(四)LMP协议之一
  15. 系统安装无法创建新的系统分区的解决方法
  16. 关于Ubuntu下的PDF阅读器
  17. 平塘天眼和大数据有什么关系_“中国天眼”选址贵州平塘的缘由
  18. MFC隐藏进程自身(任务管理器不可见,wSysCheck等工具可见)
  19. 乐视网:截至2月已逾期金融机构借款类债务20.84亿元
  20. 昨天拿到红皮书和黄皮书!

热门文章

  1. c语言 倒计时不清屏_c语言 清屏函数
  2. 浙大版c语言程序设计第三版邀请码,浙大版《C语言程序设计(第3版)》题目集 习题9-5 通讯录排序...
  3. 迅捷pdf转换器——PDF批量转化成JPG
  4. VMware虚拟机下载及安装教程
  5. 基于AI的恶意软件分析技术(3)
  6. EXCEL拆分单元格代码
  7. oracle餐厅网络点餐系统_开餐厅,餐饮老板到底要怎么选餐饮管理系统?
  8. c语言九九乘法表倒三角问题,c语言问题九九乘法表
  9. 辽宁移动计算机类专业笔试题库,2019辽宁中国移动笔试行测模拟题(八)
  10. 2018中国移动校招笔试记录