Sora

尤達大師是著名科幻影片《星球大戰》里的角色。他身材矮小,壽命極長,喜歡用飽含哲理的倒裝句給人忠告。更重要的是,他是絕地武士里“元老中的元老”,更是地位崇高的導師型人物。
半個世紀以來,斯坦福大學中與尤達略相似的計算機科學家唐納德·克努特,已經成為了算法領域的精神向導,盡管他身高6英尺4英寸,且戴著眼鏡。
克努特是長達四卷的《計算機程序設計藝術》一書的作者,這也是他畢生的心血。第一卷于1968年首次出版,而合集則于2013年被美國科學家列入“塑造20世紀科學”的書籍清單中——與特別版的《查爾斯·達爾文自傳》、蕾切爾·卡森的《寂靜的春天》以及阿爾伯特·愛因斯坦、約翰·馮諾伊曼和理查德·費曼的著作放在一起。
該書印刷超過100萬冊,是算法領域的《圣經》。“就像一本真實的《圣經》一樣,它是漫長而全面的;沒有其他書能如此面面俱到。”谷歌研究主管彼得·諾維格說。652頁之后,第一卷以封底上的比爾·蓋茨寫的一句話作為結尾:“如果你能閱讀消化完整本書,你一定要給我發一份簡歷。”
書中的內容是算法——滿足數字時代的需求的食譜,盡管克努特喜歡指出,算法其實在3800年前的巴比倫泥板上就能找到。
現年80歲的克努特,通常穿著還是像個年輕極客:至少每年的這個時候,他都用短袖T恤套在長袖T恤外面,搭配牛仔褲。早年間,他的工作與機器息息相關,寫著“原生代碼”,用0和1到處修修補補。
19歲時,克努特在《Mad》雜志上發表了他的第一篇技術論文——《Potrzebie度量衡系統》。在計算機科學這一學科存在之前,他就已經成為了一名計算機科學家,并且在現在的克利夫蘭凱斯西儲大學學習數學。
他查看了學校的十進制IBM650大型計算機上面的示例程序,并注意到了一些不足之處,于是就重寫了這些軟件,以及課堂上所使用的教科書。同時,他還把為籃球隊進行統計數據作為業余項目,編寫了一個幫助他們贏得聯賽的計算機程序——沃爾特·科隆凱特將其稱為“電子教練”。
暑假期間,克努特通過撰寫編譯器賺取的錢,比教授們一年的收入都多。
在計算機科學中,“優化”確實是一門藝術。這在一句克努特的口頭禪中有所闡述:“不成熟的優化是萬惡之源。”
最終,克努特自己也變成了編譯器,他在不經意間創造了一個“算法分析”的全新領域。一位出版商聘請他寫一本關于編譯器的書,但這本書演變成了一本集合了他所知道的關于如何為計算機編程的知識的書——一本算法書。
“在文藝復興時期,對算法(algorithm)這個詞的起源是有疑問的。早期的語言學家試圖通過做出像algiros(痛苦)+arithmos(算術)這樣的組合,來推測它是如何被推導出來的。”事實上,克努特繼續說,“這個命名起源于9世紀的波斯教科書作者,其姓名拉丁語化為Algorithmi。”絕不半途而廢的克努特,于1979年前往烏茲別克斯坦,特地去Algorithmi的家鄉進行了“朝圣”。

克努特開始寫作時,他只打算寫一篇文章。不久之后,計算機科學經歷了大爆炸式發展,因此,他重新進行了構想,并將書的長度定為七卷。
為了提高寫完這套鴻篇巨制的概率,克努特一直十分珍惜時間。他在55歲時退休,盡可能不參加公開活動,并停止使用電子郵件(至少官方宣稱是這樣)。安德烈·布羅德回憶說,即使在20世紀80年代早期,時間管理也是這位教授最具代表性的特征。
克努特通常在周五早上與預約過的學生會面,這會持續到他開始在人工智能創始人約翰·麥卡錫的實驗室度過漫漫長夜,以便使用閑下來的計算機。隨著數字出版業務的出現,克努特開始考慮他所鐘愛的書籍看起來會變成什么樣的問題。
于是,他又開始創建TeX計算機排版系統。該系統為所有形式的科學傳播和出版物,提供了一個極高的標準。有人認為,這是克努特對世界的最大貢獻,也是自古登堡以來,人類對排版方面的最大貢獻。
而且,那還是計算機在大多數人進入夢鄉后的夜晚跑得更快的年代。所以克努特晝夜顛倒,將他的日程安排調整了12個小時,把學生預約挪到周五晚上8點開始,直到午夜。
布羅德博士回憶說:“當我告訴女朋友,咱們星期五晚上不能約會,因為我必須在晚上10點去見導師時,她說:‘這太蠢了。”
當克努特選擇在場時,他一定是百分之百投入的。微軟研究院董事總經理詹妮弗·夏雷斯說:“你在他身邊時會感到很榮幸。他是專業領域中的佼佼者。”
克努特住在斯坦福,并允許自己有一名周日訪客。能讓他花掉整整一天是非常特別的——通常他有空的時候是在“模數午睡時間”,這是從下午1點開始,到下午4點結束的神圣日常儀式。
他起得很早,然后會在帕洛阿爾托的第一路德教會,為一屋子人提供一堂星期日學校課程。之后他開車回家,路上他會從哲學角度思考數學。
“我永遠不會知道一切,”他說,“如果沒有什么我知道的答案,也沒有什么我不知道的答案,我的生活肯定會糟糕得多。”然后,他展示了他和他的妻子吉爾于1970年建造的“加州現代”房子。而這一天也會在啤酒與謎題派對中結束。
他的書中,有一個模塊的標題為“謎題與真實世界”。他通過電子郵件,將摘錄發送給了麻省理工學院的藝術家馬丁·迪馬內和計算機科學家埃里克·迪馬內這一父子團隊,因為克努特使用了他們的“算法拼圖字體”。
所有的算法都會導致現實問題。人類所編寫的算法——用來嘗試解決越來越復雜的問題,但同時也會產生嵌入錯誤和偏差的代碼。或許更令人擔憂的,不是人類編寫的算法,而是機器開始學習,并編寫“自己”的算法。
程序員仍然在訓練機器,至關重要的是,為機器提供數據。然而,正如MIT媒體實驗室研究附屬機構的凱文·斯拉文所說:“我們現在正在編寫我們無法閱讀的算法。這成為了歷史上的一個獨特時刻,因為我們受到一系列物理學思想、行動和努力的影響,這些都源于人類但沒有被人類理解。”
“現在,程序員都在使用克努特和其他人所做的成果,作為他們自己算法的組件,然后將它們與所需的其他東西結合起來。”谷歌的諾維格博士說。
“對于人工智能,我們做了同樣的事情。只是組合在一起,這一部分會根據數據自動完成,而不需要程序員的工作。你想讓人工智能基于數據來組合組件以獲得良好的結果,但是你必須決定需要哪些組件。可能每個組件都來源于克努特所寫的書中某一頁或某一章節,因為這是完成某項任務的最佳方式。”
幸運的是,克努特一直在堅持不懈地鉆研算法。他認為完成《計算機程序設計藝術》還需要25年,盡管自1980年以來,這個時間框架就沒再變化過。
“我擔心算法突然變得太重要了,”他補充說,“最初計算機科學家擔心沒有人聽我們說話。現在我擔心的是,聽的人太多了。”
(于佳薦自《看世界》)