张五常的空间

张五常的空间——腾讯博客
http://zhouziheng.qzone.qq.com/
若干文章:
独裁是学术发展之道
从摄影沙龙说独裁取舍
凯恩斯的无妄之灾
腐败不是学术失败的原因

Private Stub

Please login to view private posts.

几个非常有用的工具网站:

查询网站信息,包括其name server。在迁移域名的时候非常有用。
http://www.whois.com
查询一个网站用了谁家的主机。
http://www.whoishostingthis.com
测试一个网站的速度。
http://www.freespeedtest.com
下面的网站可查询同一IP共享多少网站,通常跟你共享IP的网站越多,性能越差。还有其他许多有用功能。
http://www.domaintools.com/reverse-ip/
http://www.domaintools.com/

利用.htaccess文件设置图片防盗链及转向

http://web.meyu.net/viewthread.php?tid=8313

先解释一下图片防盗链和转向:

Q 图片防盗链有什么用?
A 防止其它网站盗用你的图片,浪费你宝贵的流量。

Q 图片转向有什么用?
A 如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其它空间(比如试用主机),临时过渡。

下面开始讲解,比如你的图片都在img目录下,那就在该目录下放一个名为 .htaccess 的文件,内容如下:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !chong4.com.cn [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]

RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

RewriteRule ^(.*)$ http:\/\/image.chong4.com.cn\/image\/$1 [L]

大概解释一下:

RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !chong4.com.cn [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]

这部分是判断是否盗链,如果以上条件都成立(即访问图片的请求,既不是直接输入网址,也不是来自chong4.com.cn,也不是来自zhuaxia.com,也不是来自google.com,也不是来自baidu.com,也不是来自bloglines.com 的话),就执行下列转向:

RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

意思是让所有盗链 img 目录下 jpg、gif、png、bmp、swf、jpeg 文件的网页,显示的图片都用 image 目录下的 replace.gif 图片替换掉。注意替换显示的图片不要放在设置防盗链的 img 目录下。

如果照上面的规则判断出图片请求不是盗链的,就执行以下转向:

RewriteRule ^(.*)$ http:\/\/image.chong4.com.cn\/image\/$1 [L]

意思对 img 目录下所有的请求都转向到目标服务器,比如有个图片原来的 url 是 http://www.chong4.com.cn/img/girl.jpg ,现在就会转到 http://image.chong4.com.cn/image/girl.jpg 去。当然了你得先把原服务器 img 目录下的文件统统拷贝到临时服务器的 image 目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受了。

利用.htaccess设置图片防盗链 | 清风小荷塘

利用.htaccess设置图片防盗链 | 清风小荷塘.

发现自己的文章在网络上被越来越多的人COPY,尤其是个别同志,一口气复制几十篇文章过去,连一个版权都不留,我算是服了。想来想去决定给博客增加一个防盗链功能。

对于虚拟主机用户来说,最方便的莫过于利用.htaccess设置图片防盗链了。上网搜了一下,.htaccess规则写法很多,但是大部分的区别在于最后一行,下面我们先看看正确的.htaccess防盗链写法,稍后我再详细解释一下最后一行的重点。

真正有用的.htaccess写法为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !zhukun.net [NC]
RewriteCond %{HTTP_REFERER} !youdao.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !twitter.com [NC]
RewriteCond %{HTTP_REFERER} !facebook.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !soso.com [NC]
RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .(png|jpg)$ /no.gif [R,NC,L]

我把.htaccess文件和no.gif文件一起上传到了根目录,注意看最后一行,当指定类型(png或jpg)的图片出现在非上述列表中的网站时,图片会自动替换成no.gif。演示见此

解释一下上述语句:

1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。

2、 RewriteCond %{HTTP_REFERER} !zhukun.net [NC]
设置允许访问的HTTP来源,包括我们的自身站点、Google、Baidu、Bloglines、Feedburner、feedsky等。

3、 RewriteRule .(jpg|png)$ /no.gif [R,NC,L]
定义被盗链时替代的图片,让所有盗链 jpg、png 等图片的网页,显示根目录下的 no.gif 文件。注意:这里必须有一个“/”,而且no.gif件体积越小越好,越小就越节省流量。

4、说明一下其中的 R、NC 和 L
R 就是转向的意思
NC 指的是不区分大小写
L 指明本次转向到此结束,后续的转向不受先前判断语句的影响

特别注意:不建议同时禁止gif|jpg|png这三种图片文件,比如你已经禁止了gif,但是却用了no.gif来替换盗链图片,这样肯定会出问题。如果你想同时禁止这三种类型,可以使用以下方法来解决:

1
RewriteRule .(gif|png|jpg)$ http://farm3.static.flickr.com/2743/4462030670_dc36df0e3d_o.png [R,NC,L]

即用其它服务器上(未设置过防盗链)的图片来替换演示。

本方法已在Godaddy的免费空间上测试成功,再次声明一下,清风小荷塘原创文章,转载请标明来源。

2010.07.16补充,如果你没看懂,不防看看梦游科技的这篇文章

若干主机商

一个速度比Go Daddy快得多的美国主机:
HostEase Web Hosting
.

