コンピュータ将棋について考える

http://d.hatena.ne.jp/ak11/20080920/p1
どうもこんばんわ。ボナンザメソッドも実験されているようですね。トラックバックありがとうございました。

コンピュータ将棋の読み筋表示というのは、読んだ手の中でMinMax的に最善な手というだけであって、相手の手を予測しようとしてる訳ではなく
*1、ある程度の深さを読んでいれば、大抵は人間の考える「本筋」もそれなりには読んでいるのですよね*2。その辺割とよく誤解されがちな気が。

 ですね。上位ソフトあたりだとかなりプロ棋士の手とも一致しますし


 ただ、読みのオーダーが、
 4^nとか5^nだったとしても、指数関数的に先が読めなくなるのは確かですね
 さすがに2^nまでは行けてないですし


 プロ棋士とか強い人間は2^nとかへたすると1.5^nぐらいで先を読んで、
 しかも大きく外さないのが凄いと思います
 コンピューターも絞って読むけど、悪い手を悪いと確認するのにすごいコストがかかりますし(カットノード探索)

*2:とはいえ、それが最善手にならないのは、具体的に有利になるとこまで読み切れてないからな場合が多いのだろうけど。

 CSA会誌に保木さんも「現在Bonanzaの評価関数の精度では20〜30手先まで展開しないと、この判断を下だすことができない」
 と、ある程度の読みの深さの必要性をあげられてました。


取った駒が使えるから「数が多くて」難しいんだよねとか*3、MinMaxじゃ面白みのない手しか指せないんじゃないのかとか*4。

 終盤の難易度は打てる手があって合法手が増えるのもあると思うんですが、
 駒の当りが増えていって、静止探索がすごく長くなりますね。
 取り合いは読まないと損得が解らないですし
 地域紛争の解決がたいへん…


人間の思考方法を参考にヒューリスティクスを作り出す事とかの有用性は否定しないものの、
基本的には、チーターをモデルに四足歩行ロボを作るよりは、車をチューニングした方が速度を追求するには近道なんじゃないかなぁ、と思ったりも…。

 確かに、人間と同じ手段で強くする必要は全然無いですね。
 ただ、プロ棋士棋譜を真似るのは教師ありで学習効率が良いけど、
 それ以外の、自己対戦勝率とか、そういう方向は学習の効率が悪くて良い方法が見つかってないようですね
 モンテカルロは勝率で判断するので、この面ではいいと思いますが、シミュレーションの精度を高めるために
 結局、棋譜の知識を利用しているので、どっちもどっちかもしれません


 たしかに車輪は速いんですが、それは舗装された道を走る場合で、
 悪路を走るのは足が向いているところもあると思います。
 ある程度単純な問題は車輪でもいいけど、すごい悪路にはAIはかなわない。
 将棋は中間ぐらいの悪路かもしれません。


 4足歩行ロボットということで、たとえばMITのブルックスの分散ロボットの話も思い出しました


http://d.hatena.ne.jp/doublecrown/20080919/1221838115


doubleCrownさんが24で4段になられたようです(凄いな。24で4段って、町道場だと6段とか?)
強さの秘訣を書かれてました

手順を仮定する意識を持つ

これは羽生将棋からヒントを得たというか。困った局面があったとして。そんな局面を前にしてまず考えるのは、どういう形だったら勝てるのか、という大雑把なイメージの啓示を得る(←これが難しいのだけど頑張って思い浮かべる。実現したら気持ちいいだろうなぁという手順とかね)で、それではどういう手順だったら実現できるか?ということを具体的に考えるわけだ。

通常なら局面から指し手を演繹して得るわけだけど、仮定から推論して指し手を得るのです。

現実には演繹と仮定、双方をミックスして考えていると思うのですが、より意識を持って仮定してみるとヘンテコな筋や捌きが浮かんでくるようになります。具体的な例がすぐに思い浮かばなくて申し訳ないですけど

これは難しい。
AlphaBeta探索は、結果から良い手がルートに伝搬する。言うならばボトムアップ(ほんとに?)
しかし、反復深化をするから、トップダウンでも良い手を探して行く方向も多少はあると思う。
それも結局はボトムアップの結果を利用して、トップダウンを繰り返すって感じでしょうけど。


昔の、コンピュータ将棋の進歩を読むと、
「手筋の知識」を利用して指すみたいな知識の方面もあって、それはトップダウンだと思いますが、
それは限られた知識だし、状況を考慮すると副作用がでまくるばあいもあるので、
現実的には、あまり作用してない(でも実現確率はヒューリスティックかなあ。少なくとも動的判断ではないし)


「仮定から推論して指し手を得るのです」
これがおそらく今のコンピュータ将棋には全然できないんだと思います。
まず、イメージして、そうなるにはどう指すか?を考える。
これが本当の意味での知的処理なのかもしれない(強いAI?)



>*3:どちらかというと、難しさの原因は駒の足の遅さや終盤が収束しない事
 足が遅いからこそ、先んじて備えてないと、間に合わないですね。
 より戦略性が高いというか。
 囲いの難しさもそうですね
 終盤は、そっぽ手はだめなので、脅威を考えて指すことになるので、そこまで発散はしてないと思います。
 上位ソフトの検討で、タイトル戦の一致率を見ると、後半はかなり一致してたりしますね