因存在冲突的中间编辑,本编辑不能撤销。
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:用户
您可以查看和复制此页面的源代码。==什么是元胞自动机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)。
==使用代码==
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")
==实验==
使用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:机器学习]]