声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3369|回复: 9

[控制理论] [转帖]遗传算法(转载)

[复制链接]
发表于 2006-5-24 00:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗
传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其
主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐
并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索
空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广
泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代
有关智能计算中的关键技术之一。

1.遗传算法与自然选择

达尔文的自然选择学说是一种被人们广泛接受的生物进化学说。这种学说认为,生物要
生存下去,就必须进行生存斗争。生存斗争包括种内斗争、种间斗争以及生物跟无机环
境之间的斗争三个方面。在生存斗争中,具有有利变异的个体容易存活下来,并且有更
多的机会将有利变异传给后代;具有不利变异的个体就容易被淘汰,产生后代的机会也
少的多。因此,凡是在生存斗争中获胜的个体都是对环境适应性比较强的。达尔文把这
种在生存斗争中适者生存,不适者淘汰的过程叫做自然选择。它表明,遗传和变异是决
定生物进化的内在因素。自然界中的多种生物之所以能够适应环境而得以生存进化,是
和遗传和变异生命现象分不开的。正是生物的这种遗传特性,使生物界的物种能够保持
相对的稳定;而生物的变异特性,使生物个体产生新的性状,以致于形成新的物种,推
动了生物的进化和发展。

遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源
于生物遗传学和适者生存的自然规律,是具有“生存+检测”的迭代过程的搜索算法。
遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数
空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、
初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗
传算法的核心内容。 作为一种新的全局优化搜索算法,遗传算法以其简单通用、鲁棒性
强、适于并行处理以及高效、实用等显著特点,在各个领域得到了广泛应用,取得了良
好效果,并逐渐成为重要的智能算法之一。

2.遗传算法的基本步骤
 

我们习惯上把Holland1975年提出的GA称为传统的GA。它的主要步骤如下:

编码:GA在进行搜索之前先将解空间的解数据表示成遗传空间的基因型串结构数据,这
些串结构数据的不同组合便构成了不同的点。

初始群体的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体, N个个
体构成了一个群体。GA以这N个串结构数据作为初始点开始迭代。

适应性值评估检测:适应性函数表明个体或解的优劣性。不同的问题,适应性函数的定
义方式也不同。

选择:选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代为下一
代繁殖子孙。遗传算法通过选择过程体现这一思想,进行选择的原则是适应性强的个体
为下一代贡献一个或多个后代的概率大。选择实现了达尔文的适者生存原则。

交换:交换操作是遗传算法中最主要的遗传操作。通过交换操作可以得到新一代个体,
新个体组合了其父辈个体的特性。交换体现了信息交换的思想。

变异:变异首先在群体中随机选择一个个体,对于选中的个体以一定的概率随机地改变
串结构数据中某个串的值。同生物界一样,GA中变异发生的概率很低,通常取值在0.001
~0.01之间。变异为新个体的产生提供了机会。

GA的计算过程为:

选择编码方式

产生初始群体

计算初始群体的适应性值

如果不满足条件 {
选择
交换
变异
计算新一代群体的适应性值
}


3.遗传算法的特点

遗传算法作为一种快捷、简便、容错性强的算法,在各类结构对象的优化过程中显示

出明显的优势。与传统的搜索方法相比,遗传算法具有如下特点:

搜索过程不直接作用在变量上,而是在参数集进行了编码的个体。此编码操作,
使得遗传算法可直接对结构对象(集合、序列、矩阵、树、图、链和表)进行操作。

搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降
低了陷入局部最优解的可能性,并易于并行化。

采用概率的变迁规则来指导搜索方向,而不采用确定性搜索规则。
对搜索空间没有任何特殊要求(如连通性、凸性等),只利用适应性信息,不需要
导数等其它辅助信息,适应范围更广。

 

4.遗传算法的研究历史与现状

遗传算法研究的兴起是在80年代末和90年代初期,但它的历史起源可追溯至60年代

初期。早期的研究大多以对自然系统的计算机模拟为主。如Fraser的模拟研究,他提出
了和现在的遗传算法十分相似的概念和思想。Holland和DeJong的创造性研究成果改变了
早期遗传算法研究的无目标性和理论指导的缺乏。其中,Holland于1975年出版的著名著
作<<自然系统和人工系统的适配>>系统地阐述了遗传算法的基本理论和方法,并提出了
对遗传算法的理论研究和发展极为重要的模式理论。这一理论首次确认了结构重组遗传
操作对于获得隐并行性的重要性。

同年,DeJong的重要论文<<遗传自适应系统到的行为分析>>将Holland的模式理论与他的
计算实验结合起来,并提出了诸如代沟等新的遗传操作技术。可以认为,DeJong所作的
研究工作是遗传算法发展过程中的一个里程碑。

进入80年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分
热门的课题。尤其是遗传算法的应用领域也不断扩大。目前遗传算法所涉及的主要领域
有自动控制、规划设计、组合优化、图象处理、信号处理、人工生命等。可见,遗传算
法的应用研究已从初期的组合优化求解拓展到了许多更新。更工程化的应用方面。
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-5-24 00:55 | 显示全部楼层
该算法为控制领域非常关注的,所以小贴一下
虽然不深,但给大家个印象,呵呵,看下:)
发表于 2006-5-26 15:58 | 显示全部楼层
谢谢楼主!!
发表于 2006-5-27 16:43 | 显示全部楼层
楼主对遗传算法有研究么?小弟真在学习遗传算法~能不能指点12~~谢谢
发表于 2006-5-27 22:12 | 显示全部楼层
楼主转的贴子不错
要是编辑一下看起来更方便些啊
 楼主| 发表于 2006-5-27 22:25 | 显示全部楼层
楼主对遗传算法有研究么?小弟真在学习遗传算法~能不能指点12~~谢谢

我是智能控制方向的,呵呵,智能除了模糊控制,神经网络控制,专家控制,其实最广泛或者最重要的是遗传算法,因为这个用的广,多。你呢?可以探讨下,不过暂时可能我的程度还不行:)

楼主转的贴子不错,要是编辑一下看起来更方便些啊

谢谢夸奖与提醒哈,我疏忽了,呵呵:)
发表于 2006-5-28 21:48 | 显示全部楼层
其实我也对遗传算法了解不多,只是毕业设计的题目是"用遗传算法解决图象的显示问题",其实就是用遗传算法优画图形,然后和普通的优化做一个比较,可是,现在学习有点太晚了,所以想请楼主帮个忙.........能指导多少就请指导多少吧~~~~~~~谢谢
 楼主| 发表于 2006-5-28 22:11 | 显示全部楼层
看来你这个问题不是太难,但关键用遗传算法的matlab实现或者vc实现我还不会,如果是matlab,你可以去matlab专区看下有没的能帮你的,那里也有相关的遗传算法的资源。但如果是vc,那就....呵呵。
发表于 2006-6-2 09:31 | 显示全部楼层
谢谢你~
 楼主| 发表于 2006-6-2 10:41 | 显示全部楼层
哈哈,真是客气,谢我干吗。大家一起探讨学习就好了:)我能做的就做
做不到的也只好哭了...嘿嘿
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 06:36 , Processed in 0.061405 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表