更改

无编辑摘要
第3行: 第3行:  
|description=自指,自打印程序,递归定理,哥德尔定理,图灵停机问题,观察者理论,观察与系统,人工智能
 
|description=自指,自打印程序,递归定理,哥德尔定理,图灵停机问题,观察者理论,观察与系统,人工智能
 
}}
 
}}
  −
* 作者:[[jake]]
  −
* 时间:2010-02
      
==自指——连接图形与衬底的金带==
 
==自指——连接图形与衬底的金带==
    
在第二章《基本框架》中,我们曾对生命的本质进行过简单的探讨。按照第二章的说法,“那些可以被形式因和目的因解释的系统就具备智能和生命”。然而,这个答案仍然有些简单粗暴。观察者为什么凭白无故地将因果箭头转向?
 
在第二章《基本框架》中,我们曾对生命的本质进行过简单的探讨。按照第二章的说法,“那些可以被形式因和目的因解释的系统就具备智能和生命”。然而,这个答案仍然有些简单粗暴。观察者为什么凭白无故地将因果箭头转向?
 +
    
在上一章《人工智能中的背景——玩家观察者》中,我们指出构建图灵机-观察者模型的一个重要目标就是要让计算机程序能够利用玩家的交互资源而不断地构建越来越深的虚拟层次。然而,计算机程序是如何构建虚拟层的?
 
在上一章《人工智能中的背景——玩家观察者》中,我们指出构建图灵机-观察者模型的一个重要目标就是要让计算机程序能够利用玩家的交互资源而不断地构建越来越深的虚拟层次。然而,计算机程序是如何构建虚拟层的?
 +
    
所有这些问题都集中到一个古老而意义深远的名词:自指(Self-reference)。
 
所有这些问题都集中到一个古老而意义深远的名词:自指(Self-reference)。
 +
    
本章的叙述框架如下:首先,在第1节中我们将简单回顾自指问题在数理逻辑、计算科学中的研究历史;其次,在第2节,我们专门论述了自然语言中的自指现象。这一节对整个章节的理解都至关重要,因为本节利用人们熟悉、容易理解的自然语言将后续部分自指中的所有关键概念、方法都概括了。所以,我希望读者能够花大力气搞懂这一小节,尤其是要透彻理解用蒯恩技术实现的间接自指,它是整个章节的精髓;然后,第3节主要介绍“自打印程序”,并试图用该程序说清建构性自指的概念;随后的第4节则将建构性自指升级,我们开始讨论递归定理,它被我称为“未开采的科学金矿”;第5节利用图灵停机问题和歌德尔定理(可跳过)作为实例介绍破坏性自指,我们将着重介绍蒯恩技术和自指悖论的构建方法;第6节将从另一个角度:“黄金对角线”,把第3、4、5节的主题重新论述一遍(此节可跳过),你会看到原来自指还可以有“几何表示法”;可以说前6节全部是在介绍有关自指的具体技术,只有到第7章才开始论述观察者与自指的关系。上一章提出的图灵机-观察者模型将会在这里重新发挥作用;第8节则进一步将观察者与自指的关系提升到因果逆转的高度,并从深层次指出生命的本质就在于这种因果逆转;最后,第9节对全章进行小结。
 
本章的叙述框架如下:首先,在第1节中我们将简单回顾自指问题在数理逻辑、计算科学中的研究历史;其次,在第2节,我们专门论述了自然语言中的自指现象。这一节对整个章节的理解都至关重要,因为本节利用人们熟悉、容易理解的自然语言将后续部分自指中的所有关键概念、方法都概括了。所以,我希望读者能够花大力气搞懂这一小节,尤其是要透彻理解用蒯恩技术实现的间接自指,它是整个章节的精髓;然后,第3节主要介绍“自打印程序”,并试图用该程序说清建构性自指的概念;随后的第4节则将建构性自指升级,我们开始讨论递归定理,它被我称为“未开采的科学金矿”;第5节利用图灵停机问题和歌德尔定理(可跳过)作为实例介绍破坏性自指,我们将着重介绍蒯恩技术和自指悖论的构建方法;第6节将从另一个角度:“黄金对角线”,把第3、4、5节的主题重新论述一遍(此节可跳过),你会看到原来自指还可以有“几何表示法”;可以说前6节全部是在介绍有关自指的具体技术,只有到第7章才开始论述观察者与自指的关系。上一章提出的图灵机-观察者模型将会在这里重新发挥作用;第8节则进一步将观察者与自指的关系提升到因果逆转的高度,并从深层次指出生命的本质就在于这种因果逆转;最后,第9节对全章进行小结。
 +
    
