更改

跳到导航 跳到搜索
添加5,511字节 、 2016年12月6日 (二) 15:51
无编辑摘要
==什么是元胞自动机Cellular automata==

这篇文章“[http://www.swarma.org/vm/articles/freebits.htm 释放比特自由]”是一个很好的介绍。

这篇文章写于2007年9月,值得一提的是其中提到的最小图灵机,在2007年10月[http://blog.wolfram.com/2007/10/24/the-prize-is-won-the-simplest-universal-turing-machine-is-proved/ 已经被找到]并通过评审。

理解了希尔伯特的数学形式主义后,CA会变得更有意义。

[[File:CA2_figure_1.jpg|800px]]

Wolfram介绍的四类元胞自动机,分别对应定点(fix),周期(periodic),混沌(chaotic),复杂(complex)。

==基本代码的下载==

在[http://greenteapress.com/complexity/CA.py 这里]下载定义(cellular automata)CA的代码,在[http://greenteapress.com/complexity/CADrawer.py 这里]下载相应的绘图程序(CADrawer)。

==使用代码==

<syntaxhighlight lang="python">
import sys
sys.path.append('E:/wulingfei/CA')#保存CA和CADrawer的地址
import CA
import CADrawer


def CAplot(rule,n,initiate):
ca = CA.CA(rule, n)
if initiate == "single":
ca.start_single()
else:
ca.start_random()
ca.loop(n-1)
drawer = CADrawer.PyplotDrawer()
drawer.draw(ca)


CAplot(50,10,"random")
</syntaxhighlight>

==实验==

使用CAplot(50,10,"random")这个命令,我们就得到以下图形

[[File:CA_figure_1.png|400px]]

这是第二类。

CAplot(18,64,"single")的结果:

[[File:CA_figure_2.png|400px]]

这也是第二类。

CAplot(30,100,"single")的结果:

[[File:CA_figure_3.png|400px]]

这是第三类。

CAplot(110,100,"single")的结果:

[[File:CA_figure_4.png|400px]]

CAplot(110,500,"random")的结果:

[[File:CA_figure_5.png|400px]]

这是第四类。

==使用CA模拟大自然==

==哲学==

最小模型的哲学:

[[File:CA_figure_6.png|500px]]

测试你的决定论信仰水平:

D1: Deterministic models can make accurate predictions for some physical systems.

D2: Many physical systems can be modeled by deterministic processes, but some are intrinsically random.

D3: All events are caused by prior events, but many physical systems are nevertheless fundamentally unpredictable.

D4: All events are caused by prior events, and can (at least in principle) be predicted.

你选D几?

==更多哲学==

1. 我们是生活在图灵机的纸带上的图灵机

看的到各种变化,实质是宇宙图灵机在计算时产生的内部花纹(pattern)。这些变化本身,有一些可以构成独立的(通用)图灵机,比如我们的大脑和计算机,因此有模拟其他变化的能力(理解世界,预测未来),有一些则不行,例如沧海桑田。


2. 数学是图灵机的一种形式

数学是对符号的变化,只要我们定义一个良性的符号系统,这个系统本身就成了(通用)图灵机。我们的脑力,就好像计算机的电流一样,在驱动这个符号系统的变化,并从中选择符合我们需求的结果(最简洁的符号表达)。这个系统的通用性使得它可以模拟其他变化,例如表达行星轨道,但这种通用性本身与人脑的思考无关,就好像图灵机的通用性与它是否正在工作无关。所以数学家常常会有这种感慨,好像数学有自己的生命,数学家只是发现,不是发明。


3. 科学就是一台图灵机试着以最小代价模拟另一台图灵机

科学就是要观察花纹(数据)并模拟这些花纹(模型或程序),更精确地说,找到能模拟花纹最短的程序(最小模型)。


4. 程序 = 数据

程序是对变化的表达,数据也是。数据就是直接观察到的图灵机的变化花纹,程序就是导致这些花纹的计算任务。两者是同一件事的在不同逻辑层次上的表达:程序比数据高一层。数据是直接观察花纹,程序是对制造花纹的图灵机的理解,或者模拟。“程序 = 数据” 这个表达更深刻的意义是,它描述了两个图灵机的嵌套结构,A图灵机上运行着虚拟图灵机B,B的程序(计算任务)实际上在A这个层次也是不过是一堆花纹。当B认识到这件事,并且可以通过自身花纹的变化来影响A的花纹变化,即修改关于自己的程序时,B就可以被定义为生命体。


5. 大数据是用数据代替程序

机器学习基于大量用户行为训练得到的矩阵,可以看做是数据,也可以看做是程序 - 因为矩阵实际上是一种线性变换,所以也可以看做是函数或者程序。大数据之所以出现,是因为对于复杂的天气和人类行为,尚未找到有效的简洁程序,只好用数据,也就是花纹,来代替更简洁的表达。我们把所有可能的花纹变化都储存下来,当出现新的花纹,我们当然就可以预测可能的变化。大数据需要高性能的(并行)储存和计算资源,不是值得夸耀的事,恰恰说明科学的落后。但大数据不是完全没有科学的一面,用一部分特征代替所有可能的特征,用更小的矩阵代替大的矩阵,这个努力的方向,就是数据转变为程序,或者不精简的程序转变为精简程序的尝试。



==相关wiki==
*[[Python的元胞自动机模拟]]
*[[Python]]
*[[Processing]]
*[[Python聚类算法]]


[[category:程序语言]]
[[category:Python]]
[[category:机器学习]]
匿名用户

导航菜单