智能计算课程设计精要.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
May 6, 2015 遗传算法与俄罗斯方块 问题描述 基本步骤: 自动选择最优图形填充环境 根据图形被选择次数调整其基因在基因库进化过程中被选择的概率 利用遗传算法更新基因库 问题描述 函数介绍: λ(t, i): 评价函数,第t次填充选取Xi图形 E(t): 第t次填充的环境 C(e): 环境e的连通度 Xi : 第i次填充选取的图形 Gdic(t): 第t次的基因库 数学描述 评价函数的数学描述: Xi ∈ Gdic(t) E(t+1) = E(t) ⊕ Xi λ(t, i) = max[ C(E(t+1)) ] λ(t, i) = max[ C( E(t) ⊕ Xi ) ] 适应度函数的数学描述: Fit(x) = ln(1+x/2) +1 # calculate the fitness def fit_func(dic=gene_dic): for key in dic: x = float(dic[key][0]) y = log(1 + x/2) + 1.0 dic[key][1] = round(y, 3) pass 数学描述 遗传算法应用 算法简介 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。 由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出更好的近似解,每一代,根据问题域中个体的适应度(fitness)大小选择个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。 基因编码: chrom = [gene_size] p.s. : [0,1,0,1,1,1,0,0,0] 算法实现 种群: Gene_dic = { key : value } Key = (string) chrom Value =[ population size, fitness, chromosome size, selector probability ] 初始种群: test_dic : 110011000 [3, 1, 4, 0.3] test_dic : 100100100 [3, 1, 3, 0.3] test_dic : 010111000 [4, 1, 4, 0.4] 基因编码调整: p.s. : :[0,0,0,0,1,0,1,1,1] :[0,1,0,1,1,1,0,0,0] 算法实现 基因有效性判断: p.s. : [1,0,0,0,1,0,1,1,1] 无效基因 [1,1,0,0,0,0,0,1,1] 无效基因 算法实现 主要代码: def evolution(dic=gene_dic,orag_p): print Evolution calc_sp(dic) new_dic = {} new_lib = [] for i in range(orag_p/2): chrom1, chrom2 = select(dic) chrom3, chrom4 = cross(chrom1, chrom2) chrom3s = mutate(chrom3) chrom4s = mutate(chrom4) gene_add(chrom3s, new_dic, new_lib) gene_add(chrom4s, new_dic, new_lib) calc_sp(new_dic) return new_dic, new_lib 算法实现 开发环境 开发环境 编程语言: Python 2.7 扩展包: numpy,

文档评论(0)

boss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档