遗传算法:启发自真实现象
书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
第9章目录
9.1 遗传算法:启发自真实现象
1、目标
- 我们的目标不是深入研究遗传和进化的科学原理,我们不会研究旁氏表、核苷酸、蛋白质合成、RNA和其他生物进化相关的话题。
- 相反,我们只讨论达尔文进化论背后的核心原理,并根据这个原理开发出一套算法。
- 我们并不在乎进化模拟是否精确,只关心进化在软件中的应用策略。
2、遗传算法
- “遗传算法”指的是一种特定算法,它以特定的方式实现,用于解决特定类型的问题。
- 尽管遗传算法是本章的基础,但我们不会用绝对精确的方式实现它,因为我们应该多花精力探索遗传算法的创新用法。
3、内容
-
1.传统遗传算法
我们从传统遗传算法开始。
这种算法用于解决“解空间过于庞大,穷举法耗时过长”的问题。
举个例子,有一个介于1~1 000 000的数字,你要花多少时间才能猜到这个数字?
如果用穷举法,你就要检查每一种可能:这个数字是不是等于1,是不是2,是不是3?……运气好的话,你很快就能猜到这个数字;
如果运气不好,你就要从1枚举到1 000 000,这肯定会耗费大量的时间。
但如果我能告诉你更多的信息,比如猜的数字是大是小,是有点大,还是非常大;如果能得到每次猜测的“契合度”,我想你的猜测肯定会越来越接近正确答案,解决问题的速度也会更快。
也就是说,你的答案可以发生进化。 -
2.交互式选择
实现传统遗传算法之后,我们会研究遗传算法在可视化艺术方面的应用。
交互式选择指的是事物(通常是由计算机产生的图像)在用户交互下发生进化的过程。
举个例子,你在参观一家博物馆,博物馆的墙上挂着几幅油画。在交互式选择技术的帮助下,你只要选择出最喜欢的画,程序就会根据你的喜好自动产生(或者“进化出”)一副新画供你欣赏。 -
3.生态系统模拟
如果你去阅读人工智能方面的在线文档或教科书,通常会看到关于传统遗传算法和交互式选择技术的讲解。
但它们不会讲解如何在程序中模拟现实世界的进化过程。
本章的最后将探索如何在模拟生态系统中模拟进化过程。
模拟生态系统中的对象会相遇、结合,并把基因传递给下一代。
这种技术可以直接应用到每一章最后的生态系统项目中。
共有 0 条评论