将棋開発今日の進捗定跡ファイルに通し番号IDを割り振り

 局面ごとの定跡に別のパラメータを振ってDB(データベースの事でドラゴンボールじゃないよ)のように扱う第一歩として通し番号IDを頭に付けてみた。

 しかしまあ、プログラムの構造上定跡は連想記憶、マップ、辞書などの呼び方あるキーに対して値があるハッシュテーブルで{盤面、定跡}というふたつの値の行列なのだ。でもまあ、定跡をクラスにしているので、クラスを拡張すればDBに出来そう。

 てかひとりで遊ぶ分には自分が勝つ方が面白いってか、ホントに作った初めのクッソ弱い頃は強くするのが楽しみで初めて負けたとき嬉しかったってのが、わざと負けではなくコンピュータが良い手を指した喜びみたいなの、あったかもって記憶はうっすらで、三手読みでも強くてムカつく方が多くなって、最近自分の棋力がまたそれを追い抜いて、このまま上手く二人三脚というか一人一台机入れたら六脚くらいで腰痛治って頑張れれば。

 まあ暫くは実装の日々になりそうです。研究テーマがあって実験するのではなく、実験に必要なパラメータを取るための準備の仕事がメチャたくさんいるんですよね。でも何でそんな仕事するのかというと、将来的にもっと楽になるためというか将棋を考える作業を怠けるためという準備して研究したいのか楽してサボりたいのかの損益分岐点計算みたいなことをずっとやって、そんで結局楽しみながら出来ることをコツコツ続けるのが良いかと。駒位置評価とか、駒得評価とか評価値を「与えて」計算してたんですよね。それって研究としては、将棋の直感で大駒のほうが強いという常識があって、それを数量的に示して、自動計算で駒を得するようにループで手を探すのがラクチンということで、しんどい目をして探索アルゴリズムを実装したわけです。

 んで、その探索をして放っておけばいいかというとVBでは9手も読むと丸一日でも返ってこないくらいになって、パソコンが使い物にならなくなる。それで研究用のマシンを使ってする人がするようになって、ゲームソフトとしては三手読みで返したら、ちょうど自分くらいの棋力の人が遊べるのではないかという所が最近まで続いたわけです。

 それで機械学習界隈では5手から7手くらい読ませた手をDBに覚えて行って、実戦ではその覚えた手を指すだけのプログラムで勝負するという進化の筋道がありました。

 もちろん、大筋それだけでも種々の違いはあって、ディープラーニングとかNNUEとかは俺っち難しくて分からなんのだけど、強いのがあるってことです。

 その中で俺も何か強いの作って一発当てたいなってのが、一発目が終わって何年も新しいことを閃かないで、観戦する側に回ってたのが、今期はなにかあるかも、程度です。今月は通信部もちょっと組みました。

 まあぼちぼちやって行こうと思います。

 俺が勝ってどうすんねんとも思うけど素直にゲームに勝って嬉しい普通の人に戻れた感じがします。


🄫1999-2023 id:karmen