biosim4 生物进化模拟器开源项目

我要开发同款
匿名用户2021年11月20日
49阅读
开发技术C/C++
所属分类游戏/娱乐、游戏模拟器/工具/引擎
授权协议未知

作品详情

这堆代码用来模拟通过自然选择进化的生物,不过要注意,这个模拟器缺乏友好的界面,因此编译和执行程序可能需要格外注意细节。

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

 

查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论