コンピュータ将棋の「読み」と「形勢判断」~そして、もう一つの考え方~

将棋の技術を考える時に、「読みと形勢判断」とよく言われます。

この記事では、コンピュータ将棋の「読み」と「形勢判断」について考えています。「読み」も「形勢判断」も将棋界で昔から使われている用語ですが、実は人間の将棋よりもコンピュータ将棋の方が両者を明確に区別しやすいです。

これからの時代は、「読み」と「形勢判断」に加えて、「もう一つの形勢判断」を理解する必要が出てくると思います。

なお、形勢判断については、似た言葉で「大局観」という用語もありますが、ここでは大局観と明確に区別して「形勢判断」という言葉を用います。


マイナビ 将棋レボリューション 激指14

コンピュータと人間の読みと形勢判断

コンピュータ将棋

出展 ex.nicovideo.jp

今はコンピュータ将棋の棋力がプロ棋士のレベルに達しています。もう人間はコンピュータには勝てないとさえ言われています。

電王戦に出場するようなトップレベルの将棋ソフトは、トータルでプロ棋士に勝ち越していますし、さらに年々強くなり続けています。

ソフトを研究に利用しているプロ棋士も少なくないようです。将棋の技術を考える上で、コンピュータ将棋に注目する流れは今後も継続するでしょう。

コンピュータ将棋で興味深いのが、「読み」と「形勢判断」を全く別の概念として切り離せることです。

人間が考えるときには、読みと形勢判断は密接に繋がっています。脳の中で無意識に関連づけられているので、切り離そうと思っても不可能です。読むときに「有力そうな手から読む」という時点で既に、読みの中に形勢判断の要素が含まれています。逆に、形勢判断の中には「これから局面がどのように進みそうか」という読みの要素が含まれています。

読みと形勢判断を別の概念として客観的にとらえようと努力しても、人間の頭はそういう風にはできていません。それこそ生物として高度に発達した脳のシステムなのでしょうが、将棋というゲームを考える上で、別々に考えた方が都合が良い場合もあります。

将棋の「読み」とコンピュータ

将棋の「読み」の一つの究極形が、「すべての手順を読む」という方法です。大技というか荒技というか無茶苦茶というか、何と表現したらいいのか悩むところです。

ある意味で、完璧であり完成形であり文句のつけようがない。しかし、頭の良い方法かと言われると、これほど馬鹿なやり方があるのかという見方もできるでしょう。

しかし、現実というものは往々にして「頭の良さ」「スマートさ」よりも、単純な「パワー」が勝るということがあります。知的ゲームでパワーというのもおかしな話ですが、頭脳スポーツと言った方がニュアンスが伝わるでしょうか。

コンピュータ将棋のパワーとは、すなわち演算力です。これは現代のコンピュータ技術、半導体技術に基づいています。一秒間に何億手読めるのかは知りませんが、とにかく人間が読める手数と比べると桁違いです。また、ハードのスペックを上げることで、ある程度の桁までは簡単にパワーを上げることができます。

コンピュータ将棋の「読み」の凄まじさは、「手筋」という考え方を無意味なものにしてしまうほどです。

将棋には「手筋」と呼ばれるテクニックがあります。パズルのように一つ一つの手を組み合わせるテクニックです。これは通常、「継ぎ歩」「十字飛車」のように、よく現れるパターンとして認識されています。

しかし、コンピュータ将棋のように手を片っ端から読むというやり方をすると、よく現れるパターンも、そうでないパターンも含めて、「あらゆる手筋をすべて読んでしまう」ことになります。パターン化するのが困難で、手筋とは呼べないような手の組み合わせも当然読んでいます。それどころか、手と手の間に全く関連性がなさそうな、「馬鹿」な手順の組み合わせもすべて読んでしまいます。

「読み」を究極的な形にすると、「手筋」はすべて読みの中に含まれてしまう。実戦でよく現れるかどうかの「頻度」の問題や、手と手の間の「関連性」の問題は、すべての手を網羅的に読むならば意味がなくなります。

将棋の「形勢判断」とコンピュータ

コンピュータ将棋の形勢判断についてですが、あえて「大局観」ではなく「形勢判断」という言葉を使っています。

コンピュータ将棋の場合は、そもそも「大局観」という言葉を使用するのがふさわしいのかどうかがあやしい、というのがその理由です。大局観がコンピュータ将棋のアルゴリズムにおける何を意味しているのか分からないからです。

一方で、「形勢判断」については「評価値」のことです。評価関数というブラックボックスがあるにせよ、何を意味するかは明確です。

もっとはっきり定義しようとすると、読みがゼロの条件での評価値が重要です。コンピュータ将棋の業界では、読みゼロでの評価値を表す特別な用語が何かあるのでしょうか? 私は知りませんが、何か専門用語があった方が便利です。

将棋界で普通に使われる「形勢判断」には読みの要素が含まれているので、読みゼロでの形勢判断ではありません。コンピュータ将棋の「評価値」という用語も、普通は読みの要素が含まれているので、こちらも読みゼロでの形勢判断ではありません。

ただし、コンピュータの場合は、機械的に読みの深度を変えられるでしょうから、ゼロにするのはおそらく簡単です。専門用語があるかどうかは別にして、「読みゼロの形勢判断」が何を意味するかは明白です。

「読み」と「読みゼロの形勢判断」

このようにコンピュータの「読み」と「形勢判断」について考えると、どうやら両者は全く別のものとして定義できそうです。

そして「読み」については、すべてを網羅するという究極形の一つです。この点については、方針としては究極ですが万能ではなく、何手先まで読めるかはハードによる演算能力の限界の壁があります。

「形勢判断」については、読みゼロの形勢判断(あるいは評価値)を定義できます。「読みゼロの形勢判断」という概念を定義できる時点で、読みと形勢判断を全く別の概念として定義できている証拠です。これは、単純に現在の駒の配置の点数を評価するというものです。

コンピュータ将棋を考える上でのスタート地点がここです。繰り返しますが、

「読み」と「形勢判断」と「読みゼロの形勢判断」を別の概念として認識する。そして、それらの性質について考える。

というのが基本になると思います。


マイナビ 将棋レボリューション 激指14