電腦圍棋

1.0 概述

本文旨在向讀者介紹電腦圍棋領域的狀況及 Internet 上的相關資源。

爲照顧尚不熟悉圍棋的讀者,第2部分介紹了圍棋的基本常識和規則,熟悉這些的讀者可以跳過它,或在必要時參考。

第6部分將告訴讀者,由於各自的特點,目前圍棋程序的水平與國際象棋程序相比差距極大,有待於進一步投入力量開發;第3部分 給出了其理論和實踐的依據,並指出圍棋程序是不可能仿照國際象棋程序那樣開發的(參見表一)。

第4部分簡要回顧了電腦圍棋的歷史,同時介紹了一些以圍棋爲對象的學術著作、電腦圍棋比賽及結果和一些爲圍棋程序。

第8部分介紹了有關圍棋和電腦圍棋的Internet資源,其中包括網上對弈服務器、FTP 站點、郵件表等。

2.0 圍棋常識

圍棋是一種二人對弈的棋盤智力遊戲,沒有任何運氣成分。它出現在2,500到4,000年前的東方,它在日本、中國(含臺灣)和韓國(朝鮮)等國家的地位就如同國際象棋之於西方國家。

圍棋的棋盤是由一些經緯線組成的網格點,通常是19 x 19的,稱19路棋盤,但9路及13路棋盤也有使用,棋子分黑白兩色,黑棋先行,對弈雙方輪流落子,棋子就下在網格交叉點上。最後佔據交叉點多的一方即爲勝者。

2.1 氣和提子

與棋子相鄰的空點稱該棋子的(如圖1標L的點)。沒有的棋子將被從棋盤上提起,稱爲提子(如圖2中的白子)。提子又稱喫棋,是一件很愉快的事,當然對手不見得如此,除此之外,落在棋盤上的棋子是不能移動的。

2.1.1 自盡

如果棋子落下後即處於沒有氣的狀態,即要被提子,稱爲自盡。這是棋規所不允許的(如圖3中的X)。(在應氏規則中允許塊棋自盡)

2.2 塊棋

同色的棋子在經線或緯線上相鄰,稱爲連接。(如圖4)連接在一起的棋子組成了一塊棋,當然單一一顆棋子也可以稱一塊棋塊棋是組成它的所有棋子的的總和,(如圖5標L的點);也就是說,要提掉一塊棋,必須包圍它?⒉皇?A HREF="#2.1.1">自盡,因爲要先提掉對方的子,它的氣就有了。有兩眼的塊棋是永遠不可能被提掉的,(如圖9中標E的點),因爲對方不可能同時落下兩顆棋子填眼,而單在一眼中填子不能提子 就是被禁止的自盡了。

2.3.1 死活

有兩眼的棋稱爲活棋,通常而言,如果即使對方先行也不能被提掉的就是活棋;而即使已方先行也不可能避免被提掉的就是死棋

2.3.2 假眼

有時眼是由兩塊或更多塊棋圍成的,這時要看它們之間的連接是否真實;它們之間肯定有一個或多個目前尚不屬於已方的連接點,如果這些點都被對方佔據,則這塊棋圍出的眼也會對方佔據,是假眼。如果圍成眼位的棋至少有一個對方無法佔據的空連接點,或至少有兩個空連接點,則該眼是真眼因爲已方始終有機會將其連接。

2.3.3 Seki

2.4 劫

爲了避免無休止的棋着循環,棋規規定對弈者不能奕出使棋局與上一手時相同的着法。通常這種情形發生在劫爭的時候。如圖10白子落在1位提掉了黑子2,此時由於白1只有1氣,也可以在2位被黑提掉,反過來白又可以在1位提回來;這是被禁止的情形,當白1提子後,黑方不能立即着2位,而要在別的地方尋劫(一般是對方需要應付的地方),待對方應劫後再在2位提劫,這就是劫爭

2.5 打將

高手有時可以通過打將引導棋局按自己的部署發展,這時他的着手使得對手只有唯一的應手。

2.6 徵子

徵子是一種喫子的方法,如圖12,不管怎麼走,黑棋註定要被提掉,因爲白1打喫,黑只有2位逃,白再3位打,最後這個梯形延續到棋盤邊黑棋被提掉。

2.6.1 引徵

當棋子被徵時,可以在徵子的梯形路線着子接應,使得對方徵子失敗,稱爲引徵。

2.7 聯絡

圍棋規則中兩棋子的連接僅指經緯線上的連接,又稱。但實際的棋局中可以有許多連接方式(見圖13)如並、關、二間關、尖、飛、大飛等,成爲聯絡。如果兩塊棋沒有聯絡,則稱爲開的。

2.8 棋塊

兩塊或多塊互相緊密聯絡的同色塊棋組成棋塊,如圖15中的A和B以及C1、C2、C3和C4。由於互相之間有緊密的聯絡,它們可以被看作是一塊棋。棋塊是對局中棋手分析棋局的基本單位,其最重要的屬性是它是否是活的,或是否可以做出兩個眼,或是可以與一個已有兩眼的活棋塊聯絡

2.9 棋勢

兩塊或多塊聯絡鬆散的同色塊棋組成棋勢,如圖15中的AB棋塊與C1C2C3C4棋塊組成棋勢。這兩棋塊之間沒有對方的棋子,似乎是圍成了一塊很大的地域,但這並沒有保障;所以對於棋手而言將棋勢轉化爲實地是很重要的。而對方侵入這塊地域則稱爲打入

2.10 數棋

當對局完了時,從棋盤上提掉死子,分別數出雙方的提子數和圍空數之和,多的一方爲勝者。

2.11 讓子和段級位

圍棋有着獨特的讓子和段級位制度。棋手按棋力分爲30級。下過10到15局棋後棋手大致爲20級,達到1級以後便是段位了,業餘段位是1到6段,職業段位爲1到9段。

隨着級位的提高,升級越來越難,從20級升到10級需要一年每週下1、2局,再看一些棋書 ,而要達到職業段位的水平,則需要多年的專業訓練。職業段位之間的差距相對業餘的要小,初段和九段的差距大約相當於業餘段位的兩段之差。

爲平衡高手和下手之間的棋力差距,下手可以被授先。在應氏規則中,授子是由下手先行奕出的若干步棋着,而在中國/日本規則中,授子是有固定位置的。授子數根據棋力的差距而定,例如10級棋手可以對15級棋手授5子。其確定的原則是使得下手對高手的勝率爲50%,或可以按每輸10子授1子概算。如果使用小棋盤,則授子數相應減少。如9路上授1子相當於13路授2子或19路授1子。

沒有授子時,先行的效力大致爲5目。下手一般執黑先行。如果對弈雙方段級位相當,則先行的黑方要貼還白方5目。在正式比賽中爲避免平局,貼目爲5目半。中國規則由於採用數子法,應貼2又3/4子。

3.0 圍棋編程的挑戰

同國際象棋編程相比較,圍棋編程領域的發展尚處於初級階段。在國際象棋的編程研究領域中曾出現過象60年代和70年代時投入了強大的研究力量的情形,在圍棋編程領域從來沒有過。在兩者之間有着本質的區別,使得國際象棋受人青睞成爲研究對象,同時,即使也有力量投入圍棋編程,其結果也無法趕上國際象棋編程的進步。這裏有幾大原因,一方面是由於圍棋本身的複雜性,另一方面是由於在國際象棋領域取得的編程技術無法恰當地運用於圍棋領域。

3.1 圍棋與國際象棋的比較

1. 圍棋棋子的類型簡單,只有1種,而國際象棋則有6種;但圍棋的棋盤爲19x19,要遠遠大於國際象棋的8x8棋盤。

2. 棋盤的大小以及着手的相對自由,使得圍棋棋局的平均手數大約爲300步,大於國際象棋的平均80步。

3. 着手的相對自由,使得每步棋着的選擇(分支因子)可以高達平均200個,而國際象棋中由於棋子走步的限制平均只有40個選擇;隨着棋局的進展,國際象棋棋子減少,使得分支因子降低,而圍棋中則沒有這種優勢。分支因子還影響棋局的各個階段(佈局、中盤和官子)。在國際象棋中, 開局有許多著名體系,通常深達10步之多;而在圍棋中,佈局種類非常之多,而深度很少有超過3手的。當然,在邊角上圍棋也有定式可循,但定式的選擇仍要考慮周圍棋子的配置等等,需要一定的技巧。

4. 圍棋與國際象棋棋局都有兩種終了的方式:認輸和自然終局,國際象棋的終局比較容易判別,就是將死,而在圍棋中終局是由雙方同時認可的,但初學者又很難判別是否已經沒棋可下,所以他們下出的棋局往往比高手之間的要長,圍棋程序也會犯同樣的毛病。如果按照日本的比目法計算勝負,則多餘的着手會因爲填在己方的空裏或變成對方的提子而減少目數。

5. 圍棋和國際象棋的棋子都有一定的威脅度,就國際象棋而言,棋子的威脅度僅是它所能走到的格子,而在圍棋中,棋子着下後就不再移動(僅當提子時例外),但可以對棋盤上其他的棋子產生影響,如引徵可以改變某塊棋的徵子關係。

6. 國際象棋的棋局隨棋子的移動立即發生變化,而在圍棋中,這種變化並不顯著,從而需要大容量的記憶分析棋局。即使是一個初學者也可以看出60步以後的徵子結果,這是一個很深但很窄的算路。只有最後當棋子被提掉的時候,棋盤的物理狀態才發生顯著變化。在圍棋中,價值30目的棋經常作爲交換被提掉,而最終勝負卻可能只有2目。

