4.1.1許舜欽的學生們所製作的程序由於計算機圍棋比賽最早是在台灣所發起的,這也促成台灣在八十年代研究計算機圍棋的風氣。在其中一個較具代表性的研發小組為台灣大學資訊工程系許舜欽教授所領導的計算機圍棋研發小組,在小組中曾代表參加計算機圍棋比賽的包括王若曦、曹國明、高國元、劉東嶽、嚴礽麒和顏士凈,他們所製作的圍棋程序都可說都是計算機圍棋發展過程中重要的里程碑,這些程序中又以Dragon程序最為知名。Dragon程序最著名的特色應該是它的棋串攻殺系統,此系統可說是充分發揮了計算機的特色,主要的做法是採用選擇式搜尋法配合啟發式的策略來計算棋串的攻殺。因為是具備相當完整的搜尋模塊,所以在棋串攻殺時偶而會下出一些連有段棋士都意想不到的好棋出來。另外再配合根據豐富的比賽經驗所製作的相當完備的棋型資料庫,所以至今仍然可說是一個相當優秀的計算機圍棋程序[Hsu and Liu, 1991] 。4.1.1許舜欽的學生們所製作的程序由於計算機圍棋比賽最早是在台灣所發起的,這也促成台灣在八十年代研究計算機圍棋的風氣。在其中一個較具代表性的研發小組為台灣大學資訊工程系許舜欽教授所領導的計算機圍棋研發小組,在小組中曾代表參加計算機圍棋比賽的包括王若曦、曹國明、高國元、劉東嶽、嚴礽麒和顏士凈,他們所製作的圍棋程序都可說都是計算機圍棋發展過程中重要的里程碑,這些程序中又以Dragon程序最為知名。Dragon程序最著名的特色應該是它的棋串攻殺系統,此系統可說是充分發揮了計算機的特色,主要的做法是採用選擇式搜尋法配合啟發式的策略來計算棋串的攻殺。因為是具備相當完整的搜尋模塊,所以在棋串攻殺時偶而會下出一些連有段棋士都意想不到的好棋出來。另外再配合根據豐富的比賽經驗所製作的相當完備的棋型資料庫,所以至今仍然可說是一個相當優秀的計算機圍棋程序[Hsu and Liu, 1991] 。 4.1.2陳志行教授的Handtalk程序目前公認最強的計算機圍棋程序應該是陳志行教授的計算機程序HandTalk,陳教授本來是廣東中山大學的教授,本身的圍棋棋力約有業餘五段,幾年前為了專心發展計算機圍棋程序,申請退休並成立研發小組,專心研究計算機圍棋[黃 1996]。關於HandTalk程序的內容,由於相關的程序內容及研究方法發表的並不多,現今外界對此程序的了解僅限於在比賽時與陳教授討論所得。以下是我們在幾次比賽中與陳教授討論所得的心得。HandTalk程序是由彙編語言所撰寫,所以它的執行速度很快,而程序本身也不大。由於程序並不大,可以推測出其所運用到的棋型數據也並不多,而且很可能是採用rule-based的方法。HandTalk在大多數的情況下都不會失誤,陳教授本人曾提到他是用到一種類似人在下圍棋時常用到的方法「手割「,來幫助判斷的。另HandTalk的定石資料也很少,這是根據我們實際測試所得到的結果。HandTalk與其它的程序明顯不同的地方是它的攻殺能力特彆強,在大多數的比賽中,都可以吃掉對方几塊棋而獲勝。這應該是由於程序的棋塊安危判斷能力,形勢判斷系統,眼位判斷能力和棋型比對系統都很強的關係。有關這些系統的好壞,跟設計者的棋力非常有關,陳教授本身近職業水平的棋力,顯然對HandTalk程序的撰寫很有幫助。 4.1.3 陳克訓教授的Go Intellect程序Go Intellent也是近年來全世界數一數二的程序,有關Go Intellect的內容,陳克訓教授有相當多的著作發表[Chen, 1989][Chen, 1990],Go Intellect由於經過多年的發展,在對局時很少出錯,可說是發展的相當良好的程序。最近Go Intellect改進較多的地方約有下列三點:(a) 精良的資料庫及棋步產生系統。(b) 更快的局部攻殺系統。(c)根據全局搜尋系統所建立的棋步選擇系統。4.1.4 Michael Reiss的Go4++程序Michael Reiss在1983年開始發展計算機圍棋程序,而在最近開始有很好的表現,一度被HandTalk視為最強勁的對手。Go4++ 程序的棋力與它的設計者Michael Reiss並沒有很大差距,這是較為特別的地方[Burmeister and Wiles]。Michael Reiss的主要觀念是使用一些簡單的演算法去計算大量的信息,而不像一般計算機圍棋程序大都是用一些複雜的演算法去計算少量的信息。舉例來說,Go4++程序在產生一個棋步之前,會先用十五個基本的棋型比對出大約五十個候選棋步,再用會用全局搜尋的方式去考慮產生一個棋步,但所用的評估函數卻很簡單:主要是考慮地域問題。這種方式跟一般製作其它棋類的方式較為接近,此方法的好處是對於模樣的感覺很有幫助,而且不需要很複雜的評估函數。壞處則是需要很大的計算量,程序運作需要一台很快速的計算機。Go4++ 目前的最大優點是它對有關地域的好點不容易失誤,這是因為它考慮的候選棋步較多,且有進行全局搜尋的關係。而它的弱點則是處理棋塊攻殺的方式較弱,常會發生因為判斷錯誤而放棄一重要的棋塊,此缺點使得Go4++ 在最近的棋賽吃虧不少[Burmeister and Wiles]。 4.1.5 David Fotland的The Many Faces of Go程序The Many Faces of Go (MFG)是最早商業化的軟體之一,在國際網路圍棋(IGS)上亦可看到它的蹤影,發展至今也有十多年的歷史,程序本身是用C語言撰寫,程序大小約四萬行[Burmeister and Wiles]。MFG的特色之一是它有一個很好的棋型發展系統,目前為止它的棋型資料庫約包括1200個8×8的棋型和6900個5×5的棋型,要妥善運用這麼多棋型,並不是一件容易的事。首先是棋型的來源,MFG有一個棋型編輯系統,可以用手動的方式來剪貼下所需的棋型。Fotland本來的構想是讓高段棋士與MFG對奕,再從對奕的棋譜中剪貼下所需的棋型,但後來Fotland卻發現最好的棋型擷取地方是IGS上的高段棋士對奕的棋譜。再來是當這麼多棋型要運用在程序中時,所需的計算量是很大的,例如要在一個19×19的棋盤比對1000個棋型,用普通的方式可能要三百萬個運算,MFG將棋型編譯成為用位數組表示,如此便可用平行位比對的方式進行計算,可將計算量降到350,000[Fotland 1996]。 4.1.6 高國元的Stone程序高國元本來也是台大信息許舜欽教授的學生,後來到北卡大成為陳克訓教授的博士班研究生,所以他的程序可說是綜合兩者之所長。高國元目前所作的研究中部份是有關計算機圍棋的官子,這個研究的主要的方法是將組合對局理論 (combinatorial game theory) 應用在計算機圍棋的官子上,目前相關的一些結論是組合對局理論應用在收小官時,可以得到非常好的效果。5. 結論及未來展望 我們將計算機圍棋發展至今的一些代表性程序的棋力統計於圖六,這些程序為陳志行教授的HandTalk、陳克訓教授的Go Intellect、Mark Boon的Goliath和許舜欽教授的學生們所製作的程序(包括王若曦、曹國明、高國元、劉東嶽、嚴礽麒和顏士凈)。從圖六我們可以看出在計算機圍棋發展初期的八十年代,圍棋程序以大約每年兩級的速度在進步,而到了九十年代計算機圍棋已發展到某一程度,但仍以大約每年一級的速度在穩定進步中,由此看來,計算機圍棋目前仍在穩定發展之中,另一方面,在前述文章中,由各圍棋程序各有特色看來,計算機圍棋還有相當大的發展空間。綜合上述兩點,再根據我們本身對計算機圍棋的了解,我們推測計算機圍棋的棋力大約在公元兩千年前後,可以到達日本棋院的初段棋力(約台灣的五級左右)。圖六 計算機圍棋棋力進步情形(棋力/年份) 參考文獻[許 1989] 許舜欽,計算機圍棋在台灣的回顧與前瞻,中國工程師學會,日本分會,1989年學術研討會論文集,1989。[圍棋基金會 1995] 應昌期圍棋教育基金會,計點制圍棋規則,1995年版。[黃 1996] 黃天源,比朝陽更絢爛的黃昏,羊城晚報,港澳海外版,1996/11/15。[Allis et al., 1991] L.V. Allis, Van Den Herik, and H.J. Herschberg. Heuristic Programming in Artificial Intelligence 2, Ellis Horwood 1991.[Berliner, 1974] H.J. Berliner. Chess as Problem Solving: the Development of a Tactics Analyzer. Ph.D. Dissertation, Carnegie-Mellon University, Pittsburgh, 1974.[Burmeister and Wiles 96] Jay Burmeister and Janet Wiles. An Introduction to the Computer Go Field and Associated Internet Resources. World-Wide-Web page, http: //www.psy.uq.edu.au/~jay/, 1996.[Brown and Dowsey 81] D.J. H. Brown and Dowsey, S. The challenge of Go. New Scientist, 1981, pages 303--305.[Chen, 1989] Ken Chen. Group identification in Computer Go. Heuristic Programming in Artificial Intelligence, Levy & Beal ( Eds.), Ellis Horwood 1989, pages 195--210.[Chen, 1990] Ken Chen. The move decision process of Go intellect. Computer Go, No.14, pages 9--17, 1990.[Fotland 1996] David Fotland. World Computer Go Championships, World-Wide-Web page, http://www.mth.kcl.ac.uk/~mreiss/bill/comp/[Hsu et al., 1994] S.C. Hsu, J.C. Yan, and H. Chang. Design and implementation of a computer Go program Archimage 1.1. Journal of Information Science and Engineering10, pages 239--258, 1994.[Hsu and Liu, 1991] S.C. Hsu and D.Y. Liu. The design and construction of the computer Go program dragon 2. Computer Go, No. 16, pages 3--14, 1991.[Hwang and Hsu, 1994] Y.J. Hwang and S.C. Hsu. Design and implementation of a position judgment system for computer Go programs. Bulletin of the College of Engineering, N.T.U., No. 62, pages 21--33, Oct. 1994.[Kojima et.al., 1996] Takuya Kojima, Kazuhiro Ueda, and Saburo Nagano. A case study on acquisition of pattern knowledge in Go using ecological analogy. Game programming workshop in Japan, pages 133--139, 1996.[Lorentz, 1995] Richard J. Lorentz. Pattern matching in a Go Playing Program. Game programming workshop in Japan, pages 167--174, 1995.[Mü ller, 1995] Martin Mü ller. Computer Go as a Sum of Local Games: An Application of Combinatorial Game Theory. Ph.D. Dissertation, Swiss Federal Institute of Technology Zurich, 1995.[Newell et al., 1958] A. Newell A., J.C. Shaw, and H.A. Simon. Chess playing programs and the problem of complexity. IBM Journal of Research and Development, Vol. 4, No. 2. Pages 320--335, 1958.[Reitman and Wilcox, 1978] Walter Reitman and Bruce Wilcox. Pattern recognition and pattern-directed inference in a program for playing Go. Pattern-Directed Inference Systems, pages 503--523, 1978.[Samuel, 1959] A.L. Samuel. Some studies of machine learning using the game of checkers. IBM Journal of Research and Development, Vol. 3, No. 3, pages 210--229, 1959.[Zobrist, 1970] Zobrist, A. L. Feature Extraction and Representation for Pattern Recognition and the Game of Go, Ph.D. Dissertation, University of Wisconsin, 1970. |