審局函式
評估盤面形勢
審局函式是作用在於評估盤面的敵我形勢,玩過象棋大師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年中國計算機博弈錦標賽 ,《象棋名手》獲得冠軍