• 沒有找到結果。

避免放槍的決策

程式實作方式

4.3 避免放槍的決策

從前面得到貝氏信賴網路事先學習、並建立好節點 C、D 的表格後,在遊戲 進行中根據每位玩家每一巡的動作與捨牌,依照貝氏信賴網路的計算,就可得到

B 節點的資訊。麻將遊戲每一巡的變化很大,經常上一巡需要的牌到了下一巡就 拿到或是拆掉這個組搭等各種情況;然而由貝氏信賴網路計算後的機率只是當下 此巡該玩家可能需要的,因此除了計算出要的機率外,我們還要再加上當下的回 合數做為判斷依據,以圖 24 為例,每位玩家的每張牌放槍的權重為如下:

放槍的權重=要的機率×該回合數

41

0.0055,再乘以巡回數,最後四萬放槍的權重為 0.033

Player 3 吃五捨八,有可能要 1、4、7 條,其中場上四

42

本程式雖然主要是針對避免放槍,但是也盡量在不影響可達到胡牌的狀況下,

才改變捨牌策略,每次要捨牌都從第一張牌手牌開始依序搜尋,先假設該張捨棄 後,剩餘的牌能組出最佳組搭數,越接近胡牌狀態,及越接近五組加一搭者越佳;

找出所有捨棄後最接近胡牌狀態的牌後,再比較他們被其他玩家要的權重值。

每一巡除了根據貝氏信賴網路計算出玩家對於那些牌有需求外,還須注意到,

因為貝氏網路沒有對需求的牌可靠的牌做學習,所以如果只單看學習後的表格會 出現該張牌其實已無法形成組搭,即使場上還剩餘一張,只要有玩家的行為符合 需要該張牌,就會當作他需要;然而實際上無法形成組搭的牌,是不可能被需要 的,所以這種類型的牌就需要另外處理,並且在每位玩家需求的牌的表格中,該 牌的機率給予-100 的值;當字牌在場面上出現 3 張時,同樣給予-100 的值,在決 策捨牌時就會優先選擇這些牌。

在本程式 TaKe 持續研發前的 ThousandWind 程式,有每張捨牌後此副牌可得 到的權重,權重值越高者越容易達到胡牌,為方便區分在這裡我們稱它為胡牌權 重值,為了不讓程式的胡牌率降低太多,因此在決策捨牌時仍須考量到可達胡牌 的權重值;所以現下在決策捨牌時,我們同時擁有兩個影響捨牌方向的權重,分 別是胡牌與避免放槍的權重值。

組成胡牌權重值只要有三個分數,其一是間接有效分,指的是雖然不能和現 有的牌組成一組,但能形成一搭的牌,給予他 1 分;其二是直接有效分的碰牌,

指的就是可以和現有的手牌直接形成碰牌,給予 10 分;其三為直接有效分的吃

43

放槍,但是 ThousandWind 的胡牌權重值少則個位數,多則上千,且值越大表示 越易胡牌,因此兩者要比較非常不容易,如下方圖 26 表示,捨牌傾向於第四象

44

換,三家將轉換後的放槍權重加總後,再和胡牌權重值相比,但如此又可能造成 胡牌率大減;或者改為三家先將放槍權重加總,再做轉換和胡牌權重值比較;因 不確定哪一種方式更符合實際狀況,所以我們用實驗來比較兩種方式何者為優。

圖 26 胡牌與放槍權重關係

首先是各家的放槍權重各自做轉換,各自權重範圍如下表 11:

胡牌權重 放槍權重

上限 1500 -11

下限

0

60

表 11 1:3 權重表

放槍權重中有到負值是因每一巡玩家捨棄的牌會給予 -1 的權重,以及當這 張牌沒有可以形成組搭數時,也給予-1 的權重,再乘上該回的回合數就可達到負

放槍機率高

放槍機率低 難胡牌 易胡牌

放槍權重值

胡牌權重值

捨牌傾向

45

十幾的數字。

新的避免放槍權重值= 21.1267 × (60 − V),V值表示該牌放槍的權重。

此時新的避免放槍權重值,再加上胡牌權重值成為決策捨牌的依據,該值越 大表示可獲益的分數越高。

經過大量對下後得到的結果如下表:

Player1 Player2 Player3 Player4

胡牌次數 29496 29427 29510 29337

放槍次數 22895 22696 22887 22984

表 12 1:3 實驗結果

接下來是各家的放槍權重先加總後,再做轉換,各自權重範圍如下表:

胡牌權重 放槍權重

上限 1500 -32

下限

0

180

表 13 1:1 權重表

其中每張牌避免放槍權重= ∑ 要的機率 p × 要的回合數 p42 ,則可得到新的避 免放槍權重值= 7.0754 × (180 − V) ,V值表示該牌避免放槍的權重,同樣的,此 時新的避免放槍權重值,再加上胡牌權重值成為決策捨牌的依據,該值越大表示 可獲益的分數越高。

經過大量對下後得到的結果如下表:

46

Player1 Player2 Player3 Player4

胡牌次數 29429 29442 29380 29540

放槍次數 22590 22912 22923 22985

表 14 1:1 實驗結果

上方表 12 與表 14 的 Player1 為本程式 Take,另外三家皆為 ThousandWind,

可發現第二種決策方法更能達到避免放槍,反倒是第一種決策方式放槍次數沒有 明顯降低;其原因可能是因為被捨棄的牌的機率被放大太多,導致會有在更前面 巡目時的捨牌權重值累加,分數高於最近捨牌的權重值,至於本應該跟著捨離當 前最近巡目的捨牌,反倒以為離當前較遠巡目的捨牌是較優的;為了避免會有判 斷錯誤的情形發生,最後我們選用實驗結果較佳的後者。

47

相關文件