7. 在國際象棋和圍棋的棋局中,棋手通常要考慮全局策略和局部戰鬥兩個因素。在國際象棋中,由於存留棋盤上的棋子的數量和質量與棋局形勢基本相關,所以在電腦國際象棋中基本並不把全局策略考慮在內。而在圍棋中,局部戰役的得失與全局的勝敗並不完全相關,在開局時,棋手要考慮棋勢而不是實地。所以大多數圍棋程序都包含一個棋勢的估價算法,但除了實戰解決無法評價這類算法本身。

8. 綜上所述,國際象棋的編程可以通過優秀的評估函數和修剪搜索樹解決,而這樣的方法在圍棋中則行不通,因爲後者的分支因子太大,又沒有合適的評估函數用於修剪。

9. 人類棋手在國際象棋和圍棋中的思維也是不同的。初學者都只能看幾步,但在圍棋中,類似徵子之類的棋形,初學者可以不費力氣地一目瞭然,因爲這一連串的着手都是打將。在典型的國際象棋棋局中,專家可以計算出10步左右,但每步只有幾種變化而已,在圍棋中,每步的變化就非常之多,其中也可能有很深的如徵子手段,這樣用廣度搜索和深度搜索都是無法很好把握的。

10.地平線效應,即在深度搜索取得一個評估之後,如果再深算幾步,該評估就會被修正,例如在棄子的戰術中。地平線效應在國際象棋領域只在大師級水平中才出現,而在圍棋中,即使在初級棋手對局中也有,例如徵子。

11. 國際象棋在70年代早期被用來作爲人類思維的研究對象,Chase和Simon於1973年表明專家棋手使用的是棋子分級思維;而Reitman1976年的研究結果則表明歸於圍棋棋手正相反,使用的是棋子交叉思維。確定棋子的聯絡與分割,是決定棋子死活的關鍵,Reitman的研究表明,只有到終局,棋子間的關係才能澄清,這一研究結果顯示了在圍棋編程中使用分級理論產生評價函數可能帶來的問題。

12. 在國際象棋和圍棋的實際對局中,對手的水平是影響棋局的一大因素。在國際象棋中只有兩位旗鼓相當的棋手纔可能奕出可觀的棋局,而在圍棋中,由於存在授子制度,高手的水平可以由授子來抵償,在這種比賽中,下手總是力圖簡化棋局,保持優勢,而上手就不得不出險着引得對方犯錯誤;儘管最終的目數可以反映雙方的棋力差距,但對局者更多關心的是輸贏,寧可少贏也不肯冒險多贏,所以在許多棋局中對手的水平可以決定棋手的戰略。棋手需要在各個方面下工夫,而不是偏重某種技巧的原因,這樣纔能有效地攻擊對方的弱點。根據電腦圍棋程序對某人的首次對局確定其棋力是通常的做法,同一個人第一局輸給了電腦,以後幾局很可能都會贏,因爲他發現了對手的弱點,而電腦程序則沒有任何改變。

3.2 圍棋的複雜性

一個有限時間可求解的算法可以應用於現實世界的問題解決,而不能在有限時間求解的算法則稱爲指數時間算法,這類算法只能應用於非常小的問題。在計算機的有限內存空間中可解的問題稱爲P-空間可解問題。

研究表明,對任意給定的n路棋盤圍棋棋局,確定勝者這一問題是P-空間難解的。 (Lichtenstein and Sipser, 1980)另一項研究還涉及了劫爭問題以表明,對任意給定的圍棋棋局,確定勝方和選擇着手都是指數時間問題。 (Robson, 1983)因此,在解決一些圍棋問題時使用模糊算法以取得接近最優解是必要的,而單純的搜索很快就會導致困難。

在Allis et al. (1991)一文詳盡地分析了圍棋與其他棋類相比的複雜性,文中定義了兩個術語:可求解完全可解;並演示了搜索空間的複雜度決策複雜度的區別。 如果一種棋類在任意棋局中都可以通過程序得到最優解,稱爲可求解的;如果這一正解可以由人類語言解釋,則它是完全可解的。演示是通過一種圍棋的抽象模型完成的,該模型規定雙方輪流落子或放棄着手,先佔據181點的獲勝,它具有與圍棋相同的搜索空間複雜度,但只要先行一方不放棄着手就肯定會贏,所以沒有決策複雜度

Allis et al 就16種棋類按可解與不可解分類給出了其搜索空間複雜度的複對數指標和決策複雜度的對數指標圖,圖中顯示圍棋的兩項指標都是最複雜的,而且是不可解的。對於圍棋與國際象棋的比較,研究結果表明9路棋盤圍棋的複雜度與國際象棋近似,搜索空間以10爲底的指數爲35對50,而19路棋盤圍棋要複雜得多,所以如上所述是不可解的。(Allis et al. 1991).

3.3 爲什麼圍棋無法象國際象棋那樣編程

國際象棋程序中使用了啓發式搜索和評估技術,搜索樹是固定深度的,根據對棋局的評估啓發修剪,該項技術在國際象棋中應用得很好,因爲其棋盤足夠小且從本質上更注重局部戰術而不是全局戰略。

在圍棋中評估棋局遇到了在國際象棋中不曾有的問題,圍棋與後者相比更注重全局戰略。圍棋不象國際象棋那樣注重單個棋子的得失,而棋勢又是在漫長的對局中逐漸形成的,在對局中有着各種各樣直接的和間解的戰略以贏得勝利,如圍取實地、擴張外勢、攻擊弱子、防守、打入等等。由於棋盤很大,圍棋棋局還包含了許多局部定式。如果把國際象棋成爲一場戰役的話,那麼圍棋就是一場戰爭。許多局部戰鬥的應手都要根據全局戰略做出選擇,因此棋手必須掌握局部和全局的均衡。

由於棋局評估帶來的種種問題,在國際象棋編程中使用的人工智能優先搜索技術在圍棋中無法適用。圍棋在人工智能和認知科學中更有研究價值。Hans Berliner前國際象棋世界冠軍、美國著名棋手、著名國際象棋編程專家曾就圍棋說過"... 圍棋必將取代國際象棋作爲人工智能的研究對象" (Berliner, 1978).

4.0 電腦圍棋的歷史

  關於圍棋編程的著作最早出現於60年代末,最初是純學術性的,只是把圍棋作爲某些研究進一步深入的研究對象,而不是試圖探索圍棋的編程理論。真正開始投入力量開發商業圍棋程序還是在個人電腦走入家庭和應氏電腦圍棋獎金設立之後被推動起來的。

4.1 學術著作

4.1.1 Zobrist

最早的圍棋程序是由Albert Zobrist作爲他模式識別專業博士論文的一部分提出的(Zobrist, 1970)我們在此主要涉及與電腦圍棋相關的部分。

效果函數

Zobrist引入了效果函數的方法將棋盤分爲黑方和白方地域。效果函數計算棋盤上每一個交叉點的數值量,黑子取值+50、白子取值-50而空白點爲0;正數效果的點要給其鄰接點加+1,同樣負數效果點的鄰點加-1,這樣的算法遞歸執行4次,將棋盤最終數值化(如圖17).

程序由此建立了一個19x19的數組來表達棋盤的狀態,包括:
交叉點的狀態(黑子、白子還是空)、鄰點的黑白子個數(水平的、垂直的和對角方向的)、棋塊的棋子數和氣數、空白點鄰接的空白點以及塊棋包含的空和棋子數。

該程序還使用了另一個效果函數來表達棋子自身的效力,它與上述函數相似,但棋子的初值設爲+100,正數效果的點對鄰點的增量爲+3,而負數效果的點爲-4,這是由於計算機是執黑方,所以把對手的形勢估計得樂觀一些。

選擇着手

建立內部表達諸侯,程序對棋局進行模式識別在自身的模式庫中尋找匹配。模式庫中包含着着手及其評估值,得到一個匹配後,就在該點加上它的評估值,在匹配過程中需要使用旋轉和對稱等技術。最後把取得評估值最高的點選擇爲着手。Zobrist的程序大致是使用了累加評估值的方式。

Zobrist試圖彌補該程序在對局中表現出的弱點,他把棋局分爲四個階段:佈局時的邊角定式、挺進中腹、防守與打入、官子。爲使程序能在棋局都能正常應對,各個階段使用了不同的模式庫。

結果與改進

該程序的另一個改進是限制性計算也即啓發搜索,在模式識別中,局部可以深算三步使得程序可以掌握救孤和喫棋、連接和切斷、徵子、做眼。

Zobrist的程序性能一般,它擊敗了兩個初學者,但對熟練的棋手錶現較差。

4.1.2 Ryder

Jon Ryder(Ryder, 1971)的程序是Zobrist研究的深入,同樣使用效果函數和累加評估選擇着手。但Ryder增加了全局戰略和局部戰術考慮,並增強了算路的深度,Ryder在短線目標中考慮局部戰術而在長線目標中使用全局戰略。

由於在圍棋中使用完全搜索樹是不切合實際的,所以需要有一種方法取而代之,Ryder的程序使用了許多象局部戰術分析這樣的組合分析方法。

Ryder把圍棋視爲實地、棋勢與避免被喫棋之間的均衡,他將這三者公式化以維護這樣的均衡:棋盤組織顯示對棋盤區域的控制度、形勢判斷以選擇雙方着手最佳方向、棋塊分析以確定其安危。

着手選擇

着手選擇分兩層完成,第一層確定所有塊塊的局部戰術狀態、識別棋塊、棋勢並分別進行分析以確定雙方的地域以及對對方棋塊的威脅度。最後從所有的可能着手中選出15個以備下一層分析。

第二層使用局部戰術和樸素的全局戰略理論對第一層產生的15個着手進行分析,將兩次的分析值相加,取最高值。如果能夠確定一個“明顯的”好棋,第二層分析可以簡單地終止。

Ryder的程序對深算產生的搜索樹使用了向前修剪的方法,應用不同的方案決定是否有必要跟蹤搜索樹的某個分支,也就是說某一着手是否值得考慮。終止搜索的放;方案包括目標塊棋已有兩眼、逃棋是否長出5氣或是使塊棋得救。向前修剪的風險在於最佳着手可能在被發現以前就被忽略了。

