sakurapyon’s blog

sakurapyon’s blog

sakurapyon-2012-depth2.2

pishogiさんが居なくなってfloodgateの下のほうが寂しいので、sakurayon-2012-depth2とdepth2.2を常駐させています。 depth2 は探索深さ2(+静止探索8)、depth2.2 は探索深さ2(+静止探索2)です。さすがに弱いというか、意外に強いというか。 最初はsakurapyon…

sakurapyon-2012-depthN

sakurapyon-2012.015kpp を使って、探索深さを制限したらどれぐらい弱くなるのかを試しています。 探索部はαβ 静止探索 8手(+delta pruning) 王手延長・簡易一手詰あり という実装なので、深さ3でも7手詰ぐらいは解いてきます。fv.bin のおかげか、意外に強…

HIKARI_JavaScriptShogiさん

先週あたりから参戦しておられる新人さん。名前の通り JavaScriptで書かれているんでしょうね。勝てそうな対局を投了してたりするので(バグ?)、まだ実力は未知数です。何手ぐらい読んでいるんだろうな。ながとさんのHaskell将棋のように選手権に参加され…

成っても良さそうな局面で不成が指される場合

取らない手である 指した直後に取り返されるので成でも不成でも同じ評価値 成る手のうちSEE 上記の処理を仮定すると… 成りは Bad captures 扱いなので順序が後ろになり、不成は Non captures なので、成りよりも早く処理されることになりますね。もしこれを…

一手詰は何のためにあるのか2

先のエントリ「一手詰めは何のためにあるのか」にかずさんからコメントをいただいた。コメント欄で返事を書いていたら長くなりそうだったのでエントリを別に起こすことにします。かずさんのコメントは処理時間との兼ね合いで元が取れてるかどうか?という話…

一手詰めは何のためにあるのか

一手詰めのバグをチェックするために探索中の情報を表示させて見比べてわかったんだけど、「一手詰は詰のためにある」と思ってたのは認識不足だったようだ。確かに、一手詰を入れると入れる前よりも手数の長い詰みが読めるようになったり、詰めろをかけて勝…

評価値の異常な変化にバグがひそむ

SHEK絡みで評価値がぶれる場合もあるんだけど、そうじゃないときはバグかとんでもない読みぬけがあることが多い。 http://wdoor.c.u-tokyo.ac.jp/shogi/view/2012/06/09/wdoor+floodgate-900-0+bingo+sakurapyon-2012-0.015kpp+20120609043005.csa 90手目付…

bitboard版が ようやく配列版(れさぴょん改造版)に並んだかも

sakurapyon-2012.015kpp は bitboard + bonanza6のfv.bin sakurapyon-2012.015kkp は bitboard + bonanza6のfv.binからKKPを抜き出したもの sakurapypn-44 は 配列版 + bonanza6のfv.binからKKPを抜き出したもの KKP版同士のレーティングがようやく並びまし…

floodgate対局手合い考察

