Python 实现生命游戏及进化模拟完整指南
0. 前言
生命模拟是进化计算的一个特定子集,模拟了自然界中所观察到的自然过程,例如粒子或鸟群的聚集方式。生命模拟只是用来探索和优化问题的模拟形式之一,还有很多其他形式的模拟,可以更好地建模各种过程,但它们都源于康威生命游戏 (Conway’s Game of Life
)。在本节中,我们将介绍生命模拟的基本概念,并使用 Python
实现康威生命游戏。
1. 康威生命游戏
生命游戏是由约翰·霍顿·康威 (John Horton Conway
) 于 1970
年开发的一种简单的细胞自动机;这个“游戏”被认为是计算机模拟的起源。虽然模拟的规则很简单,但它的确能够得到优雅的图案和表现形式。
1.1 康威生命游戏的规则
康威生命游戏之所以优雅,归结于用于模拟细胞生命的规则的简洁性。使用以下四个简单的规则模拟细胞的生命周期:
- 任何活细胞如果周围少于两个存活邻居,则会死亡(因为人口稀少)
- 任何活细胞如果周围有两个或三个存活邻居,则会存活到下一代
- 任何活细胞如果周围有多于三个存活邻居,则会死亡(因为人口过剩)
- 任何死细胞如果周围恰好有三个存活邻居,则会变成一个活细胞(因