效果函數

象Zobrist一樣Ryder也使用了一個效果函數提供每個棋子對其周圍影響度的量化。他的效果函數與Zobrist的類似,也是黑方取正數、白方取負數,某點效果的取值由其鄰點的效果傳播累加形成。Ryder的效果函數較Zobrist的簡單,傳播係數是固定的(如圖18)

Ryder的效果函數

對某點的效果估計過高或過低都將給判斷帶來問題,估計過高會使在該處過分注重而因此忽略大局,估計過低則可能被對手抓住要害。最優着手應當是接近效果估計曲線峯值的點。Ryder把棋子的效果視爲棋子的局部屬性,儘管他也承認在某些情形下棋子可能對距離較遠的棋子有影響,例如引徵。在這種效果函數無法準確表達的情形中,使用局部戰術評估以彌補效果函數的缺點。

聯絡度是效果函數不能很好評估的一個環節。Ryder定義了兩個術語:聯絡強關聯,某點對於某方聯絡是指該點上是該方的非死子,或指至少有一個該方鄰子且沒有對方鄰子的空白點。完全聯絡的一個延伸定義爲半聯絡,指一個空白點至少有二個某方鄰子及至少一個對方鄰點。強關聯是指某點由某方子佔據或與某方子連接,某點與某子對角線連接且共有至少一個空白點(尖),以及某兩子之間只間隔一個空白點(關)這兩種情形也被認爲是強關聯的。棋塊就是由一組聯絡半聯絡的點組成的。

效果函數部分使用於確定棋勢。棋勢是由一組聯絡的點組成,其效果函數不小於程序預定義的閾值,又分爲強勢與弱勢。

程序中使用的局部戰術概念包括數氣、劫爭、徵子、眼和假眼。Ryder認爲程序中的局部戰術能力還需要改進,他稱之爲“躲閃襲擊”。

變量描述

變量描述需要包含以下信息:基本的在計算中需要使用的、重點對象需要多遍重計算的、經常需要多次訪問的變量。

棋勢是由指針方式表達的,對每個點都維護一個向其所屬棋勢的指針;而每個棋勢都有一個向其所屬某點的指針,稱爲基點,其他點通過基點搜索。

棋盤的全局描述爲一個21x21數組(19x19棋盤加上兩邊框),包含以下點信息:區域指針、弱勢指針、強勢指針、棋塊指針、塊棋指針以及狀態(黑、白或空)。

結果與改進

Ryder發表的結果只是一局輸棋,對手是一位剛剛學會了棋規和基本局部和全局技巧的初學者。作爲Ryder研究的主要方面,他發表的結論認爲在戰術分析上,通過搜索技術已經足以完成與初學者水平相當的着手選擇,而且只需略加改進就可以提高程序的局部戰術水平。

Ryder提議的進一步改進方案包括搜索初期信息的複用、引徵問題和弱勢的定義,Ryder指出在處理中佔10%時間的棋局階段分析值得注意。Ryder程序的結果不甚理想,其原因也在於它對於開局、中盤和官子沒有一個清晰的區分,因此特別是在官子中使用了不恰當的局部戰術,Ryder認爲以後的改進應對此加強。

4.1.3 Reitman and Wilcox

Walter Reitman和Bruce Wilcox於1972年開始將圍棋作爲研究對象,作爲研究結果的程序分別命名爲Reitman-Wilcox和INTERIM.2。研究中斷後Wilcox重寫了INTERIM.2程序而產生了一個商業圍棋程序NEMESIS。

Reitman和Wilcox應用圍棋開始的研究主要集中於人工只能領域,包括模式識別(Reitman et al., 1978; Reitman and Wilcox, 1975,1978)、規劃(Reitman and Wilcox, 1974)以及人類在圍棋中的感覺與認知過程再現。事實上,程序的目的是與人類棋手對弈並將結果記錄事後由高手覆盤以發現人類的思維特點。

根據Reitman和Wilcox圍棋程序的三個基本方面是認知、知識和綜合(Wilcox, 1988)。他們在程序中儘量加入描述以獲得與熟練棋手相當的認知水平,識別並存儲了兩類圍棋知識:着手決策知識包括如何喫棋、如何圍空等;形勢判斷知識包括確定棋塊的屬性及相關的量化分析等;通過適當的控制結構綜合程序的認知和知識以選擇着手。

INTERIM.2程序建立並維護了一個選擇更新、多層網絡的描述,Reitman和Wilcox介紹這是模擬熟練圍棋棋手思維建立的。專家和評論員對於選擇着手的分析是分層的,算路不是涉及全盤的,而是目標驅動的。

INTERIM.2程序

INTERIM.2採用了彙總-回饋技術(Wilcox, 1988)。信息中包含低層對象的描述如塊棋,被彙總並在高層描述如棋塊中使用,程序在高層對象中選取重點進行決策,決策結果回饋並修正低層對象的描述。

流控

程序將棋局描述存儲在一個稱爲GAMEMAP的結構中,包含着一組稱爲GAMEBOARDS的數組變量中。在每個GAMEBOARD數組中都有向各種特殊數據結構的指針,如STRING-BOARD包含向棋盤上所有塊棋的指針。GAMEBOARDS變量由簡單而複雜:TYPEBOARD、STRINGBOARD、LINKBOARD。特殊的GAME-BOARDS變量如LENSBOARD、WEBBOARD、SECTORBOARD和TACTICSBOARD是爲描述熟練的人類棋手的感覺與認知過程相應設計的。

INTERIM.2程序的流控分別在MOVE和REFLEX之間切換,當落子後MOVE選擇更新GAMEMAP受影響的組成因素,REFLEX負責在排序表中選擇着手。

戰術

程序的戰術部分,即PROBE是用於解決特殊問題的,取代通常的全盤考慮的目標驅動的算路。PROBE基於這樣的假定,即如果對於一個給定的問題,一組智能選擇邏輯都返回同樣的結果,則可以認爲這是正解。這樣的假定並非總是有效的,但Reitman和Wilcox認爲這是爲加速搜索而付出的小代價而且與人類因類似原因誤算造成的損失無法同日而語。PROBE是模擬人類圍棋棋手進行選擇性計算的過程設計的(Reitman and Wilcox, 1979).

PROBE可以用來解決一個特定的問題並給出一個適當的着手,最初的着手選擇後可以得到一個假定落子後的棋局形勢。PROBE根據這一假定繼續計算下一手,知道得到該問題的結果。如果結果是成功的PROBE返回初始着手,否則推翻假定重新計算,在非限制性的計算中,要遍歷所有的着手以求的正解。但在PROBE中不是所有的着手都計算,每方的失敗都被限制在2到3次以返回失敗結果。

着手的選擇和檢查是由一組專家知識形成、評估並實現的直指目標的思維鏈(Wilcox, 1988).,其中包括各種各樣的專家知識,如產生目標和子目標的、建議着手以明瞭目標的、當前棋局和目標專用的、使用所有目標與子目標的。專家知識包含了許多特殊的圍棋知識。Reitman和Wilcox在PROBE中實現的控制結構使得各種專家知識得以組織、便於測試並可擴展(Wilcox, 1988)。. The goal-directed behaviour of PROBE的直指目標的方式使得在特定情形下搜索可以深算到60-80步(Wilcox, 1988).

認知與描述

INTERIM.2在描述棋局時維護了許多數據結構。點狀態(黑、白或空)用以確定塊棋,塊棋的一個基本屬性是死活。INTERIM.2可以識別尖、關、 二間關、小飛、大飛等聯絡,聯絡又分爲普通聯絡、可能聯絡和死棋聯絡。聯絡的基本屬性包括它們是否能連接或切斷,是否與對方聯絡交叉,及建立聯絡的原因,還可識別盤邊四線以內的特殊聯絡。分界線即長距離的聯絡用於棋形評估及着手選擇,不可能被切斷的幾塊棋可以認爲是成塊棋形,而相互聯絡的塊棋稱爲棋塊,由塊棋、塊棋聯絡及盤邊圍成的包含空點和對方死子的區域稱爲封閉區域。着手的動機也記錄下來以增強選擇水平並便於調試。

效果是根據Ryder算法傳播的,Reitman和Wilcox發現在某些形勢下效果可能是一種誤導,所以改進了效果的概念。大塊的同號值效果區域結構中並沒有包含聯絡信息,其邊界是通過效果傳播的收縮形成的,在此過程中沒有考慮棋子及其連接的屬性,因此區域確定的最終結果可能是弧形的或帶狀的。獨立的區域結構最後又合併成爲效果塊,在效果塊中越處於中心位置越有可能成爲實地。

在INTERIM.2中Reitman和Wilcox建立維護的棋局描述,即認知與數據結構有時也稱認知表達,在INTERIM.2程序中使用的兩個認知元素特別有趣,其一是網格,用於確定由棋子效果形成的區域,另一是透鏡,用於通過程序本身的模式庫確定棋局中的實際棋形。

網格是圍繞棋塊建立的氣數圈,向外發散最高可達9層,到其他棋子爲止,不論是哪一方的。棋子之間的聯絡或棋子與盤邊的聯繫(最多距離3點)也可以終止網格。最外層的網格點構成其邊界,網格邊界對於識別可能的攻擊來自何處、在何處可以躲避攻擊、周圍己方棋塊的位置、如何斷開聯絡等。

Reitman和Wilcox認爲,局部棋形及行棋次序是圍棋的一個基本方面,優秀的棋手掌握各種普通棋形的行棋次序,如聯絡的攻防等。透鏡就是設計用以此類的模式庫。

