日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

跟波利亞學(xué)解題

 skywood 2008-04-19

跟波利亞學(xué)解題

 

By 劉未鵬(pongba)

C++的羅浮宮(http://blog.csdn.net/pongba)

TopLanguage(http://groups.google.com/group/pongba)

 

一些故事

波利亞在他著名的《How To Solve It》中講了這么一個有趣的心理學(xué)實驗:  

用 一個缺了一條邊的正方形圍欄圍住一只動物(狗、黑猩猩、母雞、人類嬰兒),在圍欄的另一側(cè)放上一個被試很想要的物體(對動物來說是食物,對人類嬰兒來說是 有趣的玩具),然后觀察他們各自的行為。發(fā)現(xiàn),狗在扒著圍欄吠了幾聲發(fā)現(xiàn)無法通過的時候,不久便學(xué)會了從圍欄的缺口的那一邊繞出去,母雞則朝著圍欄一個勁 的撲騰,不會想到繞彎子。此外,人類嬰兒很快就學(xué)會了繞過障礙;而黑猩猩也學(xué)得很快(黑猩猩是和人類最近的靈長類親屬)。這個實驗有力的證明了,動物解決 問題的能力是進(jìn)化而來的、天生的、硬編碼在大腦的神經(jīng)元網(wǎng)絡(luò)里面的。

事實上,不僅解決問題方面是如此,人類整個認(rèn)知系統(tǒng)中絕大部分功能從本質(zhì)上都是硬編碼的,能在后天習(xí)得的只是“程度”的不同,而不是“本質(zhì)”的不同。《動機(jī)心理學(xué)》中有一個令人印象深刻的一個例子:

先 給小鼠喝某種甜味水(稱為“可口水”),然后用X射線促使其產(chǎn)生反胃感,能使小鼠形成對這種味道的水的厭惡和回避(經(jīng)典條件反射)。但如果不是在水里面加 味道,而是在它喝水的時候伴隨強(qiáng)光刺激(即讓它喝“光噪水”),然后同樣刺激其反胃,卻無法使它養(yǎng)成對“光噪水”的厭惡。另一方面,如果不是促使其反胃 (身體不適),而是用電擊懲罰,則它無法形成對“可口水”的厭惡,而是形成對“光噪水“的厭惡。顯然,小鼠對事件之間的關(guān)聯(lián)的歸因也具有著某種硬編碼好了 的傾向。在這個例子中,老鼠的大腦里面硬編碼了“將身體不適(內(nèi)部事件)歸因于食物而不是閃光”、”將電擊(外部事件)歸因于閃光而非食物” 這種邏輯。

而人類也有類似的歸因傾向。金出武雄在《像外行一樣思考,像專家一樣實踐》中也提到,他認(rèn)為人類的直覺實際上也是計算,捷徑式的計算, 只不過由于我們目前還不了解人類大腦內(nèi)神經(jīng)元的全部結(jié)構(gòu)(或者說“感性”的物質(zhì)基礎(chǔ))這才把“感性”當(dāng)成人類所特有的;金出武雄的這種觀點(diǎn)跟心理學(xué)中的認(rèn) 知捷徑不謀而合。實際上,越是高等的動物,大腦中用于處理特定問題的硬編碼神經(jīng)元回路就越是多和復(fù)雜。例如,達(dá)爾文早在《人類和動物的情緒表達(dá)》中就先知先覺的提出了動物情緒的適應(yīng)價值;《Mean Genes》列出了用于解決生存繁衍問題的特定認(rèn)知傾向;《決策與判斷》里面則列出了人類在解決更具一般性的決策問題中的一些系統(tǒng)性的、可預(yù)測的認(rèn)知偏差;而《Predictably Irrational》更是把這個認(rèn)識提高到方法論的層面,主張人類的非理性實際上是完全可預(yù)知的。事實上,所有這些觀點(diǎn)都建立在一個基本事實的基礎(chǔ)上,即人類大腦中的千億神經(jīng)元是由在漫長的進(jìn)化過程中被塑造出來的分工明確的、ad hoc的一組子系統(tǒng)構(gòu)成的。

越 是高等的動物,解題能力越高,猩猩能夠進(jìn)行某種頓悟,在腦子里就構(gòu)想出通過堆放墻角的箱子來幫助獲取高高吊著的香蕉;而出于進(jìn)化之樹 頂端的人類則具有非比尋常的大腦,在人類整個進(jìn)化的過程中,解決問題的能力一直在進(jìn)化,所以說人腦中的神經(jīng)元最重要的部分是為了解題而存在的也不為過。不同的人只是在解題能力程度上不同,并沒有本質(zhì)上能與不能的差異。

波利亞在《How To Solve It》中另外還舉了下面這個例子:

一 個原始人站在一條小溪前,他想要越過這條小溪,但溪水經(jīng)過昨天一夜,已經(jīng)漲了上來;因此他面臨一個問題:如何越過這條小溪。他聯(lián)想起以前曾經(jīng)從一棵倒下并 橫在河上的樹木上走過去,于是他的問題變成了如何找到這樣一顆倒下并橫在溪流上的樹木。他環(huán)顧四周,發(fā)現(xiàn)溪流上沒有這樣的橫著的樹木,但他發(fā)現(xiàn)周圍倒是有 不少生長著的樹木;于是問題再次變成了:如何使這些樹木躺到溪流上。

在這個想像的故事中我們看到了一個問題是如何被一步步歸約的: 首先,原始人通過對一個已知的類似問題的聯(lián)想認(rèn)識到一個重要的性質(zhì):如果有一棵樹橫在河上,我就可以借助這棵樹過河。這就將一個無法直接解決的問題轉(zhuǎn)化為 了一個新的、已知的、并容易解決的問題。值得注意的是這里“聯(lián)想”是極其重要的一個環(huán)節(jié),聯(lián)想可以將手上的問題與已知的類似問題聯(lián)系起來,并從后者中吸取 能夠利用的方法。聯(lián)想也能夠?qū)⑴c問題有關(guān)的定理或性質(zhì)從大腦的知識系統(tǒng)中提取出來。基本上,如果一個聯(lián)想能夠得到某個性質(zhì),而這個性質(zhì)能夠或者將問題往上 歸約一層,或者將條件往下推導(dǎo)一層,這個聯(lián)想就是有用的。事實上,如果你仔細(xì)注意以下解題的過程,你也許會發(fā)現(xiàn),所有的啟發(fā)式思維方法(heuristics)實質(zhì)上都是為了聯(lián)想服務(wù)的,而聯(lián)想則是為了從我們大腦的知識系統(tǒng)中提取出有價值的性質(zhì)或定理,從而補(bǔ)上從條件到結(jié)論、從已知到未知之間缺失的鏈環(huán)。

一段歷史

實際上,人類自從進(jìn)入理性文明以來,不僅在不斷的解題,還在不斷的對自身的解題方法進(jìn)行反省和總結(jié)。在這條路上,有一個真正光榮與輝煌的夢想,那就是發(fā)現(xiàn)人類解題的所有一般性法則,并借此建造出一臺能夠解決人類能夠解決的所有問題的一般解題機(jī)。與物理中的建造永動機(jī)不一樣,這個夢想并非遙不可及的,自從古希臘哲學(xué)家對人類心智的反省思考以來,許多著名的數(shù)學(xué)和哲學(xué)家為此建造了階梯,Pappus,亞歷山大學(xué)派最后一位偉大的幾何學(xué)家,就曾在他恢弘的八卷本《數(shù)學(xué)匯編》中描述了其中的一種法則,他將它稱為“分析與綜合”,大意如下:

首先我們把需要求解的問題本身當(dāng)成條件,從它推導(dǎo)出結(jié)論,再從這個結(jié)論推導(dǎo)出更多的結(jié)論,直到某一個點(diǎn)上我們發(fā)現(xiàn)已經(jīng)出現(xiàn)了真正已知的條件。這個過程稱為分析。有了這條路徑,我們便可以從已知條件出發(fā),一路推導(dǎo)到問題的解。

波利亞在他的三卷本中把這種做法叫做Working Backwards(倒過來解)。

笛卡爾也曾經(jīng)試圖將人類思維的規(guī)則總結(jié)為36條(最終完成了21條)。萊布尼茲,現(xiàn)代計算機(jī)實質(zhì)上的發(fā)明者,也說到:

在我看來,沒有什么能比探索發(fā)明的源頭還要重要,它遠(yuǎn)比發(fā)明本身更重要。

再后來,捷克數(shù)學(xué)家波爾查諾也試圖總結(jié)人類思維的本質(zhì)規(guī)律,他在他的著作《科學(xué)的理論》中寫道:

我 根本不奢望自己能夠提供任何超于其他天才所使用過的科學(xué)探索方法之外的新方法,從這個意義上,你別指望能在書中看到什么新的東西。但是,我會盡我的全力去 總結(jié)所有偉大的思想者們共有的、思維的原則和方法,我認(rèn)為即便是他們自己在思考的時候也未必全都意識到自己在使用什么方法。

再后來,就到了近代,隨著科學(xué)技術(shù)的進(jìn)步,心理學(xué)最活躍的子學(xué)科——認(rèn)知科學(xué)——開始輝煌起來,人類開始向思維乃至自我意識的物質(zhì)基礎(chǔ)發(fā)起進(jìn)攻。兩位多才多藝的計算機(jī)科學(xué)家兼認(rèn)知科學(xué)家,Herbert Simon(另外還是經(jīng)濟(jì)學(xué)家)和Allen Newell寫出了世界上第一個一般性解題機(jī)的 程序(GPS),雖然GPS只能解決很狹窄的一類問題,但這是第一個將“問題解決策略”和“知識”分離開來的程序。顯然,在知識之外,人類的思維是有著一 些一般性的指導(dǎo)規(guī)則的。事實上,波利亞在《數(shù)學(xué)與猜想》中寫道,歐拉是最重數(shù)學(xué)思維的教學(xué)的,歐拉認(rèn)為如果不能把解決數(shù)學(xué)問題背后的思維過程教給學(xué)生的 話,數(shù)學(xué)教學(xué)就是沒有意義的。

一些方法

這些一般性的思維方法,就是波利亞用了整整三本書,六卷本(《How To Solve It》、《數(shù)學(xué)的發(fā)現(xiàn)》、《數(shù)學(xué)與猜想》)來試圖闡明的。波利 亞的書是獨(dú)特的,從小到大,我們看過的數(shù)學(xué)書幾乎無一不是歐幾里德式的:從定義到定理,再到推論。是屬于“順流而下”式的。這樣的書完全而徹底的扭曲了數(shù)學(xué)發(fā)現(xiàn)的真實過程。舉個例子,《證明與反駁:數(shù)學(xué)發(fā)現(xiàn)的邏輯》在附錄一中講了一個非常有趣的例子:柯西當(dāng) 年試圖將函數(shù)的連續(xù)性從單個函數(shù)推廣到無窮級數(shù)上面去,即證明由無窮多個連續(xù)函數(shù)構(gòu)成的收斂級數(shù)本身也是一個連續(xù)的函數(shù),柯西給出了一個巧妙的證明,似乎 漂亮地解決了這個問題。然而傅立葉卻給出了一個噩夢般的三角函數(shù)的收斂級數(shù),它的和卻并不是連續(xù)的。這令柯西大為頭疼,以至于延遲了他的數(shù)學(xué)分析教程的出 版好些年。后來,賽德爾解決了這個問題:原來柯西在他看似無懈可擊的證明中非常隱蔽(他自己也不知覺的情況下)引入了一個潛在的假設(shè),這個假設(shè)就是后來被 稱為的“一致收斂”條件。當(dāng)時我看到這里就去翻我們的數(shù)學(xué)分析書,發(fā)現(xiàn)“一致收斂”這個概念第一次出現(xiàn)的時候是這樣寫的:定義:一致收斂...

所以說,從這個意義上,《數(shù)學(xué),確定性的喪失》從歷史的角度再現(xiàn)了真實的數(shù)學(xué)發(fā)展過程,是一本極其難得的好書。而事實上,從真實的數(shù)學(xué) 歷史發(fā)展的角度去講授數(shù)學(xué),也是數(shù)學(xué)教學(xué)法的最佳方法。不過,《數(shù)學(xué),確定性的喪失》的弱點(diǎn)是并沒有從思維的角度去再現(xiàn)數(shù)學(xué)發(fā)現(xiàn)的思維過程,而這正是波利亞所做的。

總結(jié)波利亞在書中提到的思維方法,尤其是《How To Solve It》中的啟發(fā)式思考方法,有這樣一些:

  • 時刻不忘未知量(即時刻別忘記你到底想要求什么,問題是什么。) 萊布尼茲曾經(jīng)將人的解題思考過程比喻成晃篩子,把腦袋里面的東西都給抖落出來,然后正在搜索的注意力會抓住一切細(xì)微的、與問題有關(guān)的東西。事實上,要做到 能夠令注意力抓住這些有關(guān)的東西,就必須時刻將問題放在注意力層面,否則即使關(guān)鍵的東西抖落出來了也可能沒注意到。
  • 用特例啟發(fā)思考。 一個泛化的問題往往給人一種無法把握、無從下手、或無法抓住里面任何東西的感覺,因為條件太泛,所以看起來哪個條件都沒法入手。一個泛化的問題往往有一種 “不確定性”(譬如元素的個數(shù)不確定,某個變量不確定等等),這種不確定性會成為思維的障礙,通過考慮一個合適的特例,我們不僅使得問題的條件確定下來從 而便于通過試錯這樣的手法去助探問題的內(nèi)部結(jié)構(gòu),同時很有可能我們的特例中實質(zhì)上隱藏了一般性問題的本質(zhì)結(jié)構(gòu),于是我們便能夠通過對特例的考察尋找一般問 題的解。
  • 反過來推導(dǎo)。反過來推導(dǎo)是一種 極其重要的啟發(fā)法,正如前面提到的,Pappus在他的宏篇巨著中將這種手法總結(jié)為解題的最重要手法。實際上,反向解題隱含了解題中至為深刻的思想:歸 約。人類思維本質(zhì)上善于“順著”推導(dǎo),從一組條件出發(fā),運(yùn)用必然的邏輯關(guān)系,得出推論。然而,如果要求的未知量與已知量看上去相隔甚遠(yuǎn),這個時候順著推實 際上就是運(yùn)用另一個啟發(fā)式方法——試錯——了。雖然試錯是最常用,又是也是最有效的啟發(fā)法,然而試錯卻并不是最高效的。對于許多題目而言,其要求的結(jié)論本 身就隱藏了推論,不管這個推論是充分的還是必要的,都很可能對解題有幫助。如果從結(jié)論能夠推導(dǎo)出一個充要推論,那么實際上我們就將問題進(jìn)行了一次“雙向” 歸約,如果原問題不容易解決,那么歸約后的問題也許就容易解決了,通過一層層的歸約,讓邏輯的枝蔓從結(jié)論上一節(jié)節(jié)的生長,我們往往會發(fā)現(xiàn),離已知量越來越 近。此外,即便是從結(jié)論推導(dǎo)出的必要非充分推論(“單向”歸約),對問題也是有幫助的——任何不滿足這個推論的方案都不是問題的解:譬如通過駐點(diǎn)來求函數(shù) 的最值,我們通過考察函數(shù)的最值(除了函數(shù)邊界點(diǎn)外),發(fā)現(xiàn)它必然有一個性質(zhì),即在這個點(diǎn)上函數(shù)的一階導(dǎo)數(shù)為0,雖然一階導(dǎo)數(shù)為0的點(diǎn)未必是最值點(diǎn),但我 們可以肯定的是,任何一階導(dǎo)數(shù)不為0的點(diǎn)都可以排除,這就將解空間縮小到了有窮多個點(diǎn),剩下的只要做做簡單的排除法,答案就出現(xiàn)了。再譬如線性規(guī)劃中經(jīng)典 的單純形算法(又見《Algorithms》),也是通過對結(jié)論的考 察揭示出只需遍歷有限個頂點(diǎn)便必然可以到達(dá)最值的。此外很多我們熟知的經(jīng)典題目也都是這種思路的典范,譬如《How To Solve It》上面舉的例子:通過一個9升水的桶和一個4升水的桶在河里取6升水。這個題目通過正向試錯,很快也能發(fā)現(xiàn)答案,然而通過反向歸約,則能夠不偏不倚的 命中答案。另一些我們耳熟能詳?shù)念}目也是如此,譬如:100根火柴,兩個人輪流取,每個人每次只能取1~7根,誰拿到最后一根火柴誰贏;問有必勝策略嗎, 有的話是先手還是后手必勝?這個問題通過試錯就不是那么容易發(fā)現(xiàn)答案了。同樣,這個問題的推廣被收錄在《編程之美》里 面:兩堆橘子,各為m和n個,兩人輪流拿,拿的時候你只能選擇某一堆在里面拿(即不能跨堆拿),你可以拿1~這堆里面所有剩下的個橘子,誰拿到最后一個橘 子誰贏;問題同上。算法上面很多聰明的算法也都是通過考察所求結(jié)論隱藏的性質(zhì)來減小復(fù)雜度的。總之,歸約是一種極為重要的手法,一個著名的關(guān)于歸約的笑話 這樣說:有一位數(shù)學(xué)家失業(yè)了,去當(dāng)消防員。經(jīng)過了一些培訓(xùn)之后,正式上任之前,訓(xùn)練的人考他:如果房子失火了怎么辦?數(shù)學(xué)家答出了所有的正確步驟。訓(xùn)練人 又問他:如果房子沒失火呢?數(shù)學(xué)家答:那我就把房子點(diǎn)燃,這樣我就把它歸約為了一個已知問題。
  • 試錯。 試錯估計是世界上被運(yùn)用最廣泛的啟發(fā)法,你拿到一個題目,里面有一些條件,你需要求解一個未知量。于是你對題目這里捅捅那里搗搗,你用上所有的已知量,或 使用所有你想到的操作手法,嘗試著看看能不能得到有用的結(jié)論,能不能離答案近一步。事實上,如果一個問題的狀態(tài)空間是有限的話,往往可以通過窮舉所有可能 性來找到那個關(guān)鍵的性質(zhì)。譬如這樣一個問題:有一個囚犯,國王打算處決他,但仁慈的國王給了他一個生還的機(jī)會?,F(xiàn)在擺在他面前有兩個瓶子,一個里面裝了 50個白球,一個裝了50個黑球,這個囚犯有一個機(jī)會可以隨便怎樣重新分配這些球到兩個瓶子中(當(dāng)然,要保證不空),分配完了之后囚犯被蒙上眼睛,國王隨 機(jī)取一個瓶子給他,他在里面摸出一個球(因為蒙著眼睛,所以也是隨機(jī)抽取),如果白球,則活,否則掛掉。問,這個囚犯如何分配,才能最大化生還幾率。結(jié)合 特例和試錯法,這個題目的答案是很容易發(fā)現(xiàn)的。這樣的題目還有很多。實際上,歷史上很多有名的發(fā)現(xiàn)也都是無意間發(fā)現(xiàn)的(可以看作是試錯的一種)。
  • 調(diào)整題目的條件(如, 刪除、增加、改變條件)。有時候,通過調(diào)整題目的條件,我們往往迅速能夠發(fā)現(xiàn)條件和結(jié)論之間是如何聯(lián)系的。通過扭曲問題的內(nèi)部結(jié)構(gòu),我們能發(fā)現(xiàn)原本結(jié)構(gòu)里 面重要的東西。譬如這樣一個題目(感謝alai同學(xué)提供):A國由1000000個島組成,島與島之間只能用船作為交通工具,有些島之間有船來往,從任意 一個島都可以去到另外任一個島,當(dāng)然其中可能要換船?,F(xiàn)在有一個警察要追捕一個逃犯,開始時他們在不同的島上,警察和逃犯都是每天最多乘一次船,但這個逃 犯還有點(diǎn)迷信,每個月的13日不乘船,警察則不迷信。警察每天乘船前都知道逃犯昨天在哪個島上,但不知道他今天會去哪個島。請證明,警察一定可以抓到逃犯 (即到達(dá)同一個島)。通過拿掉題目中一個關(guān)鍵的條件,觀察區(qū)別,然后再放上那個條件,我們就能“感覺”到題目的內(nèi)在結(jié)構(gòu)上的某種約束,進(jìn)而得到答案。
  • 求解一個類似的題目。類似的題目也許有類似的結(jié)構(gòu),類似的性質(zhì),類似的解方案。通過考察或回憶一個類似的題目是如何解決的,也許就能夠借用一些重要的點(diǎn)子。然而如何在大腦中提取出真正類似的題目是一個問題。所謂真正類似的題目,是指那些抽象結(jié)構(gòu)一樣的題目。很多問題表面看是類似的,然而抽象結(jié)構(gòu)卻不是類似的;另一些題目表面看根本不像,然而抽象層面卻是一致的。表面一致抽象不一致會導(dǎo)致錯誤的、無效的類比;而表面不一致(抽象一致)則會阻礙真正有用的類比。《Psychology of Problem Solving》里面對此有詳細(xì) 的介紹。后面也會提到,為了便于腦中的知識結(jié)構(gòu)真正能夠“遷移”,在記憶掌握和分析問題的時候都應(yīng)該盡量抽象的去看待,這樣才能夠建立知識的本質(zhì)聯(lián)系,才能夠最大化聯(lián)想空間。
  • 列出所有可能跟問題有關(guān)的定理或性質(zhì)。這個不用說,我們在最初學(xué)習(xí)解題的時候就是這么做的了。
  • 考察反面,考察其他所有情況。 很多時候,我們在解題時容易陷入一種特定的手法,比如為什么一定要是構(gòu)造式的來解這個題目呢?為什么不能是逼近式的?為什么一定要一步到位算出答案?為什 么不能從一個錯誤的答案調(diào)整到正確答案?為什么這個東西一定成立?不成立又如何?等等。經(jīng)典例子:100個人比賽,要決出冠軍至少需要賽多少場。
  • 將問題泛化,并求解這個泛化后的問題。 剛才不是說過,應(yīng)該通過特例啟發(fā)思考嗎?為什么現(xiàn)在又反倒要泛化呢?實際上,有少數(shù)題目,泛化之后更容易解決。即,解決一類問題,比解決這類問題里面某個 特定的問題還要容易。波利亞稱之為“發(fā)明者悖論”,關(guān)于“發(fā)明者悖論”,《數(shù)學(xué)與猜想》第一卷的開頭有一個絕妙的例子,可惜這里空間太小,我就不摘抄了- _-|||

