【專欄】跟波利亞學解題(4)

充分挖掘題目中蘊含的知識,是解題的最關鍵步驟。本質上,所有啟發式方法某種意義上都是為此服務的。這些知識,有些時候以聯想的方式被挖掘出來,此時啟發式方法充當的便是輔助聯想的手段。

一些方法(二)

4. 試錯。試錯估計是世界上被運用最廣泛的啟發法,你拿到一個題目,里面有一些條件,你需要求解一個未知量。于是你對題目這里捅捅那里搗搗,你用上所有的已知量,或使用所有你想到的操作手法,嘗試著看看能不能得到有用的結論,能不能離答案近一步。事實上,如果一個問題的狀態空間是有限的話,往往可以通過窮舉所有可能性來找到那個關鍵的性質。譬如這樣一個問題:有一個囚犯,國王打算處決他,但仁慈的國王給了他一個生還的機會?,F在擺在他面前有兩個瓶子,一個里面裝了50個白球,一個裝了50個黑球,這個囚犯有一個機會可以隨便怎樣重新分配這些球到兩個瓶子中(當然,要保證不空),分配完了之后囚犯被蒙上眼睛,國王隨機取一個瓶子給他,他在里面摸出一個球(因為蒙著眼睛,所以也是隨機抽?。?,如果白球,則活,否則掛掉。問,這個囚犯如何分配,才能最大化生還幾率。結合特例和試錯法,這個題目的答案是很容易發現的。這樣的題目還有很多。實際上,歷史上很多有名的發現也都是無意間發現的(可以看作是試錯的一種)。

5. 調整題目的條件(如,刪除、增加、改變條件)。有時候,通過調整題目的條件,我們往往迅速能夠發現條件和結論之間是如何聯系的。通過扭曲問題的內部結構,我們能發現原本結構里面重要的東西。譬如這樣一個題目(感謝alai同學提供):A國由1000000個島組成,島與島之間只能用船作為交通工具,有些島之間有船來往,從任意一個島都可以去到另外任一個島,當然其中可能要換船?,F在有一個警察要追捕一個逃犯,開始時他們在不同的島上,警察和逃犯都是每天最多乘一次船,但這個逃犯還有點迷信,每個月的13日不乘船,警察則不迷信。警察每天乘船前都知道逃犯昨天在哪個島上,但不知道他今天會去哪個島。請證明,警察一定可以抓到逃犯(即到達同一個島)。通過拿掉題目中一個關鍵的條件,觀察區別,然后再放上那個條件,我們就能“感覺”到題目的內在結構上的某種約束,進而得到答案。

6. 求解一個類似的題目。類似的題目也許有類似的結構,類似的性質,類似的解方案。通過考察或回憶一個類似的題目是如何解決的,也許就能夠借用一些重要的點子。然而如何在大腦中提取出真正類似的題目是一個問題。所謂真正類似的題目,是指那些抽象結構一樣的題目。很多問題表面看是類似的,然而抽象結構卻不是類似的;另一些題目表面看根本不像,然而抽象層面卻是一致的。表面一致抽象不一致會導致錯誤的、無效的類比;而表面不一致(抽象一致)則會阻礙真正有用的類比。《Psychology of Problem Solving》里面對此有詳細的介紹。后面也會提到,為了便于腦中的知識結構真正能夠“遷移”,在記憶掌握和分析問題的時候都應該盡量抽象的去看待,這樣才能夠建立知識的本質聯系,才能夠最大化聯想空間。

7. 列出所有可能跟問題有關的定理或性質。這個不用說,我們在最初學習解題的時候就是這么做的了。

8. 考察反面,考察其他所有情況。很多時候,我們在解題時容易陷入一種特定的手法,比如為什么一定要是構造式的來解這個題目呢?為什么不能是逼近式的?為什么一定要一步到位算出答案?為什么不能從一個錯誤的答案調整到正確答案?為什么這個東西一定成立?不成立又如何?等等。經典例子:100個人比賽,要決出冠軍至少需要賽多少場。

9. 將問題泛化,并求解這個泛化后的問題。剛才不是說過,應該通過特例啟發思考嗎?為什么現在又反倒要泛化呢?實際上,有少數題目,泛化之后更容易解決。即,解決一類問題,比解決這類問題里面某個特定的問題還要容易。波利亞稱之為“發明者悖論”,關于“發明者悖論”,《數學與猜想》第一卷的開頭有一個絕妙的例子,可惜這里空間太小,我就不摘抄了。


作者:劉未鵬 出版:電子工業出版社

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

10.下意識孵化法。這個方法有點像老母雞孵小雞的過程:我們先把問題的吃透,放在腦子里,然后等著我們的下意識把它解出來。不過,不宜將這個方法的條件拉伸過遠,實際上,除非能夠一直保持一種思索的狀態(金出武雄所謂“思維體力”),或者問題很簡單,否則一轉頭去做別的事情之后,你的下意識很容易就把問題丟開了。據說龐加萊有一次在街上,踏上一輛馬車的那一瞬間,想出了一個重要問題的解。其他人也像仿效,結果沒一個人成功。實際上,非但馬車與問題無關,更重要的是,龐加萊實際上在做任何事的時候除了投入有限的注意力之外,其他思維空間都讓給了那個問題了。同樣,阿基米德從浴缸里面跳出來也是如此;如若不是經過了極其痛苦和長時間的思索,也不會如此興奮。如果你也曾經花過幾天的時間思考一個問題,肯定也是會有類似的經歷的。

11. 燙手山芋法。說白了,就是把問題扔給別人解決。事實上,在這個網絡時代,這個方法有著無可比擬的優越性。幾乎任何知識性的問題,都可以迅速搜索或請教到答案。不過,如何在已知知識之外發掘出未知知識,如何解決未知問題,那就還是要看個人的能力了。數學界流傳一個與此有關的笑話:如果你有一個未解決問題,你有兩個辦法,一,自己解決它。二,讓陶哲軒對它感興趣。

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

總而言之,充分挖掘題目中蘊含的知識,是解題的最關鍵步驟。本質上,所有啟發式方法某種意義上都是為此服務的。這些知識,有些時候以聯想的方式被挖掘出來,此時啟發式方法充當的便是輔助聯想的手段。有時候則以演繹和歸納的手法被挖掘出來,此時啟發式方法則充當助探(輔助探索)工具。

(待續;此文的修訂版已收錄《暗時間》一書,由電子工業出版社2011年8月出版。作者于2009年7月獲得南京大學計算機系碩士學位,現在微軟亞洲研究院創新工程中心從事軟件研發工程師工作。)

參考資料:

[1] 《如何解題:現代啟發式方法》 http://book.douban.com/subject/1232071/

[2] 《Solving Mathematical Problems》 http://book.douban.com/subject/1859573/

網絡編輯:小碧

{{ isview_popup.firstLine }}{{ isview_popup.highlight }}

{{ isview_popup.secondLine }}

{{ isview_popup.buttonText }}
午夜宅男在线,中视在线直播,毛片网站在线,福利在线网址