指し手生成コード公開します。

magic bitboard を使って指し手生成する所までのコードを公開します。正直引くほど Stockfish 真似てます。 何か問題あれば連絡頂きたいです。 特にライセンス上の問題があれば速やかに対応致します。http://dl.dropbox.com/u/51381925/apery_generateMoves.…

floodgateで同じ名前を使ったときのバグ

実は Apery はどこかのタイミングで floodgate にログインするときの trip を間違えてしまったみたいで、 現在2つのAperyがratingされています。 昔のAperyがこちら 今のAperyがこちら 昔の方のは随分前からログインしていません。 しかし、昔の方のAperyの…

Bonanza 6.0 のビルドエラー

Bonanza 6.0 をビルドする際、20分ほど嵌った。 環境は Ubuntu 12.04, gcc4.6.3, GNU Make 3.81gcc で Bonanza をビルドするコマンドは $ make gcc で良いけれど、sqrt や pthread_create が見つからないとかで gcc に怒られる。 ちゃんと math.h や pthread…

Ubuntu12.04 インストールしてみた。

Ubuntu12.04 で将棋所を動かすまで。 インストール直後の状態。Ubuntuはどんどん美しくなりますね。 Ubuntu10.04ではなぜかFull HDのモニタのサイズを認識しなくて、 選手権で横に伸びた将棋盤をお見せしましたが、 12.04ではちゃんとFull HDになりました。 …

世界コンピュータ将棋選手権に参加してきた。

面白かった。夢のような時間だった。 他の開発者や運営の方々に会うのも初めてな訳だけど、 沢山話すことが出来てよかった。皆素晴らしい友人だ。 今年は一次予選をなんとか突破して、 二次予選では力の差を見せ付けられて、 大会前の期待通りの結果となった…

スマートフォンでBonanzaのソースを読む方法

スマートフォンを買ったので、 スマートフォンでどこにいてもBonanzaのソースコードが読めるようにする方法をご紹介。1. Cygwin か Linux か Mac を用意。 2. Dropbox を入れる。 Linux 用コマンドは以下のコマンドを打ち、後は適当にやれば出来ます。 cd ~ …

アピール文書

適当に書いた。 本当に今年はアピール出来るようなことは 正直言って無いなって思ったので、 「ルール通り動きます。」と一行だけ書こうかと考えたが、 ルール通り動くことを保証するのは無理だなって思って止めといた。 反則負けしないとは限らないからなー…

mate_weak_or

