2010年5月17日 星期一

實證科學

自從 Lance 寫了一篇叫做 Is Complexity Math or Science? 似乎引起了很多人的不爽. 例如 Michael Mitzenmacher 就提醒 Lance Fortnow 不要自以為能代表所有的 Complexity theorists. (話說回來, Lance Fortnow 現在是 ACM SIGACT 的主席, 自以為能代表所有理論計算機學家也不奇怪.)

Mitzenmacher 認為還是有理論學者會做實驗, 所以 TCS 是科學而不是數學而已. 當然也有人反駁, 在計算機上做的實驗只是模擬而已, 並不能算是真的實驗.

就我的觀點, 這要看研究的對象是什麼. 如果你研究的是高能物理, 做計算和模擬當然不能算是實驗. 如果你做的是 IC design 或者是網路系統, 電腦計算和模擬也不能算是真正的實驗. 不過對演算法學家和計算理論學家, 以比較具體的用詞來說, 是研究電腦軟體在電腦上跑的正確性! 所以用電腦來做模擬計算, 當然可以算是實驗! 因為你研究的標的物不同!

此外, 實驗也不等於證明. 一來實驗本身有很多潛在的誤差, 或者沒有考慮到的因素. 所以很多科學實驗其實也只是複製了小型的系統並模擬之而已. 例如, 在某某條件甲下去做實驗A, 和某某條件乙下做實驗A, 其實我們並不能保證沒有差別! 所以生物實驗會分 In vivoIn vitro. 近年也出現了 In silico.

換個角度說, 驗證的方法有很多種, 從數學證明, 到計算機模擬, 到真實世界裡的實驗. 關鍵不在於你採用的手段, 而在於你問的問題! 因為問題會牽扯到實驗設計! 有些問題你可以很容易的驗證, 有些很難, 你只能排除一部分可能性, 而你採用的方法, 就可以稱為實驗. 而你採用的方法, 如果可以完全地回答問題的真偽, 那就可以說是證明!

沒有留言: