一 需求分析
1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代
数计算最大适应度所在的代数
2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,
由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。
3.测试数据
输入初始变量后用 y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)其中-2.048<=x1,x2<=2.048 作
适应度函数求最大适应度即为函数的最大值
二 概要设计
1.程序流程图
2.类型定义
int popsize; //种群大小
int maxgeneration; //最大世代数
double pc; //交叉率
double pm; //变异率
struct individual
开始
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
p
c
p
m