学概率的时候提到有这样一个“无限猴子定律”:一个具有无限生命的猴子(它不懂人类的语言)随机的敲击打字机,总有一天它会打出一本莎士比亚的书来。
这只猴子能打出任意的书来,有意义的无意义的,无意义的远多于有意义,猴子定律只是指出了得到这种有意义的书的可能性,不保证他的现实性,也许整个宇宙从诞生到现在的时间,这只猴子仍然打不出来,但是在接下来的时间里,总有那么一天完成这个任务。
个人理解,这个猴子定律说的是以概率的角度看,什么可能都会发生,从无序中能得到有序。生命也是一种有序的组织,它是如何诞生的,达尔文的进化论科学的解释了这一问题。
攻击进化论的人一个重要理由是:生命如此复杂,它的产生几乎是一个概率为零的事件。他们从概率计算认为,从宇宙诞生的时间算起,也无法自发生成一个细胞。
计算是对的,结论是错误的,原因是他们忽略了自然选择对这一过程的干预。如果没有干预,什么都在发生,也就什么都不可能发生。
从低级到高级,从简单到复杂,高度复杂的生命是由更为简单的生命一步一步地通过选择形成。突变是随机的,但是在自然选择的作用下,随机性大大降低。无序的没有意义的被自然剔除,剩下的进一步选择,一步一步,高级生命就这样诞生了。这样的高级生命也许不是最完美的,但确实最适合环境的
上帝是否掷骰子?上帝当然掷骰子,但是它也提供了一个甄别的手段,就是说上帝认为某种结果是合理的,合理的结果就留下了,不合理的就忽略了,在合理的结果中继续甄别。。。。。
上帝需要操心生命具体如何进化吗,他需要对生命的各方各面(组成物质,细胞结构,器官等等)进行设计吗?也不需要。只要提供了甄别,随生命怎么随机变异,他只负责对变异的结果进行赠别就行了,若干年后,当年简单的有机物变成了现在高度复杂的生命。
遗传算法模拟上帝创建生命的这一过程
计算机算法是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,经过计算机程序的有限次运算,能够得出所要求或期望的终止状态或输出数据。
算法也可简单描述为:给出一定的输入,得到合理的输出。一些算法我们可以在了解它的原理下计算出来,典型的如数学计算。但许多情况下数学模型很难精确求最优解,对于这些复杂问题,能够得到次优解就很满意了
遗传算法从代表问题可能的潜在解集合开始,模仿了自然进化模型,如选择、交叉、变异、迁移等过程。计算开始时,一定数目N个个体(即初始解集合)随机的初始化,计算每个个体的适应度(供选择的量化指标),选出适应度最高的个体,第一代就这样诞生了,然后得到的子代按一定概率变异,加入下一次选择,再变异,再选择。。。。。这一过程循环往复,直到满足求解条件为止。
也就是说,使用遗传算法我们不需要详细了解算法原理,数学模型,我们只要给出进化手段(变异手段,选择手段等),和足够的时间,遗传算法总能给我们找到一个次优解,尽管可能不是最优解
所以某种程度上遗传算法几乎是一个万能算法
但是为什么不容易得到最优解?所谓最优解,只会有一个,如果有两个就不叫最优解了。
回头看看地球上的生物进化。总的趋势是从低级到高级,从简单到复杂。我们把进化出理性生命看做最优解,是否必然只产生像人类,而不是别的什么理性生命呢?
注:这里提到的上帝是一个比喻,也就是常说的斯宾洛沙的上帝,即大自然,而不是圣经中那个具有人格的上帝
参考:
http://www.bullog.cn/blogs/fangzhouzi/archives/17777.aspx
http://www.bullog.cn/blogs/fangzhouzi/archives/17776.aspx
分享到:
相关推荐
一篇关于使用C#实现遗传算法的学习笔记,适用于学习遗传算法的人。
遗传算法的一些学习笔记,比较基础的吧~~~~~~~~~~~~~~~~~~~~
遗传 算法 笔记,用来供大家学 习参考,大家一 起学习提高。
最近学习遗传算法及Matlab实现,看书的过程中做了总结性的笔记,供初学者参考,适于快速入门,并运用Matlab遗传算法工具箱实现遗传算法。 欢迎批评指正! Genntic Algorithm 学习总结遗传算法是一种基于自然群体...
自己记录的学习笔记
在工程实践中,经常会接触到一些比较“新颖”的算法或理论,比如模拟退火,遗传算法,禁忌 搜索,神经网络等。这些算法或理论都有一些共同的特性(比如模拟自然过程),通称为“智 能算法”。它们在解决一些复杂的...
综合多智能体的局部感知能力和遗传算法的强搜索能力,提出了一种混合多智能体遗传算法(HMAGA)。该方法构造了启发式搜索和混合交叉策略完成智能体之间的竞争和合作,综合凸变异和局部搜索体现智能体的自学习特性,...
遗传算法的Python例程,以寻找最大值为例,另附学习笔记更利于学习和记忆
接我的上一条笔记:《BP神经网络学习--MATLAB源码详细注释》,今天已经把遗传算法加进去优化,并且运行成功,效果很不错,代码也是从网上找来的,但是我查了很多资料,写了很多注释,我是小白~
简述 这是《深度学习与人工智能》课程中很普通的一道作业题,但因为发现了一个更巧妙的搜索目标的形式,让...在这篇文章中看到了一种搜索目标的表示形式,这篇文章虽然是讲遗传算法而不是蚁群算法,但是它对遗传算法染
高级综合-用遗传算法求解TSP。关于该项目该存储库包括遗传算法的实现,该算法解决了高级综合的旅行商问题。 该项目的执行目的是针对DUTh第9学期的高级综合课程的硬件设计。 该存储库包含2个分支: 软件:包含可以在...
JAVA基于遗传算法的中药药对挖掘系统的设计与实现(源代码+文).zip
实用性强,非理论性的算法: CSDN-算法精华(收集) 麻省理工学院《算法导论》 JAVA上加密算法的实现用例 数据结构与算法分析学习笔记 C语言常用算法源代码 遗传算法从入门到精通 ...
算法 ['ælgәriðm] Annotation [java] 代码注释 [ænәu'teiʃәn] anonymous adj.匿名的[ә'nɒnimәs]'(反义:directly adv.直接地,立即[di'rektli, dai'rektli]) apply v.应用,适用 [ә'plai] application ...
24 Sheffield大学最新遗传算法工具箱 25 Camera Calibration 像机标定工具箱 26 Qhull(二维三维三角分解、泰森图)凸包工具箱 2019版 27 jplv7 28 MatlabFns 29 张量工具箱Tensor Toolbox 30 海洋要素计算工具箱sea...
遗传算法解决 TSP 旅行商问题 —— Processing 音乐可视化例子代码 —— 创意编程干货资源补给站 —— Gank.io 资源 GitHub 备份 命令 Java Android Framework DesignPattern 推荐阅读: 整理的 Snippet 推荐阅读: ...
进化计算:遗传算法,遗传编程和神经进化 视觉AI:卷积神经网络,图像识别和生成对抗网络 人工智能和机器人技术:机器人操作系统(ROS),无人驾驶飞机,蜂拥而至的蜂巢思想 人工智能与网络安全 心灵战场:信息战中...
这项工作的目的是学习更多有关遗传算法如何工作以及如何通过计算机模拟进化的知识。 该项目将是一个相对简单的项目(希望如此),我将在其中模拟二维植物形状的演变,从而使其在一天内最大程度地收集阳光。 笔记:...
自学中的随手笔记,希望对初学者有所帮助,有什么意见或者建议欢迎指正,互相学习,共同进步
对于谷歌的阿拉法狗战胜李世石在17年也引起了轰动,再次展示了深度学习算法和 人工智能的威力。对于人工智能来讲,计算机本身的CPU并行计算能力远超人脑,主要有 了合适的深度学习方法,计算机程序所发挥出来的人工...