2012年3月26日月曜日

なぜ、将棋ソフトは執拗に手待ちをしてこっちが攻めてくるのを待つのですか?(自...

なぜ、将棋ソフトは執拗に手待ちをしてこっちが攻めてくるのを待つのですか?(自分から攻めてこない)


|||



先日、ニコニコ動画で電王戦を観戦し将棋を始めてみようと思い立ったエンジニアです。将棋はそれ程詳しくはありませんが待つ理由はエンジニアの立場として幾つか予想できそうなので回答してみます。



手待ちをする理由は将棋ソフトが勝利する唯一の方法だからです。



攻めは自分の手が良い手かどうかを判断する必要があります。良手は詰みまでの道筋を作る作業です。おそらく序盤で優勢になろうとすると1手打つ度に判断基準が増えていくはず。つまり優勢になるまで打てば打つ程計算する必要が出てきます。優勢だと判断できるまでに一体どれだけの計算を行えばいいのか検討がつきません。これでは詰みの道筋を立てることができません。



対して、待ちは相手が悪手を打ってきたかを判断します。これはコンピューターにとって得意な作業です。将棋ソフトは手筋や定石をデータベース化しており、相手がどう打つかをそのデータベースを用いて分析します。つまり道筋を作る作業ではなく現状を分析し判断する作業です。これは勝負が進むにつれ状況が固まっていくので計算回数も徐々に減っていくことになり、その結果勝利への道筋を立てることになります。



執拗に手待ちする理由はもう一つあります。それは将棋ソフトが苦痛を感じないからです。コンピューターの良いところはどんな指示を与えられても文句を言わず淡々とこなすところ。場の雰囲気、勝負感など微塵も感じません。勝利への欲求もありません。将棋ソフトはただ相手が間違えるのを待って、間違いを見つけたらそこにつけ込むことだけが指示されているだけ。そういう将棋は恐らく人間だと苦痛や不満を感じてしまいますが、コンピューターは全く感じません。自ら進んで不利になる状況を作り出す必要がないのです。



以上のことから執拗に手待ちをするのは相手のミスを待つ戦法しか将棋ソフトは取れない為だと思われます。つまり勝とうとせず負けないようにする事しかできないと。



人間の素晴らしいところは見えない道筋を作れるところ。自ら勝利を掴もうとするところです。相手がどう打ってくるのかを判断するのも当然ですが、自分がこう打てば相手を焦らせ優勢に持ち込めるというまさに心理戦と言ったところでしょうか。





余談ですが、個人的な感想として人間対コンピューターの将棋対決というのは余りにもアンフェア。なぜならコンピューターに蓄えられた知識は先人達の知識。それを一つでも多くかき集めて出来たものが将棋ソフト。



誤解を恐れずに言うと1棋士対先人達です。複数を相手にした勝負です。圧倒的にコンピューターが有利です。



しかし棋士には絶対的に有利な事があります。それは新しい手筋、定石を作り出す事。先人達の知恵を極め、そして更なる将棋の道を作り出す事です。それを想像するとワクワクしてたまりません。



恐らく将棋はコンピューターという対戦相手を得た事で、この先10年で過去に例がない程の飛躍的な進歩を見せると思われます。その過程が見れる将棋ファンはとても幸せな事ではないかと。



長文失礼しました。



|||



将棋ソフトを購入した人が、(オンライン将棋などではできないような)自分のやってみたい戦法を



使って勝ちたいからではないでしょうか。たたき台としての役目が多分にあると思います。


|||



いえ、攻めますよ。決して常に手待ちばかりを繰り返しているわけではありません。



恐らく、先日の米長会長と将棋ソフトとの対局の様子を想定して質問されているのだと思いますが、あれは米長会長が事前に用意した、大駒の活用をそこそこに金銀がスクラムを組んで玉を守るというあまり前例のない作戦がある程度功を奏して、なかなか有効な攻め手のみつからない局面に誘導することに成功したためにあのような展開になっただけです。

基本的には将棋ソフトは「良さ」を求めて局面を探索しますから、必然的にその棋風(?)は受けよりも攻めに重点を置いたものになっていると思います。

0 件のコメント:

コメントを投稿