2012-01-01から1年間の記事一覧

三角テーブルから正方テーブルに変換

#define PcPcOnSq2(k,i,j) pc_on_sq2[k][i * fe_end + j] // KPPテーブルを三角テーブルから正方テーブルに変換 for(k = 0;k < 81;k++) { for(i = 0;i < fe_end;i++) { for(j = 0;j < fe_end;j++) { if(j <= i) { PcPcOnSq2(k, i, j) = PcPcOnSq(k, i, j); }…

【将棋】配列版でKPPを使う方法

ボナンザの3駒関係(KPP)を配列版で使う方法です。ビットボードで使う場合はボナンザのコードをそのまま使えば良かったのですが、 れさぴょんやsimkのような盤面を配列で管理している場合は、コードがそのまま使えないので苦労します。 というのは、オ…

いくつかブログに解説されていました。ありがとうございます。僕は将棋を指せないので情勢の判断がつかないのですが、 まったくのでたらめという訳でなく、 Sunfish戦では序盤で相手飛車が困っていたようです。 http://shingoozisann.blog48.fc2.com/blog-en…

オープン戦参加

第17回コンピュータ将棋オープン戦にクマ将棋で参加しました。 過去のオープン戦をみると、結構参加されていたので、今回参加しましたが、 SunfishとGPS将棋とクマ将棋の3つだけでした・・・ クマ将棋は学習途中のfv.binを使いました。 将棋所を使っての…

結果

これで、一応、矢倉ぽく組むようになりました。 あと、1万局より4万局で学習させた方が強くなった気がします。 floodgateにsimk_kpp_100で流していますが、当然ながら オリジナルfv.binを使ったバージョン(simk)よりもかなり弱いです。プロの棋譜だけでは…

ボナンザのコンパイル&実行

gcc+linux環境では以下のようにしたら動きました。 >gcc *.c -c -O3 >rm learn1.o >gcc learn1.c *.o -O3 -lm -lpthread >./a.out ボナンザのコマンドラインが立ち上がるので、6コアマシンの場合は >learn ini 32 -1 -1 6 6 とすれば6並列で学習が始ります…

学習データ

学習にはrecords.csaというcsa形式のデータが必要です。これを準備します。 ボナンザはプロ棋譜3万+将棋クラブ3万(24万局のデータは6000円くらいで売っている模様) のデータを学習させたらしいけど、手元にないので、2chkifu.csaというもので学習…

shogi.hの変更

まず、shogi.hに以下を追加。 #define TLP #define NDEBUG #define exam_bb(a) a TLPを定義すると、学習時にマルチスレッドで並列処理できるようです。 あと、NDEBUGを定義しないと、学習時にassertに引っかかったので。 exam_bbは局面に間違いがないかチェ…

simk_kkp

評価関数の学習を始めています。とりあえず、理解と動作確認のため ボナンザを使って学習して、どれくらい強くなるか試しています。 オリジナルのfv.binを超えるのは無理だろうけど、R2000行きたいところ。ボナンザを使って学習する方法のメモです。 もっと…

世界コンピュータ将棋選手権

クマ将棋で出場します。初参加です。よろしくお願いします。 現在、floodgateでsimkというIDで参加しています。レートは2000くらい。 simk_0は駒割のみのバージョンでレートは1500くらいです。 内容は非ビットボード、並列化なし、詰めルーチンなし(長手…