詰将棋の世界第8回はコンピュータ詰将棋とプログラムの話

今回も、「詰将棋の世界」の記事です。

数学セミナー2017年11月号に掲載の第8回連載に関して書きます。

テーマは「詰将棋とコンピュータ」で、続く12月号(すでに発売中)と合わせて2回、この話題が取り上げられています。

第7回出題詰将棋の解説のレビュー

いつもの通り、連載は前回出題された問題のレビューから始まります。

第7回第1問は、大駒を離さず打つ手が登場

第7回のテーマは合駒でしたね。

しかし、第7回の第1問は、本手順には合駒は登場しません。

通常、指し将棋で飛車や角などの大駒で王手をするときは、離して打つことが多いかと思います。

なんとなくこちらの方が得な気がしますよね。

大駒に限らず、香車の王手なんかも、なるべく下段から打ったりします。

受ける側も、「大駒は近づけて受けよ」の格言があるので、遠くに打たれた駒をあえて「中合い」の手筋で近くに呼び寄せたりするくらいです。

ところが、この問題に関しては、角を離して打つのではなく、近づけて王手するのが正解でした。

第6回出題の問題は合駒の手を含めて読み切ってこと完全にといたことになる問題でした。

今回の問題は合駒に加え、合駒の生じない、玉にくっつけて大駒を打つ王手も読まなければならない問題だったと言えます。

一つの方向に思考が凝り固まってしまってはいけない、と諭してくれているような出題、感服ですね^^

第7回第2問は、空き王手のときの飛車の位置が鍵

第2問は、初手は必然的に飛車を動かす空き王手でした。

問題はその飛車を動かす位置で、私の感覚だとちょっと見慣れない位置まで飛車が移動します。

5手詰めであることもあり、とどめの1手も中々容易ではありませんでした。

最後は、第6回の解説で出てきた比喩表現を用いるならば、「レーザー光線のような」包囲網に玉が捕まる詰め上がりでした。

コンピュータ詰将棋は凄い

第8回連載の説明によれば、詰将棋を解くコンピュータプログラムはこの30年ほどの間に進歩しつづけてきたそうです。

しかし、20年前くらいからすでに、私のようなアマチュア将棋愛好家よりは優れていたみたいです。

1990年代の時点でコンピュータは25手詰めを解けた

なんと1992年に発表されたプログラム「T2」は、25手くらいの手数の詰将棋なら解けたのだそうです。

驚いてしまいますよね。

私は最近将棋連盟の「毎日詰将棋」を解いていて、11手詰めで多少苦戦してしまいました。

それより長いのは15か17手くらいが限度で、25手詰めとかは解いたこともありません。

でも考えてみると、指し将棋でも、コンピュータは終盤が強い、というのは昔から言われていましたね。

コンピュータの計算能力があれば、25手詰めくらいは容易なのかもしれません。

詰将棋プログラムは、問題を解くだけでなく、作品が詰将棋として不完全でないかもチェックできるそうです。

これは凄いことですね。

コンピュータ詰将棋、興味をもっておいて損はなさそうですね。

江戸時代最長手数の寿(611手詰め)も解いていた

なんとコンピュータは、江戸時代に創られた作品の中で最長手数を誇る作品も解いていたそうです。

その作品の名は伊藤看寿作の「寿」。

聞きおぼえがある方もいるのではないでしょうか?

実は、AbemaTVの「炎の7番勝負」の番組冒頭の映像の中で、藤井四段が、「寿は解きました」と言っていました。

コンピュータも藤井四段も、凄いですね。

611手なんて、化け物じみています(笑)。

しかも寿を解いたのは、1994年につくられたプログラムとのこと。

詰将棋に関しては、コンピュータは20年以上も前からこれほどの域に達していたのですね。

コンピュータ詰将棋の2種類のプログラム

第8回では、コンピュータ詰将棋のプログラムが2種類紹介されていました。

「深さ優先探索法」と「最良優先探索法」というプログラムです。

詳しくは数学セミナーで読んでいただければと思います。

ここでは、少しだけ補足や独自の視点を書いておきますね。

コンピュータ詰将棋の「深さ優先」と「最良優先」とは

「深さ優先」のプログラムは、だいたい次のようなイメージです。

余計なことは考えず、ひたすら手を読んでいく。

すべての手を先まで読んでいけば、いつかは正解手順が見つかる。

深さ優先は、「しらみつぶし」というのが最適な表現でしょうかね。

具体的にどういう順番で読んでいくか、詳しいことは数セミでお読み下さい。

「最良優先」も、ひたすら手を読んでいくという意味では「深さ優先」と同じです。

ただ、どういう順番で読んでいくかが違います。

方法の名の通り、「最良」から順番に読んでいくという理解でいいと思います。

「最良」の基準については、数セミでどうぞ。

「最良優先」は、長手数の作品に強いらしく、寿を解いたのもこちらでした。

この最良優先の方法については、手を読む手順が具体的な詰将棋を例に述べられていました。

局面を記憶しておくためにメモリが必要って?

詰将棋プログラムによっては、一度読んだ局面を記憶しておく必要があります。

そのためにメモリが使われます。

たくさんのメモリを必要とするプログラムの場合は、問題を解くことが困難になります。

第8回連載は、最良優先の方法には、その点で改良の余地があることを示唆して終わります。

ここでは、この「メモリ」という用語について少し説明をしておきます。

人間の場合、記憶は脳に残しておきますね。

短期記憶とか長期記憶とか、記憶の種類によって脳のどの領域に残されるかが変わります。

コンピュータが記憶を貯めておく場所もいくつかあります。

キャッシュ、メモリ、そしてディスク、この3つがあります。

たくさんの記憶をとっておけるのはディスク、その次がメモリ。キャッシュは一番少ないです。

記憶を取り出して使うまでの時間が短くて済むのはキャッシュ、次がメモリ。ディスクは一番遅いです。

要するに、ある程度大量のデータを、それほど計算スピードを落とさずに扱うためには、メモリが使用されます。

このメモリの使用量が、すぐに限界を超えてしまうことのないようなプログラムを考える余地がある、というわけですね。

どのような方法で解決されるのか、12月号を読むのが楽しみです。

まとめ

いかがでしたか?

今回扱った、「詰将棋の世界」第8回は、文章メインだったこともあり、著作権に配慮して核心部分は伏せてレビューしました。

連載の最後の部分では、読者が各自文献を読むことがすすめられていました。

詰将棋に関する文献が紹介されている本も紹介されていましたので、皆さまと共有しておきましょう。

紹介されていたのは、共立出版の「コンピュータ将棋の進歩」(松原仁編)です。

さて、今回もブログをお読みくださりありがとうございました。ではまた!

スポンサーリンク