圖靈死機問題和相關理論的局限性以及可如何推翻之
文章來源: 慕容青草2021-09-22 19:31:26

戴榕菁

 

. 問題的背景

圖靈死機問題(Halting Problem)說的是著名的數學家和電腦先驅圖靈在1936年證明的這樣一個結論:不存在一個可以判斷任意一個程序是否會死機(死循環)的一般程序(算法)。

過去幾十年裏,圖靈死機理論的價值在很多時候,尤其是哲學意義上,被過度誇大了一些,常被一些人譽為上個世紀的最偉大的理論發現之一,且認為它的發現揭示了人類的邏輯能力的一種極限性。其實,與哥德爾不完備理論,皮亞諾理論,塔斯基理論等與之類似的理論一樣,與其說圖靈死機理論所揭示的是人類邏輯能力的極限性,不如說是人類在特定環境下的不現實的夢想與現實之間的差異性而已。

這裏特別要注意的是圖靈所證明的是不存在一個可以判斷任意一個程序是否會死機的一般程序,而不是很多對軟件技術缺乏了解的人常誤解的那樣是無法對任意一個程序是否會死機進行判斷的可能性。如果我們對於“是否能對任意一個程序是否會死機進行判斷”都不確定的話,那麽今天的世界不知要多出多少災難了。

在現實實踐中,我們其實是有能力對任何一個程序在運行中是否會出現死機進行判斷的,這是軟件工程師們的一個基本技能,也是我當初最拿手的本領之一。圖靈的問題出在當初有人想要找出一個萬能的算法(程序)來對任意的一個程序是否會出現死循環這一點進行判斷,而圖靈證明那是不可行的。因此,圖靈死機理論其實對於軟件工程們的日常的查錯活動沒有任何的指導意義,它的真實意義是在於喚醒有些人在當時的條件下的過度的夢想而已。

二.圖靈理論的破解

如上所述,圖靈的死機理論所反映的不過是對於人們在特定環境下的夢想與現實之間的差別而已,而不是人們在日常生活和工作中的能力極限。對於這一點的認識讓我們很容易想到一旦人類的技術條件發生了變化,圖靈的死機理論是否會如同曆史上很多對於當時無法實現的夢想的論斷一樣而受到挑戰呢。

事實上,我們可以合理地證明,圖靈的死機理論至少是在他的現有的論述形式上是可以被推翻的。推翻圖靈死機理論之結論的邏輯其實很簡單:

1)圖靈的死機理論並不影響軟件工程師們日常工作中對於任意一個軟件運行過程中出現死機的可能性及其原因的偵破;2)這個世界上的電腦硬件係統的運行方式,電腦操作係統以及應用編程軟件語言的數量是非常有限的;3)盡管在現實世界的無數個軟件程序的運行中可能導致運行死機或失敗的原因可以是千奇百怪,但是他們的總體的模式卻是有限的,不外乎死循環(例如由A點goto B點,然後再回到A點,再無限重複),饑餓等待 (starvation, deadlock),以及內存泄漏(memory leak)等等一些一般的模式,而這些問題常可反映在運行log或trace中;4)任何計算過程都要最後以機器語言進行,對於高級語言來說,還要先轉換為匯編,然後再轉換為機器語言,因此如果在運行log以及在trace中找不出原因,就可以直接分析由係統產生的匯編語言或機器語言來尋找其中有限的循環指令,對函數(function)和子程序(subroutine)的調用,公共資源的分享等等可能導致死機的部位所進行的數據交換的邏輯分析,由於這些部位的數目是有限的,所以,一旦存在可能造成死機的因素,一定能夠通過這些查找的步驟來找出其中的原因。這就是人類的軟件工程師們一直在幹的事情,完全不受圖靈死機理論的結論影響。

基於上述4點,我們知道,隨著人工智能(AI)技術的發展,人們就完全有可能編寫一套人工智能(AI)程序來完成軟件工程師們所要進行的判斷任何一個實際的軟件程序能否在所有的目標條件下正常完成運作的工作。

由於這樣的人工智能(AI)是一個程序(算法)而且能夠對任意一個程序進行判斷,因此圖靈的死機理論在現有的論述基礎上就已經可以被推翻!

圖靈的死機問題涉及到三個對象,其一是所謂的圖靈電腦,其二是被測試的程序軟件,其三是用來進行測試的算法(程序)。人類不可能把任意一個所謂的圖靈機器以及被測試的程序軟件當作一個黑箱來處理它的運行問題,而一定是深入到包括圖靈電腦和被測的具體程序的具體運行來進行查錯,而模仿人類軟件工程師運作的人工智能(AI)程序也一定不會將所謂的任意的圖靈機器及被測的程序軟件作為一個黑箱來處理,而是要如同人類軟件工程師那樣地深入到具體的細節中查錯,這就是人工智能(AI)與圖靈在他的論證中設想的一般算法之間的根本區別。具有較高的哲學素養的人應該能夠看出這裏的區別是一種特殊的哲學區別,如果不具有那麽高的哲學素養的人就不必往這個方向去考慮了,因為今天的專業哲學界(100%)肯定沒有人能夠看出這裏的哲學意義上的區別來。

為了便於理解上麵這些論述,先提醒讀者一點:判斷死機的問題隻對於出現長時間不能正常完成運行的軟件程序才有需要。對於短時間內可以正常完成運行的軟件程序,答案已經非常明確所以不需要另找軟件進行判斷。當然,這不等於說正常軟件就不能被上述的人工智能(AI)程序來判斷,恰恰相反,它們肯定將是軟件工程師們在編寫上述的人工智能(AI)程序時首先會用到的測試程序。

