天才女孩!12岁小学生写出冯·诺依曼提出的元胞自动机-阿里云开发者社区

开发者社区> 新智元> 正文
登录阅读全文

天才女孩!12岁小学生写出冯·诺依曼提出的元胞自动机

简介: 今日,Hackernews上一个12岁小女孩儿用Node.js实现了Wolframe的元胞自动化,引起了不少网友的惊叹。

毕竟,是别人家的孩子......

这名叫Liam Ilan的12岁小女孩在Hackernews上低调写了一句话,仅数小时,便惊呆了一路众人:

45f937487d4b55d03c12c339805598ff0ce5782d

我12岁了,正在学习JS,用Node写了Wolfram的元胞自动机

网友们不禁唏嘘,真是长江后浪推前浪,把我们全都拍在沙滩上!

来自12岁小女孩的杰作

小女孩在bitbucket中将自己的项目整理了下来:

使用方法

首先,使用下面的命令克隆repo:


$ git clone https://liamilan@bitbucket.org/liamilan/wolfram-cellular-automata.git

要运行项目,请输入目录,然后使用:


$ node index.js 18

或者:


$ node index.js {rule number between 0 to 255}

Development:

使用下方命令在目录中初始化:


$ npm init

用这个命令运行eslint:


$ npm run lint

元胞自动机,了解一下?

元胞自动机(cellular automata,CA) 是一种时间、空间、状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力。最早由冯诺依曼提出

22a7219dc7fd1f22d1633d63076ed5542ea21351

包含800个时间步的90号规则演化图案

不同于一般的动力学模型,元胞自动机不是由严格定义的物理方程或函数确定,而是用一系列模型构造的规则构成。凡是满足这些规则的模型都可以算作是元胞自动机模型。因此,元胞自动机是一类模型的总称,或者说是一个方法框架。

就形式而言,细胞自动机有三个特征

平行计算(parallel computation):每一个细胞个体都同时同步的改变

局部的(local):细胞的状态变化只受周遭细胞的影响

一致性的(homogeneous):所有细胞均受同样的规则所支配

自元胞自动机产生以来,对于元胞自动机分类的研究就是元胞自动机的一个重要的研究课题和核心理论,在基于不同的出发点,元胞自动机可有多种分类。

其中,最具影响力的当属S. Wolfram在80年代初做的基于动力学行为的元胞自动机分类,而基于维数的元胞自动机分类也是最简单和最常用的划分。

1990942e213de0da0aca202fbc05a801f32f0ed6

Stephen Wolfram

而Wolfram创建的计算搜索引擎Wolfram|Alpha中,其在计算时候,显示的就是元胞自动机。

Wolfram|Alpha 的元胞自动机应该也是 Generations 一类,但肉眼不容易看出具体是什么规则。可通过 Mathematica,将其二值化,并拆分成一个个连通分支来看。

3cb95b9a98f8f8fc10b88f36f6b3a4efbe6c3a38

而后放进Golly里。下图所示是周期15的振荡子:

91a1b6d78a4c69c00419e9b887408d1e7ffd2a40

以及还有周期24的puffer:

56199be40caeace4397843026eb03444c3932242

热心网友评论

4d073a597e425bc0bcffd7533880d871fc7ab94d

有网友将小女孩儿的成果给他12岁儿子看了一眼,结果那孩子快要惊掉下巴!

552a46358e14ed8eeb6d7a433e1335f839dac05c

当然也有热心网友给这个小女孩提出改进建议的。


原文发布时间为:2018-08-30

本文作者:三石

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。

原文链接:天才女孩!12岁小学生写出冯·诺依曼提出的元胞自动机

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

官方博客
官网链接