• 沒有找到結果。

審局函數設計

第四章 設計方法

4.3 審局函數設計

當遊戲樹搜尋到最底層時,我們必須呼叫審局函數來為目前局勢進行評分。

一般情況下,審局函數分為兩個部分:

有食物鏈關係:意指當我方的帥(將)存在時(不論是明子或暗子),敵方的卒(兵) 也同時存在(不論是明子或暗子),亦或是我方的兵(卒)存在時(不論是明子或暗子),

敵方的帥(將)也同時存在時(不論是明子或暗子),則為有食物鏈關係。

在有食物鏈關係下我們的審局函數在計算各子分數將會進入動態設置模式。

在動態設置模式下,各棋子的考量因素有以下三點:天敵數量、半天敵是否存在、

守兵(卒)策略。

天敵:指的是棋子權重大於自己權重的敵方所有棋子,換句話說就是可以吃

35

36

雖然暗棋中的兵(卒)作用並不如中國象棋(Chinese Chess)中的兵(卒)以及西洋棋 (Chess)中的步兵,對於局勢影響力較小,但也並非無用棋子。兵(卒)除了可以吃

37

38

圖4-10 輪黑方行動新舊版比較範例

無食物鏈關係:若食物鏈關係不存在時則為無食物鏈關係。在無食物鏈關係 下,我們的審局函數在計算各子分數將會進入靜態設置模式,程式靜態設置模式 之分數如圖 4-11。

棋種 分數

帥(將) 11000

仕(士) 4900

相(象) 2400

俥(車) 1100

傌(馬) 500

炮(包) 3000

兵(卒) 50

圖4-11 靜態設置模式分數

39

在設置上依照帥(將)比仕(士)大兩倍多一點;仕(士) 比相(象)大兩倍多一點;

相(象)比俥(車) 大兩倍多一點;俥(車)比傌(馬)大兩倍多一點。會這樣設計的原因 是我們不希望兩隻仕(士)的分數會比一隻帥(將)還大或者是等於。如圖 4-12,若分 數設置為仕(士)5000 分、相(象)2500 分、俥(車)1250 分以及傌(馬)625 分,則會發 生左邊盤面紅方會得到 5000(仕)+625(傌)–5000(士) = 625 分;右邊盤面則會得到 2500*2(相)+625(傌)–5000(士) = 625 分,由此可見得這樣計算下左右盤將會獲得 相同盤面分,但這並不正確因為左邊盤面對於紅方較有利,而右邊盤面則很有可 能會走向和局的情況。而相(象)、俥(車)和傌(馬)的分數也是同樣理由設置。此外 由於炮(包)的處理上屬於比較難以界定,所以在靜態設置中也是設計在介於仕(士) 和相(象)之間。

圖4-12 我方為紅方盤面

除此之外我們會另外檢查是否有產生無敵(該子無天敵以及半天敵)情況,在 圖 4-13 為輪紅走時設計中所產生的問題,舊版程式會以紅帥兌換黑方士,這並不

40

是一個正確的走步,會產生的原因是在換子前跟換子後的配分上產生錯誤的配置,

當時換子前分數為:帥 6000 分、仕 4900 分、相 2400 分、將 11000 分、士 4900 分、馬 500 分以及卒 1100 分,總和紅方-黑方分數為-1800 分;下一步帥吃掉黑士 之後分數為帥 6000 分、仕 4900 分、相 4900 分、將 11000 分、馬 500 分以及卒 1100 分,總和紅方-黑方分數為 8100 分;再一下步將吃掉帥之後仕 4900 分、相 4900 分、將 11000 分、馬 1100 分以及卒 1100 分,總和紅方-黑方分數為 1500 分,

仍然比原先-1800 分還來的多。基於這個原因,我們在半天敵設計上多了一項判 斷:當若某子天敵與半天敵同時不存在時,我們將會得到一個超過 11000 的分數。

如此一來,我們程式在進行搜索時,會較為積極走向盤面上我方某子除了炮(包) 以外敵方沒有任何子可以吃掉我方該子,在積極的走向上述情況的同時,也會更 加的避免敵方某子產生同樣情況。

圖4-13 半天敵例圖輪紅盤面

由於炮(包)只要有砲架以及敵方被吃子就能形成吃子步,所以只要隔一砲架炮(包)

41 耗則是有效的做法。在 Alpha-beta Pruning 中,我們使用兩種方法做為增加發生 cut 的機率以及減少分支度的方法。

4.4.1 走步排序

在 Alpha-beta Pruning 中,如果我們能夠先搜尋到好的節點,則之後搜尋到較 差的節點時,我們就可以更加快速地砍到較差的節點。所以若我們在走步搜尋時,

依照先前的結果由好到壞進行排序,對於搜尋的時間上面是有用的。我們走步排 序的做法,是根據上一次逐層加深後,各個節點最後所得到的分數來決定這一次 逐層加深搜尋遊戲樹時該由哪個節點先搜尋。

4.4.2 遊戲樹的選擇性展開搜尋

由 4.4.1 節所介紹的走步排序可以提高在 Alpha-beta Pruning 中的剪枝速度,

但若是我們先前就已經知道某些分支會是不必要的,則我們可以選擇放棄展開這 個分支,這樣一來不僅能夠省去展開這個分支的時間,也可以省去從 Transposition Table 中尋找資料的時間。如圖 4-14 中,我們可以發現當帥由 a5 移動到 b5 不僅

相關文件