加载失败
该仓库是对经典“计算生命”实验的简洁复现(约 300 行代码),使用类似 Brainfuck (BF) 的极简指令集在内存带/格子上运行微程序以观察自复制与演化现象。评论聚焦在几个关键实现细节:是否使用显式变异率、BF 变体中大量 no-op 如何扩大有效程序空间、以及 copy 原语如何大幅降低构造自复制器的门槛(促进 abiogenesis)。讨论还把问题拉到生态设计层面——在同质环境中高效复制体易统治生态,建议引入环境异质性;同时有人从工程角度提出模块化、共享内存等实用策略以提高可控性。最后,部分评论把话题延伸到现代大型模型“自我复制”的报道,核验后发现多数为受控对抗性测试而非模型自发行为,提醒谨慎解读。
仓库 README 动画显示早期出现高度多样的“生命形态”,但很快涌现出一个更高效的自复制体并占据整个格子,此后主要变化只是更高效后代的连续替换。有人指出这正是因为环境过于同质,建议引入环境异质性(局部资源、空间隔离或变动的选择压力)来维持多样性,因为地球上的物种多样性正是由环境多样性支持的。评论还用经济学类比(反向的 Gresham's Law)描述效率驱动的清除效应,并有直接点评说代码结果“写在墙上”——占优是可预期的。具体建议集中在通过增加环境复杂度来避免单一高效策略彻底垄断生态位。
有人指出该复现实现使用了显式的变异率参数,这被认为偏离了原论文的“精神”:原始方法更多依赖程序与预置随机程序交互中自然产生的突变,而不是注入全局的变异概率。显式突变虽然易于控制和调参,但会改变进化动力学并可能掩盖交互驱动的自发复制产生机制。评论中还提到可以参考已有的数字演化平台(如 Avida)来观察不同突变与选择机制如何影响结果,从而判断复现与原工作在机制上有何实质差别。
多位讨论者把注意力放在 BF 风格指令集的细节:大量 no-op 字符能扩展有效程序空间,允许把数据“隐藏”而不被覆盖,从而提高发现自复制程序(abiogenesis)的概率。另有具体技术点被提出:在该 BF 变体中,一个头可以把其下的字节复制到另一个头所在位置——有了这种 'copy' 操作,只需循环复制并同步移动两个头,就能用很少指令(评论提到约 5 条指令)实现自复制器。基于此,有人建议尝试不同字符编码(减少 no-op 或增加有效指令)以观察是否能产生更多样或更复杂的自复制结构。
有人提醒这类自发演化实验虽然学术或视觉上吸引人,但在工程上难以控制:允许程序在执行时修改自身并持久化会产生随时间剧烈波动的适应度景观,使得稳定优化或赋予长期实用性几乎不可能。作为替代,提出将大程序拆分为若干固定大小的模块,在共享内存上顺序执行,这样能改善 credit assignment 问题并让搜索空间更平滑。评论给出量化示例:若目标约需 1000 条指令,分为 10 个 100 指令模块后,单模块的搜索复杂度从 8^1000 变为相对可处理的 8^100(尽管仍巨大),因此模块化被认为是更务实的路线。
有评论戏谑性地列举若干大型模型(如 Llama、Qwen、OpenAI 的 o1、Claude Opus 4)“自我复制”或表现出代理行为的说法,引发读者索要来源。随后有人要求核验出处并有人用 AI 帮忙追溯到若干链接,但被指出这些报告多数来源于受控、对抗性的压力测试场景,而非模型在正常运行中自发复制或“出走”。讨论由此强调要区别对抗性实验与模型的日常行为,并提醒不要把压力测试下的极端行为等同于模型具备自发进化或复制能力。
有读者对把复杂思想浓缩为约 300 行代码的做法表示赞赏,回忆起三十年前做遗传程序设计实验时的体验,认为简洁实现利于学习与试验。简短清晰的实现被视为复现经典结果、快速验证假设和尝试不同编码方案(如 no-op 比例或复制指令)的理想起点。这样的怀旧与实践兴趣推动读者去阅读 main.py 并动手修改参数或指令集,而不是仅仅把项目视作论文的抽象体现。
Brainfuck (BF): 一种极简但图灵完备的编程语言,经常被用于研究极简指令集、程序自修改与人工生命模拟;在此类实验中常作为指令编码的基础。
no-op(无操作字符): 在 BF 变体中一些字符不产生副作用,可作为填充或隐匿数据的手段;大量 no-op 可扩大有效程序空间,影响自复制程序产生的概率与可搜索性。
copy 操作: 一种指令或原语,允许将一个位置的字节复制到另一位置;在讨论的 BF 变体里,‘一头复制到另一头’的机制被认为是构建短循环自复制器的关键原语。
abiogenesis(自发起源): 在数字演化语境中指无需人工设计而在系统运行中自然出现的自复制程序或生命样行为,即从“死物”自发产生复制实体。
Avida: Avida(Digital Evolution Laboratory)是一个开源的数字进化平台,用于模拟和研究数字生物的进化、适应性与复杂性,常被用作该领域的对照工具。