Egaroucid5 Light - Othello AI
Codingame Othelloで世界1位になったAIです。
本気で作ったAIはこちら
最弱AIはこちら
使い方 Tweet

AIの強さ

2 - 2
対局情報
予想最終石差グラフ
棋譜
使い方
手番とAIの強さを選択し、対局開始ボタンを押してください。
予想最終石差グラフは左が序盤、右が直近の手です。値が大きくなるほどAI有利と判断していて、0が互角です。
グラフ表示をオフにしても対局終了後にグラフが描画されます。
ヒントは5手読みの評価値ですので精度は悪めです。さらに、序盤専用の評価関数を作っていないので序盤のヒントは役に立ちません。
AIの強さ
AIの強さは中盤の先読み手数、終盤の完全読み手数で調整されます。 レベルが上がると計算時間が増えるので、様子を見つつ設定してください。
各強さの詳細は以下です。
レベル 読み 完全読み
0 0手 0手
1 1手 2手
2 2手 4手
3 3手 6手
4 4手 8手
5 5手 10手
6 6手 12手
7 7手 14手
8 8手 16手
9 9手 18手
10 10手 20手
お知らせ
本気で作ったオセロソフトについて このWeb版ではなく、本気で強化・高速化をしたオセロAIを搭載したオセロ研究にも使えるソフトEgaroucid5を無料公開しています。
AI(Egaroucid5 Lightへ)のアップデートについて AIを大幅にアップデートしました。レベルの基準は以前のものと大きく異なります。
最弱オセロAI公開 このオセロAIのアルゴリズムをほとんどそのまま流用して負けようと努めるオセロAI"Egaroucen"を作りました。
こちらで遊べます。
AI(Egaroucid4へ)のアップデートについて AIを大幅にアップデートしました。レベルの基準は以前のものと大きく異なります。
AIの再アップデートについて AIを大幅にアップデートしました。それに伴いカスタムレベルを機能に追加しました。レベルの基準は以前のものと大きく異なります。
AIのアップデートについて AIを大幅にアップデートしました。これにより、これまでのレベルと今のレベルは大きく基準が違うものとなりました。
また、それによってレベル-2とレベル-1は廃止となりました。
このサイトの紹介記事 このサイトの紹介記事をnoteに書きました。ぜひご覧ください。
レベル-1(負けようとする)に負ける方法の解説記事 Ar-Rayさん(Twitter)がこのAIのレベル-1(詳細)に負ける方法をはてなブログの記事にしてくださいました。
オセロ世界4位の方と対戦 正式公開前に、オセロ世界選手権世界4位経験者の方と0.100秒/手で対戦していただきました。
その様子はYouTubeで見られます。
世界順位について
このAIの旧バージョン(初代Egaroucid)は2021年6月28日にCodingame Othelloで世界10位を獲得しました。 その後初代Egaroucidの順位は世界20位まで落ちてしまい、新たにEgaroucid2を制作しました。こちらは2021年10月16日に世界17位になりました。さらに改良を進め、3代目のEgaroucid3で2021年11月3日、再び世界10位になりました。さらに、高速化などの改良をしたEgaroucid4で2021年11月18日、世界3位になり、最終的に2021年11月22日、世界1位になりました。この後、アップデートしたEgaroucid5 Lightで無敗優勝を達成しました。
このAIは同じ読み深さであればWZebraに勝利できるほど強いですが、このWeb版では計算リソースの問題でそこまで強くない場合があります。また、楽しみやすいよう不利な定石もある程度打つようにしてあります。ご了承ください。なお、パソコン向けアプリとして開発中のEgaroucid5はEdaxを大幅に上回る強さです。
技術解説
初代Egaroucid
このAIはminimax系ゲーム木探索アルゴリズムであるNegascout法を主体に、葉ノード付近ではNegaalpha法に切り替えて高速化しています。move orderingを行う場合は開放度のようなものを用いています。
オセロの状態管理には完全インデックス化を用いています。完全インデックス化は配列やビットボードよりも高速に処理できます。
評価関数には、列や行のパターン、石数、着手可能数、各マスの重み、確定石数、潜在的着手可能数を正規化したものの重みつけ和を使っています。
序盤、中盤、終盤で評価関数のパラメータのみを変えて全く同じアルゴリズムで探索しています。今後は序盤のbook活用、終盤の必勝読みなどを加えたいです。
Egaroucid2
Egaroucid2の序中盤は囲碁や将棋などでとても強いAIであるAlphaZeroのアルゴリズムを簡略化したものを使っています。
モンテカルロ木探索(MCTS)に似たPV-MCTSというアルゴリズムで、1回の訪問でノードを展開する他、展開時にニューラルネットワークで盤面の価値(予想勝率)と方策を推論し、打つ手の決定に影響させます。
終盤は初代Egaroucidで使ったアルゴリズムの一部であるNegaalpha法を使って必勝読み(勝てる手筋が見つかり次第探索を打ち切る)をしています。
詳細はScrapboxに書きました。
Egaroucid3
Egaroucid3はNegascout探索を用いたオセロAIです。評価関数には深層学習したニューラルネットワークなどを使っていて、高速化のためにパターン評価を行っています。
評価関数は11種類、計84個のパターンと着手可能数、潜在的着手可能数をニューラルネットワークでまとめて一つの値にしています。
終盤は速さ優先探索と最終1手最適化を行った必勝読みを使用しています。
Egaroucid4
Egaroucid4はEgaroucid3のアルゴリズムを踏襲し、高速化と評価関数の精度向上、さらにMulti Prob Cutという枝刈りを導入しました。
この改善により、高速に精度良く深い探索ができるようになりました。
Egaroucid5
Egaroucid5では探索アルゴリズムにMTD-f法を使いました。さらに、データ構造などを見直して高速化しました。
Made by にゃにゃん(山名琢翔)