http://www.idcspy.com/hostease.html

另一个据说很牛逼的主机。

http://www.aplus.net/

繁星客栈用的主机:

http://www.hostgator.com/

若干美国主机介绍:

http://www.ccty.tv/Article/HTML/40476.html

http://www.enet.com.cn/article/2010/0205/A20100205609440.shtml

http://www.us-webhosting.com/hostmonster.shtml?ughm

http://www.us-webhosting.com/kb.shtml?usg

主机商排名:

http://www.webhostingstuff.com/category/Top-10-Web-Hosting-1.html

在中国选美国主机,还得考虑这个主机商有没有被电信墙了。Go Daddy最近就死慢死慢的。

一个据说不错的VPS主机商:

http://fsckvps.com/

国内的容大主机商:

http://www.jotop.com/

Syntactic Structures – Wikipedia, the free encyclopedia

Syntactic Structures – Wikipedia, the free encyclopedia.

Noam Chomsky关于文法的奠基性著作

柯里-霍华德同构 – Wikipedia

柯里-霍华德同构 – Wikipedia.

Lambda演算和自然演绎的对应关系

Intuitionistic logic – Wikipedia, the free encyclopedia

Intuitionistic logic – Wikipedia, the free encyclopedia.

直觉主义逻辑,由希尔伯特式的演算规则构造

Classical logic – Wikipedia, the free encyclopedia

Classical logic – Wikipedia, the free encyclopedia.

刻画经典逻辑的性质

实践共产主义网

实践共产主义网.一个非常欢乐的网站。

(转)趣题:随机选取两个无穷大的图,求两者相同的概率趣题:随机选取两个无穷大的图,求两者相同的概率

http://www.matrix67.com/blog/archives/2168

智商测验

智商这东西本身,是个很值得推敲的东西。

智商是一个数,而智力是一个复杂的结构。用智商来衡量智力水平的优劣,就跟用体积来衡量一辆车的结构优劣一样。

对于一个整天在丛林里面狩猎的人和一个整天在办公室里面编程序的程序员来说,所需要的智力结构自然很不相同。如果让一个狩猎者制定聪明程度的标准,那么对于他们来说,运动、听觉、嗅觉、视觉方面的分辨能力记忆能力和反应速度可能是至关重要的因素,而逻辑推理和数学计算的能力则很可能是次要的。相反,对于一个程序员来说,这个重要程度的顺序却可能截然相反。如果智商测试的标准是程序员制定的用于衡量一个人作为一个程序员的“聪明”程度,那么这样的标准自然很难衡量一个猎人的“聪明”程度。

不但如此,事实上也不可能制定一个完全客观的智商标准,用来衡量一个人在“各种场景”下的“平均”智力水平。这就跟把描述一辆车的结构的大量数据拿来构造一个实数一样,有无穷多种互不等价的构造方法。智商测验,一般的做法是将智力划分为若干不同能力,每种能力都赋予一定的权值,然后对每种能力的得分进行加权求和。但是对于这种分类学问题,根本就没办法给出一个客观方案。每种能力都可以再细分,两种相近的能力也可以合并。如果你认为某种能力很重要,就可以对这种能力多分几个类,否则就可以把几个类合并起来,也可以直接调整每个类别的权值。如何判断一种能力的重要程度?显然其重要程度取决于一个人的生存环境和价值取向,所以衡量一种能力是否重要,根本就不存在客观标准。

所以,在各个种族或者民族之间存在智力差异,这件事情根本不值得大惊小怪,也代表不了什么。客车族跟货车族的体积在统计上自然有明显差异,这并不代表二者孰优孰劣,因为二者的使用场景和使用目的不同。衡量一部车是否适合于某种特定用途,需要综合考虑许多因素(例如功率、重量、长度、高度、宽度、座椅舒适程度、底盘高度、最高时速、启动扭矩、成本、操控……)。脱离具体的使用场景或者把已知因素加权平均得出一个数量来比较优劣,完全是无的放矢。

虽然如此,并不是说对人的智力无法进行科学研究。完全可以讨论不同人群之间的智力差异,这种差异是智力结构上的差异,我们可以用许多许多不同的因素来描述这种结构上的差异,并不是所谓的“优劣”这种设定了价值观的差异。每一项指标在不同人却中统计平均值不同,只能说明不同人群之间的差异,跟这个群体是否“优秀”没有直接关系。只有在特定的生存环境中,明确了一种特定的生存目标,才能确定出一套明确的衡量智力优劣的标准。也就是说,一个人的智力结构的“优劣”,取决于他的生存目标和生存环境,当他的智力结构放在他所处的生存环境中,使他比大多数有类似生存目标的人更擅长于达到这种生存目标,才能说此人的智力结构在这种特定情况下是优秀的。用一种特定的测量方法,脱离当事人具体的生存环境和生存目标去衡量其智力的“优劣”,就是无的放矢。

当然,我也并不是说智商测试毫无意义。智商测验的结果,只有跟智商测试所采取的具体方案放在一起,才可能具有一定的参考意义。智商测验的结果给出的是一个人在这种特定的分类加权方案下的一个得分,仅此而已。用一个单一的数量去衡量一个复杂结构,所提供的信息,跟结构本身所拥有的信息相比,必然是微不足道的。

