一點足印
電腦也瘋狂
控制學之謎
Debunking the Myth
第四期 出版日:二零零五年二月
電腦也瘋狂

電腦雖然可以幫助我們解決許多問題,但有一些問題卻是無法使用電腦來找到答案的。其中一個為人所熟悉的便是一名為 Halting Problem 的難題。簡單來說,便是要編寫一個電腦程式來測試另一個電腦程式會否在有限的時間內完成。喜愛挑戰的讀者們,您想花一些時間來想想這個問題麼?

原來,世界上並沒有一個電腦程式可以解決這個問題,原因就如世界上並沒有一個髮型師能夠替所有不會自己理髮的人理髮一樣。試想想,若真的有一個電腦程式 P 可以用來測試任何電腦程式 Q 會否在有限的時間內完成,那麼,我們便可如下利用 P 來編寫另一個電腦程式 P’﹕

P’(Q)﹕
1. 模擬 P(Q)。
2. 若 P(Q) 的答案是「Q能夠在有限的時間內完成」,則立即進入一個無限的運作程序。
3. 若 P(Q) 的答案是「Q不能在有限的時間內完成」,則立即終止。

這樣的話,我們便會產生一個疑問﹕若我們把P’作為P’的輸入,會發生甚麼事情呢?

試想想,首先,我們會模擬 P 按輸入P’的運作,若所得的答案是「P’能夠在有限的間內完成」,那麼,整個程式(則P’自己)便立即進入一個無限的運作程序當中;若所得的答案是「P’不能夠在有限的時間內完成」,那麼,整個程序便立即停止。無論如何,P’的運作都與其應有的運作模式相反。所以,唯一的結論便是程式P根本並不存在。否則,我們便能制作一個這樣奇怪的P’來﹗

 

楊鳳如教授
計算機科學與工程學系

上一篇  下一篇

©2003 CUHK News Network. All Rights Reserved.
Terms under which this service is provided to you.
Read our privacy guidelines. Contact us.