我的研究興趣:
    計算生物學及生物資訊學 (Computational Biology and Bioinformatics)
    演算法 (Algorithms)
    套裝軟體 (Software Tools)

我的著作目錄及論文下載 (Publication list)
實驗室海報 (April 2007)
我(曾)參與的Program Committee (議程委員會)


這是我在美國數學學會的族譜  

http://www.genealogy.ams.org/id.php?id=84608
(Kun-Mao Chao <-- Webb Miller <-- Bob Ritchie <-- Alonzo Church (Alan Turing's advisor) <-- Oswald Veblen <-- Eliakim Hastings Moore <--  Hubert Anson Newton <-- Michel Chasles <-- Simeon Poisson <-- Joseph Lagrange <-- Leonhard Euler <-- Johann Bernoulli <-- Jacob Bernoulli <-- Gottfried Leibniz)

http://www.arnetminer.org/viewperson.do?naid=1291953&name=Kun-Mao Chao

我的研究主軸為「序列」與「樹狀結構」主題相關的演算法設計,以及利用這些演算法為基礎的生物資訊軟體工具開發,可說是「計算理論為體,生物資訊為用」。我曾參與開發在序列分析上頗具影響力的FASTA軟體,著作也曾被SCI前些年最被引用的BLAST科學論文及最主要的計算生物學教科書與參考書籍所引用,可算是長序列分析上的開路先鋒者之一。以下是我2002年草創演算法與計算生物學實驗室 (ACB Laboratory) 時所撰寫的開場白,歡迎志同道合的夥伴們加入ACB的行列。

理論計算機科學家(Theoretical computer scientist)通常可分為兩類型:定理證明者(Theorem prover)及問題解決者(Problem solver)。我的興趣比較偏向後者,特別喜愛演算法的設計。計算機在1950年左右問世以後,相關的計算問題接踵而至,因而產生了很多經典的問題,如:shortest path, minimum spanning tree, sorting, searching等基礎問題。雖然其中有些問題,在計算機問世前就被研究過,但它們的重要性,卻在1950年後才更突顯。到了1970年左右,Levin以tiling problem和Cook以SAT及3SAT問題,證明了NP-completeness定理,說明只要一個NP-complete問題是polynomial-time solvable,則所有的NP問題都是polynomial-time solvable。Karp基於這個研究成果,緊接著提出了多個有名的NP-complete問題,將整個計算機科學的視野又往前邁進了一大步,也掀起了一片NP-complete問題的淘金熱潮。

在1980年代時,如果你證明了某一個問題是NP-complete,也許就可以準備畢業拿博士學位了;但到了1990年時,如果你證明了新的問題是NP-complete,這樣的結果可拿來當做不錯的考題,但要做成一篇論文,在份量上已嫌不足,這個時候,你還需提出不錯的approximation algorithm,例如2-approximation,也就是在polynomial-time之內,你找到的答案不會比最佳答案差兩倍以上;或者你要說明這問題並不存在有效的近似演算法。到了1990年代中期,如果你證明了一個問題是NP-complete,並提出了一個1.5-approximation的方法,可能還構不成一篇好論文,也許你還要證明1.5-approximation在NP不等於P的情況下,是最佳的近似解法,這樣的份量才夠充分。

你也許要問,問題愈來愈難,解法愈來愈講究,演算法設計還有發展空間嗎?我們必須承認,在經典問題的突破上,難度是相當高的,因為這些都是大師們雙手一攤所留下來的,我們雖然不能妄自菲薄,但也不該自我無限膨脹,以唐吉柯德的精神來夸父追日啊!但這並不代表著演算法設計領域已走到窮途末路了!其實,在資訊研究領域裡,很多研究的核心部分都是廣義的演算法設計,隨著應用層面的增廣,新的問題不斷地產生,亟需好的解法來克服難處。做演算法的人,有點像游牧民族,哪兒有草,就往哪兒跑,寫到這裡,我想到了今天午飯時,我的姪兒普普讓我猜的一個謎語,謎題是:「羊來了,猜一水果名。」謎底是:「草莓(草被吃光了,沒了)。」哈哈,我們這些游牧民族的草真的快沒了嗎?恰恰相反,當我們資訊領域已正式跨入成熟的應用領域時,這正是我們大展鴻圖的機會,愈來愈多有趣實用的問題正等著高手來過招呢!

例如,我在看生物資訊的應用問題時,就碰到了不少有趣的問題。前陣子我們碰到一個這樣的問題:給你一個數列,請設計一個演算法,來找出一個長度至少為L的區段,而它的平均值是最大的。這麼簡單敘述的問題,沒想到我們居然還成為開路的先鋒者(我這麼說是因為我們解了很多好問題,但那類型的問題,在敘述上,都難免扯上一些專有名詞,很少有三言兩語就可將題目搞定,因為可簡單敘述的問題,照說已被古人所做爛,其實並不然啊)。由於應用領域的刺激,我們碰到更多前所未有的問題,前景可期!

我目前最感興趣的方向包括:
1. 任何具計算挑戰性的問題,包括各式各樣的演算法設計;
2. 在生物資訊應用領域上,結合演算法設計所製作而成的軟體工具;
3. 在生物資訊應用領域上,開發實用的軟體分析工具。

我雖然將自己歸屬於problem solver,但我也期許自己能成為一個好的problem generator。做我們這一行的,有問題時傷腦筋,沒問題時可就更傷腦筋了! ^_^