オセロの必勝法が見つかった件

すごいニュースが飛び込んできた。オセロの必勝法が見つかったのだ。正確に言うとオセロが弱解決された。まずはその論文を紹介する。

Othello is Solved : https://arxiv.org/abs/2310.19387

「弱解決(weakly solved)」を簡単に言うと、初期局面からの双方最善手を打つ時の結論(勝敗)がわかったと言う意味である。8×8のオセロの結論は引き分けなのだそうだ。「必勝法が見つかった」と本記事のタイトルで書いたが、その結果として双方最善を尽くした時のオセロの結論が引き分けだったことが判明したので正しくは「必勝法(必ず勝てる方法)が存在しないことが証明された」とでも言うべきか。

今回は、初期局面から到達できるあらゆる局面についての結論(勝敗)がわかったわけではない。こちらは「強解決(strongly solved)」と呼ばれる。

弱解決と強解決とでは、必要となる局面数が桁違いである。詳しくは、にゃにゃんさんの記事を見て欲しい。

Othello is Solved 論文解説 (私見) : https://qiita.com/Nyanyan_Cube/items/a373da3157cdd117afcc

このブログでこのアルゴリズム的な解説をしようかと思ったのだが、にゃにゃんさんが上の記事でだいたい書いているので、私のほうは、上の記事に書いてないことだけいくつか補足的に書いていくことにする。

まず、この論文の著者は、PFN(Preferred Networks社)に勤務している人なのだが、PFNの20%ルール(勤務時間の20%の時間を好きな研究をして良いというルール。おそらくGoogleの同ルールを取り入れたもの)で行った研究なのだそうだ。言わば、(業務の)片手間でオセロの必勝法を解明してしまったと言うわけだ。「あれ?ボクなんかやっちゃいました?www」どころの騒ぎではない。

また、今回、オセロの結論は引き分けだと判明したわけだが、このこと自体はオセロ愛好家の中では、以前から半ば常識となっていた。オセロの序盤は、それほど手が広いわけでもなく、また、残り36升ぐらいの局面からは時間をかければEdax(オセロAI)で完全に読み切れていたので、オセロ愛好家はこの結論を知っていたわけである。とは言え、そのすべての変化を人間が覚えきれるものではないので、結論だけ知っていても実戦でほとんど何の役にも立たないわけだが…。

あと、(強解決ではなく)「弱解決」であれば、計算量はかなり減って現実的な計算オーダーになることは私も気づいていた。

この件について、私は5年前にツイートしている。

ただ、厳密な解を得るために探索する必要である局面の数が、以前の研究(※)で予測された数よりもはるかに少なかったことは本論文の著者には予想外であったようだ。

※ L. V. Allis. Searching for Solutions in Games and Artificial Intelligence. PhD thesis, Department of Computer Science, University of Limburg, 1994.

また、今回の論文のインパクトは大変大きいので、AI界隈の人たちがかなりツイッター(X)で言及してたりするのだが、αβ探索なんてAI界隈の人たちは普段使ってなくて(彼らはDeep Learningばかりやっているから)、拡散力の大きなアカウントからのかなり誤解を招くツイートも散見される。

内容的に誤ったツイートの例と何故それが間違いなのかを説明しておく。

この人⇑は、「弱解決」を正しく理解できていない。

最終的な局面だけが証明されているのではなく、相手がどう打っても引き分けに持ち込める作戦までは求まっている。(EdaxというオセロAIで36升空きの局面から読み切った部分は、その読み筋までは残ってないかも知れないが)

この⇓ツイートもわりとバズっている。

この人⇑は、alpha-beta探索を誤解している。(と思う)

naiveなalpha-beta探索は、minimax探索と同じ探索結果になることは保証されている。だから、「枝刈りをやっているゆえに漏れがないという保証がない」という主張の仕方はおかしい。結果がminimax探索の結果と変わらないような安全な枝刈り(naiveなalpha-beta探索の枝刈りはそう)であれば枝刈りしても良いのだから。

「恣意的な閾値」(すなわちaspiration windowと呼ばれるwindowを設定した)alpha-beta探索の場合、fail low/fail highにならなければ、それは探索中に安全な枝刈りしかしなかったということを意味しているので、aspiration windowなしの、すなわち区間alpha = -∞ , beta = +∞ の普通のalpha-beta探索の結果と同じであり、それはすなわちminimax探索の結果と変わらないことが保証される。(はず)

このへん、にゃにゃんさんがわかりやすい解説を書いてくれることを期待しつつ、このあたりで筆を置くのであった。(何か間違ったこと書いてたら、コメント欄で教えて)

[2023/11/06 23:00追記]

「弱解決」についてすごく良い資料を教えてもらったので、ぺたぺた。

資料 田中哲朗、ゲームの解決、「数学」65巻1号(2013) (PDF注意) https://www.jstage.jst.go.jp/article/sugaku/65/1/65_0651093/_pdf/-char/ja

[2023/11/06 23:10追記]

