大脑的超级进化(二)


 

体现在字母数字型难题解题过程中的人类思维策略(2)

 

解出此题[1]可以采用如下3种不同的思维策略:

1、穷竭式的系统搜索方式[2];

2、结合搜索与“智慧”的搜索方式[3];

3、使用严格逻辑推理的解题方式[4]。


上述的第一种思维策略即穷竭式的系统搜索方式所需的解题步骤为3 628 800步;

上述的第二种思维策略即结合搜索与“智慧”的搜索方式所需的解题步骤为68步;

上述的第三种思维策略即使用严格逻辑推理的解题方式所需的解题步骤仅为10几步。

显然,上述的第三种思维策略即使用严格逻辑推理的解题方式无疑是最具有人类智慧特点的思维策略。


在下面的注释[2]~[4]中,司马贺 ── 1978年诺贝尔经济学奖获得者,美国人工智能专家和认知心理学家 ── 已经使用上述这三种思维策略对此题的解法逐一给出了比较明白易懂的表述。


为了使读者能更清晰地理解司马贺在[4]中所作的表述,并更清晰地感知在该表述中所体现出来的超级进化的人类大脑的智慧与严格的逻辑推理之美,

在后一续文中,

我们将对使用上述第三种思维策略即使用严格逻辑推理的解题方式解出此题的整个思维过程,给出一个更为清晰、更为严谨、更为简洁和更为形式化的表述。

 

[SYQ原创&版权所有]

────
[1] 关于“此题”的详情,请点击:
http://www.zijin.net/blog/more.asp?name=syqds&id=7607

[2] 第一种思维策略即穷竭式的系统搜索方式表述如下:

“对此问题的一种考虑方法是,考察将十个数字与十个字母进行配对的所有10!(10的阶乘)种方式。10!这个数字还没有大到使现代计算机心生恐惧的地步。它只不过比300万多一点。(准确地说,是3 628 800。)如果设计一个程序来系统地产生所有可能的配对方式,并且产生一种配对方式并加以检验需1/ 10秒,那么至多10个小时就能完成任务。(有了D = 5的提示,只需1个小时。)我并未编写这个程序,不过我想大型计算机检验每种可能性所需时间比1/ 10秒短多了。

“没有证据表明人也能达到这个速度。对人来说,产生与检验每一配对方式要花1分钟。要想记住已经进行到哪里了,已经试过了哪些配对,他会感到非常困难。他可以用纸笔帮忙记一记,但那使他的速度更慢了。这样干,这项任务也许需要几个人多年的工作量(假设每周工作40小时)。

“我们排除这种穷竭式的系统搜索方式,因为对于人来说,这样解决该问题是不可行的。但请注意,我们只不过对人的能力假设了很粗略的几点便排除了这种搜索方式。我们假设:简单算术运算所需时间是秒的数量级;运算基本上是序贯进行的,而不是并行进行;记忆容量没有大到容许以几分之一秒的速度储存新信息的地步。这些假定说到了一点人的中枢神经系统的生理机制,但没说多少。例如,若能向大脑植入一个具有袖珍计算器所有特性的子系统来改进大脑,这将是脑外科 ── 甚至进化 ── 的一个十分了不起的奇迹。但是,即使发生了如此重大的变化,对于解释或预测该问题环境中的行为这些目的来说,也只会将有关假说改变那么一点点。

“人们经常解“DONALD + GERALD = ROBERT”这样的问题。他们是怎样做的呢?表现环境、进行搜索的其他路子是什么呢?”([美]司马贺(Simon,H.A)著,武夷山译:《人工科学:复杂性面面观》,上海科技教育出版社,2004年版,第51~52页)。

[3] 第二种思维策略即结合搜索与“智慧”的搜索方式表述如下:

“大大减少搜索的一个方法是如前进行系统配对,不过是将数字与字母一一配对,这样,配对尚未完毕就可能发现前后矛盾,于是一步就能排除掉整组的可能配对方式。我来说明一下这是怎么回事。

“假设我们从右边开始,依次试着为字母D、T、L、R、A、E、N、B、O、G配对,按1、2、3、4、5、6、7、8、9、0的顺序代入字母。已知D = 5,于是将5从现有数字的表中排除。现试试T = 1。在右列检验一下,发现有矛盾,因为D + D = T + c,c是10或0。既然(D = 5,T = 1)是不可行的,我们就可将余下的八个数字与余下的八个字母配对的余下8!种可能性全部排除,不管余下的字母的排队情况怎样。