以上是我認(rèn)為最重要的,也是最具一般性的、放之四海都可用的思維法則。一些更為“問題特定”的,或更為現(xiàn)代的啟發(fā)法,可以參見《如何解題:現(xiàn)代啟發(fā)式方法》以及所有的算法書。不過,在結(jié)束這一節(jié)之前,還有兩個有趣的啟發(fā)法值得一提:

  • 下意識孵化法。這個方法有點(diǎn)像老母雞孵小雞的過程:我們先把問題的吃透,放在腦子里,然后等著我們的下意識把它解出來。不過,不宜將這個方法的條件拉伸過遠(yuǎn),實際上,除非能夠一直保持一種思索的狀態(tài)(金 出武雄所謂“思維體力”),或者問題很簡單,否則一轉(zhuǎn)頭去做別的事情之后,你的下意識很容易就把問題丟開了。據(jù)說龐加萊有一次在街上,踏上一輛馬車的那一 瞬間,想出了一個重要問題的解。其他人也像仿效,結(jié)果沒一個人成功。實際上,非但馬車與問題無關(guān),更重要的是,龐加萊實際上在做任何事的時候除了投入有限 的注意力之外,其他思維空間都讓給了那個問題了。同樣,阿基米德從浴缸里面跳出來也是如此;如若不是經(jīng)過了極其痛苦和長時間的思索,也不會如此興奮。如果 你也曾經(jīng)花過幾天的時間思考一個問題,肯定也是會有類似的經(jīng)歷的。
  • 燙手山芋法。 說白了,就是把問題扔給別人解決。事實上,在這個網(wǎng)絡(luò)時代,這個方法有著無可比擬的優(yōu)越性。幾乎任何知識性的問題,都可以迅速搜索或請教到答案。不過,如 何在已知知識之外發(fā)掘出未知知識,如何解決未知問題,那就還是要看個人的能力了。數(shù)學(xué)界流傳一個與此有關(guān)的笑話:如果你有一個未解決問題,你有兩個辦法, 一,自己解決它。二,讓陶哲軒對它感興趣。

