• 沒有找到結果。

電腦圍棋打劫的策略

N/A
N/A
Protected

Academic year: 2021

Share "電腦圍棋打劫的策略"

Copied!
8
0
0

加載中.... (立即查看全文)

全文

(1)電腦圍棋打劫的策略 林順喜 國立台灣師大 資訊工程研究所 linss@csie.ntnu.edu.tw. 黃士傑 國立台灣師大 資訊工程研究所 aja@csie.ntnu.edu.tw. 顏士淨 國立東華大學 資訊工程研究所 sjyen@mail.ndhu.edu.tw. 據價值的計算與判斷而決定的打劫策 略。關於打劫相關知識,請參閱[14][15]。. 摘要 打劫在圍棋裏佔據了十分重要的位 置,然而目前的電腦圍棋程式大都不具備 打劫的能力。我們利用最大最小搜尋法的 原則,得出本劫最佳的打劫策略,使得電 腦圍棋程式在處理本劫時,能在局部求得 獲利最大或損失最小的下法。我們定義了 棋步、劫爭與劫材的價值,作為探討打劫 策略的基礎。我們也詳細探討了打劫過程 中劫材的使用策略。. 二、打劫的規則與棋步的價值 「打劫」或「劫爭」是圍棋中同型反 覆循環的情況。「打劫」的英文是 ko,係 從日語發音而來。應氏規則[17]與日本圍 棋規約[18]對「打劫」分別規定如下: 應氏規則第五條:『劫型中可互提之 子稱為“劫子”。連續反覆所爭之劫子稱為 “熱子”。凡提取熱子須間隔一實手或虛 手,否則爭窮。』 日本圍棋規則第六條:『相互提掉對 手的一個棋子的棋形稱之為打劫。被提的 一方,必須至少隔一手才能提回來。』 一棋步的價值即一棋步的大小,可用 「來回比較法」來計算[16]。劫爭的價值 可由計算棋步價值的觀念來計算。我們只 要分別計算黑棋勝劫與白棋勝劫的地 域,其差距便是此劫爭的大小。劫材的價 值,是指一方若不理此劫材,另一方再繼 續下一棋步的價值。換句話說,劫材的價 值就是在當作劫材的那個局部,連下兩手 的價值。. 關鍵詞:電腦圍棋、打劫、劫材、最大最 小搜尋法. 一、緒論 圍棋是誕生於中國的鬥智遊戲,主要 特色是規則簡單,但是由於盤面廣大變化 可說無窮無盡,圍棋已被證明為 P-Space Hard 的問題[9]。關於圍棋史料,請參閱 [1][2]。電腦圍棋程式的歷史,可追溯自 1960 年,D. Lefkovitz 設計出第一個電腦 圍棋程式[4]。八年後,Zobrist 設出第一個 打敗人類(圍棋初學者)的電腦圍棋程式 [5]。1980 年代,由於世界電腦圍棋比賽 的推動,以及商業化的結果,電腦圍棋成 為一個引人注目的研究領域,使得每年電 腦圍棋程式的棋力均有穩定的進步。1990 年代,世界電腦圍棋比賽的平均參賽者已 超過 40 個,來自全世界不同的國家。有 關電腦圍棋的規則及相關資料,可參考 [6][7][8]。 打劫在圍棋中佔據了一個相當重要 的地位,在高手對局中,打劫隨處可見, 甚至到了幾乎每局必有打劫的地步。目 前,只有少數的圍棋程式[10][11]有處理簡 單的打劫,大多數在電腦圍棋世界比賽得 名的程式,都未處理打劫。據我們所知, 目前對於打劫的研究,著重於劫型棋型的 探討[3][12],牽涉到組合對局理論[13], 尚未有從策略面探討打劫的研究。本論文 探討電腦圍棋中的打劫問題,針對的是根. 三、劫材的分類 「劫材」(ko threat)是在打劫時,用來 使對方應一手而達到隔一手目的之棋 步。本篇論文中,我們特別加上一個額外 條件,劫材必須包含一個性質:對方應一 手,便完全不損失。若是劫材本身就帶有 地域的價值,則歸類到有價值的棋步。圍 棋對局中出現的劫材可說是各式各樣,有 些能計算其價值,有些卻難以計算,例如 「以劫換劫」(方案之一是按照《劫爭辭典》 [14]第 22-25 頁所提,視為劫爭價值的三 分之二)。 在圍棋對局中,有時會出現無限劫材 的情況(例如「雙劫活」),在這個局部, 白棋就擁有無限的劫材。解決白棋有無限 劫材的方案之一,是在其他的劫爭開始前. 1.