今回、オセロの結論が引き分けだと判明したが、後手勝ちの局面数の方が圧倒的に多いはずで(昔から人間同士の対局だと後手の方が勝率が高い)、6×6のオセロが後手必勝であることが証明されていたことからも、8×8も後手が必勝だと予測していた人がたくさんおられた。確かに最善を尽くせば引き分けではあるものの、(人間同士だと)最善を尽くせないから後手有利だとは言えるのかも知れない。

オセロの必勝法が見つかった件」への5件のフィードバック

  1. 記事読ませていただきました。
    オセロの有段者ですがコンピューターはエクセルにも苦戦するレベルの者です。

    オセロ業界では、感覚的には双方ベストを尽くすと引き分けになることと、引き分けになることを証明するのは無理という定説は相当前からあったと思います。

    そのため、このニュースを聞いた時はまずその手法が非常に気になりました。四苦八苦しつつも記事を読ませた結果の感想としては、誤解の例とされている@kyo_takano様と同じく、明らかな悪手は検索から除外することによって計算を可能にしたというところに引っ掛かりを感じました。
    その点に対する解説も書いていただいているのですが全く理解が進まず書き込みをさせていただいた次第です。

    結論として、今回の証明は先手または後手が勝つ手順が絶対に存在しないことを保証するものなのでしょうか?
    それともあくまでも「弱解決」と言われる一定の要件を満たしたことを証明しただけで、「弱解決」自体が抱えるリスクとしての最善手順の見逃しの可能性は否定しきれないと言えるのでしょうか?

    例えば2手目の白で並び取りするのは人間の感覚では悪いと思われていて、多くのオセロソフトでは悪手と評価をしますが、2手目並び取りをまるまる省略した解析で「引き分け確定」と言えるのかには疑問点があるというのが素人感覚です。
    ※2手目並び取りを省略というのは想像です。解析対象にしていたら申し訳ありません。

    長くなり申し訳ありません。お時間がある際にコメントを頂ければ幸いです。

    • > 今回の証明は先手または後手が勝つ手順が絶対に存在しないことを保証するものなのでしょうか?

      はい、そうです。「アルファ・ベータ法」が何故、安全な枝刈りであると言えるか、ググってみてください。

  2. 返信ありがとうございます。専門家の方に断言して頂いて、結論としては間違いないのだなと受け入れます。プロセスは時間をかけて勉強いたします。

    よろしければ1つだけ追加でお聞きしたいことがあるのですが、初期局面から10手目までにあり得る全パターンの290万ほどのうち、実際に計算を行ったのは2587通りのみということでした。
    この0.1%未満への絞り込みについても、アルファ・ベータ法による安全な枝狩りによるものなのでしょうか?

    • やねうらお氏ではないですが実際のオセロの例で説明してみます。

      弱解決というのは初形からただひとつの最善手順だけを求めるものです。
      オセロで初手からf5d6と進んだ局面がなんらかの方法で完全に引き分けだと分かったとします。
      白はd6は引き分けだと分かったこの二手目の状態で次にf6を打った場合どうなるかを調べます。
      f6を打たれた局面で黒はd3,c4,e6,f7の4手がありますが、とりあえずe6を打ってみます。
      ここで以下の局面の結果がどうなのかを調べるにあたって白が勝てるかどうかだけを問題にして調べます。
      その探索の結果二手目f6に対して黒がe6を打つと白は勝てないことが確かめられたとします。
      f6に対して黒は一手だけ調べて、しかもそれは完全な結果が分かったわけではなく
      少なくとも黒e6で引き分け以上にはできると分かったわけです。
      ここで枝刈りが生じます。
      黒はまだd3とc4とf7の手が残っているのにこの結果に満足して残りの解析を省略してしまいます。
      何故なら白は二手目d6という完全に引き分けにできる手を持っているこの状態で
      f6に打っても絶対に得はしないからです。
      f6以下の完全な結果は分かっていないものの、その範囲は引き分けか負け、ということだけは確かだからです。
      完全な解析をさせた結果引き分けだと判明したならそれはd6と同じく最善手で重要な手ではないかと思うかも知れません。
      しかし弱解決というのはただひとつの最善手順とその結果だけが分かればいいものなので
      この場合最初のd6の一手が完全に引き分けだと分かっていればそれで十分なのです。
      同様に白二手目f4に対しても黒はただ一手e3だけを調べてしかもその後何石勝てるかではなく
      黒が引き分け以上にできるかどうかだけを調べます。

      最初の一手だけは完全な結果を求めて、それ以降の手はその手を上回れるかどうかだけを調べる
      というこのプロセスをここで説明した2手目3手目だけでなくこの後も同じく繰り返させます。
      これによって数百万の対象がほぼ平方根の数千まで減らせるわけです。

  3. ikg様
    詳細な説明ありがとうございます。大変勉強になりました。
    余談ですが私は白f6が好きなのでそちらを根っこにして枝狩りしてほしかったと思いますが(おそらくこちらも引き分けだと思っています)論文にある手順が計算量減らすための最善手順でもあったということでしょうか。

    どうもありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です