以下、Bonanza v6 の mate_weak_or() の一部を掲載。 if ( turn ) { if ( IsDiscoverWK( from, to ) ) { return 0; } pc = -BOARD[from]; pc_cap = BOARD[to]; MOVE_CURR = ( To2Move(to) | From2Move(from) | Piece2Move(pc) | Cap2Move(pc_cap) ); if ( ( …

Dropbox

Dropbox の中で git 使いながらプロジェクト管理しているんだけど、 Dropbox のフォルダより上位のフォルダを rm -rf やってしまった。 消している途中でヤバイと思ってコマンドを中断した結果、.git 内の大量のファイルが消え、中途半端に一部のファイルが…

今日はデバッグだけで終わった。

なんとなく落ちずに動いている様子。 探索のバグは本当に分かりにくいことを実感。 デバッグもなんとなく。 原因が分からないセグフォは、 無関係と思われる他のバグ潰してたら無くなった。 こんなんじゃダメだろうな〜。

Aperyの90%は

三駒評価に時間を費やしています。差分評価もまだしてないしなー。

あと3ヶ月

第22回世界コンピュータ将棋選手権に Apery というソフトで出場します。 精一杯本番まで頑張ります。 Apery とは 1.Bonanza の fv.bin をまるっとそのまま使用します。 2.チェスの Stockfish をよく参考にしています。 3.将棋ではまだまだ少数派である Magic…

申し込んだ

やばいやばい

間に合わない……

全然出来てないけど、 本当に参加したいのでとりあえず申し込まなくては。直前になってやっぱり間に合わなくて欠場したらすみません(>_

A級さんの

コメント欄がなぜあんなに荒れるのか理解出来無い。

ボンクラーズが24に

bonkras Conputer R2400 今年世界コンピュータ将棋選手権で優勝したボンクラーズが 将棋倶楽部24にいる! 今のところ誰も対局していない。 すごく対戦したいけどR400差以内の人のみ、対戦可らしいので、 俺の棋力(R1500強)では無理だ orz それより自動対局に…

最近

最近あんまり進捗無いなぁ。 時間は割とかけているんだけど、 探索関連の理解がなかなか進まないので コードもあんまり書けないでいる。 BonanzaとStockfishにコメントを埋め込む作業が続く。

今年のGPW

これすごく気になる。 「難解な必至問題を解くアルゴリズムとその実装」 長井歩

Bonanzaの王手生成

上の局面で、後手玉は詰まないことは簡単に分かるけれど、 Bonanzaのdf-pnは詰みと判定します。 以下、Bonanzaの王手生成で、香車が成る手を生成するところ。 bb_piece = BB_BLANCE; while( BBTest( bb_piece ) ) { from = LastOne( bb_piece ); Xor( from, …

最後の審判

今更ですが、詰将棋「最後の審判」の局面を初めて見て、 とても感動しました。で、これをBonanzaのDFPNで解いてみると、不詰と判定されました。 これを詰みと判定するソフトは今のところ無いんじゃないかな。

fv.bin

右玉が不安とか言いつつ、 とりあえず Bonanza6.0 の評価関数を導入しました。 自分のBitboardのレイアウトに変換するときに色々勘違いとかしてて ハマりました。自分が馬鹿すぎてヤバい。これより性能の良い評価関数を一から作るのはなかなかハードルが高い…

右玉

Bonanza の評価関数では、 玉の位置を基準にして他の駒の位置を評価するので、 とにかく玉の位置が重要。右玉とか、玉の位置が特殊な戦法を使うと、 評価がおかしくなることがありそうで少し不安。

買おうかなぁ。

Windows7 pro 64bit版。 1ライセンスくらいあっても良いな。 VC++ もたまには使うだろうし。 3万円とちょっとか。

SSE と union 更に続き

やっぱり気になって色々実験しました。 結果としては、 ・指し手生成はSSE使用で2~3割くらい遅くなりました。 ・指定位置への利きを持つ駒のビットボードを返す関数は、1.7倍ほどの速度になり、かなり高速化されました。 ・gcc, icc 共に同様の結果でした。 …

SSE と union 続き

icc をインストールしたので、 問題のソースコードをビルドしてみたが、 結果は駄目だった。 ただ、g++ が union で bitboard を定義しただけで滅茶苦茶遅くなったのに対して、 icc は union を定義しただけでは速度低下は無かった。 ただ、SSE の命令を使用…

icc インストールしてみる。

icc 入れてみる。 Linux版は個人が非営利で使う分には無償らしいので、それを貰おう。 以下、自分用メモ ・non commercial ってところ見つけにくいので注意。 ・32/64 bit 版の両方のバイナリを作れるやつと、 32,64 bit 版の片方だけしか作れないやつがある…

SSE と union

はよ評価関数入れろやって感じなんですが、息抜きに高速化でも。 自分のCPU(Core2Duo T8300 2.4GHz)はSSE2までしか対応してないと思ってたけど、Bonanza6.0 の Makefile 見たらデフォルトでSSE4.1使ってて、普通に動いてました。 ってことでBitboardのSSE化…

USI 動いた

とりあえず局面の更新とUSI読み込みは出来た。 次は評価関数。

動けば良いよ。

USIの筋、段と、自分のソフトの File, Rank が対応してないのは 気持ち悪いといえば気持ち悪いけれど、USI 周りだけで対応することにした。 Bonanza もそうなってるしな。

今更USI

position startpos moves 7g7f 3c3d 2g2f ↑の USI のサンプルコマンド打っても、 局面が更新されない、おかしいなぁと思っていたら、 USIは段がアルファベット、筋が数字だと・・・ チェスと一緒じゃなかったの??ソースコード全部で Rank ←→ File の変換し…