===自指——一条永恒的金带===
 
===自指——一条永恒的金带===
第21行: 第22行:  
自指是一个非常古老的话题,它通常与古代奥义以及各种神秘哲学有关。例如佛教中所提倡的“观身无常、观心无我”,以及古希腊的“认识你自己”,都在劝解人们能够将心智的观察箭头指向自己。中国道家所倡导的“无”,正是一个最简单的一字悖论。
 
自指是一个非常古老的话题,它通常与古代奥义以及各种神秘哲学有关。例如佛教中所提倡的“观身无常、观心无我”,以及古希腊的“认识你自己”,都在劝解人们能够将心智的观察箭头指向自己。中国道家所倡导的“无”,正是一个最简单的一字悖论。
   −
[[File:image075.jpg |800px |thumb |center |图5-1、自噬的蛇]]
+
[[File:image075.jpg |800px |thumb |center |图5-1 自噬的蛇]]
    
一幅最能体现自指深邃含义的图画莫过于这条正在吞噬自己的蛇。此蛇作为一种图腾曾广泛出现在北欧神话、基督教神学、印度教和非洲宗教之中。这条蛇将自指那种深刻的自我毁灭性体现得淋漓尽致——我们可以想象一下当它把自己吞噬完毕会产生怎样怪异的情景。
 
一幅最能体现自指深邃含义的图画莫过于这条正在吞噬自己的蛇。此蛇作为一种图腾曾广泛出现在北欧神话、基督教神学、印度教和非洲宗教之中。这条蛇将自指那种深刻的自我毁灭性体现得淋漓尽致——我们可以想象一下当它把自己吞噬完毕会产生怎样怪异的情景。
 +
    