我在不同的智商测试中,得到的分数从130到170都有。由于我的记忆力很差,因此如果一个智商测试不涉及过多的记忆,我往往就可以拿到160以上的分数,反之我就可能只能拿到130的分数。记忆力这种东西,对于不同类型的工作,自然重要性不同,因此不能脱离具体的环境说某个特定的智商测验方案对记忆力赋予的权值是最恰当的。

从Bloch球面理解自旋1/2,以及对自旋1/2的旋转操作(发于繁星客栈)

一个qubit的状态可以表达为Bloch球面上一个点。不失一般性,可以选择方向上的本征态将整个Bloch球面上所有的态表达为二者的叠加:,由于全局相位不可观察,所以全局相位角就没有被表达在Bloch球面上。

(注意,这个中的因子并不神秘,因为是Bloch球面上一点在球坐标中的天顶角,该点对应的量子态在两个分量上的归一化系数的绝对值必须是,这一点在Bloch球面上稍加分析就可知道。)

旋转算子相当于将整个Bloch球面绕轴旋转角。简化问题并且不失一般性,我们考虑z表象下绕z轴的旋转算子:。这里面的因子看上去有些诡异,也正是因为这个因子导致了『转两圈才还原』这种事情。

但事实上这并不奇怪,显然,这个矩阵将的相位反向转动了,而将的相位正向转动了。这样,二者的相位差就会增大,在Bloch球面上对应的点刚好是所对应的点绕z轴正向旋转的点。也就是说,旋转操作的作用表现在Bloch球面上,就是对Bloch球面的普通旋转操作,没有任何神秘之处。

但『转两圈才还原』到底是怎么回事呢?因为这里还有一个被抛弃的全局相因子,这个相因子由于对单个qubit是不可观察的,所以在Bloch球面上就被扔掉了。

当我们实施旋转操作的时候,全局相因子转动了,只有转动两整圈的时候,全局相因子才转动了一整圈对于单个qubit,这个全局相因子是完全不可观察的,因此对于单个qubit,我们根本不必关心『转两圈才还原』这回事,无论是把粒子旋转一圈还是把仪器旋转一圈,都不会发现任何可观察的差别。

但是,对于多个自旋1/2的粒子构成的体系,我们只对其中一个进行旋转操作,那么这种操作就会引起不同粒子之间的相位差的变化,这时候『转两圈才还原』这种事情才能出现可观察的效应。

以前我看Feynman或者Dirac所演示的那种『转两圈才还原』的演示实验,觉得非常不理解,因为所有这些演示都要把被旋转的东西连接到一个固定的东西上,而我们通常的旋转没有必要这样做。但现在想想这些演示是恰当的。因为如果仅仅是一个单一的qubit,旋转操作跟普通的旋转没有差别。只有当一个qubit跟某些作为背景的系统关联的时候,转动操作才会引发qubit相对于背景系统的相位差的变化,因此他们的演示应该说是非常恰当的。

不要把科学研究偷偷打上道德标签。

看到一则新闻,说婴儿能够分辨『好坏』:
http://tech.qq.com/a/20071127/000080.htm

——————————————————————————————
谁说婴儿不分好坏?

耶鲁大学的这项研究刊登在11月22日出版的《自然》杂志上。负责这项研究的基利·哈姆林说,决定与谁合作共事是人类和其他社会性动物的一个重要能力。当选择合作伙伴时,能够判断出谁是潜在的合作对象是非常重要的。众所周知,成人具备这样的能力,但哈姆林想知道人类是从多大起开始发展这项能力的,是否婴儿能够区分“好人”和“坏人”。

哈姆林和她的同事们为此进行了实验。他们向6个月大的一组婴儿和10个月大的一组婴儿演示一个拟人化的“木偶表演”,即用3个不同形状的木块扮演3个角色:试图登上一座山的“攀登者”、代表“好人”的“帮助者”以及代表“坏人”的“阻碍者”。“帮助者”协助“攀登者”爬上山,而“阻碍者”则将“攀登者”推下山。

随后,研究人员将代表“帮助者”和“阻碍者”的木块放在一起让两组婴儿挑选,在16名10个月大的宝宝中有14个更喜欢“帮助者”,12名6个月大的宝宝选择的全是“好人”。这表明婴儿们对“乐于助人”的“帮助者”更有好感。

哈姆林表示,虽然实验还不能反映出婴儿们对“好人”的偏爱是否是一种天生的能力,但可以肯定的是,这不可能是大人教给孩子们的。她说:“也许这是婴儿们与生俱来的。”

哈姆林和她的同事们认为,区分“帮助者”和“阻碍者”的能力是形成道德观念的第一步。哈姆林说:“当然这只是猜测,但是我们认为,任何道德体系的基础应当是能够区分亲社会和反社会因素和行动之间的不同的能力。”
——————————————————————————————

