将棋や麻雀の話
モンテカルロ法で1~3手間引いて探索すると速いが弱い。そこで原始的ではあるがモンテカルロ探索以前にランダムムーヴからキラームーヴ(駒取り)になったように、キラームーヴを間引かないモンテカルロ探索というのを面倒だが実装してみた。 三手読みでも…
将棋ベーシック改というと三手読みの全幅探索ですが、強くなるかどうかはさておき、深読みするためには枝狩りが必要(計算資源は同じだから)ということで、モンテカルロ法的に手生成をしてから間引いて探索するアルゴリズムとして、手生成をした結果の探索…
将棋ベーシック改の評価関数を眺めていた。詰将棋を実装するのに少なくとも「王手」が先手後手ともにフラグ1発で取れる関数が欲しいよな~、まさかまだ無かったのか!という感じで眺めていると、駒利き評価の王将や玉将との距離の取り方がもしかして反対ち…
まあもっと強いソフトがあって、諸先生方の話が分かる人には無用ですが。 例えば「やねうら王」が最強の探索部、NNUEが最新の評価関数、そして機械学習といった単語の前に、将棋を何故コンピュータが指せるかというと、盤面が9x9行列の81個のCHA…
格闘ゲームの祭典EVO2024の様子をSNSで観戦しながら自宅のエアコンの効いた部屋で缶ビールなど飲んでいたわけですが、まあ餓狼スペシャルとかカプエス2を趣味の範囲で楽しみながらもどうしてその道に行かなかったかと自問すると、言い訳みたいだ…
将棋用のユーティリティとして今まで何故無かったという棋譜保存。 とりあえず狭い画面にリストボックスで棋譜を三行ずつ表示していたので、リストボックスをダブルクリックするとクリップボードに全部書き出すというプログラムを組んだ。 Private Sub ListB…
将棋ソフトが強くなるのは作者からすると嬉しい事なのですが、強くなった瞬間は嬉しくても対局して自分がソフトに負けつづけると複雑な心境てか悲しい気持ちになります。やっぱり勝つ方が面白い! 今日の対局の流れは相掛かりになるかと思いきや6四飛から定…
まあ今日の午後はサボってぼーっとしていただけなのですが、午前には駒利き評価の空きマス評価を実装ONにして勝てなくて面白くないからもう指さない。ぷんっ! しかし何かの仕事はしたい。というわけでSNSから流れてきた機械学習界隈では学習成果をグラ…
ずっとソースコードの中にblank_effect_valueての用意して中身は未実装だったんだ。つまり将棋ベーシック改の電竜戦参加バージョンでは「自分の駒に利いているか」と「敵の駒に利いているか」を評価してたんだ。それに対して空きマスにも効くものは利いてい…
電竜戦に対する俺のコミットメントは駒利き評価であったが、その後駒位置評価を加えてどうにも行かなかった銀や角に玉は駒が効いているより逃げ道があった方が強いという部分を空いている升に利いていることを評価するようにすると上手く行った。 これで再び…
拙作、将棋ベーシック改は駒得を基本とした評価関数でアルファベータ探索を行うプログラムであるが、探索の深さが将棋局面三手先つまり三手読みとしているが、三手読むとはどういうことかというと最大約600の全指し手に対し応手600手さらに600手と…
SNSで先に触れたのですが。 とりあえず将棋の一局を多変量解析にかけるためにコンマ区切りでエクセルにしてみたが何して良いか分からず困ってます。盤面を表式化しても読めないので、評価値の変量くらいしか読めるデータが無い(俺が) pic.twitter.com/T…
SNSのタイムラインにコナミのファミコンソフト「がんばれゴエモンからくり道中」の映像が流れており、そういや俺子供の頃にこのゲーム親に買ってもらったけど、中学受験でファミコンを取り上げられ、無事に受かった中学か高校の頃にスーファミソフトの中…
探索の速さためにプログラムをシェイプアップするのではなく、研究目的で指し手が決まったら評価値、bestの期待評価値(探索終了局面の評価値)、その手を求めるのに読んだ探索深度の3つを列挙するようにして1局指しました。 我ながらなかなか良い将棋が指…
局面ごとの定跡に別のパラメータを振ってDB(データベースの事でドラゴンボールじゃないよ)のように扱う第一歩として通し番号IDを頭に付けてみた。 しかしまあ、プログラムの構造上定跡は連想記憶、マップ、辞書などの呼び方あるキーに対して値があるハ…
将棋コンやるからにはひとネタ欲しいと前々から思っているのですが。 まあNNUEなんも分からん!というところで、駒得、三駒関係、探索、評価とかは分かるわけですよ。んでそれを基礎にした考え方でもコンピュータのスペックを上げて、ソフト的にもCやア…
将棋ベーシック改での電竜戦出場は0回戦を主催のカツ丼さんにメールして、自宅でアプリを操作して将棋所への手入力で通信して参加させてください!とお願いして、承諾してもらったのですが、他の参加者はほぼすべて自動で動き続けるプログラムをサーバーコ…
久しぶりに、麻雀の事を考えていた。 はじめは河を見た打ち筋の研究をもっと掘り下げようとしたが、そもそも何故コンピュータ麻雀くらいしか普段打たないのにそこまで掘り下げようとするのかという点から考え直す。 正しく考えられるようになる前に高校くら…
タイトルの通り、将棋ベーシック改に作者の俺が先手で負けました。 育てた甲斐がありました。作者冥利に尽きます。 将棋ベーシックを「改」と題する前、一手読みの将棋ソフトを作って入門者向けのアプリとして販売しようとしていたんです。スライム級に弱く…
コンピュータ将棋の開発者ではありながら、下手の横好き将棋は二の次で生きてきました。人生で読んだ将棋の本は二冊ですが、小学校の時に読んだ入門書はクタクタで大人になって何となく手に取った雑誌将棋世界をペラペラとめくって読んでいました。 将棋の先…
将棋ベーシック改の開発を数カ月ぶりに進めてみました。進んだ!奇跡! 先日の電竜戦4期は不参加で「水匠」の応援に回っていました。 第1期には参戦したのですが、負けのいくつかが切れ負けなので、5分将棋とか10分将棋には耐えられないと思っていたの…
書き始めるか。 先のブログ記事で将棋ソフトをIF~ELSEの塊であると考える人は多いと書いた。では、そうでないなら何なのかの前に、IF~ELSEで書いてみたことがあるかというと、これは考える段階で将棋には無数の手があるのでIFの列挙が事実上…
コンピュータに将棋を指させるというと、 RUN 2726(2六歩) IF 8384 THEN 2625 IF 3334 THEN 7776 みたいなプログラムをイメージしている人は結構いる。コンピュータ将棋の中にはそんなものもあるのかもしれないから、…
将棋ベーシック改のビットボードによる飛車角の利き計算を1ヶ月見積もり、結果何も進まないで月初には遊戯王DSで遊んでいるということを正直に打ち明けたわけですが、それでも俺は将棋開発専門だと思っていたら色々個人開発してこのブログも書いているとい…
「壁にぶち当たった」とか「ひと月見積もった」などと言って、自分を追い込んで実装を始めると昨日1日でほぼ完成したという。だいたい、長く見積もられていると納期のギリギリまでエンジンがかからないタイプだったのが20代のこと。 反対に30代は先々に…
ビットボードを実装した目的は単なる探索部の高速化だけではなく、駒利き評価や駒位置評価という独自の評価をより簡潔に出来ないかということも併せてのことであって。 それが「先に気付けよ」と思わなくも無いが、歩と桂銀金王までは実装済みで今は試験中で…
いつも360円のシャケ弁かアジフライのり弁を取る時につい横にあって目を奪われる「牛めし」を買ってきたよ!いつだったか、大晦日かお正月にいちど食ったことがあって旨いのは分かってるけど贅沢しすぎじゃねぇかと思ってたんだけどいつの間にか記憶に刷…
とりあえず歩だけ実装してみて、体感的な差はほぼ感じられず。速いかな?くらい。 まあそれでも全駒やれば確実に速くなるだろうし、その他のやりたい追加機能への基礎モジュールとして利きがBitBoardで1発取り出来るのが便利なのは間違いない。 ただまあ、…
俺は将棋ソフト開発者以前にファミコン愛好家なので、メモリの小さいプログラムが良いプログラムであるというような考え方がどこかにあった。 だから将棋の指し手を考えるときにやねうら王から「そんなもん800^depthくらいメモリを確保したら出来るんやから…
なんで今までしてこなかったろうと思うような基礎的な機能を実装しました。 研究と称して考える旨味のある部分だけをやりたいと贅沢にワガママにやって来たのが、不意に基礎的な事の積み重ねの上にしか大きな木は育たないみたいな当たり前のことを思うように…