除了波利亞的書之外,陶哲軒的《Solving Mathematical Problems》也對解題的啟發(fā)式思路作了極有意義的介紹,他在書的第一章遵循波利亞的思路從一個具體的題目出發(fā),介紹了如何運(yùn)用波利亞在書中提到的各種啟發(fā)式方法來對解題進(jìn)行嘗試。

一點(diǎn)思考

1. 聯(lián)想的法則

人 類的大腦是一個復(fù)雜而精妙的器官,然而某種程度上,人類的大腦也是一個愚蠢的器官。如果你總結(jié)過你解過的一些有意義的好題目,你會發(fā)現(xiàn)它們有一個共同點(diǎn): 沒有用到你不知道的知識,然而那個最關(guān)鍵的、攸關(guān)成敗的知識點(diǎn)你就是想不到。所以你不禁要問,為什么明明這個知識在我腦子里(也就是說,明明我是“能夠” 解決這個問題的),但我就是沒法想到它呢?“你是怎么想到的?”這是問題解決者最常問的一個問題。甚至對于熟練的解題者來說,這個問題的答案也并不總是很 明確的,很可能他們自己也不清楚那個關(guān)鍵的想法是怎么“蹦”出來的。我們在思考一個問題的時候,自己能意識到的思維部分似乎是很少的,絕大多數(shù)時候我們能 感知到的就是一個一個的轉(zhuǎn)折點(diǎn)在意識層面顯現(xiàn),我們的意識就像一條不連續(xù)的線,在其上的每一段之間那個空檔內(nèi)發(fā)生了什么我們一無所知,往往我們發(fā)現(xiàn)被卡在 一個地方,我們苦思冥想,然后一個知識(也許是一個性質(zhì),也許是一個定理)從腦子里冒了出來,或者說,被我們意識到,然后我們沿著這條路走一段,然后又卡 住,然后又等待一個新的關(guān)鍵知識的出現(xiàn)。而至于這些知識是怎么冒出來的?我們可以對它們的“冒出來”提供怎樣的幫助?我們可以在意識層面做一些工作,幫助 我們的下意識聯(lián)想到更多重要的知識嗎?那些靈光一現(xiàn)的瞬間,難道只能等待它們的出現(xiàn)?難道我們不能通過一些系統(tǒng)化的步驟去“捕獲”或“生成”它們?又或者 我們能不能至少做些什么工作以使得它們更容易發(fā)生呢?

