【专栏】跟波利亚学解题(10)
启发式方法的局限性并不能否认在大量场合启发式方法的巨大帮助,许多时候,单靠启发式方法就能带来突破。而且,一旦知识性的东西掌握的是一样多的,能否运用更优秀的思维方法就决定了能力的高下。
6.启发法的局限性。首先肯定的是,启发法一定(也许很大)程度上是可以代偿知识的不足的(这里的知识主要是指大脑中的“联系”,下面还会提到另一种知识,即hard knowledge)。譬如,一道题目,别人直接就能通过类比联想到某道解过的题目,并直接使用了其中的一个关键的性质把题目给解出来了。你并没有做过那道题目,这导致两种可能的结果:一,你就是不知道那个性质。二,你虽然“知道”那个性质,但并没有在以前的解题经历中将那个性质跟你手头的这个问题中的“线索”联系起来,所以你还是“想不到”。后一种可以称为soft knowledge,即你“知道”,但就是联想(联系)不起来。所谓不能活学活用,某些时候就是这种情况,即书本上提供什么样的知识联系,脑子里也记住什么,而没有事后更广泛地去探索知识之间的本质联系(总结的作用)。前一种则可以称为hard knowledge,即你就是不知道,它不在你的脑子里。
而启发式方法在两个层面上起作用:
作者:刘未鹏 出版:电子工业出版社
1)辅助联想起soft knowledge:譬如,特例法是一种启发式思考方法,它通过引入一个简单的特例,特例中往往蕴含有更多的“线索”,通过这些线索,有可能就会激发起对既有的知识的联想。另外一种强大的辅助联想办法就是对题目进行变形,变形之后就产生了新的视觉和语意线索,比如式子的对称性、从直角坐标到极坐标从而引发对后者的知识的联想等等。大量的启发式方法实际上的作用就是辅助联想,通过对题目中的线索的发掘,激起大脑中已知相关知识的浮现。在这个意义上,相对于那些能够直接联想到某个性质的人,那些不知道但可以通过启发式思维联想到的,启发式思维就提供了一种“曲径通幽”的策略性联想。还是以经典的例子来说:砖头的用途。有人立即能够直接联想到“敲人”。有人也许不能。然而启发式联想策略“抽象”就能够帮助后者也能够联想到“敲人”,因为“抽象”策略启发人去考虑砖头的各个性质维度,如“质地”,“形状”,当你考察到“质地坚硬”,“棱角”,离“敲人”的功能还会远么?本质上,能够直接联想到“敲人”功能的人是因为大脑中从砖头到敲人这两个概念之间的神经通路被走过了很多遍(譬如由于经常拿砖头敲人),神经元之间的联系相当“粗”(形象的说法,严格的事实请参考《追寻记忆的痕迹》),而不经常拿砖头敲人的人呢,这个联系就非常的弱,乃至于根本激不起一次神经冲动。那么为什么通过启发式方法又能联想到呢?因为启发式方法相当于带入了一种新的神经调控回路,首先它增加你联系到砖头的属性维度上的可能性,使得“质地坚硬”、“棱角”这两个语意概念被激活起来(注意,如果没有启发式方法的参与,这是不会发生的),一旦后者被激活起来,从后者到“敲人”的联系就被激活起来了。从本质上,解题中的启发联想方法做的也就是这个工作。而越是一般性的启发式方法就越是能对广泛的问题有帮助(譬如《How to Solve It》中介绍的那些,譬如分类讨论、分治、乃至我认为很重要的一个——写下自己的思维过程,详细分解各个环节,考察思维路径中有无其它可能性(我们很容易拿到一道题目便被一种冲动带入到某一条特定的思路当中,并且遵循着“最可能的”推导路径往下走,往往不自觉的忽略其它可能性,于是那些可能性上的联想就被我们的注意力“抑制”了。))。
2)辅助探索出hard knowledge:倒推法是一种启发式思考方法,它将你的注意力集中到问题的结论中蕴含的知识上,一旦你开始关注可能从结论中演绎出来的知识,你就可能得到hard knowledge,即并不是早先就存在你脑子里,但是可以通过演绎获得的。上文中的最小和子序列中的倒推方法就是一个例子。
而启发式方法的局限性也存在于这两个方面:
1)有些联系是不管怎样“启发”也想不起来的。譬如“当布被刺破了,干草堆就重要了”,你怎么解释这句话?如果有人提示一下“降落伞”,每个人都会恍然大悟。这是因为从“布”到“降落伞”之间的单向联系是近乎不存在的。而且就算运用启发法,譬如,考虑所有布做的东西,也基本绝无可能想到降落伞,因为同样,从“布做的东西”到“降落伞”之间的关联也是极其微弱的。我们脑子里只能保留那些最最重要的联系。(如果一提到布,“降落伞”和“衣服”、“被单”、“窗帘”等日常物品以同等重要级别闪现,就乱套了。)那为什么从降落伞我们能想到布呢?我们实际上不能,我们为什么有些时候能,是因为譬如有人叫你“考虑降落伞的材料”,后者就激发了“降落伞之材料”这个语意,后者又指导了我们去考察降落伞的材料构成,于是我们想到是布。否则“布”是不会直接被激发起来的。那为什么在我们的这个问题中,一旦有人提到降落伞,我们就能建立从布到降落伞的关联呢?这是因为“降落伞”和“布”这两个语意单元的同时兴奋增大了它们之间关联的可能性,就好比是加大另一端的电压从而发生了“击穿”一样。从本质上,解数学题也是如此,费马大定理的求解过程是一个很好的例子,谷山志村猜想,就相当于那个“降落伞”的提示。我们还听到很多这样的故事(或者自己经历):苦思冥想一个问题不得要领,某一天在路上走,看到某个东西或听到某句话,然后忽然,一道闪电划破长空,那个问题解开了(阿基米德是因为躺在浴缸里从而想到浮力原理的吗?)。我敢保证,如果一个人早就把那个问题从脑海里扔到九霄云外去了(不再处于兴奋状态了),那么就算线索出现,也是不可能发生顿悟的。我们都知道,带着一个问题(使其在大脑中处于兴奋状态)去寻找答案更可能找到,即便不是有意去寻找,只要问题还在脑子里,任何周围的有可能与它相关的线索都不会被大脑漏掉,因为“问题”和“周围的其他线索”同时的兴奋增大了关联的可能性。如果问题早就被从大脑(意识或者潜意识)中撤下了,即便周围出现提示也不会被捕捉到。
2)许多hard knowledge是不能被启发探索出来的。至少是不能被“直接命中目标”地探索出来的。一个问题有可能跟三角函数有关,也许你只能带着问题去探索三角函数的所有性质,从而最终发现那个关键的性质。费马大定理与椭圆方程有关,也许只能去探索椭圆方程的所有性质,这个过程一定程度上是盲目的,试错的,遍历的。而不是直接面向目标的。再聪明的人也无法从费马大定理直接反推到谷山志村猜想。在这些时候,启发式方法最多只能提供一个探索的大致方向:譬如,探索三角函数的性质,并随时注意其中哪个可能对我这个问题有帮助。譬如,探索模运算的性质,看看哪些性质可能会有用。譬如,探索椭圆曲线的性质…等等。启发式方法并不能使我们的探索精准地命中目标。而只能划定一个大致的范围。也难怪有人说数学是盲目的。
但话说回来,启发式方法的局限性并不能否认在大量场合启发式方法的巨大帮助,许多时候,单靠启发式方法就能带来突破。而且,一旦知识性的东西掌握的是一样多的,能否运用更优秀的思维方法就决定了能力的高下。
(待续;此文的修订版已收录《暗时间》一书,由电子工业出版社2011年8月出版。作者于2009年7月获得南京大学计算机系硕士学位,现在微软亚洲研究院创新工程中心从事软件研发工程师工作。)
网络编辑:小碧