请教海星和其他高手:可否讲讲遗传算法,尤其是连续码和不连续码的转换,谢谢。

morris 2002-05-24 06:00:41
rt
...全文
80 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
phonix497 2002-05-27
  • 打赏
  • 举报
回复
好象不是很完整,但确实有点复杂~`
morris 2002-05-27
  • 打赏
  • 举报
回复
ok
starfish 2002-05-25
  • 打赏
  • 举报
回复
当然,网上这样的资源很多的
你自己去google或一些论文搜索引擎搜索吧
给你一个好的论文搜索引擎:
http://citeseer.nj.nec.com/
morris 2002-05-25
  • 打赏
  • 举报
回复
请问,有网上资源吗?
starfish 2002-05-24
  • 打赏
  • 举报
回复
sorry, 我也不是很懂遗传算法,只懂一些皮毛(也就是one_add_one贴出来的那些内容啦:),真正技术上的很多细节我并不太懂,所以帮不了你。给你一个建议,在这个论坛只适合问一些具体的简单的问题,太过广泛的或牵涉到技术上细节的问题不太适合在这里问,因为那些问题三言两语说不清楚,与其在这里问还不如去图书馆找本书看看。
one_add_one 2002-05-24
  • 打赏
  • 举报
回复
技术报告

遗传算法

董向辉

自然界始终是人类灵感的重要来源。仿生学直接模仿生物界的现象和原理,而另外一些研究方向则起源于对自然现象或过程的模拟,如控制论,人工神经网络,模拟退火算法,元胞自动机等。
遗传算法(genetic algorithms)也是其中之一。早在20世纪50年代就有将进化原理应用于计算机科学的努力,但缺乏一种普遍的编码方法,只能依赖于变异而非交配产生新的基因结构。50年代末到60年代初,受一些生物学家用计算机对生物系统进行模拟的启发,Holland开始应用模拟遗传算子研究适应性。在Bagley1967年关于自适应下棋程序的论文中,他应用遗传算法搜索下棋游戏评价函数的参数集,并首次提出了遗传算法这一术语。1975年Holland出版了遗传算法历史上的经典著作《自然和人工系统中的适应性》,系统阐述了遗传算法的基本理论和方法,并提出了模式定理(schemata theorem),证明在遗传算子选择、交叉和变异的作用下,具有低阶、短定义距以及平均适应度高于群体平均适应度的模式在子代中将以指数级增长,这里的模式是某一类字符串,其某些位置有相似性。同年,DeJong完成了他的博士论文《遗传自适应系统的行为分析》,将Holland的模式理论与他的计算试验结合起来,进一步完善了选择、交叉和变异操作,提出了一些新的遗传操作技术。
进入80年代后,遗传算法得到了迅速发展,不仅理论研究十分活跃,而且在越来越多的应用领域中得到应用。1983年,Holland的学生Goldberg将遗传算法应用于管道煤气系统的优化,很好地解决了这一非常复杂的问题。1989年,Goldberg出版了《搜索、优化和机器学习中的遗传算法》一书,这本可能是遗传算法领域被引用次数最多的书为这一领域奠定了坚实的科学基础。80年代中期,Axelrod和Forrest合作,采用遗传算法研究了博奕论中的一个经典问题--囚徒困境。在机器学习方面,Holland自提出遗传算法的基本理论后就致力于研究分类器系统(classifier system),Holland 希望系统能将外界刺激进行分类,然后送到需要的地方去,因此命名为分类器系统,这里的classifier是指一个二进制串,代表一类情况。分类器系统将某一条件是否为真与串的某一位相对应,从而将产生式系统中的规则编码为二进制串,这样就可以应用遗传算法来进行演化,同时引入了基于经济学原理的信用分配机制--桶队(bucket brigade)算法来确定规则的相对强度。Holland和Santa Fe的Arthur等人合作,用分类器系统模拟了一些经济现象,得到了满意的结果。
遗传算法已有了许多发展,但一般来说,其基本过程是:首先采用某种编码方式将解空间映射到编码空间(可以是位串、实数、有序串、树或图,Holland最初的遗传算法是基于二进制串的,类似于生物染色体结构,易于用生物遗传理论解释,各种遗传操作也易于实现。另外,可以证明,采用二进制编码式,算法处理的模式最多。但是,在具体问题中,直接采用解空间的形式进行编码,可以直接在解的表现型上进行遗传操作,从而易于引入特定领域的启发式信息,可以取得比二进制编码更高的效率。实数编码一般用于数值优化,有序串编码一般用于组合优化。),每个编码对应问题的一个解,称为染色体或个体。一般通过随机方法确定起始的一群个体,称为种群,在种群中根据适应值或某种竞争机制选择个体(适应值就是解的满意程度,可以由外部显式适应度函数计算,也可以由系统本身产生,如由协同演化时不同对策的博奕确定,或者由个体在群体中的存活量和繁殖量确定。),使用各种遗传操作算子(包括杂交,变异,倒位等等)产生下一代(下一代可以完全替代原种群,即非重叠种群;也可以部分替代原种群中一些较差的个体,即重叠种群),如此进化下去,直到满足期望的终止条件。

从上面的原理可以看出,从搜索角度,遗传算法具有许多独特的优点:
l 不必非常明确描述问题的全部特征,通用性和鲁棒性强,能很快适应问题和环境的变化;对领域知识依赖程度低,不受搜索空间限制性假设的约束,不必要求连续性、可导或单峰等。
l 从多点进行搜索,如同在搜索空间上覆盖的一张网,搜索的全局性强,不易陷入局部最优;具有隐并行性,非常适合于并行计算。

在遗传算法的研究中,可以看到主要有三类研究方向:
1. 研究遗传算法本身的理论基础。
2. 用遗传算法作为工具解决工程问题,主要是进行优化,关心的是是否能在传统方法上有所提高。
3. 用遗传算法研究演化现象,一般涉及到人工生命和复杂性科学领域。

在工程实践中的遗传算法应用主要是利用了其并行性和全局搜索的特点来进行优化。尽管遗传算法本身是一种通用弱方法,仍需要尽量结合特定领域的知识,实现解决特定问题的一个遗传算法特定实现,其范围可能更窄,但效果会更好。不过,我认为,从遗传算法的来源--自然界现象看,生物演化的目的并非取得某一限制条件下的某些参数的最优,而是适应环境。生物进化的途径多种多样,没有哪一种是最优的,但是,成功的生物必然是适应其环境和环境内的其它生物的,对于环境的演化和其它生物的进化(它自己也在改变着环境,人类更是前所未有地改变着环境),它能够适应新的变化,继续生存。从这一角度看,虽然目前工程实践上遗传算法的主要应用是用于优化,我认为遗传算法的真正威力却不在于此。
鉴于遗传算法和生物演化现象的紧密关系,人工生命和复杂性科学的研究与遗传算法有着极其密切的联系。在演化现象中,我感兴趣的方面主要有协同演化,学习与进化的相互作用等。
l 协同进化。进化的目标不是形成一个超级物种,一个生态环境进化的结果是物种与环境相互适应、相互影响的复杂系统,虽然遗传算法被大量用于优化,但进化的目标不是优化而是适应。因此,应该研究多个物种在共同的生态环境中的协同进化。对应到遗传算法,这可以用于多目标的优化。
l 学习与进化的相互作用。可以将学习分为以下几种:(1)宗亲(phylogenetic learning)学习:通过血亲遗传将祖先的特征遗传给后代。(2)社团学习(sociogenetic learning):经验和知识在群体(社团)中的共享。(3)个体学习(ontogenetic learning):个体生存过程中的学习。按照现代进化论的观点,自然界生物的进化主要发生于基因型,个体学习和社团学习的结果不能影响基因型,无法通过获得性遗传直接遗传给后代。然而,有些进化生物学家研究了学习对进化的间接影响,尤其著名的是"Baldwin"效应。其基本思想是:如果学习有助于生存,那么学习的最好的有机体将有最多的后代,从而影响到与学习有关的基因在种群中的频率。也就是说,获得某种所需特性的能力使有机体更能生存,从而给了基因突变独立发现所需特性的机会。但是,除了生物界的有性生殖、突变、染色体互换和倒置等等基于生理结构的进化机制外,人类社会还存在基于社会文化的进化机制,个体在社会中的学习,幼体的成长过程中对历史和文化的学习都是人类社会特有的更高级的进化机制。我们希望能在遗传算法中体现学习与进化的相互作用。

附:遗传算法简介


遗传算法发展的简要回顾
1950s,将进化原理应用于计算机科学的初步努力。
50年代末到60年代初,Holland应用模拟遗传算子研究适应性。
1967年,Bagley的论文中首次提出了遗传算法这一术语。
1975年,Holland的经典著作《自然和人工系统中的适应性》出版,系统阐述了遗传算法的基本理论和方法。
1975年,DeJong的博士论文《遗传自适应系统的行为分析》,将Holland的模式理论与他的计算试验结合起来。
1983年,Holland的学生Goldberg将遗传算法应用于管道煤气系统的优化,取得了很好的效果。

遗传算法的一些应用领域


应用领域 说明
控制 煤气管道控制,防避导弹控制,机器人控制
规划 生产规划,并行机任务分配
设计 VLSI布局,背包问题,图划分问题
图像处理 模式识别,特征抽取
信号处理 滤波器设计
机器人 路径规划
人工生命 生命的遗传进化
人工神经网络 权值训练和网络结构生成

遗传算法的基本过程:
首先采用某种编码方式将解空间映射到编码空间,每个编码对应问题的一个解,称为染色体或个体。一般通过随机方法确定起始的一群个体,称为种群,在种群中根据适应值或某种竞争机制选择个体,使用各种遗传操作算子产生下一代如此进化下去,直到满足期望的终止条件。


33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