floodgateでは下記の方式にて手合いが付けられている。 floodgate shogi programming journal (2008-05-14) ・勝ち同士 レーティングにrandom(800)を加えてsortして、順に組み合わせる。 ただし、レーティング0の新規参加者はrandom(800)に代えてrandom(2500…

6月になってfloodgate新人さんが増えた

なんでだろ?ボーナスシーズン? なんにせよプレイヤーが増えるのは嬉しい。mumuファミリーは無明さんだろうか? Serinaさん強いなあ Seria rdfi (お久しぶりです) vps_mc Caffia mumu_jam_nana rgm_003 bonta chienowa(お久しぶりです) 追記:コメントい…

floodgateレーティングとアルゴリズム

以前も書いたけど、にちゃんねるにあった下記発言。かなり合ってると思う。このRにならない場合はバグか妙に遅い部分があると思っていいかも……ということで、sakurapyon-2012.014kppはたぶんどっかバグってる、と思う。それから、KKP版のsakurapyon-44とsak…

sakurapyon-2012-0.014kkp vs. rgm_003 (2012-06-05 20:30) 後手:rgm_003 後手の持駒: 歩二 9 8 7 6 5 4 3 2 1 +---------------------------+ | 馬 ・ ・ ・ ・ ・v玉v桂v香|一 | ・ ・ ・v飛 ・ ・v金 ・ ・|二 |v歩 ・v歩 ・v歩v金 ・v歩 ・|…

カウンター手 再考

Mate Killerの考察からすると、カウンター手も単にただやんキラーとして有効なだけなのかも?と思ったので、ちょっと実験してみた。 現在、sakurapyonのカウンター手の処理は下記のようになっている。 インデックスは [手番][From][To] ただし、駒打ち…

Mate じゃない Mate Killer と 駒得になる同一盤面

誰も教えてくれないKiller Moveが2個な理由 - 2012-06-02 - aki.の月記を読んでもやもやが晴れました。なるほど!そうだったのか… Killer Moveの1個目はそこそこβカットするけど2個目はほとんどβカットしない、でも2個必要な理由が腑に落ちました。追記:gps…

最善応手列(PV)の取得について(メモ)

わかってるようでわかってなかったので整理 末端で α

pishogiさんが5月一杯で参戦停止らしい

twitterにて教えていただきました。「現在floodgateに参戦しているpishogiとpinaniwaですが、当方のサーバー移転に伴い、2012年5月末で参戦を終了」とのことです。 floodgateのpishogi|道路上将棋!のブログ 道路上将棋さんのマシンだったのですね、pishogi…

プロファイリング

現バージョン(2012.010)のプロファイリング結果。Evaluate(評価関数)はKPP+差分評価無しなのでたぶんこんなもん。 Search(探索部)、isAttackAll(利きの算出、SEEで使う)、GenNext(1手持ってくる)あたりが遅い。GenNextが遅いのはsortのせい?ただ、このあたり…

綺麗な棋譜作りってどうすればできるんだろう?

sakurapyonは歩・飛・角の不成は生成しないんだけど、香桂銀の不成は生成する。成っても成らなくても取られる一手のときなどは、成らないこともあるんだけど、人間から見ると妙に見えることもある。もし、角不成も生成するとしたら、7六歩3四歩2二角不成…

静止探索内部で詰みが見つかった場合

以前から悩んでいる静止探索の問題。かずさんも悩まれているようだ (かずの心の贅肉 SEEのバグ)。これは静止探索に限った話じゃなくて 全指し手を生成していない(前向き枝刈りをしている)場合に問題になって、静止探索の手生成は前向き探索の最たるものなの…

将棋プログラムを理解するために1

書籍を読むとなんとなくわかった気になるんだけど、実際に実装しようとするとさっぱりわからなくなる過去の私へ。わかりやすい・短いソースコードを読もうbonanzaのソースは膨大なマクロや背景の考え方が理解できてしまえば簡単なんだろうけど、そこまで到達…

メモリ喰い

bitboardで何かやろうとすると、大抵の場合 位置情報*ビットボードサイズ分のメモリを喰う。下手すると位置情報^2*ビットボードサイズとか。前者の場合、81*32bit*3=972bytes、後者なら78,732bytes。今のところ最大なのは飛車や角の利きを求める配列で、81*1…

Kindergarten Bitboards マジ素晴らしい

Kindergarten Bitboardsの将棋への応用 - コンピュータ将棋開発中 ツツカナのkindergerten bitboardの飛車の縦利き - ながとダイアリー chessprogramming - Kindergarten Bitboards chessprogramming - Congruent Modulo Bitboards 苦心して作った rotated b…

bitboard版(0.003) 手法

とりあえず、落ちずにfloodgateで対戦できるようになったようだ(まだ非合法手が残ってるな…) 探索速度が20倍ぐらい遅いのと、sakurapyon-44の機能を全部もってこれてないのでヨワヨワである。 (まだ駒得バージョンにすら追いついていない(R200差)。フルバー…

将棋プログラムの作り方

2009-02-19 - お手軽に強い将棋プログラムを作る10の方法 - aki.の月記 ヘナチョコプログラマが一人でお手軽に強い将棋プログラムを作る10の方法 - 毎日がEveryDay! 将棋プログラムの作り方 いまさらながら先人は良いことを言っているのだなあ、と しみじみ…

難航中

全部作り直そうとしたのがハードル高かったかな。みなさん簡単に?作り換えされててすごいなーと思う。ようやく落ちない・非合法手を指さない状態で一局指せるようになったけど、NPSが激減してる(5Knpsとか@_@;) ここからどうやったら100倍ぐらい高速化でき…

打歩詰とか

ニコ生のコメント見てると、打歩詰とか反則にやけに厳しいこと言う人が何人かいたけど。 (何にでも文句言う人はいるんです。文句ばかり言ってる人はNGして見てました)打歩詰の対処って意外に難しいと思うんだよねえ。 手生成、特に打つ手は数が多いんでなる…

WCSC22

通過された Selene、なのは、技巧、GA将!!!!!、AWAKE、Apery、クマ将棋、きのあ将棋、おめでとうございます。 クマ将棋は定跡選択のせいか面白い序盤が多くて、観戦中楽しませていただきました。それで落とした対局もあるような気はしますが(^_^; 矢倉特化な…

mudflap 便利

悩んでたSEEバグがあっさり取れた。mudflap便利だなー。 きっと私が知らないだけで、他にも便利なツールがあるんだろうな。 http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c904.html

初心者向けの弱いソフトってどうすれば作れるんだろう?

pishogiの出来の良い弱さと、駒得sakurapyonの非人間的な弱さを見ると、弱いソフトを作るのは難しいと思う。機械学習しようにも棋譜が入手困難だし、特徴として何を与えていいのか想像もつかない。「幸福な家庭はみな一様に幸福であるが、不幸な家庭はみなそ…

指し手にどんな情報を含めるべきか?

1から作ると自分が納得できるように書けるんだけど、自分でも悩んでいるところが書きにくい。 (れさぴょん流用のときは悩まずに済んだわけで、その意味でもライブラリには価値がありますね) 駒はunsigned 32bit に pack (64bitは止めた) 6..0bitに移動先 13…