发生在计算机内存里的进化:解密遗传算法(Genetic Algorithm)
By Long Luo
这篇文章部分内容还在优化,Demo 还在继续开发,大概还需要 7 - 8 小时写作时间。
无限猴子定理(英语:Infinite monkey theorem)
让一只猴子在打字机上随机地按键,当按键时间达到无穷时,几乎必然能够打出任何给定的文字,比如莎士比亚的全套著作。
在这里,几乎必然是一个有特定含义的数学术语,“猴子”也不是一只真正意义上的猴子,它被用来比喻成一个可以产生无限随机字母序列的抽象设备。这个理论说明把一个很大但有限的数看成无限的推论是错误的。猴子精确地通过键盘敲打出一部完整的作品比如说莎士比亚的哈姆雷特,在宇宙的生命周期中发生的概率也是极其低的,但并不是零。
遗传算法(Genetic Algorithm) 1 是一种元启发式搜索和优化技术,借鉴了生物进化中的自然选择和遗传机制。它已经在各个领域展示出了强大的应用潜力。本文将介绍遗传算法的发展历史、原理、示例,以及其广泛应用和不足之处。
发展历史
遗传算法的发展可以追溯到上世纪60年代的约翰·荷兰德(John Holland)和他的同事们的工作。他们首先提出了基因型与表现型之间的映射关系,并通过模拟生物进化过程来解决复杂的优化问题。
原理
遗传算法的核心原理是模拟自然进化的过程。它通过定义适应度函数来评估候选解的质量,并利用遗传操作(选择、交叉和变异)对候选解进行迭代改进。具体而言,算法从一个初始种群开始,通过选择适应度较高的个体作为父代,进行交叉和变异操作产生新的后代个体,然后通过评估适应度来选择出下一代个体。这个过程不断迭代,直到找到满足特定条件的优秀解。
It’s never too late
举个例子
目前参考网络资源写了一个简单的Demo,地址:http://longluo.me/projects/genetic
这个例子还有待完善!