2025年3月2日

圍棋人機對奕(4)﹍可模擬 AI 引擎對戰的圖形界面軟體 GoGui

圍棋人機對奕(4)﹍可模擬 AI 引擎對戰的圖形界面軟體 GoGui

Wayne Fu 0 A+
gtp-engine-gui-gogui.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui上一篇介紹了「最方便的 AI 引擎免費圖形界面軟體 Drago」,文末提到我的實測經驗,少數 AI 引擎不一定會遵守軟體的讀秒限制,導致被 Drago 裁定敗,例如 AQ、Ray(RN),那麼這些引擎就不適合透過 Drago 對奕,建議可改用本篇介紹的 GoGui。 GoGui 雖然不是人機對奕的 Windows 軟體首選,但有部份強大功能是 Drago、甚至其他軟體都做不到的,所以 GoGui 也是值得安裝的軟體。本篇會大致比較這兩個軟體的差異,並說明 GoGui 如何操作。
圍棋人機對奕系列文章:

一、Drago + GoGui 比較

1. 功能比較 Drago:
  • 中文化:有
  • 對奕設定:功能齊全、界面友善
  • 讀秒設定:功能齊全、界面友善
  • 讀秒倒數界面:長條圖
  • 調整棋力:有
  • 預設引擎清單:有
  • AI 對奕:只能人機對奕
  • 讀秒結束:裁定敗,棋局終了
GoGui:
  • 中文化:無
  • 對奕設定:界面較差
  • 讀秒設定:功能不齊全、界面較差
  • 讀秒倒數界面:數字
  • 調整棋力:無
  • 預設引擎清單:無
  • AI 對奕:圖形界面可讓同個 AI 同時執黑白對奕;指令界面可讓不同 AI 互相對奕
  • 讀秒結束:棋局可繼續下
2. GoGui 讀秒結束仍可下 從以上比較可看出,GoGui 可彌補 Drago 的一個缺陷:讀秒結束棋局就強制結束。 那麼在 Drago 使用 AQ、Ray(RN) 這兩個圍棋引擎必會發生讀秒裁定敗的狀況,就能改用 GuGui 與這兩個引擎下棋了。 3. GoGui 可以 AI 互相對奕 GoGui 另一個強大功能是,可以讓 AI 互相對奕,且能連續模擬,例如設定 10 局、100 局,就可自動產生這麼多個模引對局,這是其他軟體都沒看到的強大功能。 有了此功能,就能測出不同引擎、或同個引擎不同版本之間的棋力差距,之後會詳細說明作法。

二、安裝 GoGui

1. 下載檔案 下載頁面有許多版本,大多不是 Windows 版本,須找到類似上面這個 gogui-1.5.1-install.exe 執行檔,才能在 Windows 安裝 2. 下載 Java GoGui 需要 Java 才能執行,所以如果 Windows 沒安裝過 Java 的話,請先前往「Java 下載頁面」,下載最新版本後,例如類似這樣的檔案 "jre-8u451-windows-x64.exe",執行後即可安裝 Java。 3. 安裝 Java 安裝完畢後,繼續執行剛剛下載的 GoGui 執行檔,設定安裝在自訂路徑即可,並記住這個路徑位置。

三、安裝圍棋 AI 引擎

前面 Drago 與 GoGui 的比較可以看出,Drago 有預設引擎清單,而 GoGui 沒有,所以在安裝引擎時,是比較麻煩的,只要參數不對就會安裝失敗,以下詳細說明 GoGui 最保險的圍棋引擎安裝方式。 1. GoGui 安裝引擎 由於 GoGui 沒有預設引擎清單,如果沒有安裝任何引擎的經驗,可先參考上一篇「最方便的 AI 引擎免費圖形界面軟體 Drago」,了解有哪些引擎可裝。 gtp-engine-gui-gogui-1.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 安裝引擎的流程如上圖,選單「Program」→「New Program」 gtp-engine-gui-gogui-2.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 這裡跟 Drago 一樣先以 GNU Go 當作例子,假設 GNU Go 已安裝好了,如上圖,選取已安裝好的 "gnugo.exe" 路徑,但此時先不要按下「確定」,因為一定會不斷出現錯誤訊息,甚至無法中止錯誤迴圈,非常麻煩。 會出現錯誤訊息的原因是,"gnugo.exe" 執行時必須有預設參數,而 Drago 因為有預設引擎清單,幫我們把預設參數都設定好了,省下我們查說明書的麻煩。但 GoGui 沒幫我們做這個動作,我們得自行查每個引擎的預設參數為何。 2. 參考 Drago 引擎參數 gtp-engine-gui-drago-5.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 最簡單的處理方法就是,查詢 Drago 安裝該引擎時,使用了什麼參數。借用上一篇 Drago 的圖片,參考上圖,Drago 幫我們設定 "gnugo.exe" 的參數是這樣: --mode gtp --level 5 --japanese-rules 說明一下,裡面的必要參數只有 "--mode gtp",而後面的參數代表設定「等級 5」、「日本規則」,這些不是必要參數。 所以 "gnugo.exe" 執行時的必要參數為: --mode gtp 3. 重新設定引擎參數 gtp-engine-gui-gogui-3.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 回到 GoGui 設定 GNU Go 的畫面,如上圖,在 "gnugo.exe" 的後面加上參數 --mode gtp,再按「確定」,這下就沒問題了。 gtp-engine-gui-gogui-4.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 很快 GoGui 就會讀取到 GNU Go 的引擎名稱、版本資訊,顯示畫面如上圖,按下「確定」就成功新增一個引擎,可以開始準備人機對奕了。