不具合報告はTwitterやGitHubでお願いします。

更新履歴

時間はJSTです(作者は日本に住んでいますが生活習慣はUTCです)

2021/08/22 23:30 公開
2021/08/23 17:22 [不具合解決]
  • サーバの負荷軽減
  • 意図せずツイート画面に飛ぶバグの解消
[表示変更]
  • 想定よりも読み手数が少なくなっているのでとりあえずモード表示を変更
  • レイアウトを若干変更
[追加機能]
  • 読み手数が少ないからか最強モード(レベル6)が結構負けるので「レベル7」を追加(サーバ負荷が大きかったらやめます)
  • レベル1相当でもまあまあ強いので、評価値が一番低い手を打つ「レベル-1」を追加
2021/08/23 17:45 [不具合解決]
  • 評価値グラフの値がおかしいバグを修正
[表示変更]
  • 読み手数の表示を変更
2021/08/23 19:45 [表示変更]
  • 「お願い」の追加
  • 予想以上に流行ってきたので「世界10位」に関する詳細を追加(叩かないで…)
2021/08/23 22:50 [不具合解決]
  • サーバで動かすAIを少し増やした
[表示変更]
  • Ar-Rayさんの記事を紹介
  • 文字の大きさを変更
  • レベル7の備考を追加
  • 技術解説の追記
2021/08/23 23:55 [追加機能]
  • サーバで対局回数および勝利回数を記録するようにした(個人情報は取っていません)
2021/08/24 0:05 [不具合解決]
  • 対局回数ログがうまく取れないのを修正
2021/08/24 0:25 [不具合解決]
  • ログがうまく取れないのを修正
2021/08/24 2:15 [不具合解決]
  • 対局回数ログの修正
2021/08/24 16:45 [表示変更]
  • ページが長くなってきたのでdetailsを使用
  • オセロAIの紹介記事を掲載
2021/09/05 19:45 [不具合解決]
  • バックエンドのエラーでサービスが停止していたので復旧
[機能追加]
  • レベル-1よりも負けようと頑張る「レベル-2」を追加(手抜き)
[仕様変更]
  • AIを高速化した
[表示変更]
  • 負のレベルの色と文字の太さを変えた
2021/10/16 03:11 [仕様変更]
  • AIを大幅にアップデートした
  • AIをwasmで動くようにしたので静的なサイトに移行
  • AIの計算進捗バーを設置
  • ヒント表示機能を実装
  • 対局中のグラフ非表示機能を実装
[表示変更]
  • レベル選択のUIを変更
  • AIの仕様変更に伴い文章を変更
2021/10/16 14:24 [仕様変更]
  • 敗勢のとき終盤重くなるので軽くした
2021/11/03 17:00 [仕様変更]
  • AIを大幅にアップデートした
  • カスタムレベルを追加
2021/11/19 00:30 [仕様変更]
  • AIを大幅にアップデートした
  • 読み込みを高速にした
[表示変更]
  • 石を返すアニメーションを作った
2021/11/19 07:30 [不具合解決]
  • 読み込み直後に対局開始するとエラーになる問題を解決
2021/11/19 12:35 [表示変更]
  • 諸々の事情で石を返すアニメーションを廃止
2021/11/23 12:00 [仕様変更]
  • AIを世界1位バージョンにアップデートした
  • 同じ読み手数なら高速になったはず
2021/11/23 20:45 [仕様変更]
  • 打つ定石をランダムに選ぶようにした
2021/11/26 23:15 [表示変更]
  • 最弱AIの宣伝を追加
2021/12/12 2:31 [バグ修正]
  • AIのバグを修正
2021/12/12 2:40 [バグ修正]
  • バグを直したら弱くなったのでとりあえず元に戻した
2022/2/2 18:30 [仕様変更]
  • AIアップデート(Egaroucid5 Light)
2022/2/2 23:30 [バグ修正]
  • 読み込みが終わらないバグを修正。
    まだ読み込み時の描画など問題はある。
2022/2/3 2:30 [バグ修正]
  • 読み込み失敗バグを修正
2022/4/19 2:30 [表示変更]
  • アプリ版の宣伝を追加