“这方法还可进一步改善:每当两个加数已知时,直接用加法计算出应该用哪个数字来代替表示该栏和数的字母。按这一改善了的方法,无需搜索代表T的数字,因为从D = 5能直接推断出T = 0。用此法,DONALD + GERALD = ROBERT问题靠纸笔就可很容易地解出,十分钟就足够了。图3表示了搜索树,但稍微简化了一些。每一分支伸展到发现矛盾的点为止。例如,当确定(D = 5,T = 0)后,L = 1的配对导致R = 3的推断结果,这就产生了矛盾,因为从问题算式的左列来看,R = 3则意味着G是复数。

D = 5  T = 0  L = 1  R = 3  G < 0  #
             L = 2  R = 5  G = 0  #
             L = 3  R = 7  A = 1  E = 2  #
                          A = 2  E = 4  #
                          A = 4  E = 8  #
                          A = 6  E = 2  #
                          A = 8  E = 6  #
                          A = 9  E = 8  #
             L = 4  R = 9  A = 1  E = 2  #
                          A = 2  E = 4  #
                          A = 3  E = 6  #
                          A = 6  E = 2  #
                          A = 7  E = 4  #
                          A = 8  E = 6  #
             L = 6  R = 3  G < 0  #
             L = 7  R = 5  #
             L = 8  R = 7  A = 1  E = 3  #
                          A = 2  E = 5  #
                          A = 3  E = 7  #
                          A = 4  E = 9  N = 1  B = 8  #
                                       N = 2  B = 9  #
                                       N = 3  G = 0  #
                                       N = 6  O = 2  G = 1

图3  DONALD + GERALD = ROBERT的可能的搜索树

“图3在一个方面已经大大简化了。用一个数替代E后出现了矛盾结果而终止的每一分支,事实上还应再分一次杈,因为在这些情形中,都是由于看到字母O与哪个数字配对也不行才发现矛盾的。在每一情形中,必须检验四个配对来确定是否有矛盾。因此,完整的搜索树有68个分支,68较之10!或9!是小得多了。

“通过稍稍(相对而言)偏离穷竭式系统搜索法,一个巨大的空间就被缩小成一个非常小的空间。必须承认,这些偏离并不像我使它们显现出的那么简单。在我们所提出的方法中,有一步骤是要求发现某种配对所隐含的矛盾。这当然指的是“比较直接的矛盾”。因为,如果我们有一个能发现所有隐含着的直接或间接的矛盾的高速程序,那么,问题解答几乎可以立刻求出。对于此问题,除了唯一正确的一组配对方式外,其余组配对方式都隐含着矛盾。

“寻找直接矛盾是这样的意思:作了一个新的配对后,将刚被代替的字母所在列都检验一下。如果可能,对于每一个这样的列,都将一个尚未配对的字母当作未知数求解,然后检查答案,看看求出的这个数字是不是尚未被配对的。如果不是,则有矛盾。

“我们现在不是蛮力搜索(brute-force search),而是有了一个结合了搜索与‘智慧’的系统。我们能否将这一过程再往前推一步,能否从解法中彻底消除所有的尝试法搜索(trial-and-error search)?回答是,对这个问题可以,不过并不是对所有算术码问题都可以。”(同上书,第52~54页)

[4] 第三种思维策略即使用严格逻辑推理的解题方式表述如下:

“使我们在解眼前这道题目时能消除尝试法搜索的多数步骤的基本思想,是不要采取自右至左进行系统配对的方式。反之,我们搜索问题算式的一些已十分确定的列,这些列能使我们求出新的配对方式,或至少能对配对的性质进行新的推断。

“让我简要地叙述一下这个过程。由D= 5,我们立刻推断出T = 0,如前所述。我们也知道,1进位进到了第二列,因此R = 2L +1,是一奇数。最左边,由D = 5,我们断定R大于5(因为R = 5 + G)将这两个推断合起来考虑,我们有R = 7或R = 9,但我们并不试验这两个配对。此时我们发现左起第二列具有特殊的结构O + E = O ── 一个数加上另一个数等于它自身(因进位而进入此列或从此列消去的数不算)。数学知识或经验都告诉我们,这只有当E = 0或E = 9时才成立。既然已有T = 0,则E = 9。这又消除了R的一种可能,于是R = 7。

“既然E = 9,则有A = 4。右起第三列必然进上了一位,因此2L + 1 = 17,或L = 8。现在剩下来要做的是将1、2、3和6依某种顺序代替N、B、O和G。注意到无论O为何值,总要向左列进位,得到G = 1。现在只剩下3!= 6种可能性。我们也许愿意用尝试法来消除多余的可能性,最后得N = 6,B = 3,于是O = 2。”(同上书,第54~55页)