コンピュータ、プロ棋士に勝利

NHKオンライン
IBMは1997年にDeep Blueというコンピュータで当時のチェス世界チャンピオンを打ち負かした。将棋はチェスよりゲーム展開の総数が大きいため、コンピュータが人間のプロ棋士に勝つのは当面は不可能だろうと言われていたが、ついに初めて(現役ではないとはいえ)プロ棋士を倒すレベルにまで達した。今回は、コンピュータ将棋の基礎知識と、今回の対局、今後についてまとめてみようと思う。

コンピュータ将棋の基礎と歴史

コンピュータ将棋は、コンピュータチェスと同様に、合法手(ルール上指すことが可能な手)をしらみ潰しに探索し、その中で一番得点が高いものを採用する戦略(min-max法)が使われる。*1チェスより盤面が広く、さらに持ち駒を打つことのできる将棋は、探索すべき手がチェスより多く、計算の効率化とハードウェア性能が要求される。
また、盤面に得点をつける評価関数のクオリティもソフトの強さに直結する。2000年代はじめまでのコンピュータ将棋は評価関数を将棋に詳しい人間がパラメータ調整して作っていたが、2005年に現れたBonanza機械学習の手法を応用し、過去の棋譜データから自動的に評価関数を作成する手法を取り入れて大成功を収めた*2Bonanzaインパクトは強烈で、今ではコンピュータ将棋の強いソフトはBonanzaと同じアプローチを取っている。今回の「ボンクラーズ」も、Bonanzaの並列クラスターによって構成されている。
このようにコンピュータ将棋が進化を遂げて、最近ようやくプロ棋士と公式対局が行われるようになった。2007年にBonanza渡辺明竜王と対局し、負けはしたが予想よりかなりの善戦であった。2010年にはあから2010が清水市代女流六段に勝利している。

今回の対局

今回対局した米長邦雄永世棋聖は、既に引退してはいるものの、かつては最強と呼ばれたプロ棋士である*3。先手はボンクラーズだった。
序盤は、米長氏のボンクラーズに攻めさせない作戦が効いて、ボンクラーズが特に当てもなく飛車を行ったり来たりさせているように見え、千日手(同じ盤面が繰り返されること)のような状態だった*4。ところが、米長氏が形勢を変更しようとした瞬間、ボンクラーズ千日手のような挙動をピタリと止め、まったく別な手を指し始めた。一見意味のない手を指し続けながら、米長氏に隙が生まれるのをボンクラーズはじっと待っていたのだ!そして気がつくと、ボンクラーズの攻めが完成し、米長氏は受けがないという状態になっていた。結局、ボンクラーズの猛攻は最後まで止むことはなく、米長氏の投了となった。ボンクラーズの圧勝だった。
素人ながら感じたのは、ボンクラーズが数学的に負けない戦略を取ってきているということだ。特に、序盤、千日手のような展開が1時間ぐらい続き、人間ならさすがに嫌になって形勢の変更にいくだろうという場面でも、粛々と最適な戦略に従っているという印象を受けた。なおかつ、小康状態が崩れてボンクラーズに攻めの形が現れると、攻め筋に従って完全に正確な手を淡々と打ち続けてくる。途中、解説の人がミスを期待していたが、最後までボンクラーズがミスを犯すことはなかった。

今後

当初は来年に再びプロ棋士1人とコンピュータが対局する予定だったが、今回の負けを受けて、急遽来年にプロ棋士5人とソフト5本との対局が行われることになった。「コンピュータとプロ棋士どちらが強いか」を完全にはっきりさせようということだろう。1年でコンピュータ将棋がどれだけ進歩するかも見物だが、やはり来年、ついにチェスと同じように将棋にもX-Dayが訪れるのかどうか、楽しみだ。

*1:実際には、見込みのない手の探索を打ち切る「枝刈り」を取り入れた[http://ja.wikipedia.org/wiki/%e3%82%a2%e3%83%ab%e3%83%95%e3%82%a1%e3%83%bb%e3%83%99%e3%83%bc%e3%82%bf%e6%b3%95:title=α-β法]などの改良されたmin-maxアルゴリズムが用いられている。

*2:この手法は、Bonanzaの開発者が将棋の素人だったことから生まれた。

*3:日本将棋連盟会長で、最近ではお茶目?なtwitterの書き込みが一部で話題。

*4:ただし、米長氏いわく「これはコンピュータの高等な作戦」だったらしい