一点思考(7)

练习还有另外一个很重要的作用,就是增加领域知识(关于知识在问题解决中的作用,前面已经提到过)。我们看到很多人,拿到一道题目立即脑子里就反应出解法,这个反应快到他自己都不能意识到背后有什么逻辑。这是因为既有的知识(我们常说的“无他,实在是题做得太多了”)起到了极大的作用,通过对题目中几个关键元素或结构的感知,大脑中的相关知识迅速被自动提取出来。而对于知道但不熟悉相应知识(譬如很早我们就知道归纳法,但是很久以后我们才真正能够做到面对任何一道可能用归纳法的题目就立即能够想到运用归纳法),或者干脆就不知道该知识的人来说,就需要通过启发法来辅助联想或探索了。后者可以一定程度上代偿对知识的不够熟悉,但在一些时候知识的缺失则是致命的(参见上面第2点)。不过要注意的是,那种看到题目直接反应出答案的或许也不是纯粹的好事,因为这样的解题过程严重依赖于既有知识,尤其是做过的类似的题目,其思维过程绝大部分运用的是联想或类比,而非演绎或归纳。更重要的是,联想也分两种,被动联想和策略性联想(参考《Searching For Memory》),这里用的却是被动联想。所以,能直接反应出答案并不代表遇到真正新颖的题目的时候的解决能力,后者由于不依赖于既有领域知识,就真正需要看一个人的思维能力和习惯究竟如何了。

6.启发法的局限性。首先肯定的是,启发法在一定(也许很大)程度上是可以代偿知识的不足的(这里的知识主要是指大脑中的“联系”,下面还会提到另一种知识,即hard knowledge)。譬如,一道题目,别人直接就能通过类比联想到某道解过的题目,并直接使用了其中的一个关键的性质把题目给解出来了。你并没有做过那道题目,这导致两种可能的结果:一,你就是不知道那个性质。二,你虽然“知道”那个性质,但并没有在以前的解题经历中将那个性质跟你手头的这个问题中的“线索”联系起来,所以你还是“想不到”。后一种可以称为soft knowledge,即你“知道”,但就是联想(联系)不起来。所谓不能活学活用,某些时候就是这种情况,即书本上提供什么样的知识联系,脑子里也记住什么,而没有事后更广泛地去探索知识之间的本质联系(总结的作用)。前一种则可以称为hard knowledge,即你就是不知道,它不在你的脑子里。

而启发式方法在两个层面上起作用:

1)辅助联想起soft knowledge。譬如,特例法是一种启发式思考方法,它通过引入一个简单的特例,特例中往往蕴含有更多的“线索”,通过这些线索,有可能就会激发起对既有的知识的联想。另外一种强大的辅助联想办法就是对题目进行变形,变形之后就产生了新的视觉和语意线索,比如式子的对称性、从直角坐标到极坐标从而引发对后者的知识的联想,等等。大量的启发式方法实际上的作用就是辅助联想,通过对题目中的线索的发掘,激起大脑中已知相关知识的浮现。在这个意义上,相对于那些能够直接联想到某个性质的人,那些不知道但可以通过启发式思维联想到的,启发式思维就提供了一种“曲径通幽”的策略性联想。还是以经典的例子来说:砖头的用途。有人立即能够直接联想到“敲人”。有人也许不能。然而启发式联想策略“抽象”就能够帮助后者也能够联想到“敲人”,因为“抽象”策略启发人去考虑砖头的各个性质维度,如“质地”,“形状”,当你考察到“质地坚硬”,“棱角”,离“敲人”的功能还会远么?本质上,能够直接联想到“敲人”功能的人是因为大脑中从砖头到敲人这两个概念之间的神经通路被走过了很多遍(譬如由于经常拿砖头敲人),神经元之间的联系相当“粗”(形象的说法,严格的事实请参考《追寻记忆的痕迹》),而不经常拿砖头敲人的人呢,这个联系就非常的弱,乃至于根本激不起一次神经冲动。那么为什么通过启发式方法又能联想到呢?因为启发式方法相当于带入了一种新的神经调控回路,首先它增加你联系到砖头的属性维度上的可能性,使得“质地坚硬”、“棱角”这两个语意概念被激活起来(注意,如果没有启发式方法的参与,这是不会发生的),一旦后者被激活起来,从后者到“敲人”的联系就被激活起来了。从本质上,解题中的启发联想方法做的也就是这个工作。而越是一般性的启发式方法就越是能对广泛的问题有帮助(譬如《How to Solve It》中介绍的那些,譬如分类讨论、分治,乃至我认为很重要的一个 — 写下自己的思维过程,详细分解各个环节,考察思维路径中有无其他可能性(我们很容易拿到一道题目便被一种冲动带入到某一条特定的思路当中,并且遵循着“最可能的”推导路径往下走,往往不自觉地忽略其他可能性,于是在那些可能性上的联想就被我们的注意力“抑制”了))。

2)辅助探索出hard knowledge。倒推法是一种启发式思考方法,它将你的注意力集中到问题的结论中蕴含的知识上,一旦你开始关注可能从结论中演绎出来的知识,你就可能得到hard knowledge,即并不是早先就存在你脑子里,但是可以通过演绎获得的。上文中的最小和子序列中的倒推方法就是一个例子。

读书导航