游戏康威生命游戏是如何搭建计算机的?( 二 )


接下来 , 只要有一种自动化方法 , 将多规则生命游戏搭建的计算机转译为康威生命游戏的规则 , 不就大功告成了吗?确实如此 。 不过 , 发现转译工具的过程可不简单 。 这里要感谢康威生命游戏世界里一个像上帝样的存在——OTCA metapixel单元细胞 。 有关这个上帝般的存在 , 我们后面再详细解释 。
也就是说 , 在康威生命游戏中搭建计算机仅需三步:
第一步:在导线世界游戏里做原型验证 。
第二步:在多规则生命游戏里搭建高层级的通用计算机 。
第三步:使用OTCA metapixel单元细胞转译第二步的结果 , 得到低层级实现 。
注:必须说明的是 , 借助OTCA metapixel转译并非搭建计算机的唯一方案 。 甚至 , OTCA metapixel本身的冗余成分还会让转译后的计算机显得过度臃肿 。 已存在好几种不同类型的图灵机实现 , 可以作为搭建计算机的基础架构 。 参见: https://conwaylife.com/wiki/Universal_computer
在导线世界游戏里搭建计算机
在虚拟世界中搭建计算机 , 最直观的思路就是用某种机制模拟电流与电子元件 。 例如 , 《我的世界》游戏提供了红石电路(Redstone circuits)这种足以模拟电流、电路的机制 , 玩家就在其基础上创建了许多台有趣的通用计算机 。
康威生命游戏里 , 最像电流的可能就是各种尺寸的滑翔机了 。 但直接用滑翔机搭建电路的挑战还是太大 。 1987年 , Brian Silverman为了更好地模拟计算机电路 , 创造了导线世界游戏(Wireworld) 。 与康威生命游戏一样 , 导线世界游戏也是一种仅有几条规则的细胞自动机:
空细胞总保持不变 。
蓝色细胞代表电子头部 , 每次迭代都会变成红色细胞 。
红色细胞代表电子尾部 , 每次迭代都会变成黄色细胞 。
黄色细胞代表导体 , 每次迭代时 , 如果周围有1个或2个相邻细胞是蓝色 , 就变成蓝色细胞 , 否则就保持原样 。
很容易基于这四条简单规则构建一根允许电流通过的导线:
游戏康威生命游戏是如何搭建计算机的?
图片

把导线绕一个或大或小的圈子 , 就成了可以连续发射不同频率脉冲的系统时钟:
游戏康威生命游戏是如何搭建计算机的?
图片

导线中增加一个巧妙的“C”形连接 , 可以做成只允许电流从一个方向通过的二极管:
游戏康威生命游戏是如何搭建计算机的?
图片

“或”门是一个十字型结构 , 一个或两个输入信号都可以激发输出信号:
游戏康威生命游戏是如何搭建计算机的?
图片

“与”门稍微复杂些 。 只有单个输入信号时 , 电流或者被十字结构阻挡 , 或者在环路中自己阻挡自己 。 两侧都有输入信号时 , 环路电流的一个分支恰巧被另一个信号阻挡 , 另一分支得以形成输出信号:
游戏康威生命游戏是如何搭建计算机的?
图片

“异或”门是一个简单的方环 , 单个输入信号可以通过 , 两个输入信号同时进入则就相互阻挡 , 无法形成输出:
游戏康威生命游戏是如何搭建计算机的?
图片

触发器电路拥有存储或重置一个二进制位的逻辑功能 , 是很多复杂电路结构的基本单元 , 也是实现内存的基础 。 在触发器电路里 , 下端输入信号负责激活触发器 , 引起持续输出的信号 , 上端输入信号负责重置触发器 , 终止信号的输出:
游戏康威生命游戏是如何搭建计算机的?
图片

在下面这个加法器里 , 两个输入数字A和B(二进制取值分别为011和110)按低位到高位顺序 , 逐位从左边上下两条导线进入算术单元 。 算术单元内部 , 左侧的异或门负责计算当前位的求和结果A XOR B , 下侧的与非门利用A AND NOT (A XOR B)计算是否进位 , 中间的触发器负责存储进位标志 , 另有一个与非门负责在需要时重置触发器 。 计算结果以低位到高位次序从右侧导线输出(结果为1001):


推荐阅读