1.LISP:遗传规划的语言

对于一般的语言,在交叉变异的时候大多数情况下都会出现问题,但是Lisp语言就不会出现这个问题。

对于lisp语言来说,它像一个表达式,这种表达式叫做s-表达式。

几个例子:

例1:

表示x+3
(+ x 3)

例2:

表示(x+3)的余玄
(cos(+ x 3))

例3:

表示cos(x+3)和z/14的最小值
(min (cos(+ x 3))(/ z 14))

例4:

表示xy+|z|
(+(* x y)(abs z))

上面的例4可以用语法树来表示

注:该图为函数xy+|z|的语法树,它由s-表达式(+(* x y)(abs z))表示,节点“A”表示绝对值算子

例5:

t>5时返回(x+y),否者返回(x+2+z)
(if (> t 5)(+ x y)(+ x 2 z))

2.lisp程序交叉

了解该算法后,我们就能发现s-表达式和子树之间一一对应,那么就可以直接对LIsp计算机程序进行交叉和变异。

例1:

以上这种交叉叫做基于树的交叉

基于树的交叉:随机选择每个父代的一个交叉点并交换在哪些点下面子树,生成两个子代函数。

基于树的变异:用随机生成的一个s-表达式替换随机选出的s-表达式。

例2:

2.遗传规划的基础

2.1遗传规划算法伪代码

2.2适应度的度量

如何度量适应度呢,所有进化算法都需要确定这一点,不过,对于遗传规划而言更复杂,计算机程序需要在不同的输入,不用的初始条件以及不同的环境下都管用,所以,在确定一个计算机程序的适应度时,必须用到许多不同的条件,这个需要根据具体问题来定。

2.3终止准则

在遗传规划中,适应度的度量对计算的要求通常比其他进化算法更高,终止准则能决定遗传规划是否成功,与其他进化算法一样,遗传规划的终止准则可以包括像迭代次数、适应度评价次数、运行时间、最佳适应度值、在几代中最佳适应度值的变化、或整个种群的适应度值的标准差等因素。

2.4终止集合

这个集合描述在语法树的叶子上可以出现的符号。终止集合是演化中的计算机程序的所有可能输入的集合,这个集合包括输入计算机程序的变量,以及我们认为重要的常数。

在遗传规划定义终止集合时,需要掌握一个平衡。如果所用集合过小,遗传规划就不能有效解决问题,若过大,则遗传规划很难在合理时间内找到一个好的解。

2.5函数集合

函数集合是用于计算机程序演化的。需要在函数集合和终止集合的定义之间找到一个恰当的平衡,这两个集合需要足够大才能表示问题的解。

函数有时候会遇到一些不合法的函数自变量,这时候就需要函数做一点修正,比如x/0,显然不合法,所以普通的除法函数不适用,必须重新定义这些函数。

2.6初始化

初始化一共有三种:完全法、生长法、半生长法。

完全法:每一个终端节点到顶层节点的节点个数为用户指定的常数D,D为语法树的深度。所以它生成的是一个完全语法树。

生长法:每个终点到顶层节点的节点个数小于或等于D。所以它生成的不一定是一个完全语法树。

半生长法:一半用完全法生成,另一半用生长法生成。

2.7遗传规划的参数

1.需要知名用哪些选择方法选出参与交叉的父代。例如与适应度成正比的选择、锦标赛选择等

2.需要指定种群规模。由于计算机程序中的自由度太大,遗传规划的种群规模通常比其他算法的大,一般至少为500,有时候也会到几千。

3.需要指定变异方法

(1)随机选择一个节点,并把那个节点之下的全部用一个随机生成的语法子树替换。我们称之为子树变异。

(2)扩张变异用随机生成的子树替换一个终端。如果在子树变异中被替换的点是一个终端,子树变异就等价于扩张变异。

(3)可以用新的随机生成的节点或终端替换随机选出的节点或终端。,我们称之为点变异或点替换变异。

(4)提升变异生成一个新的程序,它是随机选出的父代程序的子树。

(5)收缩变异用随机选出的终端一环随机选出的语法子树。

(6)置换变异随机地置换随机选出的函数自变量。

(7)随机变异程序中的常数。

4.指定变异概率pm

通常用如下办法:

对于每一个候选计算机程序xi,i∈[1,N]生成在[0,1]上均匀分布的随机数rif r<pm then在计算机程序xi中随机地选择节点k用一个随机生成的子树替换所选的由节点k开始的子树end id下一个计算机程序

5.需要指定交叉的概率pc,

通常用如下办法:

 生成在[0,1]上均匀分布的随机数rif r<pc thenp1和p2交配生成子代c1和c2elsec1⬅p1c2⬅p2End if 

大量经验表明,交叉对于遗传规划很重要,并且应该采用pc>=0.9的交叉概率。

6.需不需要使用精英,在遗传规划中,从一代到下一代可以保留最好的m个计算机程序。我们称参数m为精英参数。

7.需要指定初始种群中最大程序规模Di,程序的最大规模可以用它d深度来量化。

8.需要指定子代程序的最大深度D。

9.需要指定是否允许子树在交叉节时替换语法树上的终端节点。

