AI實現五子棋機器人(一)


前言:

  前幾天在 csdn 下載資源的時候才發現自己 csdn 有近 200 的下載積分,看了看共享的資源,哈哈 ... 7年前寫的五子棋游戲很受歡迎。

  下載地址:新手入門五子棋游戲     剛入行的時候寫的,采用的 "權值" 計算法。

  在這個 AI 的浪尖風口上,借助我對游戲領域的熱愛,在工作余外的時間喚起了我的想法,學習 AI 實現一個五子棋機器人。

  

一、五子棋介紹

  種類及區別

  先說說五子棋吧,通常大家玩的五子棋分為帶禁手和不帶禁手兩個版本,
  (前者稱之為連珠Renju,后者一般稱之為五子棋Gomoku
  然而無論哪一個版本,先手黑棋均必勝。
  (所謂黑必勝的意思是,只要黑棋按照一定的方式下,白棋選擇棋盤上的任何一個點都不可能贏棋。)

  (禁手規則增加程序復雜度,暫不考慮加入)

  這里只說結果,至於為什么參考文末資料:
  1992年Victor Allis通過編程證明不帶禁手的五子棋,黑必勝。
  2001年Janos Wagner第一次證明的帶禁手的五子棋,也是黑必勝。

  先手優勢及棋譜介紹

  黑棋的優勢到底有多大呢?在26個職業開局里,已經發現有19個是黑棋必勝的(一打必勝)。

  因此為了進一步削弱黑棋的優勢,國際上推出五手兩打的規則。
  (就是黑棋的第三步需要下兩個點,但由白棋挑選讓其下較弱的哪一個)
  可是人們發現黑棋帶禁手依然是必勝。

  從實踐的角度來講,網上是可以搜索地毯譜的,一般在幾百兆左右,可以用renlib軟件打開,

  所謂地毯譜的意思就是黑棋會指定下法,但白棋每一步都可以選擇棋盤任意位置,最后黑棋必勝。也就是說,只要按照此棋譜下棋,五子棋世界冠軍都一定會輸給你。
  ( 目前花月、浦月、雲月、雨月、峽月、溪月、金星、水月、寒星、明星、嵐月、新月、名月,山月,殘月都是五手兩打必勝)

  那么正式的比賽是怎么玩的呢?

  現在的正式比賽通常會常用三手交換五手兩打這些復雜的規則來平衡比賽,但這些規則的各個分支也是逐漸被人破解,
  五子棋的比賽已經很大程度不是在考驗自己的臨場發揮,而是考驗選手對於少量黑白平衡 分支的記憶情況。

  廣義的五子棋

  不帶禁手的五子棋是屬於一類更為普遍的 m,n,k游戲 的一種特例,既 15,15,5。

  m,n,k游戲是指m行n列,輪流下子,連成k個算贏。這個在數學中專門的研究如果在最理想下法(Perfect Play)的情況下有什么樣不同的結果,

  比如標准的三連棋(Tic-tac-toe)是3,3,3是一個平局,同樣只有六路棋盤的五子棋也是平局,當然上面我們已經說明了15,15,5是先手必勝,

  還有研究發現11,11,5也是先手必勝。m,n,k游戲只有先手必勝和平局兩種結果。由於每下一個子都一定會對下子一方那一方有優勢,

  所以可以通過反證法證明m,n,k游戲里不可能有后手勝利的情況。如果后手有勝利的方法,

  那么先手可以提前借鑒(Strategy stealing)過來實現必勝。

  參考來自:Csdoker's Blog

 

二、人工智能介紹

  先看圖,來自:《Google TensorFlow 深度學習架構》

  

  AlphaGo 的介紹跳過、說說我們中國阿里巴巴的 "魯班" 號稱每秒能夠做 8000 張海報的 AI + Design 設計師。

  其實也是機器學習在圖像領域的應用,通過循環訓練的方式。

 

  在回來說本文的重點 "人機博弈" ,AlphaGo 主要是由三個部分組成:

  蒙特卡羅數搜索(Monte Carlo tree search MCTS)

  估值網絡(value network)

  走棋網絡(policy network)

  核心就是估值和走棋,故名思議。

  通過在大量人類圍棋高手對弈的棋譜獲取的訓練數據,走棋網絡能夠預測 57% 人類圍棋高手的下一步;

  但是通過這個還遠遠不足以戰勝人類冠軍,就融入了估值網絡,就是給當前的棋盤,判斷每個棋位輸贏的概率;

  據說 AlphaGo 團隊將進入游戲領域的研究,星際爭霸2;

 

三、實現思路

  開發語言:HTML5、JS  (輕)

  繪制棋盤、勝負判斷規則、界面操作功能,這些比較基礎的內容暫時不考慮;

  采用一個三維數據來定義棋盤內容:  

var _chessPieces = new Array();
_chessPieces[16][16][1] = -1; 

// [16][16] 棋盤大小:15 * 15,[1] 黑白棋子 (-1 沒有棋子,0 白色棋子,1 黑色棋子)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM