2006/09/21

資料結構與演算法

嗯,果然很有希望成為資訊系到目前為止最好的課 :P。隨機客和善幽默是先前已知的事實,第一次上課是楔子,舉一些有名演算法當例子,並介紹兩個 puzzles,從隨機客的談吐可清楚感覺到圈內人的氣息。最重要的一點:隨機客會提人名 ─ 這在我看來非常重要 :)。隨機客(再次)提到下學期併班上課,我就覺得慘了 ─ 不會又撞到高等微積分吧 XD。還有倫理學、西洋哲學史,都是一年的課程。唔,等寒假再擔心吧 :P。

隨機客舉兩個 puzzles 為例,引出「創意至上」的想法。這包含於 Knuth 所稱的 "art" 裡面,而我所想的卻是 "as scientific as possible"。正如 Knuth 所說:

「自動化編程」(automated programming)是今日人工智慧研究的主要領域之一。它的支持者會樂於演說 “Computer Programming as an Artifact” 這樣的主題(意思是編程僅是舊時遺跡),因為他們的目標是建造一部寫程式的機器,在只給予問題規格描述的情況下,能夠寫得比我們好。我個人認為這樣的目標無法完全達成(JK 注:無法完全轉化為科學),但我認為他們的研究極為重要,因為我們所學關於編程的任何事情都將幫助我們增進本身的藝術技巧。在這層意義上,我們應該持續努力將每一門藝術轉型為科學:過程當中,我們也使藝術進展。

演算法(以及與其密切相關的 complexity theory)到現在似乎都如 Rutherford 所形容的 "stamp collecting",還沒有像數學(物理也算)那邊抽取出那麼多層的抽象結構出來,而抽象結構對於「掌握複雜」是 fundamentally important。Abstraction 仍是門藝術,但完成後,就有希望把整個體系化為科學。研究這層 abstraction 非常吃力不討好,因為看似沒有直接的效果,難度又相當高。但是倘若成功,影響將會十分深遠而廣泛。

演算法(和計算理論)概念之泛,使得它在科學領域內應該有相當廣泛(而且根本)的影響力,但又因為「泛」而難以萃取出足夠深的抽象層級。程式語言在描述能力方面不亞於(甚至勝過)數學符號,但因處理的對象太過複雜而一樣難以萃取。真的能達成目標嗎?我深切希望能夠,而這需要十足的勇氣

喔,我不是否定隨機客的「創意至上」,因為我知道(認為)隨機客講創意至上時並未貶謫嚴謹論證(就如 Knuth 不會比較 art & science 之間的高下一樣),情形和「不是只有讀書」的說法相反 :P。

一切都是因為人乃「發問的存在」,都源於哲學之心 ─ 愛好渴求智慧之心。

--
長路迢迢啊。