正如金出武雄在《像外行一樣思考,像專 家一樣實踐》中所說的,人類的靈感一定是有規(guī)律的,認(rèn)知科學(xué)目前至少已經(jīng)確認(rèn)了人類思維的整個物質(zhì)基礎(chǔ)——神經(jīng)元。而既然它們是物質(zhì),自然要遵循物質(zhì)的運(yùn) 行規(guī)律。只不過我們目前還沒有窺破它們,但至少我們可以確信的是,它們在那里。事實上,不需要借助于認(rèn)知科學(xué),單單是通過對我們自己思維過程的自我觀察, 也許就已經(jīng)能夠總結(jié)出一些重要的規(guī)律了,也許,對自身思維過程的反觀真的是人有別于其它動物的本質(zhì)區(qū)別。

《專注力》當(dāng) 中有這樣一個例子:一天夜里,你被外面的吵鬧聲叫醒了,你出去一看,發(fā)現(xiàn)有一群人,其中有一個人開著很名貴的轎車,他跟你說他們正在玩一個叫“拾荒者”的 游戲,由于一些原因,他必須要贏這個游戲,現(xiàn)在他需要一塊1.5m*1m的木板,如果你能幫忙的話,愿以一萬美元酬報。你怎么辦?被測試的大多數(shù)人都沒有 想到,只要把門拆給他就可以了(如果你想到了,祝賀你:-)),也許你會說現(xiàn)在的門都是鋼的,沒關(guān)系,那你有沒有想到床板、立柜的門、大桌子的桌面之類 的?這個問題測試的就是心理學(xué)上所謂的“范疇陷阱”,“木板”這個名詞在你腦子里的概念中如果是指“那些沒有加工的,也許放在木材廠門口的,作為原材料的 木板”的話,那么“木板”就會迅速在你的下意識里面建立起一個搜索范疇,你也會迅速的反應(yīng)到“這深更半夜叫我上哪去找木板呢?”如果你一下就想到了,那么 很大的可能性是“木板”這個概念在你腦子里的范疇更大,更抽象,也許包含了所有“木質(zhì)的、板狀的東西”。