(2) 義「黑方劫材價值下限」與「白方劫材價 值下限」。 (3)黑方盤面上 m 個符合條件的劫材 bi 及 其價值、白方 n 個符合條件的劫材 wi。 bi≧BKTVL, 1≦i≦m , wi≧WKTVL, 1≦i≦n。符合條件的劫材,即為決定開 始打劫後,所使用的劫材順序。由於我們 預設我方是黑方,因此當開始打劫後,黑 方便從 b1 開始使用劫材。得到黑白雙方各 有 m 與 n 個符合條件的劫材後,黑方(我 方)的劫材依照下面的原則排列將 B 建構 出來: (甲)所有雙方只得其一的劫材,排在最前 面。若有多個,b1 是其中價值最小的。 (乙)接著後面排本身劫,從價值小的排到 價值大的。若第一項中沒有劫材,則 b1 是其中價值最小的。 (丙)接著後面排一般的劫材,從價值小的 排到價值大的。若第一、二項都沒有劫 材,則 b1 是其中價值最小的。 我們預設雙方都未使用損劫,至於其他價 值小於「劫材價值下限」的劫材,其中價 值最大的劫材其價值用 bu 表示。 (4)盤面上除了劫爭之外的有價值的棋 步:X=(x1,x2,x3,…),x1≧x2≧x3…>0,. 解決劫爭,就可拆掉白棋在這裏的劫庫。 下面我們探討一些特殊的劫材。 雙方只得其一的劫材 雙方只得其一的劫材,意即在一個局 部中的劫材,對雙方來說都是劫材,因 此。雙方只得其一的劫材,有三種可能情 況:一.只對黑棋符合條件,二.只對白棋 符合條件。三.對黑棋白棋都符合條件。 第 一、二種情況,將此劫材分別算為黑白方 的劫材,而不成為另一方的劫材。第三種 情況,則算為雙方的劫材,並且由於先使 用的一方可以一次全部下完,因此全部只 算成一個劫材。 劫材生出的劫材 圍棋對局中,常常出現所謂的「劫材 生劫材」,意即在一個棋局局部中,使用 一個劫材後,又產生出新的劫材來。劫材 生劫材的特色是前面的劫材用完才會產 生後面的劫材,先後順序是固定的,因此 可以視為先後順序固定的「一組劫材」。 本身劫 當劫爭與一棋塊的死活有關時,能作 活或突破包圍網的劫材,便稱為「本身 劫」。劫材生劫材由於是先後順序固定, 因此可以將衍生出來的劫材總數,算入我 方劫材總數中,其大小便是目前能用的劫 材大小。本身劫是棋塊發生與死活有關的 劫爭時,必須優先使用,因為將來發生其 他劫爭時,此劫爭的本身劫不一定能成為 劫材。. Xeven = x2+x4+x6+…,Xodd = x3+x5+x7+…。 有價值的棋步中,x1 是目前盤面上除了劫 爭之外價值最大的棋步,x2 是 x1 被下了之 後,盤面上除了劫爭之外價值上最大的棋 步,以此類推。有價值棋步的個數,依程 式的搜尋深度與判斷能力而定,因此我們 並不定義有價值的棋步共有幾個,而是保 持開放的規格。為了判斷式的簡潔,我們 將 x2 之後的第偶數大的所有的有價值棋 步的價值和定義成 Xeven,x3 之後的第奇數 大的所有的有價值棋步的價值和定義成 為 Xodd。 由於劫爭需要隔一手才能提劫,因此 在電腦圍棋裏,除了棋局開端先下的一方 之外,我方總是需要對方上一步下在哪裏 的資訊,以判斷對方上一步是否造成我方 的禁著。若沒有上一步對方下在哪裏的資 訊,很可能對方剛提劫的劫爭是目前盤面 最大的棋,我方程式據此就提劫而馬上被 判輸。因此,對方上一步下在哪裏是我方 決定下一步時必備的輸入與已知條件。下 面我們利用本劫中白方在上一步下在哪 裏的資訊,也就是黑棋在所會遇到的七種 情況,提出合理且最佳的下一步,每一種 情況代表白棋的一種下法,在後面我們將 證明其正確性。在這七種情況中,並不包 含造劫者所會遇到的情況。換言之,我們 的演算法並未處理造劫,除了造劫之外,. 四、打劫的策略–本劫 解題方法 據估記,本劫在圍棋對局中的打劫, 佔了 90%以上的比例。本劫是各種打劫中 最單純、最簡單,也是最重要的。其他種 類的劫爭,都是本劫的延伸與複雜版本。 本章中,我們先展示我們對本劫的策略, 再於下節解釋與證明我們的策略根據。我 們預設我方為黑棋,而此演算法當然也適 用於白棋。首先我們先定義解題過程中所 用到的參數: (1) 劫爭的價值以 k 表示 (2) 黑方劫材價值下限((Black Ko Threat Value Lower bound,BKTVL)與白方劫材 價 值 下 限 (White Ko ThreatValue Lower bound,WKTVL),劫材價值下限是我們設 定的一個下限值,用來求出劫材價值大於 或等於劫材價值下限的劫材個數,這些價 值大於或等於劫材價值下限的劫材,就是 符合條件的劫材。對黑方與白方所設的劫 材價值下限不一定相同,因為我們分別定 2.

(3) 在劫爭中會碰到的每一種情況我們都有 考慮。造劫是未來的研究課題。下面,我 們 預 設 劫 爭 的 第 一 步 是 白 方提劫(或造 劫),並根據白方七種下法來決定黑方最 佳的下一步:. 的設定,依序檢查雙方的劫材數。流程如 下面的 pseudo code 所展示: for (i=1;i≦ k+Xodd-(x1+Xeven);i++) { BKTVL=[2(k+Xodd-Xeven)]-i; WKTVL=(2x1+1)+i; (求得黑方白方符合條件的劫材數分別為 m,n); If (m>n) break; } 檢查過程中只要符合 m>n,跳出迴圈後下 b1。若不符合,則檢查劫材分布三。. 白方剛提劫 是. x1+Xeven≧. 不打劫,下 x1. k+Xodd?. 白方使用劫材 wi 否 屬於哪一種劫材分布? 屬於哪一種劫材分布?. 劫材分布三. 劫材分布一. 劫材分布二. 下 b1. 劫材分布一. 劫材分布二 wi≧WKTVL. 是. (b1 是本身劫)||(b1 是雙方只得. 是. 劫材分布三. 否. 其一的劫材)||(b1<w1)? 消劫. 應劫. 下 b1 否. wi<WKTVL. x1≧bu-x1?. 否. 是. 是 否 下 x1. 消劫. 下 bu max(x1+Xeven-(k+. 圖 4.1 第一種情況. Xodd),bu+Xeven-(k+x1+Xodd))≧k. 情況一.白方提劫,輪到我方(黑方)找劫材 首先判斷「本劫的打劫條件」: x1+Xeven≧k+Xodd?若符合,就開始檢查雙 方的劫材分布來決定下一步。我們將劫材 分布的情況分為三種,在每種分布中,先 設定 BKTVL 與 WKTVL,便可得到雙方 符合條件的劫材數 m 與 n,來判別是否屬 於目前檢查的劫材分布,若屬於目前檢查 的劫材分布,便依照前述的方法將 B 建構 出來。雙方的劫材分布可以分成下面的三 種情況: 劫材分布一.我方一定能取得大於或等於 k+Xodd-(x1+Xeven)的利益 BKTVL=2(k+Xodd-Xeven), WKTVL=2x1+1 若 m>n 就符合此種分布,則黑方下 b1。 若不符合,則檢查劫材分布二。 劫材分布二.我方一定能取得大於或等於 零的利益 將 BKTVL 與 WKTVL 一個遞減一個遞增. 是. +x1+Xodd-(wi+Xeven) ? 消劫 否 應劫. 圖 4.2 第四種情況 劫材分布三.我方一定遭受損失 BKTVL=k+x1+Xodd-XevenWKTVL=k +x1+Xodd-Xeven+1 若 m≦n 就符合此種分布。這時若 b1 是雙 方只得其一的劫材或為本身劫,則使用 b1。否則比較 b1 和 w1 的價值,若 b1<w1, 則下 b1。若 b1≧w1,就比較 x1 與 bu-x1, 若前者不小於後者就下 x1,否則下 bu。 第一種情況,輪到方找劫材的演算法 過程,可以用圖 4.1 的流程圖來表示。. 3.

(4) (2)黑棋使用的劫材其價值依所下的順序 為 b1,b2,b3,…(不一定按大小排列). 情況二.白方回應我方的劫材 白方回應我方的劫材時,不論我方 劫材較多或劫材較少,我方都一律提劫, 因為我方找劫材即已預設白方會應劫。. (3)白棋使用的劫材其價值依所下的順序 為 w1,w2,w3,…(不一定按大小排列) (4) 盤 面 上 劫 爭 之 外 的 有 價 值 的 棋 步 x1,x2,x3,…,x1≧x2≧x3…. 情況三.白方消劫 白方消劫時,若上一步我方使用劫 材 b,則立即取得劫材的利益 b,否則 x1。 i i. (5) Xeven = x2+x4+x6+…. (6) Xodd = x3+x5+x7+…. 流程圖第(一)部分: 白棋提剛劫後,黑方需檢查佔取 x1 讓劫給白方是否為較有利的下法,就是檢 查「本劫的打劫條件」。黑方下 x1 後,白 方消劫得 k,黑方再下 x2,白方再下 x3… 等,如流程圖所示,進行下去黑白方的利 益差為 x1+Xeven-(k+Xodd)。若利益差大於或 等於零,黑方下 x1 是有利或不損失的下 法,因此選擇 x1。由此可知「本劫的打劫 條件」為 x1+Xeven≧(k+Xodd)。若不符合「本 劫的打劫條件」,黑方將使用劫材 b1,進 入流程圖第(二)部分。 流程圖第(二)部分: 既然決定要打這個劫爭,黑方就使用 某一個劫材 b1,此時白方有兩種下法。白 方若消劫,就進入流程圖第(三)部分,若 應劫則入流程圖第(四)部分。 流程圖第(三)部分: 白方消劫,黑方再花一步取得 b1 的劫 材利益,接著雙方便依序下有價值的棋 步 , 因 此 黑 白 方 的 利 益 差 為 b1+Xeven-(k+x1+Xodd)。 流程圖第(四)部分: 白方應劫,黑方提劫後,便進入流程 圖第(五)部分。 流程圖第(五)部分: 白方找某一劫材 w1,黑方同樣有兩種 應法,若應劫,則一直循環下去,若消劫, 則接下來類似流程圖第(三)部分,黑白方 利益差=k+x1+Xodd-(w1+Xeven)。 流程圖第(六)部分(如圖 4.3(b)): 這是最後黑方勝劫的情況。黑方找劫 材 bi,若白方消劫,接下來的進行,黑白 方 的 利 益 差 黑 白 方 利 益 為 bi+Xeven-(k+x1+Xodd)。若白方應劫,因無劫 材繼續爭劫,只好下 x1,黑方消劫後,雙 方依序下有價值的棋步,黑白方的利益差 為 k+Xodd-(x1+Xeven)。 流程圖第(七)部分(如圖 4.3(c)): 這是最後白方勝劫的情況,同流程圖 第(六)部分,因為黑方無劫材繼續爭劫, 只好在 x1 與不理白方的劫材兩者中作一 選擇。. 情況四.白方找劫材 類似情況一,檢查雙方的劫材分布來 決定下一步: 劫材分布一.我方一定能取得大於或等於 k-x1-x2 的 利 益 , 若 白 方 使 用 的 劫 材 wi≧WKTVL 就應劫,否則消劫。 劫材分布二.我方一定能取得大於或等於 零 的 利 益 , 若 白 方 使 用 的 劫 材 wi≧WKTVL 就應劫,否則消劫。 劫材分布三.我方一定遭受大於或等於零 的損失,若白方使用 wi<WKTVL 則消劫。 否則比較 max(x1+Xeven-(k+Xodd),bu+Xeven(k+x1+Xodd))與 k+x1+Xodd-(wi+Xeven),若前 者較大,則我方應劫。若後者較大,則選 擇消劫。 第四種情況的演算法過程,可以用圖 4.2 的流程圖來表示。 情況五.白方下有價值的棋步 黑消劫。若白方提劫而未消劫, 則黑提劫。 情況六.白方取得劫材利益 這是在黑方不理白方的劫材消 劫之後,所以黑方下 x1。 情況七.白方下瞎劫、單官或虛手 黑消劫。 以下我們要由三個方面來證明上節 所提出的打劫策略:「本劫的打劫條件」 與「劫材價值下限」、交換劫材與減少損 失、有價值棋步的循環。 I.「本劫的打劫條件」與「劫材價值下限」 下面我們藉著流程圖展示本劫整個打 劫的過程,並觀察流程圖,利用 Minimax 搜尋原則求出「本劫的打劫條件」與「劫 材價值下限」。假設白方剛提劫,雙方都 將劫材耗盡才放棄劫爭,且雙方都未使用 損劫,整個流程便如圖 4.3(a)所示。圖 4.3(b) 與 4.3(c)是圖 4.3(a)的最底層部分。最後若 黑方勝劫,底層是 4.3(b),白方勝劫則是 4.3(c)。 流程圖中所用到的參數定義如下: (1)k 為劫爭的價值 4.

(5) 白方剛提劫 (三) (一) 是 本劫的打劫條件 黑不打劫,下 x1 成立? 否 MIN. 黑下 b1. (二). 白消劫. (四). MAX. (五). 白消劫. 黑下 x2. 黑提劫. 黑取得 b1 利益. 白下 x3. 白下 w1. 白下 x1. 黑下 x4. 黑消劫. 黑下 x2. 白取得 w1 利益. 白提劫. 白下 x3. 黑下 b2. 黑下 x1. ……. 白應劫. 白下 x2. 黑白方利益差=. 黑提劫. 白消劫. 黑下 x3. 白下 w2. 黑取得 b1 利益. MIN. b1+Xeven-(k+x1+Xodd). ……. MAX. 黑白方利益差= 黑應劫. 黑消劫. 白下 x1. b2+Xeven-(k+x1+Xodd). 黑下 x2. 白提劫. ……. ……. 黑下 b3. …... 黑白方利益差= b2+Xeven-(k+x1+Xodd). 接 4.3(b)或(c). 流程圖 4.3(a) 打劫的流程圖. 5. ……. 黑應劫. 白應劫. 黑白方利益差= x1+Xeven-(k+Xodd).

(6) 的劫材,使整個流程圖的樹狀結構呈現傾 斜。 (乙)整個打劫過程的黑白利益差只有四種 可能結果:(1)當黑方找某一劫材 bi 下時 (如圖 4.3(b)),若白方消劫,進行下去黑白 方 利 益 差 為 bi+Xeven-(k+x1+Xodd) 。 (2) 反 之,此時若白方改佔 x1 換取輸劫,黑白方 利益差為 k+Xodd-(x1+Xeven)(3)每當白方找 某一劫材 wi 下時(如圖 4.3(c)),若白方消 劫 , 進 行 下 去 黑 白 方 利 益 差 為 k+x1+Xodd-(wi+Xeven)。(4)反之,此時若黑 方改佔 x1 換取輸劫,黑白方利益差為 x1+Xeven-(k+Xodd)。 (丙)假設黑方的劫材比白方多,且劫材價 值都很大,白方的劫材不但少且價值都很 小。也就是說,黑棋在這場劫爭佔有絕對 的優勢,可以勝劫。那麼黑方所能獲得的 最大利益是多少呢?流程圖 4.3(a)每次 方找劫材,由於白方不理劫材的損失過於 巨大,因此會全數應劫,流程便一直往左 邊的分支走。到最後流程圖 4.3(b),白方 的劫材用盡,只好選擇下 x1。也就是說, 黑方在具有絕對優越的打劫條件下,所能 獲得的最大利益,是在圖 4.3(b)的左分 支,黑白的利益差為 k+Xodd-(x1+Xeven)。這 個結論便得出下面的定理: 定理 4-1.在本劫中,若雙方都是最佳進 行,且 k+Xodd>x1+Xeven,則勝劫的一方能 從 劫 爭 獲 取 的 最 大 利 益 為 k+Xodd-(x1+Xeven)。 証明: 前面我們已經得到黑方從劫爭所能 獲取的最大利益為 k+Xodd-(x1+Xeven)。同 理,流程圖 4.3(c)中黑下 x1 換取輸劫黑白 利益差為 x1+Xeven-(k+Xodd),即白方(勝劫 的一方)與輸劫的一方的利益差為 k+Xodd-(x1+Xeven)。因此不論黑白雙方所能 獲取的最大利益為 k+Xodd-(x1+Xeven)。此定 理得証。 ■ (丁)讓我們再次觀察黑方勝劫的情況,依 據上面的定理找出黑棋勝劫時的劫材分 布,來求出雙方的「劫材價值下限」。目 前的已知條件只有「本劫的打劫條件」, 即 k+Xodd ≧ x1+Xeven,因此圖 4.3(b)黑 方勝劫的流程圖中,左分支的黑白利益差 k+Xodd-(x1+Xeven) ≧0。 (1)根據定理,黑方所能獲取的最大利益為 k+Xodd-(x1+Xeven),因此讓我們先考慮能得 到最大利益的情況。要獲取最大利益 k+Xodd-(x1+Xeven),就要讓白方走到圖 4.3(b) 中的左分支,根據 Minimax 搜尋的原則, 在黑下 bi 後白方選擇應劫或消劫當中,必 須選擇 MIN,也就是黑白利益差較小的一. (六). 黑下 bi. MIN. 白應劫. 白消劫 黑取得 bi 利益. 黑提劫 白下 x1. 白下 x1. 黑消劫. 黑下 x2 ……. 白下 x2. 黑白方利益差= 黑下 x3. bi+Xeven-(k+x1+Xodd). … 黑白方利益差= Xodd-(x1+Xeven) 圖 4.3(b) 接續流程圖 4.3(a)-黑方勝劫 (七) MAX. 白下 wi. 黑應劫 白提劫. 黑消劫 白取得 wi 利益. 黑下 x1. 黑下 x1. 白消劫. 白下 x2. 白下 x3. ……. 黑下 x2. 黑白方利益差=. ……. k+x1+Xodd-(wi+Xeven). 黑白方利益差= x1+Xeven-(k+Xodd) 圖 4.3(c) 接續流程圖 4.3(a)-白方勝劫 觀察整個打劫的流程圖,可以發現 幾點特性: (甲)往左邊展開部分,雙方一直回應對方 6.

(7) 劫價,便可以交換劫材。舉例而言,假設 黑方雙方經過「劫材價值下限」的檢查 後,符合條件的劫材分別如下: B=(25,30,40,60) W=(42,45,50,55,80) 黑方 B 中的最小的劫材價值為 25 目,白方則為 42 目,既然 25 比 42 小, 這時候交換就有利了,並且白方非換不 可,因為若按照最佳下法,白方不得不回 應我方符合條件的劫材。黑方用 25 目的 劫材,白方接著用 42 目的劫材,接著黑 方又發現 30 目的劫材小於白方 45 目的劫 材,於是再度交換,一直交換到黑方的符 合條件的最小劫材價值大於白方的為 止,結果如下: B=(60)﹔W=(55,80) 考慮將來可能發生的另一場劫爭,假 設兩場劫爭的途中雙方的劫材都沒有增 加,BKTVL 與 WKTVL 皆為 45,結果在 將來這場劫爭原本符合條件的劫材,黑白 雙方各有 1 個與 4 個,相差 3 個劫材,然 而經過黑方在前一場劫爭交換劫材後,雙 方變成各有 1 個與 2 個,變成相差 1 個劫 材。由此可知交換劫材的策略對黑方是有 好處的。 在交換完劫材,就轉而選擇有價值棋 步中最大的 x1 或不符合條件的劫材中最 大的 bu,看哪一種下法損失比較小。根據 流程圖 4.3(a),黑方選擇 x1 與 bu,白方消 劫後的利益差分別為 x1+Xeven-(k+Xodd)與 bu+Xeven-(k+x1+Xodd),黑方的最佳選擇是 選擇利益差較大的一邊下。 另外在白方找劫材時,如果白方下的 劫材是不符合條件的劫材,則是一種失 誤,黑方消劫即可。如果是符合條件的劫 材,我們可以比較此刻消劫後的利益差與 黑方在選擇 x1 與 bu 時較大的那一個利益 差,來選擇利益差較大的下法。換句話 說 , 即 是 比 較 max(x1+Xeven-(k+Xodd), bu+Xeven-(k+x1+Xodd)) 與 k + x1 + Xodd (wi+Xeven)。. 邊。換言之,在右分支的利益差大於左分 支的情況下,白方若按最佳進行會選擇左 分支,如果一來我們就可以如願以償的獲 取最大利益 k+Xodd - (x1+Xeven)。接著利 用 Minimax 搜 尋 的 原 則 接 著 往 上 層 bottom-up 計算,每次黑方找劫材 bi,都必 須讓右分支的利益差大於或等於左分支 (取 MIN),因此,我們得到這種情況下黑 方 的 「 劫 材 價 值 下 限 」 為 2(k+Xodd-Xeven) : bi+Xeven-(k+x1+Xodd)≧ k+Xodd-(x1+Xeven) => bi ≧ 2(k + Xodd Xeven)。接著求白方的「劫材價值下限」。 從 4.3(b) 用 Minimax 搜 尋 原 則 往 上 層 bottom-up 計算時,由於白方每次找劫材 黑方會選擇 MAX,所以白方選擇的劫材 wi 只 需 要 讓 右 分 支 的 利 益 差 小 於 左 分 支,我方就必須選擇左邊才能獲取最大利 益。因此,我們得到這種情況下白方的「劫 材 價 值 下 限 」 為 2x1+1 : k+x1+Xodd-(wi+Xeven)≦ k+Xodd-(x1+Xeven)-1=> wi≧2x1+1 (2)其次,我們考慮黑無法獲取最大利益 k+Xodd-(x1+Xeven) , 卻 能 獲 取 介 於 0 到 k+Xodd - (x1+Xeven) 某 個 數 的 利 益 的 情 況。若黑方能獲取 k+Xodd-(x1+Xeven)-1 的 利益,黑白雙方的「劫材價值下限」求法 同(1): bi+Xeven-(k+x1+Xodd)≧k+Xodd-(x1+Xeven)-1= > bi≧[2(k+Xodd-Xeven)]-1 k+x1+Xodd-(wi+Xeven)≦ (k+Xodd-(x1+Xeven)-1)-1=>wi≧(2x1+1)+1 比較前一種情況,bi 與 wi 範圍分別為 前一個 bi 與 wi 減 1 與加 1。同理,能獲取 k+Xodd-(x1+Xeven)-2 利益的 bi 與 wi 範圍又 是此種情況的 bi 與 wi 減 1 與加 1。因此我 們 可 以 依 序 求 得 能 獲 取 k+Xodd-(x1+Xeven),k+Xodd-(x1+Xeven)-1, k+Xodd-(x1+Xeven)-2,…,2,1,0,利益的黑白 雙方的「劫材價值下限」。在解題方法的 劫材分布二,即是用迴圈依序從獲取 k+Xodd-(x1+Xeven)到 0 的「劫材價值下限」 來判斷黑方所能獲取的最大利益為何。 (3)黑方無法獲取 0 目以上利益的情況,就 是用獲取 0 利益黑白雙方的「劫材價值下 限」判斷雙方劫材數時,黑方劫材少於白 方。這就是解題方法中的劫材分布三。. III.有價值棋步的循環 打劫過程中,有價值棋步的循環,通 常是劫材少的一方佔取有價值棋步換劫 時,劫材多的一方仗著劫材多而搶佔有價 值棋步,等到劫材少的一方提劫後,劫材 多的一方再找劫材將劫提回來。在我們的 解題方法中,倘若黑方劫材多,黑方並沒 有搶佔有價值棋步,而選擇消劫,在這裏 有一個策略的分歧點,關鍵的點是有時候 有價值的棋步會增加劫材,也就是所謂的 「製造劫材」。在圍棋對局中,劫材少的. II.交換劫材與減少損失 當雙方的劫材分布情況是劫材分布 三時,表示黑方一定會遭受 1 目或 1 目以 上的損失,這時候就要想辦法將損失降到 最低。此時黑方若有價值大於 BKTVL 的 劫材,其價值又小於白於大於 WKTVL 的 7.

(8) [4]D. Lefkovitz, ”A strategic pattern recognition program for the game of Go”,University of Pennsylvania, the Moore school of Electrical Engineering, Wright Air Development Division, Technical note 60-243,1-92, 1960. [5]Zobrist, A. L,”A Model of Visual Organization for the Game of Go”, Proc. AFIPS 1969 Spring Joint Computer Conf. 34 (Boston, Mass., May 14-16, 1969), 103-112. AFIPS Press, Montvale, NJ, 1969. [6]顏士淨,”電腦圍棋程式 Jimmy 5.0 之設 計與製作 ”,國立台灣大學資訊工程研 究所,博士論文,1999. [7]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 Engineering 10, pages 239--258, 1994. [8]Allis, V., ”Searching for solutions in games and artificial intelligence”. phD thesis, University of Limburg, Maastricht, 1994. [9]Lichtenstein. D.and Sipser. M.,”GO is Polynomial-Space Hard”, Journal ACM 27, 2 (April 1980), 393-401. (Also: IEEE Symp. on Foundations of Computer Science, (1978), 48-54). [10]Mick Resis, http://www.reiss.demon.co. uk/webgo/compgo.htm. [11]陳志行,http://www.wulu.com/. [12]Elwyn Berlekamp, and YoungHoan Kim.”Where is the Thousand-Dollar ko?”.Games of No Chance, MSRI Publications Volume 29,1996. [13]John H. Conway.”On Numbers and Games”. Adademic Press, London/New York,1976. [14] 村 島 誼 紀 , 《 劫 爭 辭 典 》 , 理 藝 出 版 社,1997. [15] 林 海 峰 , 《 打 劫 之 魔 力 》 , 理 藝 出 版 社,1997. [16]大竹英雄,《官子入門》,世界文物出版 社. [17]應昌期圍棋教育基金會,《計點制圍棋 規則》,1995 年版. [18]日本棋院,《日本圍棋規則》,1989.. 一方有時會藉著佔取有價值的棋步製造 劫材。最完美的情況是,程式有能力檢查 白方下的有價值棋步會不會增加劫材,若 不會增加劫材,則我方大可仗著劫材多而 繼續搶佔有價值的棋步,等白方提劫,再 找劫材即可。然而判別有價值棋步被下了 以後會不會增加劫材的搜尋深度通常很 深,複雜度很高,因此我們的演算法選擇 消劫。倘若已經有判別有價值棋步會不會 增加劫材的機制,則在我方劫材多的情況 下,可以選擇搶佔大棋。. 五、結論與未來研究方向 本論文中,我們展開整個本劫打劫的 流程,利用 Minimax 搜尋的原則,在預 設擁有各種需要的盤面資訊下,求出在目 前盤面的情況下最佳的打劫策略,巨觀的 探討了本劫的打劫策略,使電腦圍棋程式 在處理本劫時,能在局部求得獲利最大或 損失最小的下法。我們利用 Rule 判斷的 方式決定下一步,大大降低了搜尋所需的 時間。並且也詳細探討了劫材的使用策 略,將之納入我們的演算法中。 如果不納入損劫,我們幾乎已經完全 解決本劫的打劫問題,接下來的首要課題 便是損劫的處理。只要在打劫問題中考慮 損劫,整個問題便複雜許多。如果按照圍 棋對局常理,損劫是其他劫材都用完後才 開始用,並且從損失最小的用到損失最大 的,不過目前為止這並未被嚴謹的證明。 除了損劫之外,未來的研究方向是探 討其他劫爭(同時多個劫爭、三劫、寬氣 劫、二段劫與三段劫、萬年劫等)的策略, 並且可以回溯到打劫的上一層探討作 劫,所得的結果能為電腦圍棋程式在全局 或局部搜尋時所利用。圍棋中的「擴大劫 爭」也是一個有趣且值得討論的問題。而 種種基礎工作,諸如判別劫爭的種類、判 別劫材與計算棋步的價值等,不但是電腦 圍棋程式會不會打劫的主要關鍵,也是未 來圍棋程式棋力能否向上提升的重要基 礎。. 參考文獻 [1]中國圍棋史話, http://shy.taiwango.org/ article/china_go/china_go.htm [2]日本近代圍棋通史, http://shy.taiwango. org/article/history/history.htm [3]吳震坤,”電腦詰棋程式中處理劫爭問題 之研究” ,國立台灣大學資訊工程研究 所,碩士論文,2001. 8.

(9)

數據

圖 4.3(b)  接續流程圖 4.3(a)-黑方勝劫  圖 4.3(c)  接續流程圖 4.3(a)-白方勝劫  觀察整個打劫的流程圖,可以發現 幾點特性:  (甲)往左邊展開部分,雙方一直回應對方 的劫材,使整個流程圖的樹狀結構呈現傾斜。 (乙)整個打劫過程的黑白利益差只有四種可能結果:(1)當黑方找某一劫材 bi下時(如圖 4.3(b)),若白方消劫,進行下去黑白方 利 益 差 為bi+Xeven-(k+x1+Xodd)。 (2)反之,此時若白方改佔x1換取輸劫,黑白方利益差為k+Xodd-(x1+X

參考文獻

相關文件

確認課程教材重點 擴展教與學的策略

充份,且木材包裝材料在國際貿易中被普遍使用,恐 對正常貿易造成不必要的限制效果,是否有其必要值 得商榷,因此

六、報名方式:符合上開資格條件且具意願者,請於110年3月26日(星期五)前登入行政院人

在 Riemann 映射定理中指出, 任意兩個邊界多於一點的單連通域是全純等價的, 即存在 雙方 單值 (即單葉) 的全純映射, 將一個映為另一個。

面向東南亞,尋求區域合作的價值與意義。如今當我們面對台灣原住民的「民族數學」研究時,尤其

價值觀教育須結合學校和家庭教育,學校與家長必須緊密合作,才能

價值觀教育須結合學校和家庭教育,學校與家長必須緊密合作,才能

。名曰過莊嚴藏。以發一心。能過百千劫本無無量。以其心。過億百千那術劫。復過