透鏡包括幾個域,每個域都包含某個次序的着手及其估值,提供被推薦着手的相關信息和戰術的全局信息。當某個域識別到一個棋形後,就向透鏡提供推薦着手及相關信息,否則就被忽略以節省時間,這樣使得透鏡可以聚焦。

性能

INTERIM.2程序的3個對局結果在Reitman & Wilcox (1978)中發表,其中兩局分別戰勝了22級和34級棋手,一局輸給了一位4級棋手,由此計算得出INTERIM.2程序的級位爲27級。

Reitman和Wilcox對INTERIM.2程序首次模擬人類對弈的結果非常滿意。它弈得較爲保守,防守多於攻擊,它防守得很好,除了程序錯誤外唯一被喫棋的情況是幾塊棋同時被攻擊的時候。

4.1.4 其他學術著作

下面列出了一些使用圍棋作爲對象的學術著作,它們都屬於高層次的,一般沒有提供關於圍棋編程的細節問題。

Lehner

Paul Lehner是Wilcox的學生,他在圍棋戰略規劃領域獲取了科學博士學位(Lehner, 1981) ,他的著作是Wilcox曾發現這在圍棋棋手中經常表現出的基於替代搜索(Kerwin and Wilcox, 1973)。

替代搜索可以通過檢查許多可能的次序中的一個而提供其戰略全貌。Lehner的結論顯示替代搜索不僅足以能夠評估戰略規劃,還可以快速地淘汰不適當的規劃,他發現應用替代搜索可以減少精確計算體系中必須的搜索層數。

Stoutamire

David Stoutamire (1991)以圍棋爲對象研究機器學習,是通過專家知識庫獲取着手選擇而不是運用圍棋戰術/戰略知識組合。Stoutamire接着開發了一種名爲模式優先的分類技術以自動獲取好棋的模式表達;由於模式庫呈指數增長,還開發的一個補救程序在內存需求增加時降級處理。

Sander

爲避免由於使用搜索樹評估和選擇着手帶來的指數爆炸,Peter Sander (1979)用自頂而下或目標導向的組織結構設計了一個選擇着手的程序。Sander的程序名爲Kyu,創建了一個隨棋局進展變化的自底向上的組織結構,將戰略簡化爲目標,並據此選擇着手。Kyu只能從開局走到25手,且沒有後續的計算邏輯。

Kyu的數據結構是基於塊棋、棋塊和棋勢的聯絡記錄,從棋盤上的任意點都可以訪問其所屬或影響的塊棋、棋塊和棋勢。在每個棋步之後,數據結構就相應改變,這種改變是從低到高的,即從點到塊、從塊到羣再從羣到勢。

Kyu中引用的結構是Sander根據多層結構數據表達和分層組織規劃系統綜合得到的,將戰略與目標緊密地相結合,他還認爲這樣的結構也可以應用在圍棋以外的各種對象。

Friedenbach

Kenneth Friedenbach以圍棋爲對象研究感覺和認知在解決複雜問題中的交互作用(Friedenbach, 1988),他基於圖論將層次抽象化並應用於圍棋。他之所以使用圍棋作爲研究對象是因爲其理念與多層組織相關。

Friedenbach的感覺-認知模型包括三個部分,首先是包含五層的靜態組織:棋盤點、同類點塊、相關塊羣、鬆散羣(勢)和全局的屬性摘要;其次是對由於棋局進展而產生的結構變化的分析層次;最後是各種分析的綜合考慮。

需要執行四種類型的分析,戰術安全分析在塊棋層次運行,涉及塊棋的攻防;戰略安全分析涉及棋塊的攻防,包括眼位和聯絡的分析;戰略發展分析在棋塊層次運行,涉及開放區域、均衡衡量、新棋塊以及棋塊的合併;全局均衡分析是所有分析的最高層次,設計棋局整體戰略。

Friedenbach用三種條件規定一個分析:啓動條件、終止條件和繼續條件。以戰術分析爲例,其啓動條件是有一少於三氣的塊棋,終止條件是所有塊棋都至少有三氣;其繼續條件包括打喫提子和防守方的新增棋子,在分析過程中如果一個着手導致了氣數的變化,則需要重新分析。

4.2 程序

以下給出了關於目前圍棋程序中可獲取的細節資料的部分,其他的將在第6章列出。


4.2.1 The Many Faces of Go

The Many Faces of Go (MFG)是目前最好的商業圍棋程序之一。David Fotland從1981年起開始利用業餘時間編程圍棋並於1990年發表了MFG。Fotland此後還不斷的改進MFG並在電腦圍棋郵件列表中經常就電腦圍棋編程和MFG發表論題。MFG發展爲兩個著名的程序:G2和Cosmos。
 

4.2.1.1 G2

Fotland的第一個圍棋程序使用輻射效果函數確定邊界。不幸的是,它很容易被一個簡單的收氣算法所擊敗,於是他又設計了G2。G2的內部結構分爲數據結構、戰術分析和着手選擇(Fotland, 1986)。G2使用了全盤考慮逐一評估有效着手並側重戰略部署,最後選擇最高估值的着手。

數據結構

G2中的大多數代碼是用來更新數據結構,棋子佔據點(稱格)並組織成塊棋(稱羣)最後形成棋塊(稱大羣)。數據與盤上每點相聯繫,包括到最近縱橫邊界的距離、鄰接點和對角點列表、塊棋指針、氣數及其列表、鄰接點棋子顏色(黑、白或混合)、效果函數以及各個方向的最近鄰接點。

在縱橫方向上互相鄰接的同色棋子構成塊棋,塊棋包括顏色、氣數和列表、鄰接列表、鄰接的對方塊棋列表、所在大羣及其自由度(以下介紹)。

G2識別的聯絡棋形包括單關、二間關、尖和小飛,聯絡數據包括其所屬塊棋、顏色、位置和狀態。

棋塊包括又不可分割的聯絡組成,或是同時與對方的死棋鄰接的塊棋,棋塊數據包括其組成塊棋、對方死塊棋、棋子數目和氣數、眼數以及自由度。

戰術分析

戰術分析評估棋盤位置以給出選擇着手,每個棋塊都有一個自由度並由其組成塊棋繼承。G2的棋力主要是由戰術分析決定的而Fotland也在此花費了最大的精力(Fotland 1986)。由於程序的大多數時間花費在戰術分析中,所以搜索樹的修剪需要既快速又有效。

自由度由一個多層處理獲得:可被提塊棋識別爲死棋;由眼位識別器識別眼位;識別不可分割聯絡;聯絡的塊棋識別爲棋塊;由邊界識別器識別邊界;由死活識別器給出自由度。

戰術分析檢查每一個五氣以下的塊棋確定其死活,五氣以上的塊棋被認爲是活的。在計算中推薦有趣的着手以確定塊棋狀態。有趣的攻擊着手包括可長氣收氣的着手,有趣的防守着手包括尖入未定區域、單關、長、連接等。

有趣着手被啓發估值,最高值選爲進一步分析,作爲假定應手後以對方的視角評估全局。同樣,又選出最佳着手假定,在每一步都使用回溯和最大-最小過程修剪。因此要建立一個先深搜索樹直至棋塊被確定死活,搜索樹深度最多可達80手,使得徵子可以精確地計算出。“最佳”着手數(1到3個)取決於當前着手在搜索樹上的深度:在樹根附近多在樹葉附近少。由於其終止節點的取值只有兩種(喫住或逃跑),所以最大-最小過程修剪非常有效(Fotland, 1996)。

眼位分析器用以維護關於眼、半眼(一手可成眼)和準眼(兩手可成眼)等通過評價眼位得到的信息。G2能識別一些基本死形和基本的眼形如直三、方四、梅花五、丁四、曲四等。

棋塊是由不可分割聯絡的塊棋組成的,戰術分析器試圖切斷其聯絡以測試其強弱。死棋也可以作爲活棋的連接。

邊界分析器確定邊界。G2可確定封閉區域以及接近盤邊的不完全封閉區域。在盤邊,棋子與盤邊或者聯絡與盤邊都可以構成區域,這樣的棋形一般出現在盤邊的四線以內。

死活分析器分析每一個棋塊。棋塊的自由度由它的氣數、眼位、所控制的區域、是否沿盤邊延伸、大小、是否與對方塊棋接觸、是否完全被包圍等條件決定。自由度本身有20級包括“兩眼”、“大眼可成兩眼”、“未確定”、“無足夠眼位”和“無法做兩眼”。

着手選擇器

使用含65條規則的戰略評估器通過兩步估值選擇着手。第一步先評估戰略着手,第二步評估所有着手。數據結構和戰術分析的信息在這兩步中都用來評估棋局。Fotland 感到由於數據結構的弱點使得G2在這方面也是弱點(Fotland, 1986)。

那些規則可以提供戰略着手如在空角落子、做shimari或kakari、joseki着手、從盤邊擴展、打入、接觸戰鬥、分割、切斷、聯絡、攻擊打入、打劫。

在第一步,要評估所有推薦的戰略着手。假定落子後評估戰略着手的棋局結果,評估過程包括對盤點的賦值並將其彙總返回。盤點的估值由控制它的塊棋的自由度決定。如果戰略着手的棋局評估不能滿足戰略目標,此着手即被忽略。

在第二步,包括第一步中已考慮的着手在內的所有着手都被進一步分析。其評估值由盤中各塊棋所控制區域的自由度、大小和數量決定。

在兩步中均被考慮的着手,其估值累加,最後得分最高的被G2選擇爲下一手。

大小、性能和時間限制

在1981和1988年間Fotland花費了將近四年的業餘時間編寫G2,由於計算機的速度不能滿足更強的圍棋程序的需要,他終止了幾年在G2上的工作(Fotland, 1996)。G2大約有11000行C代碼佔用了700k左右的代碼和數據內存。在此期間,Fotland的圍棋水平由15級增強到1段。G2大致水平爲25-20段,不費太大力氣就可以戰勝初學者(Fotland, 1986)。Fotland在電腦圍棋比賽中也獲得成功,G21997年在臺灣世界電腦圍棋比賽中排名第四、在美國電腦圍棋冠軍賽中獲得第一。

 

