20100373苏浩辉实验3.docVIP

  • 28
  • 0
  • 约3.93千字
  • 约 8页
  • 2017-04-01 发布于广东
  • 举报
20100373苏浩辉实验3.doc

重庆大学学生上机实验报告 上机课程名称:信息智能分析与预测 上机实验名称:实验3 遗传算法 开课学院及实验室:经济与工商管理学院 2013年11 月 28 日 学 院 经管学院 年级、专业、班 2010级信管1班 姓 名 苏浩辉 学 号 指导教师 陈铿 成 绩 教师评语 教师签名: 【实验目的】 针对如下所示问题,设定染色体编码长度,假定群体大小为6,试计算出初始化后的解。 给定如下染色体,试用轮盘赌法计算出6次选择出的新群体。 对上述种群的染色体,试计算出交叉后的新种群,交叉概率Pc=0.7 对上述种群的染色体,试计算出变异后的新种群,变异概率Pm=0.02 【实验内容】 一、题目1: 首先需要根据题目确定染色体长度,本实验中设置为16。 再者根据遗传算法的计算思路,分别要进行初始化、解码、计算适应值的工作。 程序代码展示: 初始化函数代码 计算目标函数值 计算适应值函数代码 初始化后问题的计算结果显示: 初始化的种群个体 解码后的初始化解以及适应值 Popx: Fitness Value: 二、题目2: 由于题目中已经给出了初始的染色体和对应的适应值,首先就是需要将已给的信息按有效形式存储,以便于之后的函数使用。 程序代码展示: clear all; pop_size = 6; chromo_size = 5; global fitness_value; global pop; pop = zeros(pop_size, chromo_size); fitness_value = zeros(pop_size); pop = [0 1 1 1 0; 1 1 0 0 0; 0 0 1 0 0; 1 0 0 1 0; 0 1 1 0 0 ; 0 0 0 1 1]; fitness_value = [8; 15; 2; 5; 12; 8]; elitism = true; pop rank(pop_size, chromo_size); selection(pop_size, elitism); function rank(pop_size, chromo_size) global fitness_value; global fitness_table; global fitness_avg; global best_fitness; global best_individual; global best_generation; global pop; global G; [A, index] = sort(fitness_value); fitness_value = A; B = zeros(pop_size, chromo_size); for i = 1:pop_size j = index(i); B(i,:) = pop(j,:); end pop = B; fitness_table = zeros(pop_size); fitness_table = cumsum(fitness_value); fitness_avg(G) = fitness_table(pop_size)/pop_size; if fitness_value(pop_size) best_fitness best_fitness = fitness_value(pop_size); best_generation = G; best_individual = pop(pop_size,:); end clear i; clear j; function selection(pop_size, elitism) global pop; global fitness_table; for i=1:pop_size r = rand * fitness_table(pop_size); first = 1; last = pop_size; mid = round((last+first)/2); idx = -1; while (first = last) (idx == -1) if r fitness_table(mid) first = mid; elseif r fitness_table(mid) last = mid;

文档评论(0)

1亿VIP精品文档

相关文档