當然,人們可以對圖靈死機理論進行論述上修改,在其中加入“不可使用人工智能AI”這一條件,這樣一來人們便可繼續維護圖靈理論的價值名譽了。

三.與圖靈死機理論相關的其它理論的類似問題

前麵提到,圖靈死機理論的出現是因為有人在當時的環境下想要擁有一個可以對任意的軟件程序是否會出現死機進行判斷的一般程序(算法);類似地,因為大數學家希爾伯特有一個類似於找到可以表達所有的數學真理的完備又不自相矛盾的公理體係,所以便有了表明那個夢想不可能實現的著名的哥德爾不完備定理(Incompleteness Theorems)。關於哥德爾不完備定理的論述及其證明網上有很多詳細的介紹,這裏就不贅述,其基本意思就是說上述的希爾伯特的那樣的夢想是不可能實現的。

如果說圖靈的死機理論是因為它涉及到很多人都有的夢想而有名,那麽哥德爾的不完備理論之所以有名最主要的恐怕還是因為做夢的那個名叫希爾伯特的人太有名了。與希望有一個能夠判斷所有的軟件程序能否正常完成的夢相比,會去做用一個完備又不存在矛盾的公理體係來統一數學理論的夢象的人除了象希爾伯特那種等級的人應該是不多的。

圖靈的死機理論與哥德爾的不完備性理論已被證明在邏輯上是一致的。因此,哥德爾的不完備性定理麵對的挑戰同樣是:盡管我們找不到那樣一個既完備又無自相矛盾的公理體係,但這與我們日常的邏輯思維沒有任何關係。我日常的邏輯思維既不會因為找不到那樣的公理體係而出現邏輯上的矛盾,也不會因為找不到那樣的公理體係而在我們的思考對象中漏掉任何一個項目。

當然,我們無法象推翻圖靈的死機問題的論述那樣地來推翻哥德爾不完備性定理,也無法用人工智能(AI)來推翻哥德爾當年創立的用哥德爾數(Gödel numbers)對他的不完備定理的證明。這是因為他的論述不像圖靈死機理論的論述那樣留有可以被人工智能(AI)推翻的餘地。但是,我們也不需要推翻它,隻要知道哥德爾不完備性定理並不是如很多人常喜歡指出的那樣是反映了人類的邏輯思維的局限,而隻不過是反映了頂尖數學家們的一些美好的夢想與人類的現實能力之間的差異而已因此絲毫也不會影響我們日常的邏輯思維這一點就夠了。也就是說,我們隻需要象對待圖靈死機理論一樣指出哥德爾不完備性定理的局限性就夠了,因為它們的問題的共同特點是它們的論述對人們產生的過度誇大的誤導性影響。

與圖靈死機理論以及哥德爾的不完備理論類似的還有一些其它的理論,諸如塔斯基理論,皮亞諾理論,以及理發師悖論等,它們都麵臨著上述的挑戰。

四.整體與局部的本質不同及相關理論誤導的根源

但另一方麵,圖靈死機理論,哥德爾不完備性定理,以及其它一些類似的理論也具有另一個重要的哲學意義,那就是提醒我們:人類概括認識整體的能力與處理具體問題的能力之間有著可以被認為是本質的區別。

可惜,它們對於整體與局部的本質不同的一般性的提醒這一貢獻卻由於對於這些具體理論本身的意義的不恰當的誇大而被實際性的貶低了。其實,人類概括認識整體的能力與處理具體問題的能力之間的區別存在於很多方麵,而圖靈死機理論和哥德爾不完備性定理以及其它一些類似的相關理論所涉及的人類概括認識整體的能力與處理具體問題的能力之間的區別僅局限於一個非常特殊的狀況,那就是當人類的認識對象的整體中包含了這個整體自身時所產生的矛盾,也就是所謂的自我指向性(self-referential)所導致的矛盾性。

而圖靈死機理論和哥德爾不完備性定理這一類的自我指向性理論之所以在其後的幾十年裏在公眾心目中產生了嚴重的誤導乃至被誇大為對於人類邏輯缺陷的反映,主要是因為它們各自的論述上所存在的誤導性。它們的共同特點是用一般性的表達(如不存在任何符合條件的一般的算法)來描述一個實際上已經明確知道隻能證明特殊性(即不能判斷包括自己在內的一般性)的結論。這樣的做法本身就有很大的誤導性。它們讓人們以為它們所反映的是非常一般的特性,但實際上所反映的隻是由於自我指向性而產生的某一個特殊點的奇異性而已。

對於自我指向性理論所反映的有限的矛盾性的最簡明的表述便是那個著名羅素悖論或理發師悖論。對於那個悖論來說,隻要規定理發師本人不能包括在問題的討論之中,便能使該悖論不再是一個悖論。這本身就說明了這是一個語言表達的局限性,而且是不會影響任何人的日常邏輯思維的一種局限性,是對於人們期待語言能夠做到它無法做到的事情的夢想與語言本身的能力的局限之間的差別的反映而已。

很奇怪地,當人們已經用理發師悖論或羅素悖論來形象地代表所有的自我指向問題理論,而且也想到了用所謂的元集(metaset),元分析(metaanalysis),元數學(metamathematics)來解決這一問題(這裏把meta譯為元是網上的一般翻譯,我不是很認同這樣的翻譯,但也找不出更好的。。。這裏的meta其實和metaphysics中的meta是類似的)之後,人們卻依然過度的誇大包括羅素悖論在內的自我指向問題理論的價值。這實際上反而容易讓人們忘記了存在於自我指向問題這個非常局限的現象背後的整體與具體之間的一般性的區別的意義,而使得這些理論原來應有的價值被貶低為“不恰當地誇大某一類局限性很大的理論的哲學價值”的地步。。。。。。