這就是聯(lián)想的法則。

我們的大腦無時無刻不在對事物進(jìn)行歸類,實際上,不僅是事物,一切知識,都在被自動的歸類。在有關(guān)對世界的認(rèn)知方面,被稱為認(rèn)知圖式,我們根據(jù)既有的知識結(jié)構(gòu)來理解這個世界,會帶來很大的優(yōu)勢。實際上,模塊化是一個重要的降低復(fù)雜性的手段。然而,知識是一把雙刃劍,一方面,它們提供給了我們解決問題的無以倫比的捷徑優(yōu)勢,“磚頭是砌墻的”,于是我們遇到砌墻這個問題的時候就可以迅速利用磚頭。然而另一方面,知識卻也是思維的桎梏。思維定勢就是指下意識遵循既有知識框架思考的過程。上面的那個木板的例子也是思維定勢的例子。每一個知識都是一個優(yōu)勢,同時又是一個束縛。著名的科幻作家阿瑟·克拉克有一句名言:如果一位德高望重的老科學(xué)家說某個事情是不可能的,那么他很可能是錯的。所以,如何在獲取知識優(yōu)勢的同時,防止被知識束縛住,是一門技術(shù)。

掌 握這門技術(shù)的鑰匙,就是抽象。在吸收知識的時候進(jìn)行抽象,同時在面對需要用到知識的新問題時也要對問題進(jìn)行抽象。就以大家都知道的“磚頭”有多少種用途為 例,據(jù)說這道題目是用于測試人的發(fā)散思維的,能聯(lián)想到的用途越多,思維定勢就越小。實際上,借助于抽象這個利器,這類題目(乃至更廣的一類問題)是可以系 統(tǒng)性的進(jìn)行求解的,我們只需對磚頭從各個屬性維度進(jìn)行抽象。譬如,磚頭是——長方形的(長方形的東西有什么用途?還有哪些東西也是長方形的,它們都有什么 用途?)、有棱角的(問題同上)、堅硬的、固體、有一定大小的體積的、紅色的、邊界線條平直的、有一定重量的... 對于每一個抽象,我們不妨聯(lián)想還有其他什么物體也是具有同樣抽象性質(zhì)的,它們具有同樣的用途嗎?當(dāng)然,除了抽象之外,還有“修改”,我們可以在各個維度上 對磚頭的屬性進(jìn)行調(diào)整,以期得到新的屬性:譬如大小可以調(diào)整、固體可以調(diào)整為碎末、棱角可以打磨、重量也可以調(diào)整、形狀也可以調(diào)整... 然后看看新的屬性可以如何聯(lián)想開去。