4.2.1.2 Cosmos

Fotland converted G2 into Cosmos in 1988. The main difference between Cosmos and G2 was that instead of evaluating all legal moves, only suggested moves were evaluated. This transition was achieved by increasing the number of move suggestors to over 250. Quiescent search was added and the connection, eye, and territory evaluations were made more accurate (Fotland, 1996).

Data Structures

The data structures used in Comos were basically the same as those used in G2. The eye information included the number of eyes achievable in gote, the number of eyes achievable in sente, the number of eyes achievable if the opponent moved twice, a list of vital points, and eye type. The information contained in the data structures was updated either incrementally (e.g., lists of liberties) or after every move (e.g., influence).

Tactician

Essentially, Cosmos had the same tactician as G2 but better move generation and sorting. In Cosmos, the tactician was only used to determine dead and threatened strings by trying to capture them. Its parameters were maximum liberty count, maximum, depth, and maximum search size. The maximum liberty count was 4, and therefore as for G2, strings with more than 4 liberties were assumed to avoid capture.The maximum depth allowed was 100. The search size determined the playing level (Stoutamire, 1991) and since forcing moves were not counted, ladders could be accurately read even at low playing levels.

Influence Function

Territory was determined by radiating positive influence from alive groups and negative influence from dead groups. Radiated influence did not pass through stones or connections and was inversely proportional to distance.

Board Evaluation

Life and death of groups was the primary concern dealt with by the evaluation process. Board positions were evaluated by a similar process to that used in G2 with the addition of quiescent search.

The tactician was used to determine dead and threatened strings (those that could be captured if they moved second) and whether the stones at the diagonal of eyes could be captured. This information was useful in identifying unbreakable connections and forming strings into groups.

Eyes were analysed to determine their potential and then allocated to groups. False eyes were identified by checking the diagonals of eyes and some dead shapes were also known by Cosmos. Any group with enough eyespace to make two eyes was considered to be alive. Potential eye space could be gained by extensions along the edge, possible connections, being adjacent to a threatened enemy group, and by controlling territory which was not already considered to be an eye.

There were 25 values that described a groups strength in terms of its life and death status. The values were divided into five main categories which included very alive, alive, unsettled, weak and dead. Determining the strength of a group included considering potential connections, potential eyes, and potential extensions along the edge. Positive influence was radiated from alive groups and negative influence was radiated from dead groups with black and white influence being maintained separately.

Weak groups which were contacted by the influence from friendly alive groups were considered not to be surrounded. Weak groups were further divided into those that could run and fight and those which would almost certainly die.

In general, board points were scored according to the radiated influence values. However, occupied board points, board points adjacent to a stone and board points between a stone and an edge were scored differently. Unsettled groups were scored according to who as to play next.

Move Selection

Cosmos had over 250 rules that suggested moves which included fuseki moves (including shimari, kakari and joseki moves), edge moves, playing in the centre, playing safe when ahead of opponent, "squirming" around when behind opponent, pattern matching, saving weak friendly groups (including making eyes, running, or fighting semeais), killing weak enemy groups, cutting, connecting, contact fights, ko threats, and filling dame. Cosmos had a joseki library which contained around 5000 suggested joseki moves and a pattern database which had 60 patterns which were 5 x 5 in size. Whenever a match was made, the rule (code) associated with the pattern was applied (executed) and would then suggest a move. The addition of extra moves to be suggested could easily be accomplished by the addition of new move suggestor rules or the addition of patterns.

The rules would supply a guess value (probable evaluation of the move), bonus value, minimum aliveness value, and would indicate which groups were being attacked or defended if any. The moves were sorted by their guess values and, depending on playing level, a certain number were "played". Moves could be rejected before being evaluated if they did not "apply". A move applied if it accomplished what it was intended to do: if a move was intended to defend a group and the group ended up weaker than it started the move was rejected. Surviving moves were awarded a sente bonus if they achieved sente. The position resulting from the move was then evaluated. The evaluation score, the sente bonus and the rule bonus were summed together and the highest scoring move was selected as the next move.

Size, Performance and Timeline

It took Fotland nine months to compress G2 down to 512 k and add a new user interface. In 1988 Cosmos was released by Ishi Press for IBM-PC as Cosmos, The Computer Go Partner and was released a second time in 1989. Due to the amount of time spent on the user interface, Fotland was unable to devote sufficient time to improving Cosmos' playing level and its performance in various world computer Go championships was modest coming 8th in 1988 and 7th in 1989 (Fotland, 1996).


 

4.2.1.3 Many Faces of Go

After a rewrite of the user interface and addition of professional graphics and new features, Cosmos was released as The Many Faces of Go in 1990. Additions to MFG included a limited full board lookahead capability, consideration of the value of sente, and a strategy function which is used to focus attention on the important areas of the board and to identify urgent moves. The number of patterns in both the joseki and pattern databases were increased. The pattern database was also improved by increasing the pattern size from 5x5 to 8x8, by storing many suggested moves for each pattern in a move tree (rather than just one per pattern as for Cosmos), and by a complete rewrite which encompassed algorithms, code, and data structures and lead to an increase in speed (Fotland, 1996).

Data Structures

The dynamic data describing a board position is stored in three classes of data structures: incremental, locally recalculated, and globally recalculated. The data in the incremental data structures is updated upon addition or removal of a stone and includes low level information such as lists of empty points, number of liberties etc. Locally recalculated data is updated as it is needed i.e., it is only updated for regions of the board which have been affected by a particular move or move sequence, and includes connection strength, and eyes. Globally recalculated data is updated for the whole board and includes group strength and influence. The locally and globally recalculated data structures are maintained by the evaluation function.

The dynamic data is stored globally and is generated progressively in several passes of increasing abstraction. The dynamic data used in MFG includes point environment, string data, connection data, eye data, potential eye data, group data, territory, and score.

An instance of the connection data structure stores information pertaining to connectivity between two strings. Each connection has a list connection points i.e., a liberty of one string which is no more than three points away from the other string. Thus, the connection recognised by MFG include hane, one point jump (ikken tobi), knights move (kogeima), two point jump (nikken tobi), large knights move (ogeima), three point jump, and bent three point. Other special connections near the board edge are handled through the pattern database. The data stored in the connection data structure includes the strings involved in the connection(s), the number of and lists of one, two and three point connections (i.e., as measured from the connection points), the type of each connection, and the strength of each connection (e.g., already cut, cuttable, shared connection, connected with aji, connected solidly). Other than the type and strength data which is stored in a locally recalculated data structure, the connection data is stored in an incremental data structure.

The eye data structure records information pertaining to either a block of empty point or dead enemy strings which are partially or completely enclosed by friendly stones. Data stored in the eye data structure includes colour, a list of the points in the eye, vital points, and eye type (e.g., one point, two point, line eye, big eye, and dead group eye). The number of eyes (to a resolution of 1/8 of an eye) achievable under various conditions were recorded including the number of eyes if opponent moves twice, number of eyes if opponent moves next, and number of eyes if program moves next. A board point can only be recorded as belonging to one eye. The eye data structure is a locally recalculated data structure since eye data does not lend itself to incremental update. In hindsight, Fotland says that a pattern based approach to recognizing eyes would be preferable (Fotland, 1993).

The evaluation of group strength and the generation of attacking and defending moves involves identifying potential eye space and running points. The potential eye data structure contains type, value and location data for potential eyes. An examples of data stored in the potential eye data structure is "extend along edge" (type), value is number of new points of eye space, and location is the liberty to extend from. Running points are stored by type (e.g., running towards friendly/unfriendly stones) in several different lists. Potential eyes and running points are stored in a globally recalculated data structure.

Tactician

Every string with three or less liberties and many strings with four liberties are read by the tactician. Each string is read twice, once with White moving first and once with Black moving first. The tactician determines whether a string is captured (i.e., can not live even if it moves first), threatened (i.e., it lives if it moves first and dies if it moves second), or stable (i.e., lives regardless of who moves next). The tactician relies on simple heuristics concerned with the number of liberties and connectivity; pattern matching is not used in the tactician.

The tactician has two separate move generators; one to generate attacking moves and one to generate defensive moves. The moves suggested by the move generators are sorted according to criteria which include second order liberties, cut points, and simple eye shapes. Once sorted, an alpha-beta depth-first search is employed with the performance of the search depending on the quality of the move sorting (Fotland, cgm1 5 Mar. 1993).

Tactical searches are goal directed and are limited to a maximum number of nodes. For string captures this is around 100, however, when only one move is suggested, it is not counted towards the node limit. In this way, ladders can be read without problems (Fotland, cgm1 14 Oct. 1993). The number of nodes for a search are allocated to the branches according to the value given to the moves by the first ply move generator and thus different branches may end at different depths. The branching factor at each successive ply is progressively constrained by the tactician. The branching factor falls from five at the first ply to one or two by the fifth ply.

Since the data structures in MFG are separated into incremental, locally recalculated and globally recalculated, low level local tactical searches can be executed quickly by only updating the incremental data structures. However, the possible goals of such a search are limited since the high level data structures are not recalculated. It is not possible, for example, for MFG to search for x liberties and two eyes (Fotland, cgm1 3 Nov. 1993).

The tactician is used to read connections and eyes. A cutting stone can be examined by the tactician to determine whether or not it will be captured. Stones on the diagonal of eyes can be examined to determine whether they can be captured. These types of search do not exceed around 12 ply since the program actually plays worse if more plies are considered (Fotland, 1996).

MFG uses caching to reduce the amount of time spent reading. Since strings are read twice, tactical results related to eyes, capture or threat, and cuts are cached rather than re-evaluated. Life and death analysis are cached as trees since they are smaller than the trees which would result from tactical searches (Fotland, cgm4 16 Aug. 1994).

