まあもっと強いソフトがあって、諸先生方の話が分かる人には無用ですが。
例えば「やねうら王」が最強の探索部、NNUEが最新の評価関数、そして機械学習といった単語の前に、将棋を何故コンピュータが指せるかというと、盤面が9x9行列の81個のCHAR型などで表現できるところは分かっても、その盤面をテーブルとして、指し手生成部が銀の利きを5方向生み出したら、その数だけ(やや語弊はあるが)仮想盤面が作り出されて、その仮想盤面のカタマリから最善手を探すのが探索部。
そして探索部は三手読みなら三手先なので、遡って1手目が指し手になって、毎回探索するのではなく、探索した結果の指し手をコンピュータのメモリとか、ソフトで言うならDBに記憶してゆくのが機械学習の基本なのです。
てか俺が将棋ソフトの世界に飛び込む前から、強いソフトは15手くらい読むとされていました。しかし自分でVBでプログラムを基礎から組んでみて5手から7手くらいが全幅探索で読める時間的な限度なのです。んで15手とか読むのはどういうカラクリなの?というと基本的には枝狩り、つまり全部読むのではなく細く読むということらしいですが「詳しいことは論文ではなくソースコードを読め」となっています。
そのくせ、プログラムではなく研究は論文形式で発表されます。この間に何かのズルは無いのかというと、研究者と研究者の使うソフトをプログラミングするプログラマーに役割分担があり、研究と称して論文を書くに当たっての実験で、既存のプログラムを部分的に改変したのみ、ということも全部とは言わないけど、読んだものがそうでした。
「ソースを読めば分かるなら、将棋ベーシック改もOSSにしているので、同じロジックをVBを読み書きできるすべての人が理解できる」という命題でVBを言語として採択したわけですが、結果から考えるとこの命題は否定されています。
だから、どこが分からんかなと思った時に「テーブル」というデータ構造が分かったとして、指し手の数だけRDBの盤面テーブルがある長大なメモリ空間を人間が想像できるかというと「否」ということになるから、俺もソフトを利用して実験を始めたのです。
さすれば、俺自身の敗戦記となりますが、C++で書かれた探索部の中にまだまだ難解で意味不明の部分があるわけです。しかし、探索アルゴリズムではなくNNUEや機械学習といったところが論議のポイントとなっているようです。論点というね。
関連書籍も数冊出ているようなので「お金を払って読んで学べ」ということかとは思いますが、買って読んだら本当に知りたい部分が学べるかというところで、専門性が高くなって分野をまたぐとなかなか教えてもらえないという経験をしてきました。
「もう騙されたくない」と新刊に対して警戒とか萎縮の念を持っているのも事実です。だから、自分で考えて、分かっているところをもっと丁寧に輪を広げて、同じ問題をより多くの人で考えられるようにということを狙っています。
「15手読んでいる」というのが嘘ではないという所が暗黙的に「是」ですが、そこを疑ってソースコードを読むと、また違った見え方になるかもしれません。DEPTH=15という係数がダミーで使われているとか、可読性の罠が待っているかも。
まあそうは言っても例年勝負の世界。それで勝って賞金を得て次回の研究費に当てているのに、大事なところは簡単には明かせないと言ってもソースは公開されていて、目一杯の譲歩であることも否めないところ。だから、こうして分かりやすく整理するなんてのも負けているから出来ることなのだとは思います。
あーん!もっと強くなりてぇ!というのが多分本音です。日本語ではなくC言語とかPython、Rustで話せ、読め!ということですね。
いつから俺、日本語とVBの人になったんだろ?自意識を意識低いグループの中央値に寄せ過ぎているかもしれんよな。孤高の人より話分かる友達いっぱいのほうが羨ましかったけど、山をちょっと下ってみると、高いところ目指してたなぁと見上げるように。
三人寄れば文殊の知恵って、文殊ってパンピー三人に負けるの弱くない?
パンピーブログ読まされた感を持った方は失礼いたしました。
パンピー三人では勝てん!っつつ!悔しい!