除了這個簡單的例子之外,我們也不妨看一看一些算法上的 例子,同樣一個算法,不同的人來理解,也許你腦子里記得的是某個特定的巧妙技巧(也許這個技巧在題目的某步關(guān)鍵的地方出現(xiàn),從而帶來了最令人意外的轉(zhuǎn)折 點(diǎn)),然而另一人個記得得也許是“遞歸”這種手法,還有另外一個人記得的也許是“分治”這種更一般化的解題思路。從不同的抽象層面去掌握這道題目的知識信 息,以后遇到類似的問題,你能夠想起這道題所提供的知識的可能性是有極大的差異的。《Psychology of Problem Solving》的第11章舉了這樣一個例子:先讓被試(皆為大學(xué)生)閱讀一段軍事材料,這個材料是說一小撮軍隊如何通過同時從幾個不同方向小規(guī)模攻擊來 擊潰一個防守嚴(yán)實的軍事堡壘的。事實上這個例子的本質(zhì)是對一個點(diǎn)的同時的弱攻擊能夠集聚成強(qiáng)大的力量。然后被試被要求解決一個問題:一個醫(yī)生想要用X射線 殺死一個惡性腫瘤,這個腫瘤只可以通過高強(qiáng)度的X射線殺死,然而那樣的話就會傷及周圍的良好組織。醫(yī)生應(yīng)該怎么辦呢?在沒有給出先前的軍隊的例子的被試中 只有10%想到答案,這是控制基線。然后,在先前學(xué)習(xí)了軍隊例子的被試中,這個比例也僅僅只增加到30%,也就是說只有額外20%的人“自動”地將知識進(jìn) 行了轉(zhuǎn)移。最后一組是在提醒之下做的,達(dá)到了75%,即比“自動”轉(zhuǎn)移組增加了45%之多。這個例子說明,知識的表象細(xì)節(jié)會迷惑我們的眼睛,阻礙我們對知 識的運(yùn)用,在這個例子中是阻礙問題之間的類比。

而抽象,則正是對非本質(zhì)細(xì)節(jié)去枝減葉的過程,抽象是我們在掌握知識和解決問題時候的一把有力的奧卡姆剃刀。所以,無論是在解題還是在學(xué)習(xí)的過程中,問自己一個問題“我是不是已經(jīng)掌握了這個知識最深刻最本質(zhì)的東西”是非常有益的。

2. 知識,知識

如果你是一個熟練的解題者,你也許會發(fā)現(xiàn),除了一些非常一般性的、本質(zhì)的思維法則之外,將不同“能力”的解題者區(qū)分開來的,實際上還是知識。知識是解題過程中的羅塞塔碑石。 一道幾何題為什么歐幾里德能夠做出來我們不能,是因為歐幾里德比我們所有人都更了解幾何圖形有哪些性質(zhì),借助于一個性質(zhì),他很容易就能抵達(dá)問題的彼岸;反 之,對于不知道某個性質(zhì)的我們,倒過來試圖“發(fā)現(xiàn)”需要這樣的性質(zhì)有時幾乎是不可能的。有人說數(shù)學(xué)是在黑暗中摸索的學(xué)科, 是有道理的。并不是所有的問題都能夠通過演繹、歸納、類比等手法解出來的。這方面,費(fèi)馬大定理就是一個絕好的例子,《費(fèi)馬大定理:一個困惑了世間智者358年的謎》一 書描述了費(fèi)馬大定理從誕生到被解決的整個過程,事實上,通過 對費(fèi)馬大定理本身的考察,幾乎是毫無希望解決這個問題的,我們根本不能推導(dǎo)出“好,這里我只需要這樣一個性質(zhì),就可以解決它了”,也許大多數(shù)時候我們可 以,但那或者是因為我們有已知的知識,或者這樣的歸約很顯然。而對于一些致命的問題,譬如費(fèi)馬大定理,最重要的歸約卻是由別人在根本不是為了解決費(fèi)馬大定 理的過程中得出來的。運(yùn)氣好的話,我們在既有的知識系統(tǒng)中會有這樣的定理可以用于歸約,運(yùn)氣不好的話,就得去摸索了。

