star-code.net

静的リバーシ AI 対戦してみた

はじめに

静的リバーシ AI で対戦しました.

経緯や詳細は以前の記事(1)(2)をご覧ください.

静的リバーシ AI とは,リバーシの 64 マスに対して事前に着手する優先度が決められた AI です. ゲーム中はその優先度に従い,着手できるマスのうち,最も優先度が高いマスを選びます.

対戦

綾瀬川技術室の皆さん(参加者 3 人)で対戦しました.

対戦は,通常のリバーシ(多く取ったほうが勝ち)と,逆リバーシ(少なく取った方が勝ち)の 2 パターンで行いました.

参加者(3 人)

  • 一之瀬(筆者) 遺伝的アルゴリズムを用いて優先度マップを作成.詳しくは過去の記事をご覧ください.
  • taisa 遺伝的アルゴリズムを実装したつもりが交叉を忘れたらしい?
  • ayu 優先度マップを手作りしたらしいです.

結果

  • 通常リバーシ
黒 \ 白一之瀬taisaayu
一之瀬x34-3058-6
taisa31-33x30-34
ayu16-4838-26x
名前
一之瀬40
taisa04
ayu22
  • 逆リバーシ(少なく取ったほうが勝ち)
黒 \ 白一之瀬taisaayu
一之瀬x25-3929-35
taisa34-30x31-33
ayu19-4538-26x
名前
一之瀬31
taisa22
ayu13

感想

運ゲーになるかと思いましたが,案外そうでもなかったと感じています.割とはっきり差が出たように感じました.このゲーム面白いかもしれません.(戦略同士の差をより見るなら 1 つだけでなく 10 個ずつ戦略を用意して総当たりをするとより戦略の良し悪しがはっきり出そうですね.)

特に通常のリバーシについて,手作りの戦略が善戦しているのが面白い.リバーシについて,どこに置くと良い,悪いなどはかなり研究がされており,体系化もされています.辺についてどこに置けば良い悪い(A は良くて C は悪い),X 打ち(隅の斜め隣)は悪いなど.これに倣うとそれなりに良い戦略になるということでしょうか.

逆に,逆リバーシは研究も全然進んでいないので,手作り戦略は難しいかも.私も少し考えてみましたが,手作りしたくても隅の周辺とか,どうすればいいのかちょっとわからない.

問題を解くときに,プログラムを書くことを考えがちですが,案外手作業も悪くないよ,というところはあります.使いようですね.

好きなアルゴリズムである遺伝的アルゴリズムを書けて,かつそれが強くて,私は満足です.

おわりに

これらの優先度マップを静的 AI と対戦できるリバーシ盤面のプリセットに組み込みました.対戦してみてね.