我不知道研究者的原文是什么,但『帮助』与『阻碍』被确定为『好』与『坏』很荒谬。帮助或阻碍希特勒的行为,其好坏也能如此简单的判定么?与其说婴儿能够分辨『好坏』,不如说婴儿能够分辨出别人的行为中哪些容易威胁到自己,那些可能满足自己。但如果你说这就是判断『好坏』,那么事实上你就已经假设了一套普遍有效的道德标准。做实验的人,你就老老实实地根据实验结果说婴儿能区分出帮助和阻碍,并且倾向于跟帮助者亲近,这就够了,不要扯上好坏。当然,我承认道德标准这种东西最终是由这种本能的需求通过社会博弈过程逐步形成的,但如果你把你自己的道德标准伪装成科学结论或者掺混在科学结论中,就不是科学。

号称世界上最难的逻辑题

已知:
1.神无所不知只说真话,鬼无所不知只说假话,人有所不知胡乱说话,除此之外三者没有任何区别。他们一定回答且只能回答任何有确定答案的是非题。
2.“Da”和“Ja”一个永远代表“是”另一个永远代表“否”,但你完全不知道二者分别代表哪个。

问题Z:你面前站着神、鬼、人各一,你不知道三者分别是谁,你必须通过提问正确区分出三者。你每次只能对其中一个提问,一共只能问三次,但你每次提问得到的回答只能是“Da”或“Ja”。

如果你觉得Z太难,这里有一个简化版Z’:跟Z类似,但得到的答案只能是“是”或“否”。

如果你还是觉得太难,还有一个更简单的问题Y:你面前有两条路,一条通向天堂,一条通向地狱。路口站着神、鬼各一,你不知道二者分别是谁。你现在只能对其中一个提出一个是非题,判断出哪条路通向天堂。但你提问得到的回答只会是“Da”或“Ja”。

如果你觉得Y也太难,也可以简化为Y’:跟Y类似,但得到的答案只会是“是”或“否”。

附加条件:
如果你解决了Z或Z’,那么请加一个条件:你对其中一个问的问题中不允许同时提及另外两个。
如果你解决了Y或Y’,那么请加一个条件:你对其中一个问的问题中不允许提及另外一个。

问题Y还可以有如下变体Y”:路口只站着一个家伙,你只知道他要么是神要么是鬼。你现在只能向他问一个是非题,判断出哪条路通向天堂。其他不变。

一点提示:
对A提问:『将鬼、人、神分别编号为1,2,3,那么请问B的编号大于C么?』
对A提问:『如果我问你『B是乱说话的人么?』,你会回答什么?』
对任何一个提问:请问『……』这个问题的答案是Da么?

人对宇宙的认知能力

人类所能够掌握的符号·能·否·完·全·刻·画·经验世界,这种事情断言了也没法验证。

就算能,并且我们手里已经有个理论跟所有已知的经验都一致,我们也照样无法知道这个理论是否就是那个完全刻画了经验世界的理论。只要我们的实践尚未穷尽整个经验世界,换句话说我们还有事情可做,那么我们就不能绝对断定我们手中这个理论必然在任何未知的情况下有效。

就算不能,我们手里的最好理论仍然跟某些经验冲突,我们照样无法知道是不是因为我们只是暂时没有找到那个可以完整刻画经验世界的理论。

数学上可以讨论超限计算模型。这样的计算模型是不能用任何有限符号所完全刻画的,因此数学家只能讨论其可能性和计算能力,但不能真的用这种计算模型解决任何问题。如果这个宇宙就是一台超限计算机,那么我们自然不能用有限符号的任何理论去完全刻画这个宇宙,于是我们的任何理论至多能够近似刻画这个宇宙。但如果因为存在这种可能就断言这个宇宙一定是人类所掌握的符号所不能刻画的超限计算机,则完全没有根据。不知道就是不知道,不知道还非要下断言就是瞎蒙或者撒谎。

——————————
一个自洽的理论A是否『没有在任何已知事件中跟实践显著悖离』,这件事跟A是否『在任何情况下有效描述经验世界』,二者之间没有任何关联。任何一个自洽的理论B,只要B在所有已知事件上的断言都跟A没有显著分歧,却在某些目前尚未有任何直接和间接经验的事件上跟A显著分歧,那么显然B和A都在所有已知事件中符合经验,凡确认了A的任何实践都同样确认了B。因此只要还有实践可以做,都没有绝对的理由认为理论A永远有效,因为还有跟A有不同预言的B。对于任何理论A,都可以构造出理论B,使之满足上述要求(如何构造请自己想)。反过来,即便我们手头的理论都在某些情况下失效,我们也无法知道我们是否只是尚未找到那个完整刻画经验世界的理论,原因类似。

