biosim4生物进化模拟器
这堆代码用来模拟通过自然选择进化的生物,不过要注意,这个模拟器缺乏友好的界面,因此编译和执行程序可能需要格外注意细节。
代码块
- src 目录中的代码可以被编译成一个名为 biosim4 的控制台程序。默认情况下调用时,它将从名为 biosim4.ini 的配置文件中读取参数(可以在命令行上指定其他配置文件),模拟器会在生物居住的地方配置一个 2D 竞技场。
- 类 Grid (参见 Grid .h 和 Grid .cpp )包含一个 16 位索引的 2D 数组,每个非零索引指向类 Peeps 中的特定个体(参见下文)。网格中的零值表示空位置,类 Grid 不包含东西,它只存储表示谁住在哪里的索引。
- 生物的数量存储在类 Peeps 中(参见 Peeps .h 和 Peeps .cpp )。类 Peeps 包含模拟中的所有个体,存储在 std::vector 容器中,作为 struct Indiv 的实例,类 Grid 中的索引是对类 Peeps 中的个体向量的索引。Peeps类保留了一个struct Indiv的容器,但除此之外,它对个体的内部工作一无所知。
- 每个个体都由 struct Indiv 的一个实例表示(参见 Indiv .h 和 Indiv .cpp )。Struct Indiv 包含一个个体的基因组,对应的神经网络大脑,以及在二维网格中个体 X、Y 位置的冗余副本。它还包含一些个人的其他参数,如“响应性”水平、振荡周期、年龄和其他个人参数。
- Struct Indiv 知道如何在模拟开始时将一个人的基因组转换成其神经网络大脑。它还知道如何在模拟过程中以文本格式将基因组和神经网络大脑打印到标准输出。它还有一个函数 Indiv::getSensor() ,用于计算每个模拟器步骤的单个输入神经元。
- 所有模拟器代码都位于 BS 命名空间中(“biosim”的缩写)。
配置文件
- 默认情况下,名为 biosim4.ini 的配置文件包含模拟运行的所有可调参数。biosim4 可执行文件在启动时读取配置文件,然后在模拟期间监视它的变化,在模拟运行期间可以修改许多参数。
- 类ParamManager(参见 params.h 和 params.cpp) 管理配置参数,并通过 ParamManager::getParamRef() 提供的只读指针,让这些参数对模拟器可用。
- 有关每个参数的文档,请参阅所提供的 biosim4.ini 文件。
评论