这个项目模拟了自我复制程序的出现,灵感来自“计算生命”论文。它使用一个240x135的网格,其中填充着类似Brainfuck的短程序(每个程序约64条指令)。这些程序通过随机配对、组合代码、执行(在一定限制内)然后分裂来相互作用,从而实现变异和潜在的自我复制。
该模拟展示了从随机开始,能够复制自己的程序可以自发出现。在这个特定的运行中,一个自我复制器迅速占领了网格,但随后被一个*更*高效的复制器超越,最终完全控制了局面。可视化将每条指令表示为一个彩色像素,黑色代表数据,8x8块代表单个程序,从而视觉上追踪这些计算生命体的传播和演化。
## 神经集群:从鸟群到“Noids”
受星形雀群(表现出无中心控制的协调运动的鸟群)的启发,“Noids”是一种被设计用来复制这种行为的神经网络。研究表明,星形雀大约会跟随7个附近的邻居,基于*拓扑*距离(排名,而非物理距离),即使在鸟群拉伸的情况下也能保持凝聚力。
传统的“Boids”使用手动编写的规则(分离、对齐、凝聚)来模拟鸟群。然而,“Noids”*学习*鸟群行为。每个Noid网络只有1,922个参数,接收输入,代表它自身的速度以及5个邻居的位置/速度,并输出一个转向力。
这种简化设计允许高效计算——利用GPU并行处理进行快速模拟。训练涉及模仿已建立的Boid规则,但由此产生的网络将行为体现为单个学习函数,反映了星形雀大脑的生物学合理性。涌现的鸟群行为展示了复杂行为如何从简单的、局部作用的个体和相对较少数量的学习参数中产生。代码是开源的,突出了可访问和可扩展的鸟群模拟的潜力。