注:有人这样理解奥卡姆剃刀:认为只要现有经验无法区分两种理论,就坚决剔除二者之中较复杂的那个。这是对奥卡姆剃刀的误解,因为奥卡姆剃刀针对的是理论中的超经验内容。这部分内容不会直接或间接导致任何经验上可区分的后果,因此奥卡姆剃刀原则认为理论中这部分超经验的内容对于一个以刻画经验世界为目的的理论是多余的。但对于不含有超经验内容的两个理论,如果二者都跟现有全部经验相容,只是在某些未知情况下有分歧,那么奥卡姆剃刀根本不适用。事实上数学、形式逻辑、形式语言学的研究对象就是非经验的,虽然这些研究所用的手段只能是经验的(例如用脑子思考用笔推导用计算机算等等)。任何经验的证据都不能支撑或者反对一个自洽的数学理论(但数学绝不会号称任何一个特定的数学系统是有关经验世界的真理)。因此,奥卡姆剃刀所针对的就是有关经验世界的理论,也就是所谓的经验科学。经验科学理论之中的完全不(直接或间接)涉及经验的部分可以分离出来作为数学、形式逻辑学、形式语言学的内容,没有必要作为经验科学的内容。

科学和信仰。

有很多人把科学方法与思想当成信仰来信奉,例如某些被称为“科学主义者”的人,但这种信奉不是科学,根本就是对科学的误解。

关于经验世界的任何假设,既然叫做假设,那么自然是不知道它是否总是有效(如果已经知道它总是有效,那么它就不是假设)。既然不知道它是否总是有效,那么自然要检验了才能知道。既然是关于经验世界的假设,那么检验这种假设自然要将经验和假设进行比较,而获取经验的活动就被称为实践。因此,有关经验世界的假设,想要了解其是否有效,自然要通过实践来获取经验再跟假设进行比较。而只要我们还可以继续实践(获取经验),那么对假设的检验就不能算是彻底结束。检验没有彻底结束就坚信关于经验世界的某种假设必然有效就是瞎蒙(所谓信仰就是这种东西)。上述没有任何一个环节包含信仰成分。

有人认为搞科学的人都相信逻辑,于是逻辑也是一种信仰。事实上,逻辑仅仅是一种语言约定,是自然语言中去掉了模棱两可之后剩下的东西。如果你不喜欢经典的逻辑,那么你可以设计你自己的语言约定。不过有一条,你设计的语言约定如果自相矛盾,那么所有你所说的话都的正面和反面就都成立。这种语言自然没有用处,表达不了任何东西。另外,如果你不能设计出不等价于也不弱于经典逻辑的语言,那么浪费这个时间也没有意义。如果你设计出来了,那么你把你的语言教给别人,大家可以用你的语言交流。这里仍然不存在对某种语言约定的信仰的问题。

图灵机vs数学家——图灵机计算能力的分析

这里我尝试回答两个问题
0.是否存在数学家可以做出判定的问题,不存在判定该问题的图灵机?
1.是否存在这样的通用判定图灵机,输入任何数学家可以判定的问题,该图灵机都能在有限步骤之内输出其判定结果,而不输出任何错误的判定结果?
2.是否存在这样的自动判定图灵机,自动尝试判定所有可能的判定问题,而对于其中任何一个数学家可以判定的问题,该图灵机都可以在有限步骤之内输出其判定结果,而不输出任何错误的判定结果?

现在我们对数学家做一个假定:只有能够完全形式化的有限判定过程,才会被数学家承认。
这个假定是合理的,虽然天才的数学家可以用直觉、灵感、做梦、神启等等各种惊人的手段获得一个问题判定结果,但只有能够被彻底形式化的有限判定过程才会被认为是可靠的判定过程。换言之,任何一个能够被数学家认可的判定过程,绝对不能包含任何直觉成分。

上述假定蕴含这样一个结果:
能被数学家承认的任何判定,其步骤数目必然有限。
能被数学家判定的任何问题,其符号刻画必然有限。

有限符号可刻画的问题的全集显然是递归可枚举集,因为它是所有有限长字符串集合的子集,因此可以用自然数i进行编号,记为Pi。
同理,刻画任何有效判定过程的符号串长度必然有限,因此显然是递归可枚举集,也可以用自然数j进行编号,记为Dj。
任何形式系统的推理规则,至多属于乔姆斯基无限制文法的子集,因此推理规则所生成的语言必然是递归可枚举语言的子集,而递归可枚举语言是图灵机可接受(但未必可判定)语言。所有形式系统的推理规则,都可以用自然数k进行编号,记为Lk。

判定【Dj是否为Lk的问题Pi的有效判定过程】,可以用一个通用验证图灵机V(Lk,Pi,Dj)进行判定,而且这是个可判定过程。因为Lk中任何一个判定过程中的任何一个步骤否有效,可以直接套用Lk的推理规则进行判定,而由于整个判定过程的步骤必然有限,因此整个判定过程Dj的有效性必然是可以被图灵机V判定的。

现在我们来构造一个图灵机H(Lk,Pi),对于给定的形式系统Lk以及Lk的问题Pi,如果Lk中存在对Pi的有效判定过程Dj,那么图灵机H就输出Pi在Lk内的判定结果。但如果Lk中不存在对Pi的有效判定,H永不停机。

为了构造H,我们先考虑一个不可行的构造,然后将其改造为可行的构造:
构造无穷多图灵机Hj(Lk,Pi),其定义为V(Lk,Pi,Dj)。显然,如果存在某个j,Dj是Pi在Lk下的有效判定,那么Hj必然在有限步骤内停机。
如果将所有的Hj同时启动,那么只要问题Pi在Lk下可判定,那么至少有一个Hj会在有限时间内输出判定,除非问题Pj在Lk下不可判定。

