biosim4

生物进化模拟器
授权协议 未知
开发语言 C/C++
所属分类 游戏/娱乐、 游戏模拟器/工具/引擎
软件类型 开源软件
地区 不详
投 递 者 西门旻
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

代码块

  • 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 文件。

 

 相关资料
  • 生物进化 在研究生物进化中,常用一种类似树状分支的图形来概括各种(类)生物之间的亲缘关系。下图(来源于网络)就是一棵生物进化树。 树可分为 有根树(rooted tree)和 无根树(unrooted tree)两类,为了便于讨论,这里我们只涉及有根树。有根树是具有方向的树,选择其中某个确定的节点,将其作为树中所有物种的共同祖先(根)。有根树这种结构在计算机科学中极为常见,尤其适用表述层次结构。下

  • 物理模拟 即使使用了基于定时器的动画来复制第10章中关键帧的行为,但还是会有一些本质上的区别:在关键帧的实现中,我们提前计算了所有帧,但是在新的解决方案中,我们实际上实在按需要在计算。意义在于我们可以根据用户输入实时修改动画的逻辑,或者和别的实时动画系统例如物理引擎进行整合。 Chipmunk 我们来基于物理学创建一个真实的重力模拟效果来取代当前基于缓冲的弹性动画,但即使模拟2D的物理效果就已近极

  • 我已经在 http://www.petercollingridge.co.uk/pygame-physics-simulation/ 上看到了Peter Colling Ridge编写的非常棒的教程,我正在扩展PyParticles脚本 代码可以在站点上获得(免费),我使用的是pyparticles4.py 粒子类 具有半径、质量、速度、位置的圆形2D物体 Spring类 捆绑2个物体(粒子)并利

  • 考虑一个3D太阳系模拟。 我的模拟循环: null 提升FPS 降低我的行星的速度(降低引力常数??) 与呈现循环一起运行相比,有一个单独的模拟循环,但速度更快 对于任何感兴趣的人,我使用的是three.js。

  • 你好,我刚刚在codenameone中开发了一个应用程序,它在模拟器中工作得非常好,但是当我在物理设备上安装相同的应用程序时,所有绘制的对象的大小都减少了。我想保持与模拟器中相同的大小。模拟器使用的皮肤是:appleipadamini物理设备使用的是:Apple iPadmini4模拟器选择的高度和宽度是1000×700,但是安装在物理设备上时,它只是屏幕的一半。

  • 本文向大家介绍原生js模拟淘宝购物车项目实战,包括了原生js模拟淘宝购物车项目实战的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了原生js模拟淘宝购物车实现代码。分享给大家供大家参考。具体如下: 通过JavaScript实现类似与淘宝的购物车效果,包括商品的单选、全选、删除、修改数量、价格计算、数目计算、预览等功能的实现。实现的效果图: 相应的代码: shoppingCart.html s