将棋プログラム「Sunfish」

主に将棋プログラム「Sunfish」の開発について書いています。


テーマ:

3月中

・マシン購入
・エントリー情報入力


4月中

・本番環境確認
・(デスクトップの場合)マシン発送
・置換表のサイズ調整


5/2 (前日)

・PC
・LANケーブル
・電源コード
・(念のため)電源タップ
・最新のソース
・梱包用具
・ねじまわし(故障時用)
・コンパイル(make release-pgo)
・誰かと練習対局


5/3 (当日)

なんとかする。

AD
いいね!(2)  |  コメント(2)  |  リブログ(0)
最近の画像つき記事  もっと見る >>

テーマ:
評価関数(3駒関係)の差分計算を実装しました。

2013年のバージョンでもやっていましたが、
変化しない要素と変化した要素の2重ループになっていて
あまり速くなかったと思います。

Bonanza6.0 にお手本になりそうな実装が入っていますが、
Bonanza は何回見ても読むのが大変です。

ブログだとここらへんでわかりやすい説明があります。
d.hatena.ne.jp/suzume_r/20120307

実際にコードを書く場合は次の3つのケースに分けるのが良さそうです。

1. from=駒台, to=盤
変化前: from+1
変化後: from, to

2. from=盤, to=盤, cap=無
変化前: from
変化後: to


3. from=盤, to=盤, cap=有

変化前: from, cap, hand-1
変化後: to, hand

変化後の局面から全要素を列挙(all)して、
value -= all x 変化前
value += all x 変化後
を計算します。

ただ、これだと 変化前 x 変化前 が残っていたり
余計に足し引きしているところがあるので、
それを最後に調整します。

最終的にこのようになりました。
https://github.com/sunfish-shogi/sunfish3/blob/1f9808c652780b96f52914b4f4913ec386933498/searcher/eval/Evaluator.cpp#L756-L863

ユニットテストは全部通って、対局も問題なさそうなので
多分計算結果は合っていると思います。

ボナンザは時間のあるときにちゃんと読みます。
もっとまともな方法でやっているのかもしれないです。
AD
いいね!(1)  |  コメント(1)  |  リブログ(0)

テーマ:
古い lenovo に Ubuntu 14.10 を入れて
Linux のビルド環境を1つ用意しました。

sunfish の初期バージョンに -lpthread の指定がなく、
リンクが通らなかったのでオプションを追加しました。

あとBonanza 6.0は pthread と math にリンクが通らず、Makefile(L62) を
  $(CC) -o bonanza $(OBJS) $(LDFLAG1) $(LDFLAG2)
に書き換えたらなおりました。
https://forums.ubuntulinux.jp/viewtopic.php?id=13673

前方にオプションを書くとうまく行かないようです。
-lpthread に関しては -pthread なら前方でも大丈夫でした。
AD
いいね!(0)  |  コメント(0)  |  リブログ(0)

テーマ:
第25回世界コンピュータ将棋選手権に申し込みました。

今作っているバージョンはやっとこさ
CSAプロトコルで対局ができるようになったところで、
このままだと1次予選落ちしそうです。
それにアピール文に書くことがありません。

しかし、出ないとまただらだらとした生活を送ってしまいそうで、
勢いだけで申し込みを済ませました。

最新版を常にgithubにpushしながら開発しています。

github
https://github.com/sunfish-shogi/sunfish3

floodgate
http://wdoor.c.u-tokyo.ac.jp/shogi/view/show-player.cgi?event=LATEST&filter=floodgate&show_self_play=1&user=Sunfish3

ところで、毎回1人で出ているのですが
なかなか作業時間的にもモチベーション的にもつらく
誰か一緒に出てくれる人を探しています。

今からでも、3月くらいまでは出場者の情報を
変更できたような気がします。多分。

僕よりだいぶプログラミング得意でかつ将棋が好きで、
時間を持て余している学生とか居たら連絡ください。

いいね!(0)  |  コメント(0)  |  リブログ(0)

テーマ:
前回から半月以上経ちますがほとんど進んでいません。

Bitboard に SSE を入れたのと、駒を打つ手の生成部分を改良しました。
85万手/sec から 101万手/sec まで速くなりましたが、
前に書いた通りまだpinが入っていないです。

https://github.com/sunfish-shogi/sunfish3

いいね!(1)  |  コメント(3)  |  リブログ(0)

AD

Amebaおすすめキーワード

Ameba人気のブログ

Amebaトピックス

ランキング

  • 総合
  • 新登場
  • 急上昇
  • トレンド

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。