`
cryolite
  • 浏览: 581394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

遗传算法学习笔记(1)

阅读更多
学概率的时候提到有这样一个“无限猴子定律”:一个具有无限生命的猴子(它不懂人类的语言)随机的敲击打字机,总有一天它会打出一本莎士比亚的书来。

这只猴子能打出任意的书来,有意义的无意义的,无意义的远多于有意义,猴子定律只是指出了得到这种有意义的书的可能性,不保证他的现实性,也许整个宇宙从诞生到现在的时间,这只猴子仍然打不出来,但是在接下来的时间里,总有那么一天完成这个任务。

个人理解,这个猴子定律说的是以概率的角度看,什么可能都会发生,从无序中能得到有序。生命也是一种有序的组织,它是如何诞生的,达尔文的进化论科学的解释了这一问题。

攻击进化论的人一个重要理由是:生命如此复杂,它的产生几乎是一个概率为零的事件。他们从概率计算认为,从宇宙诞生的时间算起,也无法自发生成一个细胞。

计算是对的,结论是错误的,原因是他们忽略了自然选择对这一过程的干预。如果没有干预,什么都在发生,也就什么都不可能发生。

从低级到高级,从简单到复杂,高度复杂的生命是由更为简单的生命一步一步地通过选择形成。突变是随机的,但是在自然选择的作用下,随机性大大降低。无序的没有意义的被自然剔除,剩下的进一步选择,一步一步,高级生命就这样诞生了。这样的高级生命也许不是最完美的,但确实最适合环境的

上帝是否掷骰子?上帝当然掷骰子,但是它也提供了一个甄别的手段,就是说上帝认为某种结果是合理的,合理的结果就留下了,不合理的就忽略了,在合理的结果中继续甄别。。。。。

上帝需要操心生命具体如何进化吗,他需要对生命的各方各面(组成物质,细胞结构,器官等等)进行设计吗?也不需要。只要提供了甄别,随生命怎么随机变异,他只负责对变异的结果进行赠别就行了,若干年后,当年简单的有机物变成了现在高度复杂的生命。

遗传算法模拟上帝创建生命的这一过程

计算机算法是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,经过计算机程序的有限次运算,能够得出所要求或期望的终止状态或输出数据。

算法也可简单描述为:给出一定的输入,得到合理的输出。一些算法我们可以在了解它的原理下计算出来,典型的如数学计算。但许多情况下数学模型很难精确求最优解,对于这些复杂问题,能够得到次优解就很满意了

遗传算法从代表问题可能的潜在解集合开始,模仿了自然进化模型,如选择、交叉、变异、迁移等过程。计算开始时,一定数目N个个体(即初始解集合)随机的初始化,计算每个个体的适应度(供选择的量化指标),选出适应度最高的个体,第一代就这样诞生了,然后得到的子代按一定概率变异,加入下一次选择,再变异,再选择。。。。。这一过程循环往复,直到满足求解条件为止。

也就是说,使用遗传算法我们不需要详细了解算法原理,数学模型,我们只要给出进化手段(变异手段,选择手段等),和足够的时间,遗传算法总能给我们找到一个次优解,尽管可能不是最优解

所以某种程度上遗传算法几乎是一个万能算法

但是为什么不容易得到最优解?所谓最优解,只会有一个,如果有两个就不叫最优解了。
回头看看地球上的生物进化。总的趋势是从低级到高级,从简单到复杂。我们把进化出理性生命看做最优解,是否必然只产生像人类,而不是别的什么理性生命呢?

注:这里提到的上帝是一个比喻,也就是常说的斯宾洛沙的上帝,即大自然,而不是圣经中那个具有人格的上帝

参考:
http://www.bullog.cn/blogs/fangzhouzi/archives/17777.aspx
http://www.bullog.cn/blogs/fangzhouzi/archives/17776.aspx
分享到:
评论

相关推荐

    遗传算法学习笔记_C#

    在实际应用中,遗传算法可以广泛应用于各种优化问题,例如组合优化、函数优化、机器学习中的参数调优等。其优势在于能够处理非线性、多模态和高维度的问题,而不仅仅是简单的花朵适应性模拟。通过调整遗传算法的参数...

    遗传算法学习笔记 -DEAP库学习笔记

    DEAP库学习笔记

    遗传算法的一些学习笔记

    本篇笔记将深入探讨遗传算法的基本概念、核心机制以及应用实例。 一、遗传算法的基本原理 1. 编码:遗传算法中的解决方案通常被编码为一种称为“染色体”的数据结构,这可以是二进制串、浮点数序列或者其他适合...

    供学习和参考的遗传算法笔记

    通过这个链接,学习者可以获取更多的遗传算法学习资源,加深理解,提升实践能力。 总之,这份“遗传算法笔记”是学习遗传算法的宝贵资料,无论你是初学者还是有一定基础的研究者,都能从中受益。通过深入学习和实践...

    基于Java语言的遗传基因算法学习笔记源码分享

    本项目为Java语言编写的遗传基因算法学习笔记,包含29个文件,包括15个Java源文件、5个XML配置文件、4个类文件、1个Git忽略文件、1个Idea项目配置文件、1个PDF文档,并附带相关实验数据和词典文件。该项目旨在帮助...

    遗传算法求最大值.zip_mathematica_policemanlnh_遗传算法

    通过阅读和理解这个文件,我们可以深入学习如何在Mathematica中构建和运行遗传算法,以及如何将遗传算法应用到特定问题中。此外,该文件还可能包含对结果的可视化展示,帮助我们直观地理解算法的运行过程和最终解的...

    遗传算法与Q-Learning学习笔记

    【遗传算法】是一种模拟生物进化过程的优化算法,主要用于解决复杂问题的全局寻优。它通过模拟生物界的遗传、突变和自然选择等机制来逐步演化解决方案。在遗传算法中,一组解决方案被称为“种群”,其中每个解决方案...

    个人总结的遗传算法及Matlab实现-Genetic algorithm 学习总结.rar

    最近学习遗传算法及Matlab实现,看书的过程中做了总结性的笔记,供初学者参考,适于快速入门,并运用Matlab遗传算法工具箱实现遗传算法。 欢迎批评指正! Genntic Algorithm 学习总结遗传算法是一种基于自然群体...

    智能算法学习笔记

    【智能算法学习笔记】 智能算法,作为一种模仿自然过程的计算方法,主要应用于解决复杂优化问题,尤其是NP问题。这些算法的灵感来源于生物学和社会学中的自然现象,通过模拟这些现象来寻找问题的最优解。 1. **...

    遗传算法教案

    1. **基本概念**:遗传算法的基本原理,包括种群、个体、基因、染色体、适应度函数等核心概念的定义和理解。 2. **编码方式**:如何用二进制或实数编码表示问题的解,以及各种编码方式的优缺点,如直接编码和间接...

    MATLAB智能优化算法-学习笔记(1)-遗传算法求解0-1背包问题【过程+代码】

    遗传算法求解0-1背包问题

    智能算法学习笔记 pdf版

    ### 智能算法学习笔记知识点总结 #### 一、智能算法概述 智能算法是一类模仿自然界中的现象和规律设计出来的算法,这类算法通常能够处理传统优化算法难以解决的复杂问题。例如,模拟退火算法模拟了物理世界的退火...

    matlab遗传算法程序(以求解函数的极值为例).rar

    1. GA.asv:这是遗传算法的主程序,其中定义了算法的主要流程,如种群初始化、适应度计算、选择、交叉和变异等步骤。 2. 实验六 基于遗传算法的函数优化.doc:这是一个详细的实验指导,解释了如何使用遗传算法进行...

    论文研究-混合多智能体遗传算法.pdf

    综合多智能体的局部感知能力和遗传算法的强搜索能力,提出了一种混合多智能体遗传算法(HMAGA)。该方法构造了启发式搜索和混合交叉策略完成智能体之间的竞争和合作,综合凸变异和局部搜索体现智能体的自学习特性,...

    遗传算法神经网络资料文档大全

    6. "GA与神经网络的结合的程序.doc":这个文档提供了遗传算法与神经网络结合的程序示例,有助于学习者了解这两种技术如何协同工作以解决复杂问题。 7. "关于用遗传算法改进BP神经网络的matlab实现.txt":这份文档...

    0090-极智AI-解读详解遗传算法实现-个人笔记

    0090_极智AI_解读详解遗传算法实现-个人笔记

    遗传算法Python程序.zip

    通过阅读笔记并深入理解代码,学习者不仅可以掌握遗传算法的工作原理,还能提升编程技能,尤其是算法设计和实现方面的能力。遗传算法作为一种强大的优化工具,在机器学习参数优化、调度问题、网络设计、工程设计等...

    关于遗传算法应用的一些参考文献

    遗传算法是一种模拟自然界生物进化过程的优化方法,它在解决复杂问题,特别是在计算机科学和工程领域,如机器学习、人工智能、网络路由、工程设计、调度问题等有着广泛的应用。在这个"关于遗传算法应用的一些参考...

    文化基因算法学习笔记

    文化基因算法,作为人工智能领域的一种新兴优化方法,借鉴了生物进化过程中的文化传播与基因遗传机制,旨在解决复杂问题的优化求解。这种算法以其独特的思想和高效的性能,近年来在学术界和工业界受到了广泛的关注。...

    遗传算法的基本原理与方法 笔记.doc

    遗传算法的基本流程包括编码、选择、交叉、变异和适应度评估,通过调整这些元素及其参数,可以应用于各种优化问题,如工程设计、机器学习、组合优化等。理解并掌握这些基础知识对于有效应用遗传算法至关重要。

Global site tag (gtag.js) - Google Analytics