将棋ベーシック改の評価値を計算式で開示することを考えた

 まあ、だいたい考え終わって後はプログラムを組みなおすか、面倒だからしない言い訳を考えるかなのだが、今日のブログにはしない言い訳について考えたことを書く。

 まず、コム将界隈で使われている評価値とは何なのか。

 これは将棋ソフトのロジックが現行の大半でゲーム木探索をして、ミニマックス法という取捨選択のアルゴリズムで駒に既定の得点を与え、その合計が多いほうを取るという手法が基本になっていて、その駒の合計点を先手後手差し引きしたものが評価値。

 つまり、駒得方式の評価値は駒の得点が分かれば盤面と手駒を見れば計算可能。

 難儀なのは、ボナンザである。保木さんが英論文を読んで組み上げたボナンザは他のほとんどの人から解読不能の三駒関係なるもので評価されており、その評価値は駒得とは別に評価値早見表とでも言うべきeval-bookに5万ステップくらいで保存されている。

 どうしてこうなった?と思った俺は市販している現行の将棋ベーシックからボナンザ方式とは何なのか、研究したついで出来てしまった駒利き評価と駒位置評価という二つの方式を打ち出した。このうち駒利き評価はアプローチとして新しく、電竜戦の参加資格獲得の切っ掛けとなった。カツ丼さんが優しかったのもあるが。感謝。

 もうひとつの駒位置評価は、三駒関係より先に誰かが生み出しているはずだと俺は考える。駒位置を三つでひとくみにして評価値を定義したものが三駒関係だからだ。ツツカナの二駒関係で計算機科学的に必要十分とする人と、もっと増やして四駒関係にしている人もいる。ではなぜ将棋ベーシックではひとコマの駒位置評価なのかというと、それ以上プログラミングするのが仕事として重すぎるからだ。面倒と言ってしまうと、ちょっとしたことを面倒がっているだけに誤解されがちだが、将棋ベーシックだけでも飯の支度や洗濯を親に任せて自室にこもり切り生活リズムも風呂も部屋の掃除も放ったらかしで没頭して、長髪のひげもじゃになって免許の更新で警察に不審がられるくらいでどうにかこうにか作り上げたものだからだ。それで44チーム中40位だ。

 それはさておき、駒に得点を与えるのはまあいいとして、駒の利きや位置に得点を与えるとはどういうことかというと、これが何点やって良いものかというところから研究は始まっている。将棋ベーシックの場合、玉将が11にいる穴熊のポジションを歩をひとコマ持っているのを100点とした時に同点の100点、つまり穴熊に入ると1歩得しているのと同じくらいという風に簡単に評価している。

 その他の駒位置は歩を100点として飛車は1000点から1200点くらい付けるのが相場のところ、利きで10点未満、位置で70点未満ほどである。

 これらは、聡和にしたときに多少の駒利き、駒位置などの形成良しよりも1歩の得のほうが重いという計算結果をもたらす。それで自分と指してみて十分強いからだ。

 ただ、強いソフトのNNUEがどういう得点になっているかはプログラムコードを個々に追跡しないと分からない。それでも、NNUEとはいえ駒毒、関係などを数式で計算して指し手をトップの得点から求めるために1列にしているわけで、評価値何点というのは、歩が何点で駒の合計が何点で、三駒関係がひとつずつ何点でバイアス値が何点で、合計して評価値になっているわけで、画面の広さが十分なら、どこかに根っこから現局面をどう計算して何点かという数式を出せるはずである。

 ただ、探索部の改造において計算の速さを計算量1%で競うコム将開発者界隈で、分からない人のために計算に途中で割り込んで根っこからの数式と数値を画面に出すと、その計算でサービスするソフトの方が計算全集中のソフトより1%くらい遅くなってしまう。だから、これは研究というより完全に分からない見る将向けのサービスUIと言える。

 そんな仕事、誰がするの?というところで、ひとつ目のやらない理由が出来上がる。

 それともうひとつ。競争ゆえの守秘という問題がある。プログラムを読めばわかるプログラマ同士の競争で、ひとつのプロテクトがプログラムコードの難読化である。分かるやつにしか分からないというのはチームで仕事をする上での内部連絡では分かりやすいほうが良いが、外部からは悟られないほうが強い。その中で、1強状態で頼られる探索部がオープンソースである状態に独自性を持ったソフトが割り込もうとして、評価値を出すのが当たり前という風潮になると、木構造と評価値という枠組みから外れたものが想像しづらくなる。

 文中では初登場になるが、詰将棋というアプローチもコム将にはあるからだ。もちろん、詰将棋の解法それ自体は現況ゲーム木探索が一般的というか専門的ではあるが、もし王手をかけたら詰将棋で勝ってしまえる将棋を駒得して裸の王様になるまでなぶるか、詰めて勝つかというのを何手読みくらいまで評価で行くか詰将棋に切り替えるか。

 また、詰将棋の手数で長手数で詰むとしても普通の人には見えない場面で詰将棋エンジンに任せると勝ちだから盤面評価を即座に勝ち点にして良いかという問題がある。

 実際、コム将が既に9999点を出している局面から人対人の将棋が熱くなるということも見る将で経験してきて「だから将棋って面白いのよね」という感想も得た。

 ブログに書いてスッとした。あとは、コメント欄特にはてブコメントとかで何かあったら連絡ください。何もなければ、誰も興味がないねんなと思って開発は放置します。


🄫1999-2023 id:karmen