電腦象棋

電腦象棋

一般來說,象棋劃分成開局、中盤、殘局三個階段,在製作電腦象棋時,這三個階段的演算法也會不同,開局階段大多以資料庫儲存開局棋譜,下棋時就由資料庫查詢得知下一手,當然啦,棋局不可能儲存無限多,當局勢發展超出資料庫範圍,就進入了中盤。如果不要求棋力很高,或是初次製作電腦象棋,中盤和殘局可以不用細分,用同樣的算法就行了,一般來說程式中一定會有個審局函式和一個對局樹,這也是這篇文章的重點,當進入殘局階段,因為象棋的殘局有許多特例,通常電腦象棋會特別為這些特例建立一個殘局資料庫和特殊的算法,這裡先不討論。

審局函式

評估盤面形勢

審局函式是作用在於評估盤面的敵我形勢,玩過象棋大師2的人就會知道,在對奕中畫面會有個數字隨盤勢而變化,那就是審局函式算出來的值,電腦透過這個值可以判斷目前的局勢。審局函式判斷棋力的依據,主要根據下列三項:

子力

圖表 圖表

子力是評做局勢最簡單的方法,高手讓對手雙馬或一車來平衡棋力,就是最好的說明,我們可以看看前人怎么來設計,應該特別注意的是,象棋的規則勝負在於吃掉對方的主帥,所以將(帥)的值應大於所以其餘子力的總和。

位置

圖表 圖表

在象棋的開局裡,對局雙方通常會儘速的將車馬炮移到重要位置上,尤其是車一定要搶住要線,可見位置對局勢的影響。在為位置評分時,可以為每個不同的棋子設計一個二維陣列,用以記錄棋盤上每個點的重要性,下面以馬()為例。

靈活度

在象棋里,每一種棋子都有它自己的限制,如果在下棋的過程中,讓棋子限制變很多,將會使棋子的能力降低,所以在評估局勢時,棋子的靈活度也是考慮的重點。

電腦象棋對局樹

圖表 圖表

下象棋時,棋力越高的人,就能看到越遠的著手,一個能看到十三步以後著手的人,比一個只能看到五步著手的人棋力肯定是要高。在電腦象棋里,使用對局樹來達到往前看的能力。如下圖是對局樹的一個範例。當建好對局樹之後,再用廣度優先搜尋或深度優先搜尋將最佳著手找出來,在象棋比賽里會有時間限制,所以通常會以廣度優先搜尋先搜尋到某個深度之後,再針對幾個重要著手做深度優先搜尋。要特別注意的是,審局函式設計越精準棋力固然會越高,但是,越精準的審局函式也會計算越久,因為對局樹每個結點都要調用審局函式一次,如果審局函式計算太久,在有限時間內,對局樹就不能建立太多層,這將影響到電腦的棋力,如何在兩者間取得一個平衡,就要靠經驗了。

因為象棋的變化很多,如果所有可能著手都要建立對局樹,那么對局樹將會非常龐大,所以又有各種算法被發展出來,用來對對局樹進行剪枝,將不必要的著手先剪枝,目前最常用的當屬Alpha-Beta剪枝法。

電腦象棋大事紀

1988,宏碁電腦與象棋協會舉辦第一屆電子計算機象棋大賽,《象棋大師》程式獲得冠軍

1989,《象棋大師MS2》參加新秀杯升段賽,升為二段棋士

1990,第一屆計算機奧林匹克大賽

1991,《將族》電腦象棋遊戲公開發行

1998,《ELP》參加昭榮杯升段賽,晉升為五段棋士

1999,開始舉辦人腦對電腦象棋大賽

2001,《ELP》參加新莊市長杯全國比賽,晉升為六段棋士

2004,第一屆世界電腦象棋爭霸賽

2004,《棋海無涯》參加啟泰杯八段賽,獲得冠軍。

2006,首屆中國象棋計算機博弈錦標賽暨2006中國機器博弈學術研討會

2006,《棋天大聖》兩和象棋等級分第一的許銀川

2007,第二屆中國計算機博弈錦標賽,《象棋旋風》獲得冠軍

2008,The 13th International Computer Games Championship,《倚天》獲得冠軍

2009,2009年中國計算機博弈錦標賽,《象棋名手》獲得冠軍

2009,在人機大戰中,象棋軟體《象棋名手》、《佳佳象棋》、《陶情弈趣》以4勝2和的總成績贏得和劉星、黃海林、朱琮思三位大師的比賽

2010,2010年中國計算機博弈錦標賽,《新象棋旋風》獲得冠軍

2011,2011年中國計算機博弈錦標賽,《象棋名手》獲得冠軍

2012,2012年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

2013,2013年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

2014,2014年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

2015,2015年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

2016,2016年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

2016,2016年楚河漢界杯亞洲象棋人工智慧對決邀請賽 ,《象棋名手》獲得冠軍

2017,2017年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

2017,2017年第二屆楚河漢界杯亞洲象棋人工智慧對決邀請賽 ,《象棋旋風》獲得冠軍

2018,2018年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍

相關詞條

相關搜尋

熱門詞條

聯絡我們