但是上述机构造需要同时运行无数个图灵机,是不可接受的。不过很容易将上述改造为可接受的构造:
构造H(Lk,Pi),H包含一个循环,在第j次循环中,H先枚举出图灵机Hj的仿真程序,然后将已经枚举出的图灵机H0-Hj的仿真程序分别单步执行一步。显然,H的任何一次循环都必然在有限步骤内结束,只不过越往后循环周期越长。这样,只要Pi在Lk内可判定,那么必然存在某个Hj在运行m个步骤后停机给出判定结果,那么H(Lk,Pi)就必然在第j+m个循环之内停机。反之,如果Pi在Lk内不可判定,那么H永远也不停机。

于是,H就是符合前述要求的图灵机。

现在,我们要利用H(Lk,Pi,Dk)来构造一个永不停机的图灵机X,X不接受任何输入,但X对于任何一个形式系统Lk中任何一个可判定问题Pi,都可以在有限时间内输出其判定结果(连同Lk和Pi的编号一起输出),而对于任何一个不可判定的问题,X都永远不给出对该问题的任何输出。

类似于构造H的过程,我们先考虑一个不可行的构造,然后改造为可行的构造:
二元组(Lk,Pi)显然是一个递归可枚举集,因此可以用自然数n进行编号:n=f(Lk,Pi),(Lk,Pi)=g(n),f和g互为反函数。
构造无穷多图灵机Xn,其定义为:如果H(g(n))停机输出判定结果d,Xn就输出(n,d)。显然,只要Pi在Lk中可判定,Xn就必然在有限步骤内停机并输出(n,d),反之Xn永不停机。
如果将所有的Xn同时启动,那么任何Lk中的任何可判定问题Pi,都必然在有限步骤内被某个Xn输出,输出内容为(n,d),其中n=f(Lk,Pi)。

上述构造当然也是不可接受的,我们仿照改造H的方法改造X
构造图灵机X,X包含一个循环,在第n次循环中,X先枚举出图灵机Xn的仿真程序,然后将已经枚举出的图灵机X0-Xn的仿真程序分别单步执行一步。显然,X的任何一次循环都必然在有限步骤内结束,只不过越往后循环周期越长。这样,对于任何Lk中的任何Pi,只要Pi在Lk中是可判定的且判定结果为d,那么Xn(n=f(Lk,Pi))必然在某个有限步骤s处停机并输(n,d),而Xn的第s步必然在X的第n+s个循环中被执行到,X必然在n+s个循环之内,输出(n,d)。对于任何形式系统中的任何不可判定的问题,X永远都不会输出判定结果。

于是,X就是符合前述要求的图灵机。

现在澄清几件事情:
1.H和X都不会对任何形式系统中的任何不可判定问题给出判定。
2.对于任何Lk中的任何【Pi】,无论【Pi】在Lk中是否可判定,都存在整数i’,使得【Pi’】==【Pi在Lk中可判定】,因此【Pi在Lk中可判定】这个问题迟早会被X枚举出来并尝试对之进行判定。只要【Pi在Lk中可判定】在某个形式系统Lk’中可判定,那么【Pi在Lk中可判定】的判定结果必然会在有限步骤内被X输出。
3.X在枚举Xn的过程中,许多Xn是根本不会停机的,而每次循环中X都必须单步执行所有尚未停机的Xn,因此X的效率会越来越低。但正如我们前面所讨论的,只要一个问题可以判定,X必然会在有限步骤内输出这个问题的判定,X的能力不会随着效率越来越低而变弱。如果实在觉得这种垃圾越来越多的系统很不舒服,那么还存在这样一个优化:每当某个Xn停机输出了某个问题A的判定结果,就检查A的内容是不是在断言另一个问题B不可判定,如果A有效断言出B不可判定,那么就将正在尝试判定B的图灵机从循环中删除。甚至还可以对B做个标记,在枚举新问题的时候,凡是将问题B作为子问题的问题,都将被直接跳过。不过这些优化其实没什么意义,我们的目的仅仅是讨论图灵机的计算能力,并不关心性能。

——————————————————————————————
现在说一点题外话,数学上明明允许图灵机不可判定的问题存在,也允许超越图灵机的计算模型存在,而我们仅仅对数学家做了一个简单的限制,数学家的计算能力就被限制成不超越图灵机了呢?

这个问题很简单。我们所说的形式系统当然都是有限刻画的。数学家可以谈论某些必须由无限符号才能刻画的数学系统的存在性,甚至谈论这些系统的某些能力和限制,但完全无法使用这些系统进行推理。我们之所以可以谈论这些系统的某些能力和限制,是因为精确分析这些东西仅仅需要有限符号。于是,图灵机也一样可以给出关于这些系统的某些有限符号就可以刻画的属性的判定结果。

事实上,即便是我们熟悉的实数集,其中属性能够被有限符号所精确刻画的实数(也包括π、e、γ等)也只是实数集的一个可数子集。

