您所在位置: 网站首页 / 遗传算法及其MATLAB实现.doc / 文档详情
遗传算法及其MATLAB实现.doc 立即下载
2024-09-04
约9.7千字
约9页
0
1.3MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

遗传算法及其MATLAB实现.doc

遗传算法及其MATLAB实现.doc

预览

免费试读已结束,剩余 4 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

遗传算法及其MATLAB实现
主要参考书:
MATLAB6.5辅助优化计算与设计飞思科技产品研发中心编著
电子工业出版社2003.1
遗传算法及其应用陈国良等编著
人民邮电出版社1996.6
主要内容:
遗传算法简介
遗传算法的MATLAB实现
应用举例
在工业工程中,许多最优化问题性质十分复杂,很难用
传统的优化方法来求解.自1960年以来,人们对求解这类难
解问题日益增加.一种模仿生物自然进化过程的、被称为“
进化算法(evolutionaryalgorithm)”的随机优化技术在解这
类优化难题中显示了优于传统优化算法的性能。目前,进化
算法主要包括三个研究领域:遗传算法、进化规划和进化
策略。其中遗传算法是迄今为止进化算法中应用最多、比较
成熟、广为人知的算法。
一、遗传算法简介
遗传算法(GeneticAlgorithm,GA)最先是由美国Mic-
hgan大学的JohnHolland于1975年提出的。遗传算法是
模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算
模型。它的思想源于生物遗传学和适者生存的自然规律,
是具有“生存+检测”的迭代过程的搜索算法。遗传算法
以一种群体中的所有个体为对象,并利用随机化技术指
导对一个被编码的参数空间进行高效搜索。其中,选择、
交叉和变异构成了遗传算法的遗传操作;参数编码、初始
群体的设定、适应度函数的设计、遗传操作设计、控制参
数设定等5个要素组成了遗传算法的核心内容。
遗传算法的基本步骤:
遗传算法是一种基于生物自然选择与遗传机理的随机
搜索算法,与传统搜索算法不同,遗传算法从一组随机产
生的称为“种群(Population)”的初始解开始搜索过程。种
群中的每个个体是问题的一个解,称为“染色体(chromos
ome)”。染色体是一串符号,比如一个二进制字符串。这
些染色体在后续迭代中不断进化,称为遗传。在每一代中
用“适值(fitness)”来测量染色体的好坏,生成的下一代染
色体称为后代(offspring)。后代是由前一代染色体通过交
叉(crossover)或者变异(mutation)运算形成的。
在新一代形成过程中,根据适度的大小选择部分后代,淘
汰部分后代。从而保持种群大小是常数。适值高的染色体
被选中的概率较高,这样经过若干代之后,算法收敛于最
好的染色体,它很可能就是问题的最优解或次优解。
主要步骤如下所示:
(1)编码:GA在进行搜索之前先将解空间的解数据表示成
遗传空间的基因型串结构数据,这些串结构数据的不同组
合便构成了不同的点。
(2)初始群体的生成:随机产生N个初始串结构数据,每个
串结构数据称为一个个体,N个个体构成了—个群体。
GA以这N个串结构数据作为初始点开始迭代。
(3)适应性值评估检测:适应性函数表明个体或解的优劣性。
对于不同的问题,适应性函数的定义方式也不同。
(4)选择:选择的目的是为了从当前群体个选出优良的个体
,使它们有机会作为父代为下一代繁殖子孙。遗传算法通
过选择过程体现这一思想,进行选择的原则是适应性强的
个体为下一代贡献一个或多个后代的概率大。选择实现了
达尔文的适者生存原则。
(5)交叉:交叉操作是遗传算法中最主要的遗传操作。通过
交叉操作可以得到新一代个体,新个体组合了其父辈个体
的特性。交叉体现了信息交换的思想。
(6)变异:变异首先在群体中随机选择一个个体,对于选中
的个体以一定的概率随机地改变串结构数据中某个串的值。
同生物界一样,GA中变异发生的概率很低,通常取值在
0.001~0.01之间。变异为新个体的产中提供了机会。
实际上,遗传算法中有两类运算:
●遗传运算:交叉和变异
编码和种群生成
种群适应度估计
选择
交叉
变异
●进化运算:选择
GA的计算过程流程图








遗传算法的特点
GA是对问题参数的编码组进行计算,
而不是针对参数本身。
GA的搜索是从问题解的编码组开始搜素、
而不是从单个解开始。
GA使用目标函数值(适应度)这一信息进行搜索,
而不需导数等其他信息。
GA算法使用的选择、交叉、变异这三个算子都是随机操作,
而不是确定规则。

举例图解说明计算流程

二、遗传算法的MATLAB实现
需要如下主函数:
编码和种群生成
function[pop]=initializega(num,bounds,evalFN,evalOps,options)
%pop-theinitial,evaluated,randompopulation
%num-thesizeofthepopulation,i.e.thenumbertocreate
%bounds-thenumberofpermutationsinanindividual(e.g.,number
%ofcitiesinatsp
%e
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

遗传算法及其MATLAB实现

文档大小:1.3MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用