Influence Function

The influence function radiates influence which is inversely proportional to distance. Influence is radiated to a fixed maximum distance of nine although when lower playing levels are chosen, the distance is smaller. Stones and connection impede the radiation of influence. Black and White influence are radiated separately (i.e, they are not summed together to give a single value for each board point) so that their relative values can be compared. Dead stones radiate negative influence and thus, since Black and White influence is maintained separately, dead stones reduce their own influence rather than increase their opponents influence. The initial influence value radiated from a stone depends on its strength.

Influence is not used to determine group connectivity. The use of influence in MFG includes determining thickness and territory, identifying surrounded groups, and generating moyo building or reducing moves. Another way in which influence is used is to determine a group's running ability. A group's ability to run towards a liberty depends on the relative values of friendly and unfriendly influence nearby. The sum of a group's ability to run toward each of its liberties determines its running ability whilst the gradient of the influence determines the direction in which it should run.

Evaluation

Board positions are evaluated in a multiple pass process. The evaluation function consists of many components which include the tactical analyser and evaluators for connections, eyes, group strength, and territory. A score for the position being evaluated is achieved by assigning a value between -50 and +50 to each board point to indicate the level of Black or White control exerted on them. The overall score for the board position is the sum of these values for each board point.

In order to try and overcome the difficulties associated with the horizon effect, Fotland chose to use quiescent search rather than modify the evaluation function. In quiescent search, positions are evaluated when they become quiet rather than when they are in a state of flux (e.g., such as in the middle of a piece exchange in chess). Positions which are not quiet are characterised by oscillations in the evaluation values returned for successive moves which makes it difficult to make good decisions based on the evaluations. MFG uses quiescent search as part of the evaluation function for full board evaluation to overcome this problem by either calling itself recursively (i.e., generating further moves) until a position becomes quiet or by using patterns suggested as obvious local answers to make the position quiet. MFG will generate up to six plies of moves in a quiescent search which improves its performance by up to four stones (Fotland, cgm1 30 Sep. 1993).

Move Suggestion

Moves are suggested by a rule-based expert system and include fuseki (e.g. shimari, kakari, and joseki moves), moves on the edge (e.g., invasions and extensions), playing in the centre, conservative play when ahead, risky play when behind, pattern matching (e.g., cutting and connecting, surrounding and escaping, invasion and defence, endgame, killing and saving groups, and shape-based moves), group defensive moves (e.g., making eyes, running, and fighting semeais), contact fights (e.g., blocking, extending for liberties, and hane), ko threats, and dame.

A limited form of full board lookahead is achieved by storing move sequences in the pattern and joseki databases. Move sequences attached to patterns in the pattern and joseki databases are played onto the board and evaluated at their endpoints. Thus if a particular joseki is suggested as appropriate, the stones in that sequence are played and the resulting board position is evaluated. This enables MFG to "play" to the end of a lookahead sequence and minimax the score returned by the evaluation function for the resulting board position.

Pattern Database

Each pattern in the pattern database has a a move tree associated with it. The pattern database contains around 1200 patterns of size 8x8 and around 6900 suggested moves with the average number of moves stored for each pattern being about 5.

Each point in a pattern is marked as black, white, empty, white or empty, black or empty, black or white, or anything (i.e., do not care). Patterns are categorised according to whether they are in the middle of the board or whether they contain edges and/or corners.

A successful match of a pattern depends on both matching the stones in the pattern with those on the board and matching any attributes associated with the pattern. Each pattern has as many as 10 attributes which pertain to stones and include whether they were dead or alive, minimum number of liberties, and connectivity between stones.

To match over a 1000 patterns on a 19x19 board in 16 different orientations requires around 3 million primitive operations. Since performance is a big issue, the patterns are compiled into a bit array which facilitates fast bit-parallel comparisons. By using an 8-bit hash function and bit-wise operations, the number of primitive operations is reduced to around 350000. This number of operations still takes enough time to make it too expensive to match all patterns more than once per move.

Patterns from the pattern database are evaluated after being played on the board in their entirety i.e., they are evaluated at the endpoints of their move trees. A small subset of patterns are used to read local sequences based on shape. Fotland has recently begun evaluating the strength of one point jump connection using patterns (Fotland, 1996).

A fast pattern matcher is necessary for a strong Go program according to Fotland. Pattern matching can be used to suggest and sort moves, and to classify connections and eyes. Reading is employed to determine whether eyes are false. Pattern matching on its own is not adequate for life and death and group strength determination (Fotland, cgm1 8 Apr. 1993). The eye and connection patterns are hand coded decision trees.

One method that Fotland tried to increase the number of patterns in the pattern database was to take them from professional games.When replaying a professional game, if MFG didn't consider the move played by a professional or the move played was low on the suggestion list, Fotland would manually cut-and-paste an 8x8 section from the game into the pattern database using a self-written graphics pattern database editor. Fotland discontinued this method since most of the missed moves were tactical (i.e., based on read-out not shape) or depended on a larger context than the 8x8 section that was placed in the pattern database. Fotland found that the cut-and-paste approach to patterns was more profitable from even games played on the IGS (Fotland, cgm1 13 Jan. 1994).

Joseki Database

The joseki database contains around 45000 moves. Joseki sequences are stored as directed acyclic graphs (i.e., they contain no loops) having empty corners at their roots. Moves in a joseki sequence can be one of several types including urgent, complex, trick, and bad. The urgent move have priority whilst the complex and trick moves are only played if MFG is behind. The bad moves are not for the program to play, rather they are used by the program to know how to respond to bad moves played by its opponent.

Joseki patterns are evaluated by being played on the board in their entirety and evaluating the resulting board position. MFG selects joseki sequences that are appropriate given the status of the other corners (Fotland, 1993).

Strategy

A strategy function is used to focus attention on important areas of the board before each move (Fotland, 1993). The dynamic data is examined to determine what phase the game is in, the relative score, the value of taking sente, and whether there are any urgent offensive or defensive moves that need to be made.

Urgent offensive and defensive moves are examined initially and if sufficiently urgent are played without any further considerations. Urgent moves can be suggested by the pattern matcher or by examination of groups which are determined to need urgent attention. Friendly groups which need urgent defence include big groups and cutting groups. Opposition groups which need urgent attack include big groups, cutting groups, and groups adjacent to friendly groups needing urgent defence.

Move suggestion is affected by the phase that the game is in. Certain rules will only fire in certain phases of the game. The fuseki phase lasts until joseki sequences have been pursued in all the corners. The middle game lasts until at least move 120 and MFG enters the end game when there are no unsettled groups on the board. Transition between middle game and end game phases may occur many times during a game.

The types of moves suggested are also affected by the relative score. MFG plays more conservatively when it is far ahead of its opponent and makes unsound invasions when it is far behind its opponent. The relative score is classified into many states including "way ahead" (over 40 points), "ahead (20 - 40 points), "about even", "behind" (over 10 points), and "way behind" (over 20 points).

Move Selection

Since the evaluation function is very slow (Fotland, cgm4 16 Aug. 1994), a limit is placed on the number of full board evaluations which can be performed each move depending on the playing level. MFG can only look at 5 to 10 moves in detail (depending on playing level) before selecting the move it finally plays. A safeguard against errors in the evaluation function is that only reasonable moves are suggested for full board evaluation (Fotland, 1993).

By employing the strategy function, the move suggestion expert system, and the joseki and pattern databases, MFG fully examines a small number of moves, playing the one which receives the highest score from the evaluation function.

The score returned from a full board evaluation is also modified by the addition of sente if applicable. Thus if MFG plays a sente move, the value of sente is added to the evaluation for the resulting position. The value of sente varies from 7 points during the fuseki to 1 or 2 points in the endgame and is determined by the strategy function.

Size, Performance and Timeline

With some help from Ishi Press and a professional artist, Fotland rewrote Cosmos' user interface and released it as MFG in 1990. Until the present time (July 1996), MFG has had 3 releases with various improvements. MFG contains around 40000 lines of C code with around another 20000 lines of user interface code.

MFG has performed well in various world computer Go championships including 4th in 1993, 2nd in 1994, and 3rd in 1995. According to Fotland, MFG gains about one stone in strength each year (Fotland, 1996). MFG plays on both the IGS and the NNGS as ManyFaces. MFG participates in the NNGS rating scheme and was rated 9 kyu (as at July 1996). It was also awarded an 8 kyu diploma from the Nihon Ki-in in Japan based on its performance against a 1 dan amateur at 9 stones and a sample play against a professional in September 1995 (Fotland, 1996).


 

4.2.2 Go4++

Micheal Reiss started writing Go programs in 1983 and his current program, Go4++, has evolved from various predecessors over that time. Reiss has met with some success in computer Go competitions and Go4++ came 2nd in both the 1st and 2nd FOST cups.

Reiss' programming philosophy is to use simple algorithms on a large amount of data rather than complex algorithms on a small amount of data. Go4++ calculates everything from first principles; complex concepts are calculated from simpler concepts which are in turn functions of even simpler concepts. Thus, Go4++ does not have an elaborate rule-based expert system at its core. A positive consequence of this approach is that Reiss' relatively weak ranking (2 kyu) compared to other top Go programmers is not a deficit. It also means that Go4++ usually responds well to the strange moves (by human standards) that are quite often played by computer Go programs and which are difficult to foresee when designing a rule-based system. The major drawback of this approach is that it is computation intensive and requires a powerful computer.

At the foundation of Go4++ is a massive amount of connectivity data from which almost everything else is eventually derived. Go4++ selects a move by first generating about 50 candidate moves that are analyzed by an evaluation function which estimates territory. The move scoring the highest evaluation is played as the next move. Thus, Go4++ uses 1 ply global lookahead although tactical lookahead and search is used in evaluating each move.

 