除非数学家可以分辨出连续统那么多不同的符号甚至更多,以至于整个实数轴的每一个实数对于数学家来说一目了然,那么数学家也就具备了Hyper Computing的能力,我在文章开头对数学家所做的假设也就不再成立了。但这种情况下,数学家所能够提出的机械计算模型肯定要比图灵机更强。这种数学家的本事简直赶上上帝了,我们有能力回答的一切数学问题,对于这种超级数学家来说都可以一眼看出答案。

内省使自己清醒

有人问我有什么办法可以提高逻辑思维的能力,他觉得学习数理逻辑效果间接而有限。

从上述问题我猜测他所缺乏的并不是数理逻辑的技能,而是清晰的思维能力。学习逻辑,直接训练的仅仅是逻辑运算技能。想要让自己的浆糊脑袋清醒,内省更加有效。内省,不会让你理解自然规律,也不会让你掌握某种技能,只会让你清醒

要做深层的内省,必须先做到一件事情:尽量摆脱价值观、道德观、廉耻心之类的束缚,思考自己的每一个真实动机(包括那些从未付诸实践的动机)。动机有很多层次,例如某次出差是为了工作和游玩,工作为了赚钱和成就感,赚钱为了吃饭泡妞思考等等。在你不断深入追究自己某些行为所有真实动机时,你自幼就被反复灌输的观念可能会跳出来自我保护,让你甚至不敢向自己承认自己有某些极度“恶劣”或“变态”的动机。你可能会对自己内心的某些真实愿望感到极大的恐惧。但内省就是内省,你需要做的仅仅是了解真正的自己。害怕知道真相并不会使真相变得不存在,任何真相本身都不值得害怕

经过深刻的内省,你会发现你有一些最『原始』的欲望是先天的,在你自己身上是找不到更深层原因的(只能从生物演化上找),例如食欲和性欲等。还有一些『习惯』的欲望不是先天的,是由你过去的社会教育环境通过长期直接或间接地奖惩你的原始欲望训练出来的(例如对某些行为的强烈廉耻心)。虽然习惯欲望不是先天的,却可能被长期训练强化到跟先天原始欲望相近或更强的程度,成为一种习惯性反射,你完全不需要去想当年受到了何种奖惩才形成了这种欲望,只是在做事的时候你会不知不觉受其支配。所有这些先天原始欲望和后天习惯欲望,构成了你当前所具有的全部基本欲望。这些基本欲望会给你的一切行为提供处于最深层的基本动机。由于同时拥有多种不同的基本欲望同时指挥你的行为,那么不同欲望之间就可能产生冲突,满足某些欲望的行为可能会抑制其它的欲望,此时就涉及到了『冲突的仲裁』。你天生就会根据当前各种欲望的强烈程度决定哪些欲望被优先满足,哪些欲望应该被暂时压制。由于许多欲望必须通过某些间接的方式才能得到满足,因此这个仲裁机制可能会调用你的智力来设计能更好均衡各种欲望的行为策略。

这些基本欲望未必是一成不变的。我不知道先天的原始欲望是否可以通过训练而被显著削弱(这是个生物学的问题,我不知道答案),但那些通过后天长期训练建立的习惯性欲望显然是可以调整的。既然习惯性欲望反射是训练过程逐步建立的,那么说明这些欲望至少在训练阶段是变化的,在训练阶段你必然可以调整它们。调整自身的欲望,作为有意识的行为自然有其动机,所以必然是受某些欲望驱使的。这其实也是欲望之间的冲突导致的,于是解决欲望之间的冲突,除了仲裁之外还可以通过训练来改变某些既有的欲望,削弱或者消除它们。但“江山易改,本性难移”,这个过程是不能急于求成的。要先有试图改变的意识,经常反思自己的行为,尝试一些实践方法,久而久之,某些已经成型的东西就会慢慢演变。不过要削弱自己的某种欲望,必须先弄清楚自己到底是为了满足哪些欲望而削弱另一些欲望,这到底是不是自己真正想要的结果。如果无法达到目标,可能是用错了方法或者颠倒了本末,可以随时调整策略或目标,没有必要一条路走到黑。这里提醒一点:运动员想要跑得快,求助于科学家几乎是没有意义的,教练才可能需要求助科学家,而对运动员来说直接求助于教练最有效。哲学只是让人自知,但对于如何在自己的性格现状下找到对自己切实可行的训练方法调整自己的心性,是个很技术化的问题,光靠自知是不行的。