将这种自我毁灭性的古代奥义应用到现代科学中已经产生了一系列深刻的结论。首先,在19世纪末,著名数学家[http://en.wikipedia.org/wiki/Georg_Cantor 康托尔](George Cantor)将“对角线删除”法则应用到集合论中,从而证明了实数的个数比自然数多。紧接着,[http://en.wikipedia.org/wiki/Bertrand_Russell 罗素](Bertrand Russell)提出了著名的“[http://en.wikipedia.org/wiki/Gottlob_Frege 罗素悖论]”而摧毁了[http://en.wikipedia.org/wiki/Gottlob_Frege 弗雷格](Gottlob Frege)的数学大厦。年仅25岁的[http://en.wikipedia.org/wiki/Kurt_G%C3%B6del 哥德尔](Kurt Gödel)巧妙地应用同样的破坏性自指一举摧毁了数学大师希尔伯特(David Hilbert)的完备一致性的数学体系梦想。[http://en.wikipedia.org/wiki/Alan_Turing 图灵](Alan Turing)则利用同样的技巧进一步发现任何超级计算机都不可能求解的[http://www.swarma.org/vm/articles/turing.pdf 图灵停机问题]。
 
将这种自我毁灭性的古代奥义应用到现代科学中已经产生了一系列深刻的结论。首先,在19世纪末,著名数学家[http://en.wikipedia.org/wiki/Georg_Cantor 康托尔](George Cantor)将“对角线删除”法则应用到集合论中,从而证明了实数的个数比自然数多。紧接着,[http://en.wikipedia.org/wiki/Bertrand_Russell 罗素](Bertrand Russell)提出了著名的“[http://en.wikipedia.org/wiki/Gottlob_Frege 罗素悖论]”而摧毁了[http://en.wikipedia.org/wiki/Gottlob_Frege 弗雷格](Gottlob Frege)的数学大厦。年仅25岁的[http://en.wikipedia.org/wiki/Kurt_G%C3%B6del 哥德尔](Kurt Gödel)巧妙地应用同样的破坏性自指一举摧毁了数学大师希尔伯特(David Hilbert)的完备一致性的数学体系梦想。[http://en.wikipedia.org/wiki/Alan_Turing 图灵](Alan Turing)则利用同样的技巧进一步发现任何超级计算机都不可能求解的[http://www.swarma.org/vm/articles/turing.pdf 图灵停机问题]。
 +
    
纽约时报曾将[http://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems 哥德尔不完备定理]评价为20世纪最伟大的数学定理。自指可以用来构造破坏性的悖论已经是众人皆知、司空见惯了。然而,这种认识其实很片面。自指包含了比自指悖论更宽泛的内容,因为在自指大家庭中,还包括另外一类构建性的成员。
 
纽约时报曾将[http://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems 哥德尔不完备定理]评价为20世纪最伟大的数学定理。自指可以用来构造破坏性的悖论已经是众人皆知、司空见惯了。然而,这种认识其实很片面。自指包含了比自指悖论更宽泛的内容,因为在自指大家庭中,还包括另外一类构建性的成员。
 +
    
1953年,正当人们举杯欢庆沃森和克里克发现了DNA双螺旋结构,并从分子层面上解释了生命的自我复制之谜的时候,另外一名伟大的美国匈牙利裔数学家:[http://en.wikipedia.org/wiki/John_von_Neumann 约翰.冯诺依曼](John von Neumann)正在独立地思考着生命自我复制的'''逻辑基础'''。然而,令人遗憾的是,那时的冯诺依曼已经患上了癌症,并于1957年的2月去世。于是,他的助手[http://en.wikipedia.org/wiki/Arthur_Burks 阿瑟.伯克斯]Arthur Burks将他关于自复制自动机理论的整理成书《[http://book.douban.com/subject/2982694/ Theory of Self-reproducing Automata]》,并于1966年出版。
 
1953年,正当人们举杯欢庆沃森和克里克发现了DNA双螺旋结构,并从分子层面上解释了生命的自我复制之谜的时候,另外一名伟大的美国匈牙利裔数学家:[http://en.wikipedia.org/wiki/John_von_Neumann 约翰.冯诺依曼](John von Neumann)正在独立地思考着生命自我复制的'''逻辑基础'''。然而,令人遗憾的是,那时的冯诺依曼已经患上了癌症,并于1957年的2月去世。于是,他的助手[http://en.wikipedia.org/wiki/Arthur_Burks 阿瑟.伯克斯]Arthur Burks将他关于自复制自动机理论的整理成书《[http://book.douban.com/subject/2982694/ Theory of Self-reproducing Automata]》,并于1966年出版。
 +
    
与沃森.克里克不同的是,冯诺依曼要寻找的是生命自我复制的逻辑基础而非物质基础。虽然冯诺依曼没有明确指出,但是已经暗含了这个自复制的逻辑基础不是别的,正是一种自指结构。也就是说,'''自指恰恰是生命实现自我复制的逻辑内核'''。这也许会让读者感到困惑。不是说,自指都是用来构造诸如哥德尔定理、罗素悖论之类的破坏性武器吗?实际上,还存在着另外一大类自指,笔者称之为“建构性的自指”,它不但不会引起破坏,反而能够创造很多令人意想不到的惊奇结构。至于自我繁殖的系统是如何令人意想不到的,请参考第4节的讨论。
 
与沃森.克里克不同的是,冯诺依曼要寻找的是生命自我复制的逻辑基础而非物质基础。虽然冯诺依曼没有明确指出,但是已经暗含了这个自复制的逻辑基础不是别的,正是一种自指结构。也就是说,'''自指恰恰是生命实现自我复制的逻辑内核'''。这也许会让读者感到困惑。不是说,自指都是用来构造诸如哥德尔定理、罗素悖论之类的破坏性武器吗?实际上,还存在着另外一大类自指,笔者称之为“建构性的自指”,它不但不会引起破坏,反而能够创造很多令人意想不到的惊奇结构。至于自我繁殖的系统是如何令人意想不到的,请参考第4节的讨论。
   −
实际上,早在1938年,与哥德尔共同奠定递归函数论基础的数学家[http://en.wikipedia.org/wiki/Stephen_Cole_Kleene 克林尼](Stephen Kleene)就证明了递归函数论中的一个著名定理:[http://en.wikipedia.org/wiki/Kleene%27s_recursion_theorem 递归定理](更精确地说,应该叫Kleene第二递归定理)。根据它,人们可以很轻松地得到一个数学推论,系统的自我复制是可能的。
     −
证明递归定理的核心技巧,是一个被称为“蒯(kuai3)恩”的特别技术。[http://en.wikipedia.org/wiki/W._V._Quine 蒯恩](Willard.V. Quine)是美国的哲学家,终身致力于哲学、数理逻辑、集合论的研究。他创造了一种称之为蒯恩的方法,使得人们可以不通过使用“我”或者“这句话”等词语就能创造出可以谈论自身的句子来。
+
实际上,早在1938年,与哥德尔共同奠定递归函数论基础的数学家[http://en.wikipedia.org/wiki/Stephen_Cole_Kleene 克林尼] Stephen Kleene就证明了递归函数论中的一个著名定理:[http://en.wikipedia.org/wiki/Kleene%27s_recursion_theorem 递归定理](更精确地说,应该叫Kleene第二递归定理)。根据它,人们可以很轻松地得到一个数学推论,系统的自我复制是可能的。
 +
 
 +
 
 +
证明递归定理的核心技巧,是一个被称为“蒯(kuai3)恩”的特别技术。[http://en.wikipedia.org/wiki/W._V._Quine 蒯恩] Willard.V. Quine是美国的哲学家,终身致力于哲学、数理逻辑、集合论的研究。他创造了一种称之为蒯恩的方法,使得人们可以不通过使用“我”或者“这句话”等词语就能创造出可以谈论自身的句子来。
 +
 
    
有趣的是,蒯恩构造恰恰就是那条“黄金对角线”(这一方法正是当年康托尔最早提出证明实数比自然数多的方法,也是哥德尔定理构造哥德尔句子的关键技术)。只不过,康托尔、哥德尔等人的对角线与蒯恩的对角线方法稍有不同。我们会在第6节中详细地讨论这些技术。
 
有趣的是,蒯恩构造恰恰就是那条“黄金对角线”(这一方法正是当年康托尔最早提出证明实数比自然数多的方法,也是哥德尔定理构造哥德尔句子的关键技术)。只不过,康托尔、哥德尔等人的对角线与蒯恩的对角线方法稍有不同。我们会在第6节中详细地讨论这些技术。
 +
    
总而言之,从宗教到科学,从悖论到自复制,自指是贯穿始终的主题。正如《[http://book.douban.com/subject/1291204/ 哥德尔、艾舍尔、巴赫]》这本书指出的那样,自指是一条永恒的金带。
 
总而言之,从宗教到科学,从悖论到自复制,自指是贯穿始终的主题。正如《[http://book.douban.com/subject/1291204/ 哥德尔、艾舍尔、巴赫]》这本书指出的那样,自指是一条永恒的金带。
 +
    
===语言中的自指===
 
===语言中的自指===
第45行: 第55行:  
提到自指,很多读者马上就会联系到那句臭名昭著的悖论句子:
 
提到自指,很多读者马上就会联系到那句臭名昭著的悖论句子:
   −
<div style="text-align: center;"><u>这句话是错的</u></div>
+
 
 +
<div style="text-align: center;"><u>'''这句话是错的'''</u></div>
 +
 
    
这句话之所以让人讨厌,是因为你无论从正面(即假设它是对的),还是从反面(即假设它是错的),都会得出相反的结论。因此,这句话既不对也不错。
 
这句话之所以让人讨厌,是因为你无论从正面(即假设它是对的),还是从反面(即假设它是错的),都会得出相反的结论。因此,这句话既不对也不错。
 +
    
然而,这句“说谎者悖论”仅仅是广大自指语句家庭中的成员之一,有很多语言是自指的,但却是无害的甚至是有益的。比如下面的句子:
 
然而,这句“说谎者悖论”仅仅是广大自指语句家庭中的成员之一,有很多语言是自指的,但却是无害的甚至是有益的。比如下面的句子:
   −
<div style="text-align: center;"><u>这句话是对的</u></div>
+
<div style="text-align: center;"><u>'''这句话是对的'''</u></div>
    
这句话就是一个既可以是对又可以是错的句子。你可以非常虔诚地承认这句话所论述的内容是对的,然后,再看它的内容,它正在陈述:它自己是对的。于是你初期的假设被证实了。另一方面,当你假设它是错误的时候,你就会知道它的语义“这句话对”是错误的,于是你就真的得到了这句话就是错误的结论。也就是说这句话的对错完全取决于你的假设。
 
这句话就是一个既可以是对又可以是错的句子。你可以非常虔诚地承认这句话所论述的内容是对的,然后,再看它的内容,它正在陈述:它自己是对的。于是你初期的假设被证实了。另一方面,当你假设它是错误的时候,你就会知道它的语义“这句话对”是错误的,于是你就真的得到了这句话就是错误的结论。也就是说这句话的对错完全取决于你的假设。
 +
    
当然,还有一些更好玩的自指句子,如:
 
当然,还有一些更好玩的自指句子,如:
第60行: 第74行:     
这被称为自描述语句,也就是说这个句子正在描述自己的“分子”构成。当你尝试独立写下这样一个自描述语句的时候就会发现,你其实并没有创造这句话,而是这句话正在“迫使”你写出它自己。这是因为,按照这个句子的逻辑一旦你开始写下第一个字,你就必须按照已出现的字的情况而自动补全后面的句子。同时,这个语句还具有了不起的自我修复性。你不妨将该句子中的某一个汉字删掉(例如你删除第一个‘2’字),就会很快发现该句子中的一部分出现问题了,即“7个‘2’字”是错误的。因此,你会根据句子整体的意思指导而发现你少了一个‘2’字。
 
这被称为自描述语句,也就是说这个句子正在描述自己的“分子”构成。当你尝试独立写下这样一个自描述语句的时候就会发现,你其实并没有创造这句话,而是这句话正在“迫使”你写出它自己。这是因为,按照这个句子的逻辑一旦你开始写下第一个字,你就必须按照已出现的字的情况而自动补全后面的句子。同时,这个语句还具有了不起的自我修复性。你不妨将该句子中的某一个汉字删掉(例如你删除第一个‘2’字),就会很快发现该句子中的一部分出现问题了,即“7个‘2’字”是错误的。因此,你会根据句子整体的意思指导而发现你少了一个‘2’字。
 +
    
因此,自指不都是破坏性的,更多的自指是无害的,而且可以给我们带来一定的“惊奇性”。这种惊奇性的来源主要是自指语句中包含的无穷递归,因为它可以创造无限的虚拟层次。
 
因此,自指不都是破坏性的,更多的自指是无害的,而且可以给我们带来一定的“惊奇性”。这种惊奇性的来源主要是自指语句中包含的无穷递归,因为它可以创造无限的虚拟层次。
 +
    
'''虚拟层次'''是一个我们司空见惯的概念,例如故事中的故事,电影中的电影,梦境中的梦境等等(电影《[http://movie.douban.com/subject/3541415/ 盗梦空间]》(Inception)就是对梦中梦层次的一个非常好的展示)。在上一章中,我们已经领略了程序是可以通过模拟而产生多个虚拟层次的。在语言中,我们不妨将引号看作是标识一个新的虚拟层次出现的符号。这样,下面这句话:
 
'''虚拟层次'''是一个我们司空见惯的概念,例如故事中的故事,电影中的电影,梦境中的梦境等等(电影《[http://movie.douban.com/subject/3541415/ 盗梦空间]》(Inception)就是对梦中梦层次的一个非常好的展示)。在上一章中,我们已经领略了程序是可以通过模拟而产生多个虚拟层次的。在语言中,我们不妨将引号看作是标识一个新的虚拟层次出现的符号。这样,下面这句话:
第68行: 第84行:     
就包含了两个层次,更深一层的句子是“明天会下雨”,而上面一层则是“‘明天会下雨’是错的”。当然,我们通过不断地加引号就能创造出各种复杂的嵌套结构。
 
就包含了两个层次,更深一层的句子是“明天会下雨”,而上面一层则是“‘明天会下雨’是错的”。当然,我们通过不断地加引号就能创造出各种复杂的嵌套结构。
 +
    
另外,人们发明了一类代词可以指代不同的句子。例如“这句话”,“那句话”。这些代词就仿佛是一个指针会将一个句子整体放到一个引号中而实现多个层次的嵌套。例如下面两句话:
 
另外,人们发明了一类代词可以指代不同的句子。例如“这句话”,“那句话”。这些代词就仿佛是一个指针会将一个句子整体放到一个引号中而实现多个层次的嵌套。例如下面两句话:
第74行: 第91行:     
<div style="text-align: center;"><u>明天会下雨</u></div>
 
<div style="text-align: center;"><u>明天会下雨</u></div>
 +
    
在第一句话中出现了一个指代词“下面的句子”,它是一个指针指向了“明天会下雨”这句话,于是我们观察者作为一个解读器就会将这两句话解释为:
 
在第一句话中出现了一个指代词“下面的句子”,它是一个指针指向了“明天会下雨”这句话,于是我们观察者作为一个解读器就会将这两句话解释为:
    
<div style="text-align: center;"><u>“明天会下雨”是对的</u></div>
 
<div style="text-align: center;"><u>“明天会下雨”是对的</u></div>
 +
    
也就是说,我们照指代词的意思将“明天会下雨”这句话加上了引号放到了第一句中的“下面的句子”那个指代词之中了。于是,指代词创造了包含了两个虚拟层次的句子。
 
也就是说,我们照指代词的意思将“明天会下雨”这句话加上了引号放到了第一句中的“下面的句子”那个指代词之中了。于是,指代词创造了包含了两个虚拟层次的句子。
 +
    
按照同样的逻辑,当我们遇到了指代词“这句话”的时候会发生什么呢?我们将会得到一个包含无穷虚拟层次的语句。例如我们将自指语句“这句话是错的”按照代词的法则展开就会得到:
 
按照同样的逻辑,当我们遇到了指代词“这句话”的时候会发生什么呢?我们将会得到一个包含无穷虚拟层次的语句。例如我们将自指语句“这句话是错的”按照代词的法则展开就会得到:
    
<div style="text-align: center;"><u>““““…………”是错的”是错的”…………”是错的”是错的</u></div>
 
<div style="text-align: center;"><u>““““…………”是错的”是错的”…………”是错的”是错的</u></div>
 +
    
我们看到,只要“这句话”这个指代词一出现,我们就能够得到无穷。因此,自指语句往往都与无穷虚拟层次有关。注意,我这里用的词语是“往往”,而不是“一定”。之所以这样说,是因为的确存在着一种构造自指语句的方法,让我们绕过无穷。这种方法就是大名鼎鼎的'''蒯恩法'''。
 
我们看到,只要“这句话”这个指代词一出现,我们就能够得到无穷。因此,自指语句往往都与无穷虚拟层次有关。注意,我这里用的词语是“往往”,而不是“一定”。之所以这样说,是因为的确存在着一种构造自指语句的方法,让我们绕过无穷。这种方法就是大名鼎鼎的'''蒯恩法'''。
 +
    
在讨论蒯恩之前,让我们先来领教句子中的动词(动词短语)。大部分动词是与我们读句子的观察者无关的,例如:
 
在讨论蒯恩之前,让我们先来领教句子中的动词(动词短语)。大部分动词是与我们读句子的观察者无关的,例如:
    
<div style="text-align: center;"><u>小明起床了</u></div>
 
<div style="text-align: center;"><u>小明起床了</u></div>
 +
    
这个句子表达了小明这个人物正在做的一个动作是起床了。其中“起床了”就是一个动词。当然,有很多动词不仅可以描述一个人或者事物,还可以去描述句子,例如:
 
这个句子表达了小明这个人物正在做的一个动作是起床了。其中“起床了”就是一个动词。当然,有很多动词不仅可以描述一个人或者事物,还可以去描述句子,例如:
    
<div style="text-align: center;"><u>“小明起床了”包含5个字</u></div>
 
<div style="text-align: center;"><u>“小明起床了”包含5个字</u></div>
 +
    
这里面的“包含5个字”就是一个描述句子“小明起床了”的动词。还有一些句子包含了动词,而这个动词是使役我们读这个句子的观察者做出某种动作的:
 
这里面的“包含5个字”就是一个描述句子“小明起床了”的动词。还有一些句子包含了动词,而这个动词是使役我们读这个句子的观察者做出某种动作的:
7,129

个编辑