メモリが増えないのが悪い

お昼休みにblog更新。


玉が動いた時の3駒評価の差分計算について。

http://yaneuraou.yaneu.com/2015/09/24/kpp%E5%B7%AE%E5%88%86%E8%A8%88%E7%AE%97%E3%81%AE%E9%AB%98%E9%80%9F%E5%8C%96bonasse%E3%81%AE%E5%8A%9F%E7%BD%AA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/


結構前に知ってたはずだけれど、結局実装していなければ
「知ってたわー、それ2年前から知ってたわー」
っていう、ただのミサワ状態なので、やらないとね。


一応何でやらなかったかというと、高速化は確実に強くなるけれど、強くなる上限も見えているので、もっと優先する事がある場合はどうしても後回しになってしまうからかな。
僕は実装遅いのでリソースどこに回すか結構重要なんだけれど、
実装が速く出来る人は、分かっている高速かはじゃんじゃんやってしまえば良いとは思う。


あと、この高速化しなかったもう一つの理由としては、
KPP は通常2つの玉に対して計算するのだけれど、
KKPP に事前に展開しておくと、KK という1つの玉の状態について計算すれば済むので、
テーブル参照が半分程度になります。
KKP も KKPP に事前に足し込んでしまえば良いですね。
こうすれば、玉が動いたときも、テーブル参照は元から半分になっているので今まで通り再計算してしまえば良いです。


ただ、これをするには大量のメモリが必要です。
ぼけーっと待っておけばメモリが増えると昔は思っていたのですが、
最近ずっとメモリの値段は高いし、サイズ増えないし。。。
ってことで、ハードの進化を待っている訳にもいかなくなったので、
玉が動いたときの差分計算、ようやく今回は実装しようかなって思った。

Aperyの命名権売りますo(^o^)o

第3回将棋電王トーナメントに出場することにします!
出るからには優勝目指します!
Ponanzaを倒したい!


とりあえず参加する事を全力で楽しむぞ!
今回はAperyって名前で出場するのもツマラナイし、
大会中だけ使う名前だけれど、
折角だから、ヤフオク命名権売ることにしましたo(^o^)o
http://page17.auctions.yahoo.co.jp/jp/auction/v430934130


「みんなのチャリティー」っていうので出品して、落札額は全額募金します!


今回はAperyがライブラリとして使えるので、初参加でも優勝目指すのは十分可能だと思います!
コンピュータ将棋なんていうマイナー競技が折角注目して貰える機会なので、皆で大会楽しみましょう〜

Aperyのweb site始めました。

ブログの上の方に 「Apery web site」と書いたリンクを貼りました。
GitHubPagesでweb siteを簡単に作れたので、それを使っていこうと思います。
見つからない人へ。このURLです。
http://hiraokatakuya.github.io/apery/


今の所は、Aperyの実行ファイルやソースコードへのリンクを貼った簡易なweb siteです。
Aperyの実行ファイルは、第25回世界コンピュータ将棋選手権バージョンも公開しています。
電王戦FINALバージョンには7割くらい勝つ(対人の為の設定を省いて7割なので、そのままだともっと差が付くかも知れません。)ので、良かったら使ってみて下さい。


これからweb siteの見た目や内容の充実させていけたら良いですね。
写真付きで、将棋所とAperyのダウンロードから設定して対局までの手順をまとめたら有益だと思っているんですが、なかなか腰が重いです。。

第25回世界コンピュータ将棋選手権など

今年の世界コンピュータ将棋選手権は4位でした。
Ponanzaおめでとう。しかし一矢報いたかったですね。。
選手権の日記は今年は書いてないですね。。
書けたら書きたいですが。書かないかも知れません。


くじらちゃんの選手権のニコ生、決勝の日の分見る時間無いまま視聴期限を迎えてしまいました。
可能なら合法的に観たいです。。。


あと、電王戦FINALについても全部終わったら何か書こうと思って書いてたけれど、うまくまとまりませんでした。難しかったですね。
書いておいた方が後々良いのかも知れませんが。。。
それでも選手権は例年通り皆楽しくやっていたので、良かったです。

Apery のログ、実行ファイル、ソースコード

(2016年03月22日追記
最新のAperyはこちらからダウンロード出来ます。電王戦FINAL版よりも強いです。
http://hiraokatakuya.github.io/apery/)



電王戦FINAL の思考ログ
https://github.com/HiraokaTakuya/denousen_final_log


バイナリ
https://github.com/HiraokaTakuya/apery_binaries


ソースコード
https://github.com/HiraokaTakuya/apery



どれか興味あるものをダウンロードして楽しんでくれたら幸いです。


ソースコードに関しては、最新版は色々変更してて今は若干使いにくい状態かなと思います。起動にも非常に時間が掛かります。
そのうち直す予定です。
utils/ 以下のファイルに説明が無かったりするのも説明書いたりしていこうと思います。



あと、こんな時こそDropboxの宣伝を。。。
Dropboxを使うと同じファイルを複数のPCやスマートフォンから
見たり編集するのがとっても便利です。
Dropboxのサーバーにデータが自動で送られるので、バックアップにもなるし、修正を元にもどしたりも出来ます。
プログラム開発にも便利ですね。
下のリンクからインストールすると、あなたも私も500MBボーナスが貰えます。
https://db.tt/sWyV0TrO


ようするに私のDropbox容量がカツカツなので誰かここからインストールしてくれたら嬉しいです。


追記:Dropboxの紹介ボーナスがMaxまで増えました。インストールして下さってありがとうございます。開発がはかどります。

電王戦FINAL 初戦 感想など

完敗でしたね!
斎藤五段の準備と、当日の指し回しは非の打ち所が無かったのではないでしょうか。


Aperyは、もっと強くしないといけませんね。


この対局を裏や表で支えて頂いた関係者の皆様には大変感謝しています。
終盤は私の我が侭で終局が遅くなりましたが、
会場では誰にも何も言われることはありませんでした。
本当に良くして頂きました。有難うございました。

電王戦FINAL 初戦

明日斎藤慎太郎五段とAperyが対局する訳だけれど、
Aperyは負ける時は最後の一手まで指します。
開発者に投了の権利があるらしいですが、どんな勝ち目の無い状況になろうとも、途中で投げません。
一部の将棋ファンからしたら退屈になるかも知れませんが、
もしもプログラムに興味を持ってくれた人がいるなら、、、
負ける直前のコンピュータの特徴的な手は新鮮に映るかもかも知れません。
折角棋譜が残るのだから、コンピュータの特徴的な手を残したいと思います。
それに、Aperyと斎藤五段が戦う訳で、私が間に入って投了するというのは気が引けます。

斎藤五段とは今日少しお話できました。その際に一応先にことわっておいた方が良いと思って、
すみませんが負ける時は最後の一手まで指しますと伝えておきました。


あと、人間同士やコンピュータ同士の対局と違って、一手ごとにタイムラグが生じるので、時間切れてるやんとか思うかも知れないので先にこれを見ておきましょう。
https://twitter.com/HiraokaTakuya/status/576026507086172161


明日はどんな将棋になるかな。