コンテンツへスキップ

オセロの打ち方

オセロの打ち方なんて本を本棚においているもんで、私をオセロ好きと誤解する人がいます。実はこれ、オセロの相手をしてくれるプログラムを強くするために買ったのが、そのまま置いてあるのです。その昔、8ビットマイコンが流行り始めた頃、アスキーという雑誌で「マイクロオセロリーグ」という、コンピュータオセロのコンテストをやっていました。「森田オセロ」なんてのが結構強かったんですが、この森田さん、将棋のプログラムでも有名ですね。「思考ゲームプログラミング:オセロゲームのアルゴリズムと作成法」なんて本も、後には書かれています。

オセロを打つプログラム、これ、一種の人工知能プログラムですよね。コイツは面白い、当時、日立のベーシックマスターレベルⅢ(L3 と略)というマイコンを購入した私は、早速、オセロのプログラミングに取り組んだのでした。まあ、L3 は、NEC の PC-8801 に比べて多少機能が劣り、それほど強いプログラムはできませんでした。しかし、計算機相手にオセロを打ち、相手が馬鹿な手を打ったら、プログラムを修正する、なんて作業は、結構面白いもので、休みの日など、食事も忘れて、プログラムの改良に取り組んだものです。

オセロは、打てる手数が限られているので、計算機で先読みするのは、他のゲームに比べれば容易です。しかし、何手も先まで読もうとすると、手数が膨大になりますので、結局数手先で打ち切ることになります。その時使われるのが、評価関数と呼ばれるもので、隅を取っていれば有利、などという知見を元に、盤面を評価します。

かなり重要な盤面の評価方法として、意外な着眼点があります。それは、手数でして、打てる場所が多いほど有利というものです。

この評価ポイント、オセロ以外でも、様々な場合に役立ちます。局面が読み切れていないとき、なるべく打てる手を多く残すように行動すべき、ということですね。例えば、研究開発の初期段階では、あまり、解決方法を絞るべきではなく、多くの可能性を残すべきとされています。自然界でも、生物の進化は、多くの種を共存させ、多様性を維持することで、環境変化にも適応する種を残すことができます。最適化のアルゴリズムで「遺伝的アルゴリズム」と呼ばれているのも、これですね。

人間のニューロネットワークも、様々な無駄なニューロンとシナプス接続を保持しつづけることで、これまでにない状況に直面しても、新たなニューラルネットを効率的に再構築しているのでしょう。社会の意識は、異端的な考え方も残すことで、より効率的かつ永続的な学習を可能としているのでしょう。逆に、自由闊達な言論を封殺してしまった社会は、ほとんどの場合衰退することが、これまでの歴史にみてとれます。結局のところ、脳も、社会も、読み切れていない局面下での勝負を続けざるを得ないのですから、多様性の維持が最適解となるのでしょう。そういうことが思考ゲームの知見からも裏付けられるのです。