所幸的是,絕大多數(shù)問題并不像費(fèi)馬大定理這樣難以解決。而且絕大多數(shù)問題需要用到的知識,在現(xiàn)有的知識系統(tǒng)里面都是存在的。我們只要掌握得足夠好,就有希望聯(lián)想起來,并用于解題。

當(dāng)然,也有許多題目,求解它們的那個關(guān)鍵的知識可以通過考察題目本身蘊(yùn)涵的條件來獲得,這類題目就是測試思維本身的能力的好題目了。而如果這個性質(zhì)根本無法通過對題目本身的考察得出來,那么這個題目測試的就是知識儲備以及聯(lián)想能力。

3. 好題目、壞題目

在我看來,好題目即測試一個人思維的習(xí)慣的題目(因為知識性的東西是更容易彌補(bǔ)的,尤其是在這樣一個年代;而好習(xí)慣不是一朝一夕養(yǎng)成的),它應(yīng)有這樣一些性質(zhì):

  • 不需要用到未知的知識,或者
  • 需要用到未知的知識,但一個敏銳的解題者可以通過對題目的分析自行發(fā)現(xiàn)這些所需的知識。
  • 考察解題的一般性思路,而不是特定(ad hoc)的解題技巧,尤其是當(dāng)這個技巧幾乎不可能在短時間內(nèi)通過演繹和試錯發(fā)現(xiàn)的時候。譬如題目需要用到某種性質(zhì),而這個性質(zhì)對于不知道它的人來說幾乎是無法從對題目的考察中得出來的。
  • 考察思維能力:聯(lián)想能力、類比能力、抽象能力、演繹能力、歸納能力、觀察能力、發(fā)散能力(思維不落巢臼的能力)。
  • 考察一般性的思維方法:通過特例啟發(fā)思考、通過試錯尋找規(guī)律、通過泛化試探更一般性命題、通過倒過來推導(dǎo)將問題進(jìn)行歸約、通過調(diào)整(分解、刪除、增加等等)題目的條件來感知它們之間的聯(lián)系以及和結(jié)論的聯(lián)系、通過系統(tǒng)化的分類討論來覆蓋每種可能性。
  • 好題目舉例:烙餅排序問題(考察特例啟發(fā)法以及觀察能力)、Nim問題(還有簡單版本的取火柴問題)(烙餅排序問題和Nim問題可參見《編程之美》)、9公升4公升水桶倒6公升水的問題(考察倒過來思考問題的能力)、9點(diǎn)連線問題、6根火柴搭出4個面的問題、“木板”問題(考察思維定勢,此外《心理學(xué)與生活》的第九章也有好幾個經(jīng)典的問題)、許多數(shù)論問題(觀察能力、演繹能力、歸納能力)。此外,我們最近也在討論好題目

而壞題目呢:

  • 好題目各有各的好,壞題目都是相似的。
  • 壞 題目基本上就是指那些所謂的 unfair questions,什么是unfair,舉個例子:一個人住在一棟非常高的樓上,每天早晨他乘電梯下到一樓,出門上班。但晚上回來之后卻最多只能坐到一 半高度的樓層,剩下一半只能走樓梯上去,除非是下雨天。問為什么。這個例子據(jù)說不少人小時候在腦筋急轉(zhuǎn)彎里面做過,但我很懷疑基本上任何正常人是不是可能 想出來。這個問題的問題在于他需要用到千百個有可能與問題有關(guān)的性質(zhì)中的一個,而且這個性質(zhì)還根本無法通過對題目本身的考察得出來,只可能某天我們碰巧遇 到類似的場景也許才能想到。知道答案的人也許會說答案很顯然,但別忘了心理學(xué)上的事后偏見——一旦知道結(jié)果之后,所有指向結(jié)果的證據(jù)看上去都那么顯然和充分,而同時所有反結(jié)果的證據(jù)看起來都那么不顯然和不充分。 譬如這題關(guān)鍵是要想到這人是矮子和雨天要帶傘,也許你會說“只要考慮一下電梯的按鈕面板就會發(fā)現(xiàn)了”,或者“看到下雨,那還不想到帶傘么?”,然而這只是 事后的合情推斷。在不知道答案的情況下,這個故事中有數(shù)不清的因素可能會成為問題的解釋,除非某天我們碰到類似的問題,否則大致也只能一個個窮舉了去使勁 往上湊,譬如除了身高之外還有:是不是瞎子、是不是聾子、是不是啞子、男人女人、什么牌子的電梯、大廈是哪種大廈?這些因素重要嗎?不重要嗎?最令人頭疼 的是,在不知道答案的時候,我們也根本不知道他們重不重要,一個出謎語的人可能從任何一個微小的地方引申出某個謎語來;更頭疼的是,我們不知道我們不知道 的那些因素是不是也可能與題目的解有關(guān),譬如這樣一個問題:一個人走進(jìn)酒吧,問酒保要一杯水,酒保掏出一只槍,拉上扳機(jī);這人說聲“謝謝”,走了出去。這 些題目固然有趣,但幾乎沒有價值。
  • 值得注意的是,這樣的問題跟著名的9點(diǎn)連線問題和6 根火柴搭出4個面的問題(還有《如何解題:現(xiàn)代啟發(fā)式方法》里面那個經(jīng)典的“小球在盒內(nèi)碰撞何時回到原軌跡”的問題)不同,后者的條件都在眼前,并且解的 搜索空間無論如何很小,就看思維能不能突破某一個框框。而上面這些問題則是要人進(jìn)行根本不可能的聯(lián)想。9點(diǎn)問題實際上是可以系統(tǒng)化思考解決的,但 unfair question則像許多謎語一樣,隨便哪個人都可以出一個另一個人根本無法想出來的謎語,因為從謎語隱含的信息加上人可能從謎語中聯(lián)想出來的信息,加起 來也不足以構(gòu)成解題的充分條件;這種情況下除非你遇到出題人在出題時的心理或所處情況,否則是無法解的。
  • 最后,發(fā)散性思維其實是可以系統(tǒng)化的,參見前文“聯(lián)想的規(guī)則”。

