规划与优化-遗传规划
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.需要决定是否处理在种群中出现的重复个体,重复个体会浪费计算机资源。
规划与优化-遗传规划相关推荐
- 香港中文大学 (深圳) -博士硕士招生 -智能优化及规划方向
工作介绍 该博士生与硕士生项目由深圳市大数据研究院(www.sribd.cn)的导师指导在香港中文大学(深圳)(www.cuhk.edu.cn)校内开展,授予香港中文大学(深圳)学位.深圳市大数据研究 ...
- Renascence架构原理——遗传规划算法
遗传规划算法 遗传规划算法 请先看一下遗传算法: http://blog.csdn.net/v_JULY_v/article/details/6132775 遗传规划/遗传编程(Genetic Pro ...
- 规划并优化能在 Google Play 上取得更大成功的游戏
规划并优化能在 Google Play 上取得更大成功的游戏 为您介绍如何让您的游戏在 Google Play 上大获成功.
- 派件系统c语言实验报告,物流规划与优化选址实验报告.doc
物流规划与优化选址实验报告 <物流规划与优化> 课程实验报告 一.实验任务与要求 重心法是根据待选物流配送中心的数量,将各起迄点预先分配给各个物流配送中心,从而形成个数等于物流配送中心数量 ...
- OMPL 入门Tutorial 7:基于优化的规划(Optimal Planning)
以下内容为OMPL官方Tutorial Optimal planning 的翻译 定义一个基于优化的运动规划问题几乎与常规的问题定义一样,除了以下两点区别: 需要给ompl::base::Proble ...
- 基于人工智能的5G无线网规划和优化
摘要:自组织网络(SON)在即将到来的5G系统中的功能是人工智能(AI)机制的一个很有前途的领域.在这方面,本文分析了如何在AI概念的基础上构建未来5G系统中无线接入网规划和优化的自组织网络.提出了一 ...
- 基于MATLAB yalmip/cplex/gurobi编程实现综合能源系统规划、优化调度等。 含风电、光伏、热电联产、电锅炉等各种设备模型
基于MATLAB yalmip/cplex/gurobi编程实现综合能源系统规划.优化调度等. 含风电.光伏.热电联产.电锅炉等各种设备模型,适合初学者学习,没有涉及复杂的调度或规划原则,是个有一定基 ...
- GSM网络的规划和优化(转)
[摘 要]:本文以温州市900MHz数字移动网络为例,从无线网络的规划到基站硬件的调整及软件参数的修改,分析了GSM网络优化的思路,并介绍了一些网络优化的经验. [关键词]:GSM 网络规划 工程检查 ...
- 二.路径规划---二维路径规划实车实现---gmapping+amcl+map_server+move_base
专栏系列文章如下: 一.路径规划---二维路径规划仿真实现-gmapping+amcl+map_server+move_base_goldqiu的博客-CSDN博客 本次实验是利用gmapping只使 ...
最新文章
- WCF中服务继承多个契约的使用
- Locality Sensitive Hashing(局部敏感哈希)
- 服务器忘记linux系统密码,linux系统服务器忘记密码怎么办
- 使用行动列表去创造简单且可扩展的游戏AI
- [转:有种感觉叫佩服]一个程序员的奋斗历程
- svn 钩子 post-commit 出现255错误解决办法
- 【ElasticSearch】Es 源码之 LifecycleComponent 源码解读
- SQLSERVER聚集索引的整理(重建)的必要性测试
- 2021年已经过去了4天,创业者、负债累累而希望通过再创业实现东山再起者,你们准备的怎么样了?
- sql查询初学者指南_面向初学者SQL Server查询执行计划–非聚集索引运算符
- copy 自定义对象
- NYOJ -11--奇偶数分离
- python optimize_SciPy优化optimize模块用法
- 创建脚本的步骤整理(转发)
- tpadmin文档 框架更新
- Android基础篇-四大组件之使用ContentProvider实现数据共享
- 小马智行获准在北京开启无人化出行服务商业化试点;华为成为Sisvel Wi-Fi 6专利池创始成员 | 美通企业日报...
- Excel VBA 代替Sumproduct实现多条件求和
- 无机光致变色化合物-过渡金属氧化物WO3/MoO3/TiO2
- 基于嘉立创双层板E5071C的低成本TRL校准