前言
1984年《時代》雜誌某次封面故事以電腦軟體為主題,在這篇精彩的文章裡,引用了一位軟體雜誌主編的話:「只要把恰當的軟體放進電腦裡,它就會做任何你想叫它做的事。機器本身的性能也許有一定的極限,但是能用軟體做的事卻沒有極限。」 錯了,而且大錯特錯!
我這本書一言以蔽之,就是要來描述與解釋一些事實,以駁斥甚至粉碎上面那種說法。 當然,電腦是很了不起的東西。它無庸置疑是二十世紀最重要的發明,巨大而不可逆轉地改變了我們的生活方式,並且多半是往好處改變。不過這只是消息中好的一面,大部分談電腦的書都在表揚好的這一面。
我這本書要傳播的卻是壞消息,檢討一下事情負面的真相。 電腦挺貴的,這已經是壞消息了。此外它還讓我們飽受挫折:替它寫程式很費勁,用起來有時又很困難;它又很能吸引人,讓我們忽略更重要的事;它會出錯;它會當機;它會感染病毒;等等,等等。
然而這本書裡關心的壞消息倒不是這類掃興的事。這本書的目的是要解釋與闡明電腦世界裡最重要、最基本的事實之一:電腦在先天上是有限制的。 當人們沒辦法讓電腦順著自己的意思運作時,通常會找到三種藉口:錢不夠、時間不夠、腦筋不夠。
如果錢多一些,就可以買更大更精良的電腦,用更好的軟體來支援;如果年紀輕點,或者壽命長點,就有時間等待極度耗費時間的程式跑完;如果腦筋更聰明點,就可以找到一般人想不到的解決辦法。這些都是有力與正確的論點,我們並不想辯駁:這三種資源如果能有更充沛的供給,確實可以有效助我們一臂之力。
然而大致上來說,我這本書並不在討論這一類的匱乏。我們所討論的壞消息均屬經過證實、恆久不變、顛撲不破,都涉及電腦根本無法解決的問題,與硬體、軟體、聰明才智或耐心毅力都沒關係。當我們說「經過證實」,指的是真正經過數學的證明,而不光是泛泛的經驗談。
我們為什麼會對壞消息感興趣呢?計算機科學家不是應該花時間把東西做得更小、更快、更簡單、更好用、功能更強嗎?不錯,他們是應該這麼做,大多數的計算機科學家也確實在這麼做。不過即使如此,自1930年代開始,愈來愈多研究者非常努力嘗試想了解錢幣的另一面,也就是了解電腦天生的弱點。
這類研究的動機來自四個方面: 滿足知識上的好奇心。就像物理學家想判定宇宙的終極大小,或是物理定律的基本限制一樣,計算機科學家想發現什麼能計算、什麼不能計算,而如果能計算時又要花多少成本。
許多人,甚至包括專精的電腦專家,都嘗試解決一些計算問題,而這些問題剛好都會帶來慘透了的壞消息。我們愈理解這些問題的本性,就愈不需要浪費時間與氣力了。 促進發展新的典範。如果沒有壞消息的刺激,像平行算法、隨機化、探索法、量子與分子計算等有潛力又令人振奮的計算科學新研究領域,就不會發展起來。
讓不可能的成為可能。讓不可能的成為可能?!這不是有點太矛盾了嗎?我們如何能從壞消息裡獲得利益呢?謎底要到第六章才揭曉,我們此刻只能說這是我們故事裡比較令人感覺始料未及,且令人驚喜的有益的一面。 動機講得夠多了,至於我們所謂壞消息的本質,可以從那些嘗試強化電腦能力,使它達到人類智能的大量精彩研究中找到。
在這些研究的發展過程中,就產生電腦計算能力侷限的問題,像是電腦能不能經營公司?能不能進行醫療診斷?能不能創作音樂?能不能談情說愛?雖然已經達成一些前景樂觀、令人稱奇的進展(不過,最後一項的進步最為遲緩),但是這些問題的問法都太不精確且籠統含糊。除了本書最後一章外,我們不去談這類問題。
反之,我們將集中注意力在精確定義的計算問題上,它們都天生具有明確的目標。因此就可以精確地說明白,這些問題能夠、還是不能夠圓滿解決。 我們所討論的問題並不是可辯論的,也不涉及哲學性、擬科學性的論證。
我們專注於可嚴密敘述、可用數學證明的鐵的事實。你不會花功夫去找內角和是150度或200度的三角形(雖然從來沒有人度量過所有的三角形),只因為早已證明這種三角形不可能存在。 同樣的,當一些我們將會討論的計算問題被證明是無解時,再想去尋找答案就是毫無意義的了。
類似的情形也可以推演到某些有解答的問題上,它們通常被證明需要用到超乎常理的巨大電腦(譬如,體積比已知宇宙還大得多),或者需用掉極不合理漫長的計算時間(譬如,要花比從大霹靂至今更長的時間)。我們也會討論很多這類的問題。
絕大部分的人都不曾覺察到本書所探討的問題。就像《時代》雜誌引言所顯示,連計算行業裡的專業人員,也毫無警覺,這實在是很不幸且讓人吃驚的狀況。假如壞消息是新近發現的現象,因此沒有太多人認識它,或許還可以理解。但是事實上我們要講的故事,有些已經有60幾年之久,早在電腦問世之前就已存在。而其他的則在近30年中逐步顯現。
坦白說,我們這些作計算機科學研究的人也應該受到責備,我們太沒有花功夫向大眾解釋、舉例、描繪這個學門的基本知識,以及強調其負面的事實。導致大眾幸福安詳,充滿崇敬的隨著軟、硬體的技術精進,而沈醉於嶄新應用功能的亢奮中,憧憬著由即時通訊、多媒體、虛擬實境、人工智能、全球網路革命等等所帶來的未來世界。
雖然盛會不必就此散席,而且我們本就該致力發展更大更好的事物。但是,適度的謙虛是有必要的:電腦不是萬能的——它還差得遠呢!而且這些問題真的存在,永遠不會消失,想躲也躲不掉。 注釋: 1如果想對科學家感興趣的限制性結果有較通盤的了解的話,請參閱 Barrow, J. D. (1998). Impossibility: The Limits of Science and the Science of Limits. Oxford University Press, Oxford. 2我們指的當然是平面的三角形。在球面或近乎球面的曲面上,例如地球的表面,三角形三內角和會略大於180度。