四、人機對奕

1. 對奕設定 gtp-engine-gui-gogui-5.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 首先連上一個我們安裝好的引擎,如上圖,選單「Program」→「Attach」→ 選擇連上哪個引擎,例如剛安裝的 GNU Go。 gtp-engine-gui-gogui-6.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 接著進行對奕設定,這一點 GoGui 界面比 Drago 差很多,需要在不同地方分別設定,請參考上圖,選單「Game」之下有多處需要設定:
  • Board Size: 設定棋盤尺寸
  • Handicap: 設定讓子
  • Game Info: 設定讀秒方式,以及 Komi 可設定貼目
  • Computer Color: 設定 AI 拿黑棋還是白旗
把讀秒設定放在 Game Info 很不直覺,要這麼做的話還不如以上所有設定,都整合在 Game Info 界面,跟 Drago 一樣會更好。以下來看看如何設定。 gtp-engine-gui-gogui-7.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 進入 Game Info 後,如上圖,Time 的部份:
  • 第一個空格可填入基本時限
  • 第二個空格可填入讀秒時間,可選擇分鐘/秒
  • 第三個空格可填入讀秒期間下幾手
圖中我的設定代表「每手棋 10 秒鐘」。 2. 進行對奕 以上設定都完成後,從選單「Game」→「New Game」,可以開始人機對奕。 gtp-engine-gui-gogui-8.jpg-可模擬 AI 引擎對戰的圖形界面軟體 GoGui 上圖就是與 GNU Go 對奕的畫面,因為設定了「每手棋 10 秒鐘」,AI 一定會在時限內落子。 而輪到我方下時,上圖紅框可看到讀秒的秒數,沒有即時落子的話,會顯示 AI 勝利。 不過上一篇有提過,認真在棋盤上思考時,誰有辦法注意到讀秒時間。而 Drago 已經做的不錯,讀秒使用綠色長條動畫,算是比較明顯。而 GoGui 右上角小小的數字跳動,下棋時是不可能注意的。所以跟 AI 下快棋的話,用 GoGui 不太可能贏。 3. 讀秒結束後 Drago 也知道這件事,所以對奕設定有個選項非常棒,可以勾選「僅為引擎計時」。而 GoGui 沒有這個設定,那該怎麼辦呢? GoGui 應該也知道這個狀況,所以若不幸讀秒時間到,雖然會判定勝負,但 GoGui 仍允許棋局繼續進行,只要我們繼續著子,AI 也會跟著繼續下,這一點跟 Drago 是不一樣的,Drago 會直接沒收棋局,比較狠心~

五、AI 對奕

額外說明 GoGui 獨有的強大功能,可以讓兩個 AI 互相對戰,這對我來說是非常實用的功能,因為每個 AI 都號稱自己有多強的棋力,但又難以驗證。 有了 GoGui 這個功能後,我就可以讓兩個 AI 來個十局、百局大戰,這下孰強孰弱一目了然。 1. 官方說明書 在 GoGui 安裝路徑下有個檔案 gogui-twogtp.exe,這便是讓兩個 AI 對戰的程式,可參考這個官方說明書網頁: 內容太複雜了,就不一一說明,只提供我實測有效的程式碼範例。 2. 範例程式碼 這個程式可以用 DOS 命令視窗執行,以下是範例指令碼: G:\GoTool\GoGui\gogui-twogtp -black "G:\GoTool\Aya\Aya.exe --mode gtp" -white "G:\GoTool\DarGTP\DarGTP.exe" -size 19 -time 10s -games 10 -sgffile G:\GoTool\GoGui\twogtp\Aya_DarGTP -alternate -auto 以下一一說明如何修改:
  • G:\GoTool\GoGui\gogui-twogtp → 這是 gogui-twogtp.exe 的路徑,請改成自己的路徑
  • -black "G:\GoTool\Aya\Aya.exe --mode gtp" → 這是黑棋 AI 引擎,用 Aya 當範例,雙引號內請改成自己的引擎路徑,若引擎需要參數記得加上去
  • -white "G:\GoTool\DarGTP\DarGTP.exe" → 這是白棋 AI 引擎,用 DariushGTP 當範例,雙引號內請改成自己的引擎路徑,若引擎需要參數記得加上去
  • -size 19 → 棋盤尺寸
  • -time 10s → 每手 10 秒,請自行調整。如果不想等待太久的話,別設定太長的時間,否則一盤棋會模擬很久
  • -games 10 → 對奕 10 盤棋,請自行調整數字
  • -sgffile G:\GoTool\GoGui\twogtp\Aya_DarGTP → 對奕檔案的檔名、路徑
  • -alternate → 此參數代表每下完一盤棋,黑白對調
  • -auto → 自動進行對奕,一定要有此參數才能執行
3. 對奕結果 下完後,除了會產生每盤棋的 .sgf 檔,還會根據自訂的對奕檔案名稱,產生一個 .dat 檔,列出所有勝負結果,不用點開所有 sgf 檔來看。 成功測試此功能後,我也將所有安裝的圍棋 AI 引擎,逐一進行對戰,之後也會另外再發表一篇實測結果,讓大家知道 AI 間的強弱差距有多大,如此就能知道該選哪個符合自己棋力的 AI 來進行訓練。
圍棋人機對奕系列文章:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

沒有留言:

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP