而啟發(fā)式方法的局限性也存在于這兩個方面:
1)有些聯(lián)系是不管怎樣“啟發(fā)”也想不起來的。譬如“當(dāng)布被刺破了,干草堆就重要了”,你怎么解釋這句話?如果有人提示一下“降落傘”,每個人都會恍然大悟。這是因為從“布”到“降落傘”之間的單向聯(lián)系是近乎不存在的。而且就算運用啟發(fā)法,譬如考慮所有布做的東西,也基本絕無可能想到降落傘,因為同樣,從“布做的東西”到“降落傘”之間的關(guān)聯(lián)也是極其微弱的。我們腦子里只能保留那些最最重要的聯(lián)系(如果一提到布,“降落傘”和“衣服”、“被單”、“窗簾”等日常物品以同等重要級別閃現(xiàn),就亂套了)。那為什么從降落傘我們能想到布呢?我們實際上不能,我們?yōu)槭裁从行r候能,是因為譬如有人叫你“考慮降落傘的材料”,后者就激發(fā)了“降落傘之材料”這個語意,后者又指導(dǎo)了我們?nèi)タ疾旖德鋫愕牟牧蠘?gòu)成,于是我們想到是布。否則“布”是不會直接被激發(fā)起來的。那為什么在我們的這個問題中,一旦有人提到降落傘,我們就能建立從布到降落傘的關(guān)聯(lián)呢?這是因為“降落傘”和“布”這兩個語意單元的同時興奮增大了它們之間關(guān)聯(lián)的可能性,就好比是加大另一端的電壓從而發(fā)生了“擊穿”一樣。從本質(zhì)上,解數(shù)學(xué)題也是如此,費馬大定理的求解過程是一個很好的例子,谷山志村猜想,就相當(dāng)于那個“降落傘”的提示。我們還聽到很多這樣的故事(或者自己經(jīng)歷):苦思冥想一個問題不得要領(lǐng),某一天在路上走,看到某個東西或聽到某句話,然后忽然,一道閃電劃破長空,那個問題解開了(阿基米德是因為躺在浴缸里從而想到浮力原理的嗎?)。我敢保證,如果一個人早就把那個問題從腦海里扔到九霄云外去了(不再處于興奮狀態(tài)了),那么就算線索出現(xiàn),也是不可能發(fā)生頓悟的。我們都知道,帶著一個問題(使其在大腦中處于興奮狀態(tài))去尋找答案更可能找到,即便不是有意去尋找,只要問題還在腦子里,任何周圍的有可能與它相關(guān)的線索都不會被大腦漏掉,因為“問題”和“周圍的其他線索”同時的興奮增大了關(guān)聯(lián)的可能性。如果問題早就被從大腦(意識或潛意識)中撤下了,即便周圍出現(xiàn)提示也不會被捕捉到。
2)許多hard knowledge是不能被啟發(fā)探索出來的。至少是不能被“直接命中目標(biāo)”地探索出來的。一個問題有可能跟三角函數(shù)有關(guān),也許你只能帶著問題去探索三角函數(shù)的所有性質(zhì),從而最終發(fā)現(xiàn)那個關(guān)鍵的性質(zhì)。費馬大定理與橢圓方程有關(guān),也許只能去探索橢圓方程的所有性質(zhì),這個過程在一定程度上是盲目的、試錯的、遍歷的。而不是直接面向目標(biāo)的。再聰明的人也無法從費馬大定理直接反推到谷山志村猜想。在這些時候,啟發(fā)式方法最多只能提供一個探索的大致方向:譬如,探索三角函數(shù)的性質(zhì),并隨時注意其中哪個可能對我這個問題有幫助?;蛘?,探索模運算的性質(zhì),看看哪些性質(zhì)可能會有用。或者,探索橢圓曲線的性質(zhì),等等。啟發(fā)式方法并不能使我們的探索精準(zhǔn)地命中目標(biāo),而只能劃定一個大致的范圍。也難怪有人說數(shù)學(xué)是盲目的。
但話說回來,啟發(fā)式方法的局限性并不能否認(rèn)在大量場合啟發(fā)式方法的巨大幫助,許多時候,單靠啟發(fā)式方法就能帶來突破。而且,一旦知識性的東西掌握的是一樣多的,能否運用更優(yōu)秀的思維方法就決定了能力的高下。
7.總結(jié)的意義。解題練習(xí)的最重要目的不是將特定的題目解出來,而是在于反思解題過程中的一般性的、跨問題的思維法則。簡單地將題目解出來(或者解不出來看答案,然后 “恍然大悟”),只能得到最少的東西,解出來固然能夠強(qiáng)化導(dǎo)致解出來的那個思維過程和方法,但缺少反思便不能抽取出一般性的東西供更多的題目所用。而解不出來,看答案然后“哦”的一聲更是等同于沒有收獲,因為“理解”和“運用”相差何止十萬八千里。每個人都有過這樣的經(jīng)歷:一道題目苦思冥想不得要領(lǐng),經(jīng)某個人一指點其中的關(guān)鍵一步,頓時恍然大悟 — 這是理解。但這個理解是因為別人已經(jīng)將新的知識(那個關(guān)鍵的一步)放到你腦子里了,故而你才能理解。而要運用的話,則需要自己去想出那關(guān)鍵的一步。因此,去揣測和總結(jié)別人的思維是如何觸及那關(guān)鍵的一步,而你自己的思維又為什么觸及不到它,有一些一般性的原則可以指導(dǎo)你下次也能想到那個“關(guān)鍵的一步”嗎,這是很有意義的。我們很多時候會發(fā)現(xiàn),一道題目,解不出來,最終在提示下面解出來之后,發(fā)現(xiàn)其中并沒有用到任何自己不知道的知識,那么不僅就要問,既然那個知識是在腦子里的,為什么我們當(dāng)時愣是提取不出來呢?而為什么別人又能夠提取出來呢?我怎么才能像別人那樣也提取出相應(yīng)的知識呢?實際上這涉及到關(guān)于記憶的最深刻的原理,實際上文中已經(jīng)提到了一些(有興趣的讀者建議參考以下幾本書:《追尋記憶的痕跡》,《Searching For Memory》,《Synaptic Self》,《Psychology of Problem Solving》)。一般性的思維法則除了對于輔助聯(lián)想(聯(lián)想起關(guān)鍵的知識)之外,另一個作用就是輔助演繹/歸納(助探),一開始學(xué)解題的時候,我們基本上是先讀懂題目條件,做可能的一些顯然的演繹。如果還沒推到答案的話,基本就只能愣在那里等著那個關(guān)鍵的步驟從腦子里冒出來了。而所謂的啟發(fā)式思維方法,就是在這個時候可以運用一些一般性的,所有題目都適用的探索手法,進(jìn)一步去探索問題中蘊含的知識,從而增大成功解題的可能性。啟發(fā)式的思維方法有很多,從一般到特殊,最具一般性的,在波利亞的《How to Solve It》中已經(jīng)基本全部都介紹了。一些更為特殊性的(譬如“如果全局搜索空間沒有遞歸結(jié)構(gòu),那么考慮分割搜索空間”,或者那些“看到XX,要想到Y(jié)Y”的聯(lián)系),則需要自己在練習(xí)中不斷抽象總結(jié)。