对自己的基本欲望有所了解,并不意味着你就应该用最直接的方法来满足这些基本欲望,那是毫无智力的行为,婴儿才可能这样做(说不定婴儿都没这么蠢)。不但如此,事事处心积虑地分析计算如何才能最好地满足这些基本欲望,比毫无智力也强不了多少。处心积虑地分析计算本身都要耗费大量精力,而浪费大量精力去做效果不大的决策往往并不符合你的真实意愿,除非这些分析计算本身就可以给你带来足够强烈的快感。但根据我的经验即便是那些事事处心积虑的人也一般不会真的享受这种分析计算的过程,只是自以为可以赚到便宜,而后果往往是严重违背真实意愿的。更聪明的做法是寻找一些自己容易掌握的启发式规则,这些规则不一定总是正确,却能够在大部分情况下帮助你用很低的思考成本迅速做出行为决策,而行为后果一般不会严重悖离你内心的真正需求。但必须注意,既然叫做启发式规则,自然不是必须遵守的绝对原则。大部分情况下,没遇到什么困难就不妨继续用着这些规则。遇到重要问题,而这些启发式规则之间相互矛盾以至于而难以取舍时,才有必要动用你的智力工具深入你的内心做详细的分析。在分析过程中可能会修正某些启发式规则,如果你判断出一种修正稳定有效并且非常重要,也可以慢慢训练自己养成符合这种规则的习惯性反射,形成新的欲望,从而今后遇到类似问题不必再经常动脑。这样,久而久之,你就可以进入一种持续的小规模自我优化的过程,其后果就是越来越接所谓“随心所欲”的状态。注意一件事情:根本没必要把“随心所欲”作为人生目标去追求,这只是一个头脑清醒的人跟随内心引导自然会慢慢接近的状态,就好像灰尘落地一样,并不是灰尘在追求落地,它只是自然地跟随了引力和空气。

按照我的经验,我们自幼被反复灌输的那些价值观、道德观、廉耻心,往往都可以作为很好的启发式规则。例如前人所总结的大量做人的道理,甚至包括那些一旦深究起来就会发现稀里糊涂甚至自相矛盾的道理。于是这就成了一个经常被称之为螺旋式上升的过程,你自幼所接受的来自环境的训练就已经给了你一大堆启发式规则,但在不清醒的状态下坚持这些启发式规则让你根本不知道自己内心真正想要的是什么,这就是所谓的“迷失自我”。还有很多时候这些启发式规则之间的冲突甚至会让你陷入道德困境,面临巨大的精神压力而无法自拔。当你摆脱了这些被灌输的启发式规则的束缚,通过内省理清了脑袋里的浆糊,这些自相矛盾造成的困惑就被内省所自然消解了。于是当你对自己内心真正的需求有所了解的时候,你又可以重新拾起以前那些你曾经奉为真理而在内省过程中被抛弃的启发式规则,你很可能会重新发现这些有关正义、责任、廉耻、诚信、同情、关爱等的种种传统的价值标准,都是相当富有智慧的,在大部分情况下只要跟随这些规则就可以很好的满足你的需求,但不要沦为任何启发式规则的奴隶,那些规则仅仅是“启发式的”而已

之前和之后,你的行为看上去可能未必有多大变化,但在此之前你的心灵是这些规则的奴隶,在此之后这些规则是你心灵的工具。我记得禅宗的故事里面有个和尚说:“我三十年前看山是山,看水是水。二十年前起了疑心,看山不是山,看水不是水。十年前得了个入处,如今看山还是山,看水还是水”。我估计这段话所表达的意思就是上述螺旋上升的过程,只不过禅宗一般不喜欢把话说清楚,我怀疑他们中许多人根本就不知道如何把话说清楚,甚至干脆认为这种东西根本不能被语言所表达,于是就拿不可言说作为借口来搪塞。不过这也怪不着他们,古人缺乏足够清晰的语言作为严密思维的基础。有能力把充满浆糊的语言理清的古人凤毛麟角。其实任何一个正常人从小就知道如何使用最基本的逻辑规则,但几乎没人知道如何清理充满浆糊的语言。亚里士多德做到了,他的功劳根本不是重新发现了在他之前就人人都已经掌握的基本逻辑规则,而是发现原来只要遵守区区这几条大家早已熟练掌握的简单规则就可以完全避免在交流过程中由于语言自身的浆糊所造成的混乱。不过,他当年认为这种逻辑规则是绝对可靠的真理,跟欧几里德当时对他所发现的几何学公理的看法相似。我们现在知道事实上有无穷多种不同的几何,也有无穷多种不同的逻辑,每种都无所谓对错。只要这些理论不跟经验世界之间建立映射,每个这样的系统都仅仅是一堆约定。

当这些规则变成你心灵的工具,今后的自我修炼就变成了一个持续进行的没有突变的过程。对我来说,跟随自己内心的真实意愿,并不是为了把自己变成一个整天就知道穷开心傻乐呵的人。如果是这样,还不如每天吃一些让人Hi的药物来得直接。对我来说,自然选择和后天经历所赋予我的每一种情绪反应(喜怒哀乐爱恨情仇等等)都可能(虽然未必一定)在某些情况下帮助我达成内心的真正需求,我没必要强行把自己变得只剩下快乐这一种情绪(我过去还真的曾经这样想过)。长期的自我修炼,会慢慢让自己不断接近这样一种状态:一般情况下自然而然的情绪反应所导致的行为后果,通常是符合内心真正的需求的。这就是“随心所欲”的含义。但你自身和你生存的环境始终都在变,因此你适应环境所做出的适应性变化永远也不会停止。灰尘不一定会落地,因为空气和地面都在动。

等哪天我死了,我所有的欲望就全都消失了,我内心的真实需求在那个时刻也就可以永远地被满足了。

下一页 »