4.2.2.1 Candidate Move Generation

Candidate moves are generated by a process of pattern matching to determine the best 50 moves to examine in depth. Go4++ has around 15 high level patterns which include terms for the probability of an eye, safety, and territorial value. Whenever a match is made, the board point(s) suggested as good places to play have an appropriate value added to them. The 50 highest scoring board points are then examined by the evaluation function. The board point which receives the highest score from the evaluation function is played as the next move.

In some circumstances, Go4++ effectively evaluates more than 50 candidate moves per turn. Pattern matching is not applied to regions of the board where the stone safety (see Stone Safety in section 4.2.2.2) and territory (see Territory in section 4.2.2.2) do not differ from those of the previous move. Thus after evaluating the 50 highest scoring board points after pattern matching, the next move is selected from the combined set of evaluation scores of the 50 board points just considered and the evaluation scores of any board points in the undisturbed regions which were considered during the selection of the previous move.

 

4.2.2.2 Evaluation Function

The evaluation function is a six step process: 1. a connectivity probability map is generated, 2. groups are determined, 3. eye space is determined from which individual eyes are identified, 4. the safety of each stone is determined, 5. a radiation function combines the stone safety data and connectivity probability map to radiate safety to empty points, and 6. territory is determined. Reiss describes the evaluation function as pessimistic since whenever it is applicable, the evaluation function considers that the opponent is the next to move.

Connectivity Probability Map

Each time a hypothetical move is played on the board, a connectivity probability map for all friendly and opponent stones (including the hypothetical stone) is generated and stored. The connectivity probability map for a stone contains the probability of connecting to nearby friendly stones already on the board or to an empty point if it was occupied by a friendly stone. Stones and empty points which can be reached directly (nobi), by a diagonal move (kosumi link), a one point jump (ikken-tobi link), a two point jump (nikken-tobi link), a small knight's move (kogeima link), or a large knight's move (ogeima link) are examined (total of 32 possible points).

The probability of connecting two stones is calculated empirically by playing out the sequences of moves needed to determine whether the stones can be connected or whether the opponent can cut them. This process requires the use of lookahead, particularly when ladders are generated by cutting moves (e.g., cutting a kogeima link generates two ladders, one for each cutting point). If all possible cutting stones are captured, then the probability of connection is 100%. However, if the cutting stones can not be captured, a hand-tuned algorithm estimates the connection probability.

A massive amount of data is generated in calculating the probability map for each stone on the board for every hypothetical stone being evaluated. The process is very computationally expensive and requires a powerful computer (Go4++ currently runs on a Pentium-Pro 200).

Group Determination

Stones and strings are catalogued into groups: any stones which are 100% connected are considered groups. A tactical search on all strings with less than 4 liberties is used to determine which strings are definitely dead. Dead strings are not included as part of any group.

Eye Identification

Identifying eyes is achieved in a two step process: 1. eye space is determined, and 2. individual eyes are identified from the eye space.

A floodfill type algorithm is used to identify contiguous regions in which opponent connectivity probability is low. Points in those regions whose 8 neighbouring points are mostly clear of opponent connectivity probability are considered to be eye space.

Individual eyes within a groups eye space are identified by shape. There are several grades of eyes with the grade being a function of the opponent's connectivity map. Eyes with a grade above a certain level (see Stone Safety below) are considered to be true eyes.

Stone Safety

The safety of each group is determined by the number of true eyes it has. The safety process is repeated 5 times; each successive pass is more pessimistic about which points will eventually become true eyes (i.e., the threshold is raised for selecting which grade of eyes will eventually become true eyes). The final safety value for a group is the average of its safety scores on each of the 5 passes.

Radiation Function

The safety value for each stone is radiated to the nearby empty points in proportion to the connectivity probability map for that stone. The inverse of a stones safety (100% - safety) is radiated in the same manner and contributes to the opponents radiated value i.e., dead stones radiated full opponent safety. Black and white radiation (including inverse radiation) is summed at each empty point.

Territory

Black and white territory is estimated from the radiation values of the empty points. The difference between black and white territory is returned as the evaluation of the hypothetical move for which it was generated.

 

4.2.2.3 Performance and Timeline

Reiss' Go skill has progressed from 10kyu in 1987 to 4 kyu in 1992 to 2 kyu in 1996. Reiss has programmed full-time on Go4++ for about the last year (1996) and also programmed full-time for one and a half years around 1986. Other than for these two periods since starting Go programming in 1983, Reiss has programmed part-time with the most effort usually expended in the two months leading up to a competition.

There have been many commercial releases of Reiss' programs by Oxford Softworks with another soon to follow. Notable releases have been Go Player Professional and an updated windows version, Go Professional II, released in Japan.

Reiss characterized Go4++ as the weakest of the current strong programs at tactical situations requiring life and death analysis although it is good at creating moyos and gaining territory in the middle and endgame. Since Go4++ tends to play well in the centre of the board, Prof. Chen played 200 games against Go4++ in an attempt to test modifications to Handtalk which were designed at playing better in the centre.

According to Reiss, other weaknesses are the absence of global lookahead, lack of a concept of "shape", and the reluctance of Go4++ to invade. Since the evaluation function pessimistically considers that the opponent moves next during tactical searches, Go4++ does not usually evaluate the likelihood of invading stones forming eyes as being favourable. To compensate for not invading well, Go4++ always plays it first move at the 3,3 point and also tries to live in as many places as possible to stop its opponent creating moyos early.

Reiss uses many empirically hand-tuned algorithms within Go4++ although no learning algorithms are used. Carefully crafted changes to these algorithms can improve the strength of Go4++ e.g., by making the connection algorithm more accurate, eye and territory evaluation also become more accurate, resulting in an increase in playing strength. Before the 2nd FOST Cup in 1996, Reiss tuned the performance of Go4++ by playing 700 test games against Handtalk, resulting in Handtalk's only defeat during that competition.


 

4.2.3 Handtalk

Handtalk has been one of the strongest programs in recent years and is written by Zhixing Chen, a Chinese professor from the University of Guangzhou. Although Handtalk becomes stronger each year and was awarded a 4 kyu diploma by the Nihon Kiin in 1996, Prof. Chen does not believe that Go programs will reach shodan by 2000 if shodan is taken at its international level (2 - 3 dan Japanese).

Details of the architecture and algorithms used by Prof. Chen are not abundantly available. Some of the details which have emerged from discussions that various people have had with Prof.Chen at various competitions are provided below.

Handtalk is written completely in IBM-PC assembly language and is very small (around 250k) and very fast. Only a very small number (around 4) candidate moves are evaluated using a static evaluation function which seems to be accurate and stable. Handtalk also uses an influence function whose influence decreases as 1/2^distance.

Handtalk does not use very much global search. Pattern matching is used to some extent although it is unclear whether the patterns are contained in a database or if the pattern matching is rule-based. Handtalk does not use joseki much and has only about 10% as many josekis as MFG.

According to Prof. Chen, Handtalk's strong points are its fighting, group safety estimation, ability to recognize life and death, the end game, and board evaluation. Other people have also commented on its strength at estimating a group's running ability, sense of shape, the middle game, and winning semeais. Prof. Chen characterizes its weaknesses as surrounding, ko, and attacking territory. Recent changes include fighting less often than in previous versions and an improvement in gaining territory in the centre which was achieved by testing alterations in around 200 games played against Go4++.

 

4.3 Computer Go Competitions

There are various computer Go competitions throughout the world including the United States Computer Go Championship, the North American Computer Go Championship, the Computer Go European Championship, and the International Go Contest. There is also a computer Go competition conducted as a part of the Computer Olympiads held in England.

%A cash prize of around $6000 is offered to the winning program in the World Computer Go Congress as well as the chance of challenging dan ranked junior opponents to win the Ing prize. The challenging program plays 3 junior players (ages 11 - 13) which are ranked around 3 to 6 dan.



 

4.3.1 The Ing Prize

%Acer Incorporated and the Ing Chang-Ki Wei-Chi (Go) Educational Foundation have been joint sponsors of the International Computer Go Congress since 1985 (Shih, 1989) and also sponsored the First Computer Olympiad in 1989. The three top contestants from the North American; European; and Japan and Asia-Pacific region are invited to the International Go Congress in Tapei. A prize of approximately $1.5 million US will be won by the programmer(s) of the first program to beat a nominated human competitor without handicap on a 19x19 board. This prize is known as the Ing prize.



5.0 圍棋程序的結構

6.0 當前程序的性能


6.1 程序之間的對抗


6.2 人機對抗

最強的圍棋程序對人的戰績大致爲8-13級,由於人可以調整棋風針對程序的弱點,所以給一個程序定級是很困難的,一個程序可能在最初的對局中只被5級棋手授4子,但幾局之後授子數就會增加到8到9個。

1994年世界電腦圍棋冠軍Go Intellect在對年青棋手的受14子對局中連敗三局,由於應氏規則允許讓子由下手自行擺放,這就意味着讓15子即由黑方(電腦)先下16手,再由白走。1991年世界電腦冠軍Goliath在對5段棋手的受15子比賽中三局全勝但在受14子對局中三局全敗。

7.0 今後在性能上的改進

8.0 Internet 上的圍棋與電腦圍棋資源

(本章摘自Accessing Go and Computer Go Resources on the Internet將發表於《the proceedings of the Second Games Programming Workshop in Japan》許多章節選自bsdserver.ucsf.edu/Go的README文件,由於站點的更新,不能保證其中所有部分都可訪問)

電腦圍棋領域的研究者和業餘設計圍棋程序的個人都可以從Internet相關資源中獲益,本章主要供電腦圍棋領域的研究者使用。

8.1 電腦圍棋相關的Internet資源

8.1.1 匿名FTP Archive和鏡像站點

