CSDN博客

img sandrowjw

计算机程序的“行为学”(一)——写在前面

发表于2008/9/24 20:56:00  9800人阅读

分类: 军团动向

首先要声明这篇文章不为吹捧任何先进的或者高尚的或者与时俱进的技术或者理论,所以请不要在我的地盘上乱点火,我肯定不会回应的。我是双鱼座的人,和我吵架等于慢性自杀,各位请自重。

那么我在这里要说的是关于计算机程序的“行为学”,显然计算机不会和人一样自主思考,所以“行为学”只能打上引号了。我的目的当然不是证明计算机程序如何用六条腿行走(我读初中的时候曾经看过此类研究天牛行为的文章,写得理论有余,精彩不足),我只是希望引发读者对于计算机程序的“行为”模式的思考,然后进一步地,我们可以看到如何通过计算机程序的“行为”来解释它的思维,然后我们能够看到一些使得计算机能够“自主思维”的方法。如果您对于最后一点嗤之以鼻也没关系,计算机智能领域从来都是分歧严重的,所有的意见都仅供参考。

那么我们按照计算机教材的惯例,以一个小故事开始:这个故事是著名的泥巴孩子故事,如果您看过《Reasoning About Knowledge》这本书可以直接略过这段,或者到这里看另外一个故事:(另外一个Blog上不去,回头填一下)。

关于泥孩子的故事,大体上是这样的(摘自《Reasoning About Knowledge》):

假设有n个小孩在一起玩。这些小孩的妈妈告诫过他们如果把自己弄脏了会有很严重的后果。所以,每个孩子都希望能保持清洁,但是每个孩子又都希望看到别人弄 脏自己(小孩就这么阴险……)。现在这帮小鬼中的一些,假设有k个人,在玩的时候把泥巴弄到自己额头上了(以头抢地?)。他们中的每一个都能够看到别人头 上的泥巴,但是却看不到自己头上的泥巴。当然,他们不会说出来。然后他们的父亲来了,他说:“你们中至少有一个人额头上有泥巴。”这一点当然小孩们都已经 知道了(如果k>1)。于是父亲开始一遍又一遍地反复问如下的问题:“你们中的任何一个知道他自己的额头上有泥巴吗?”假设每个孩子都足够机敏、聪 慧和诚实,并且他们总是同时回答问题,那么结果会如何呢?

可以“证明”,在开始的“k-1"次提问中,所有的孩子都会回答“不”,而在第k次,头上有泥巴的孩子都会回答“是”。

“证 明”是基于k的推导。当k=1,结论是显然的:唯一的头上有泥巴的小孩看到别人头上都没有泥。由于他,知道至少有一个孩子头上有泥,他便可以归结出他一定 是那个头上有泥的。现在假设k=2。只有两个“泥孩子”a和b。他们第一次都会回答“不”,因为他们看到对方头上的泥。但是,当b说“不“的时候,a会意 识到自己也是个“泥孩子”,否则b第一次的时候应该会知道他自己头上有泥,并且回答“是”。于是a第二次就会回答“是“。而b也会经历类似的推理。现在假 设k=3,于是有三个“泥孩子”a,b和c。a会这样说:假设我头上没有土,那么,根据k=2的情况,b和c在第二次都会回答“是”。而当他们并没有这样 做,他(a)就意识到这个假设是错的,他是个“泥孩子”,于是他会在第三次回答“是”。b和c也一样。

我们可以对一般的情况使用相同的方法进行推论。

很显然,一台足够聪明的电脑就可以模拟每个小孩在这个推理中的思维方式,并且肯定比他们中任何一个都要做得好。我们在这里看似花简为烦地把一个问题转化为了一系列单纯的推理步骤,并且涉及多个客体(我们暂时称为Agent,接下来我会另外讨论Agent的概念);这样我们可以用一段简单的程序来完成这些推理;但是更重要的是,这段程序在这个问题中的行为模式和人类是截然不同的。实际上程序能完成的仅限于将一个推理过程(或者一个可计算过程)应用到其适用的某一个状态空间中,而人类所完成的是真正的推理演绎。我们接下来将讨论这两者间的详细区别,包括这两者和已知的动物行为学之间的区别。
0 0

相关博文

我的热门文章

img
取 消
img