出題的誤區(qū):

  • 最大的誤區(qū)就是把知識性的題目誤當(dāng)成能力型的題目。如果題目中需要用到某個重要的定理或性質(zhì),而對于一個原本不知道這個定理或性質(zhì)的人來說是無法通過題目本身到達(dá)這個性質(zhì)的,那這就屬于知識性的題目。
  • 雖然幾乎所有題目歸根到底都是知識性的,但有些題目更為知識性,尤其是當(dāng)解題中需要用到的定理或性質(zhì)并不那么trivial的時候。
  • 一個最好的題目就是問題明明白白,而且最終的解也沒有用到什么神秘的定理,但要想獲知到解,取決于你會不會思考一個問題(參見“好問題”)。譬如烙餅問題和Nim問題,還有許許多多問題簡潔明確但很鍛煉思考的算法問題。

4. 一個好習(xí)慣

在 解題的過程中,除了必要條件——知識儲備——之外,對于一些并不涉及什么你不知道的定理的題,很大程度上就要看思維能力或者習(xí)慣了。而在思考一個問題的時 候,最容易犯的一類錯誤就是忘了考慮某種可能性,不管這種可能性是另一種做法(譬如只顧著構(gòu)造一個能一步得出結(jié)果的算法,沒記得還可以從錯誤情況逼近。譬 如只顧著正著推導(dǎo),卻忘了可以反過來推。只顧著反過來推,居然忘了可以考察簡單特例。試了各種手法,卻發(fā)現(xiàn)忘了考慮題目的某個條件。覺得試遍了所有可能 性,已經(jīng)走不下去了,然后其實在思維的早些時候就已經(jīng)落入了思維陷阱。等等)事實上,即便是一個熟練的解題者也容易犯顧此失彼的問題,因為我們一旦意識到 一個看似能夠得到結(jié)論的解法,整個注意力就容易被吸引過去,而由于推導(dǎo)的路徑是很長的,所以很容易在一條路上走到黑,試圖再往下走一步就得出解。卻忘了回 過頭來看看再更高的層面上還有沒有其它手法,思路上有沒有其他可能性。

而對于像我這樣目前尚不諳熟所有思維方法的人來說,則更容易犯這樣的錯誤。為了避免這樣的錯誤,一個有效的辦法就是將自己的思考過程(中的重要環(huán)節(jié))清晰的寫在紙上(稱為“看得見的思考”),這有如下幾個好處:

  • 人在思考一個問題的時候,就像是在黑暗中打著電筒往前走(事實上,我們的工作記憶資源是有限的,而且認(rèn)知負(fù)荷也 是有極限的),每一步推導(dǎo),每一步邏輯或猜測都將我們往前挪一步,然而電筒的光亮能找到的范圍是有限的,我們走了幾步發(fā)現(xiàn)后面又黑了。有時候,我們是如此 努力地試圖一下就走出很遠(yuǎn),同時又老是怕忘記目前已經(jīng)取得的進(jìn)展和重要結(jié)論,結(jié)果意識的微光就在一個很小的范圍內(nèi)打轉(zhuǎn),始終無法往前走出很遠(yuǎn)。而將思維過 程記錄下來,則給了我們完全的回顧機(jī)會。如果你是經(jīng)常做筆記的人,你肯定會發(fā)現(xiàn),有時候一個在腦子里覺得兩句話就能說完不需要記下來的東西,一旦開始往紙 上寫下來,你就自然而然能得出更多的結(jié)論和東西,越寫越多,最終關(guān)于你的問題的所有方面都被推導(dǎo)出來展現(xiàn)在你面前。
  • 我 們在思考問題的過程中容易落入思維定勢,不知不覺就走上來某條“絕大部分時候是如此”的思維捷徑,對于一些問題而言這固然能夠讓我們快速得到解,但對于另 一些問題而言卻是致命的。我們?nèi)菀自谶壿嫷穆窂缴弦胂氘?dāng)然的假設(shè),從而排除某種不該排除的可能性或做法。通過將思路過程寫到紙上,我們便能夠回頭細(xì)細(xì)考 察自己的思考過程,覺察到什么地方犯了想當(dāng)然的毛病。
  • 我們在思維過程中的每一個關(guān)鍵的一步也許都有另一種可能性,一個問題越復(fù)雜,需要推導(dǎo)的步驟就越多,我們就越容易忽視過程中的其它可能性,容易一條路走到黑。而將思維過程寫下來,在走不下去的時候可以回過頭看看,也許會發(fā)現(xiàn)另一種可能性,另一條“少有人走的路”。
  • 最 后,通過將思維過程寫下來,我們就能夠在解題完畢之后完整的回顧自己的整個思維過程,并從中再次體悟那些關(guān)鍵的想法背后所發(fā)生的心理活動過程,總結(jié)思考中 的重要的一般原則,分析思維薄弱的環(huán)節(jié),等等。就算是最終發(fā)現(xiàn)并沒有到達(dá)結(jié)果的無效思路,也未必就沒有意義,因為不是因為錯誤的思路,也不會知道正確的思 路,況且對一道題目用不上的思路,對其它題目未必用不上。通過對自己思維過程的徹底反思,就能從每次解題中獲得最多的收獲。

一句結(jié)尾

“我想我就在這里結(jié)束”——如果你知道我在說什么的話:-)

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多