主要的圍棋FTP archive站點及其鏡像都以匿名FTP方式免費提供相關的圍棋和電腦圍棋資料,Go目錄下的README文件一般包含其所有文件的簡要介紹。下面是一些子目錄名及其介紹。

aga             美國圍棋組織文件

clients         Internet 圍棋服務器客戶

comp            電腦圍棋編程
games           註解的棋局
igs             IGS棋局以Postscript或Smart-Go格式

info            普通文本文件信息

mgt             MGT程序,可讀寫Smart-Go文件

printing        用於打印棋局的程序

pro             未評論的職業對局

problems        圍棋問題,主要是關於Smart-Go格式 

prog            與圍棋相關的程序,但不是對弈的
comp目錄包括:
Amiga, Macintosh, IBM PC (DOS and Windows), Linux, and X windows公用程序

電腦圍棋郵件列表的Archives

電腦圍棋大全

電腦圍棋人物與程序

各種關於圍棋程序和電腦圍棋的報告、文章和論文

主站點
bsdserver.ucsf.edu/Go

鏡像站點
ftp.pasteur.fr/pub/Go
rzis1.rz.tu-bs.de/pub/go
igs.nuri.net/Go


8.1.2 Internet圍棋服務器(IGS)

The Internet Go Server (IGS) provides a means for people to play real-time interactive games of Go against other people or against Go programs over the internet. The IGS serves as a virtual Go club which is particularly useful for players who do not have local access to other Go players or a Go club.

First time users can login as "guest". Full access can be gained by registering for an account. Information about registering can be obtained by typing "help register". The help command provides information on how to use the interface. Once logged on to the IGS, you can play a game against another player, watch games in progress, or even comment on games in progress.

Interfacing to the IGS can be difficult and as a result, client programs have been written for various platforms e.g. Atari ST, Amiga, Macintosh, NeXT, MS Windows, IBM PC, Unix (ASCII) and X11.

Client programs available in the clients directory:
bsdserver.ucsf.edu/Go/clients/
 

Help on client programs:
www.well.com/user/mmcadams/igs.howto.html (follow the "getting software" link)
 

Help files on using the IGS:
bsdserver.ucsf.edu/Go/igs/igs_ug.ps.Z
bsdserver.ucsf.edu/Go/igs/igs_ug.txt.Z
bsdserver.ucsf.edu/Go/igs/igshelp.Z
www.well.com/user/mmcadams/igs.howto.html
ltiwww.epfl.ch/~warkent/go/etiquette/et.html

Telnet connection to the IGS:
igs.nuri.net:6969
hellspark.wharton.upenn.edu:6969
 


 

8.1.3 Game Record Formats

Several game record formats exist although currently the two most commonly used are Smart Go Format (SGF) and Ishi "Standard" Format. Information, executables, converters etc. related to game record formats can be found in the info, mgt and prog directories of the FTP archive sites.

bsdserver.ucsf.edu/Go/info/
bsdserver.ucsf.edu/Go/mgt/
bsdserver.ucsf.edu/Go/prog/
www.cwi.nl/~jansteen/go/games/SGF/sgf.html


8.1.4 電腦圍棋郵件列表

電腦圍棋郵件列表專門爲編程圍棋和相關論文使用,發向此地址的E-mail將轉發到它的成員。

許多在電腦圍棋領域從事研究或編程的個人都在其中探討問題,其問題從抽象到具體,是啓發思維的好地方。

電腦圍棋郵件列表可通過發e-mail到以下地址加入
[email protected]

過去的信息archive
bsdserver.ucsf.edu:/Go/comp/ (compgo-mail-*.Z)

當前的信息archive
ftp.comlab.ox.ac.uk:/pub/Documents/computer-go/mail-archive


 

8.1.5 The Computer Go Ladder

Discussions on the computer-go mailing list resulted in the establishment of an informal competition between computer Go programs called the Computer Go Ladder. The primary purpose of the ladder is for the enjoyment of the participants with the secondary purposes of stimulating both interest and work on computer Go programs and providing a way of measuring the state-of-the-art of current programs.

There are HTTP links from the Computer Go Ladder page to pages related to some of the programmers and some of the programs involved in the Computer Go Ladder, world computer Go competition results, the IGS and various other associated pages on the Internet. The Computer Go Ladder is maintained by Eric Pettersen ([email protected]).

cgl.ucsf.edu/go/ladder.html


8.1.6 電腦圍棋比賽及其結果

nobi.ethz.ch/martin/cgresults.html (Martin M黮ler)
www.reiss.demon.co.uk/webgo/gores.htm (Michael Reiss)


8.1.7 電腦圍棋大全

有幾種不同版本的電腦圍棋大全igs.nuri.net/Go/comp/compbibs.Z (Peter Lipp)
nobi.ethz.ch/martin/references.html (Martin M黮ler)
www.reiss.demon.co.uk/webgo/bib.htm (Michael Reiss)
www.psy.uq.edu.au/~jay/go/comp-go.bib.html (Jay Burmeister)


8.1.8 棋局庫

IGS以postscript和Smart Go格式存儲棋局庫。Jan van der Steen在進行一項名爲GoBase的圍棋數據庫項目,可以查詢數以千計的棋譜。

igs.nuri.net/Go/IGSArch/ (IGS archive)
bsdserver.ucsf.edu/Go/games/
bsdserver.ucsf.edu/Go/pro/
imageek.york.cuny.edu/search5d.html (5+ dan IGS games)
www.cwi.nl/~jansteen/gobase/gobase.html (Go Base) www.geocities.com/SiliconValley/Park/4872/index.html
 


8.2 Internet圍棋相關資源

8.2.1 棋規與教程

Internet上有各種版本的棋規介紹。

bsdserver.ucsf.edu/Go/RULES
bsdserver.ucsf.edu/Go/RULES.SG
bsdserver.ucsf.edu/Go/aga/aga.rules.Z
bsdserver.ucsf.edu/Go/aga/ingrules.zip
bsdserver.ucsf.edu/Go/igs/goe.rules.Z
bsdserver.ucsf.edu/Go/igs/goe.on.igs.Z


8.2.2 圍棋學習指導

在Internet上有一些針對初學者的學習指導和棋規介紹。.

bsdserver.ucsf.edu/Go/RULES.PS.Z
www.cwi.nl/~jansteen/go/rules/human.html
www.cs.vu.nl/~willems/go.html
ltiwww.epfl.ch/~warkent/go/rules/rules.html
ltiwww.epfl.ch/~warkent/go/rules/9x9game/1.html (ASCII)
hyperg.iicm.tu-graz.ac.at/GTL (Teaching Ladder page)
Section 2 of this document


8.2.3 圍棋新聞組

圍棋新聞組是一個很好的發現、共享圍棋、比賽及IGS等有關信息的資源,它不是主要針對電腦圍棋的,但也有一些相關的討論和信息。

rec.games.go


 

8.2.4 The Go Frequently Asked Questions (FAQ)

The Go FAQ contains questions that are frequently posted to the rec.games.go newsgroup and includes sections on basic Go, the IGS, and computer Go related issues.

bsdserver.ucsf.edu/Go/FAQ
rtfm.mit.edu/pub/usenet/news.answers/games/go-faq
www.cs.utexas.edu/users/orb/go/gofaq.html


9.0 結論


附錄 通用圍棋術語及英文對照

以下圍棋術語及英文對照摘自(definitions.Z) 由Fletch Holmquist編制,Bill Taylor改編。.


Atari: An immediate threat to capture; a single liberty remains. A verbal warning is often issued when placing an opponent into ate.

Dame (useless): A neutral point, territory for neither; a liberty.

Dan: Advanced grade.

Fuseki: The opening moves of the game where influence and territory outlines are formed. (literally: `no stones')

Gote: Defensive play, loss of initiative. (Literally:'lower hand'.)

Hoshi: (`star point'), 4-4 point.

Ikken-tobi: One point extension.

Joseki (established stones): Known sequences of moves near the corner which result in near equal positions for white and black.

Keima: Knight's move extension.

Ko: Repetitive capture. (literally: `eternity')

Ko threat: Intervening move (that one hopes will force a reply) before a ko can be recaptured.

Komi: Score adjustment usually penalizing black for playing first. Often 5.5 points.

Kosumi: A diagonal play next to one's own stone.

Kyu: Learner grade.

Nobi (Stretch): An extension away from an opponent's tsuke, cross-cut, etc.

Ogeima (large knight's move): Three across and one vertically (or vice versa).

Seki: A situation where neither player may place the other in ate without placing himself in ate. Stalemate, with no territory awarded.

Sente: Threat forcing direct response, creates initiative. The right to choose where to play next. Opposite to gote. (Literally: `upper hand'.)

Shicho: Ladder play.

Shicho-atari: Ladder breaker. A stone played in the path of a potential shicho, threatening to make it fail.

Tobi: Jump.

Wei Chi: The Chinese name for Go. (literally:"game of encirclement")



參考

References

(以下爲general Go Bibliography中沒有的部分 )

Berliner, H. J. A chronology of computer chess and its literature. Artificial Intelligence, 10, pages 201 - 214, 1978.

Fotland, D. The program G2. Computer Go 1, 1986.

Fotland, D. Knowledge representation in the many faces of Go. Available on the I nternet at ftp://bsdserver.ucsf.edu/Go/comp/mfg.gz, 1993.

Fotland, D. Personal communications, 1996.

Stoutamire, D. Machine learning, game play and Go. Technical Report TR 91-128, Case Western Reserve University, Cleveland, Ohio, 1991.

Computer-go mailing list references (cgm)
Fotland, D. E-mail communication on the computer-go mailing list.
Mailing list archive available on the Internet at ftp://bsdserver.ucsf.edu/Go/comp/
cgm1 compgo-mail-1.Z
cgm4 compgo-mail-4.Z

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章