10.需要决定是否处理在种群中出现的重复个体,重复个体会浪费计算机资源。

规划与优化-遗传规划相关推荐

  1. 香港中文大学 (深圳) -博士硕士招生 -智能优化及规划方向

    工作介绍 该博士生与硕士生项目由深圳市大数据研究院(www.sribd.cn)的导师指导在香港中文大学(深圳)(www.cuhk.edu.cn)校内开展,授予香港中文大学(深圳)学位.深圳市大数据研究 ...

  2. Renascence架构原理——遗传规划算法

    遗传规划算法 遗传规划算法 请先看一下遗传算法: http://blog.csdn.net/v_JULY_v/article/details/6132775 遗传规划/遗传编程(Genetic Pro ...

  3. 规划并优化能在 Google Play 上取得更大成功的游戏

    规划并优化能在 Google Play 上取得更大成功的游戏 为您介绍如何让您的游戏在 Google Play 上大获成功.

  4. 派件系统c语言实验报告,物流规划与优化选址实验报告.doc

    物流规划与优化选址实验报告 <物流规划与优化> 课程实验报告 一.实验任务与要求 重心法是根据待选物流配送中心的数量,将各起迄点预先分配给各个物流配送中心,从而形成个数等于物流配送中心数量 ...

  5. OMPL 入门Tutorial 7:基于优化的规划(Optimal Planning)

    以下内容为OMPL官方Tutorial Optimal planning 的翻译 定义一个基于优化的运动规划问题几乎与常规的问题定义一样,除了以下两点区别: 需要给ompl::base::Proble ...

  6. 基于人工智能的5G无线网规划和优化

    摘要:自组织网络(SON)在即将到来的5G系统中的功能是人工智能(AI)机制的一个很有前途的领域.在这方面,本文分析了如何在AI概念的基础上构建未来5G系统中无线接入网规划和优化的自组织网络.提出了一 ...

  7. 基于MATLAB yalmip/cplex/gurobi编程实现综合能源系统规划、优化调度等。 含风电、光伏、热电联产、电锅炉等各种设备模型

    基于MATLAB yalmip/cplex/gurobi编程实现综合能源系统规划.优化调度等. 含风电.光伏.热电联产.电锅炉等各种设备模型,适合初学者学习,没有涉及复杂的调度或规划原则,是个有一定基 ...

  8. GSM网络的规划和优化(转)

    [摘 要]:本文以温州市900MHz数字移动网络为例,从无线网络的规划到基站硬件的调整及软件参数的修改,分析了GSM网络优化的思路,并介绍了一些网络优化的经验. [关键词]:GSM 网络规划 工程检查 ...

  9. 二.路径规划---二维路径规划实车实现---gmapping+amcl+map_server+move_base

    专栏系列文章如下: 一.路径规划---二维路径规划仿真实现-gmapping+amcl+map_server+move_base_goldqiu的博客-CSDN博客 本次实验是利用gmapping只使 ...

最新文章

  1. WCF中服务继承多个契约的使用
  2. Locality Sensitive Hashing(局部敏感哈希)
  3. 服务器忘记linux系统密码,linux系统服务器忘记密码怎么办
  4. 使用行动列表去创造简单且可扩展的游戏AI
  5. [转:有种感觉叫佩服]一个程序员的奋斗历程
  6. svn 钩子 post-commit 出现255错误解决办法
  7. 【ElasticSearch】Es 源码之 LifecycleComponent 源码解读
  8. SQLSERVER聚集索引的整理(重建)的必要性测试
  9. 2021年已经过去了4天,创业者、负债累累而希望通过再创业实现东山再起者,你们准备的怎么样了?
  10. sql查询初学者指南_面向初学者SQL Server查询执行计划–非聚集索引运算符
  11. copy 自定义对象
  12. NYOJ -11--奇偶数分离
  13. python optimize_SciPy优化optimize模块用法
  14. 创建脚本的步骤整理(转发)
  15. tpadmin文档 框架更新
  16. Android基础篇-四大组件之使用ContentProvider实现数据共享
  17. 小马智行获准在北京开启无人化出行服务商业化试点;华为成为Sisvel Wi-Fi 6专利池创始成员 | 美通企业日报...
  18. Excel VBA 代替Sumproduct实现多条件求和
  19. 无机光致变色化合物-过渡金属氧化物WO3/MoO3/TiO2
  20. 基于嘉立创双层板E5071C的低成本TRL校准

热门文章

  1. 我用Java写的象棋外挂成功了
  2. 京东2020校招数据分析工程师 —— 选择题盲点整理(2019.8.24)
  3. html怎么水平居中垂直居中,css水平居中和垂直居中的几种解决方案
  4. 如何关闭ThinkPad电脑的触摸板
  5. 关于Excel Spreadsheet 对象的属性的定义
  6. linux程序制作文件,Linux编程实现制作文件的ed2k链
  7. 基于椭圆模块的肤色检测
  8. 基于R语言3组以上倾向评分逆概率加权(IPTW)
  9. Java 泛型super和extend
  10. 影视解说短视频制作教程,从养号到发布,可参考一下