SSブログ

3月のライオンのKindle版が期間限定でタダ [将棋]


3月のライオン (1) (ジェッツコミックス)

3月のライオン (1) (ジェッツコミックス)

  • 作者: 羽海野 チカ
  • 出版社/メーカー: 白泉社
  • 発売日: 2008/02/22
  • メディア: コミック



リンクは違うが、Kindle版が期間限定でタダ。

※2014年5月6日までの期間限定 無料お試し版です。2014年5月7日以降はご利用できなくなります。

とのことなので、ご利用はお早めに。

読んでみた感想は、登場人物がいろいろ出てきて、これからかなって感じ。

あと以下ネタバレ

設定上納得がいかない面が1つある。それは「いろいろ」あって将棋を消去法で選んだ主人公が中学生棋士であること。今までの歴代棋士で中学生棋士は4人しかいない。

http://ja.wikipedia.org/wiki/%E6%A3%8B%E5%A3%AB_(%E5%B0%86%E6%A3%8B)#.E4.B8.AD.E5.AD.A6.E7.94.9F.E6.A3.8B.E5.A3.AB

もし、片手間にやってて将来の名人候補並に強かったらすごい叩かれると思う(笑)
描写的には片手間というより生活になっているので、違和感がないが設定と本人の生活のギャップが感じられる。

あと、主人公がなんで5段なのかと考えてみると、4段だと成り立てでポジションが確立していないだろうし、6段だともうタイトルホルダーが視野に入ってきてたりしててこのキャラクターの持つネガティブな部分が消えてしまうようにも思える。

5段というのをスタート地点に考えて逆算した時に、高校生プロ棋士ぐらいだと将来有望な若手としてちょうどいいが、学校に行くとか家をでるとかのイベントを考慮した結果、ぎりぎり中学生プロ棋士ぐらいにしないと時期的に合わないみたいな理由で17歳5段になったんだろう、きっと。

あと、17歳5段という設定で銀座で酔いつぶれる描写は問題ないのかとも思ったが、ジェッツコミックス自体が、エログロなんでもありなのでこんなのは大したこと無い問題なんだろう。奨励会もこじらせると飲酒がひどいようだし。

参考文献:オールイン


オール・イン ~実録・奨励会三段リーグ

オール・イン ~実録・奨励会三段リーグ

  • 作者: 天野 貴元
  • 出版社/メーカー: 宝島社
  • 発売日: 2014/03/12
  • メディア: 単行本



今見なおしてみたら三段リーグ1年で突破する気があるところがまたすごい。そこで10年居座る可能性すらあるというのにw

アマゾンのレビューを見てると、前作とかが好きな人が雰囲気で読む感じで、将棋としては弱いという評価が目につく

個人的には先崎八段の選んだ棋譜がどうもしっくりこない。

・親子の対戦で親が穴熊を選択
 情は関係ないと勝ちにいったのだろうか
 親の方は穴熊が得意戦法なんだろうか
 個人的には相矢倉とかが無難でいいと思う
 幼少期に多分駒落ちで対局してるはずだと思うのだが、その時も矢倉、今回も矢倉みたいなストーリーだったらよかったなぁとかね。

・C2で藤井システム採用
 今や振り飛車党は絶滅危惧種な現代において、藤井システムをさすのは3人ぐらいしか思い付かない・・・、と思ったが、2008年頃の話なのでまだありえるのかなぁと。
 でも2008年ぐらいってもう本人がやらなくなりはじめたぐらいのような・・・

なので1巻だけ読んだ感じだと、続きはいいかなぁなんて思うのだが、レビュー見てみると2巻から面白くなったというのがあるので、ぜひ2巻もタダか100円にしていただきたい。

最近のコミック500円オーバーは高すぎると思うので、漫画喫茶とか使ったほうがいいのかなぁなんて思うようになってきた。(今更)

stockfish DDが弱い その2 [将棋]

不可抗力で第3回電王戦第2局を検討させたまま寝てしまって、500分のログが出てきたのでアップ

スクリーンショット 2014-03-09 19.07.52.png

相変わらずキャッシュ使用率の数字がおかしい。まだ想定漏れがあるはずだがよくわからない。

本譜は▲同角として△6三香から一気に互角の形勢になる直前の場面。

同角はよろしくないと判断しているが、回避してもあまり優勢とは思ってないようで、ガチンコで戦っていい勝負だったというのは間違いないだろう。

同角がダメだというのはいつ判断したのか

スクリーンショット 2014-04-27 07.04.43.png

13分の後25分と8分ほど空白なのは、バグかもしくは再検討の筋に入って読みなおしたのだろう。
もし読みなおすのなら何か表示出したいところだが、ここらへんの動作はよくわからない。

DD版はこのように、500分読んでも落ちない安定性はあると思うが
電王戦の一手4分とか、趣味で検討するのに25分も読む必要がある場合が多いで、単独ではあまり強さを発揮できないだろう。短時間では0.2.1のほうがよい。

大体16手ぐらい読めればいいはずなのに、19手も読んでやっとわかるってのはいまいち腑に落ちない。
(8三歩の後に詰み探索させると15手詰)

まあこれ以上は正直よくわからんので、引き分けと3手詰め判定を入れてみた詰みをある程度は見つけられるバージョンを新しいブランチとして作成しておいた

https://github.com/woodyring/Stockfish

うりは長時間でも落ちないところ

あと、今のオリジナルリポジトリにあるGPSFISHはDFPN対応していないので、詰め探索ができなくなっているがDFPNに対応させてもみた

gpsfish DDバージョンが弱い [将棋]

so-netの糞仕様のせいで記事が一回飛んだので2回目を書いている。


この2週間ぐらいgpsfish DDバージョンが弱い理由を探っていた

弱く見える原因

1. 自玉の詰みを短時間で発見できない
2. 探索深さが浅い

2はともかく1がやばい

gpsfish DDでは、マージが大変だったため、0.2.1にある引き分けと平常時の3手詰めが無効化されている。
そこで、これらが復帰すれば速くなるのではないかと、思い復帰させてみたところまったく変わらず。
詰み探索だから3手詰めが関係していると思ったが、もっと根が深かった。

こうなってくると、探索のカット条件しかない。
ということで、0.2.1からddまでの間でどこで探索の方法が変わったかを調査した

ちょっと前なら簡単に調査できたのだが、oslがバージョンアップしたので、4回もOSL更新版を作ったw

自玉に詰みがある問題局面を探索させたときに、第一巻の手を読んで詰みを発見して手を変えるまでの時間を測定した

・gpsifsh 0.2.1(2.1ベース) 1秒
・gpsfish 2.3 1秒
・gpsfish 3  1秒
・gpsfish 4  1秒
・gpsfish dd 22秒(笑)

なんと、gpsfish 4まではまったく変わらず、4 -> ddの間に問題があることがわかった。
あんまり前の問題でなくてよかった。

ということで、久々に一人マージ祭り(探索バージョン)を開催したところ、詰み発見が遅くなる更新が3個も見つかった。

正直コミットを見てもよくわからない。だいたい、Stockfish 3ぐらいから、fishtestという「おらにみんなのPCパワーを貸してくれ」的なテストフレームワークを使うようになっていて、悪いコミットはそうそう入らないようになっている。

にも関わらず弱くなってしまったのは、以下の要素があるからではないか

1.評価関数のほうに大幅な変更がないため、カットしていい点数の正確性が足りない
 NDFのアピール文章にもあるように、正確な評価が出来たから、より削減率をあげたと書かれていた。局面評価が粗いのに積極的なカットを行うと、有効な手をカットしてしまう。

2.チェス由来のカット条件が無いので、カットできる前提条件が変わってしまっている
 pawn pushが将棋においては何が相当するのか
 また、CaptureOrPromotionという条件があるが、チェスにおけるPromotionと将棋のPromotionは価値が全く異なる。
 配布版gpsfishでは、この点を考慮して成る手そのものの価値はあまり評価していないが、探索中にあるcaptureOrPromotionはそのままだったりする。

と予想はするものの、解決方法はコミットを反映しないことぐらい。
実際悪いコミットを反映しないddバージョンを作ってみたところ1~3秒で詰みを読んでくれる。

ただ、2.1ベースのものに比べると、3,4,ddと少し探索深さが浅い
これも致命的な3つ以外のコミットによって探索深さの絶妙なバランスが崩れてしまっているからだと思われる。
2.1ベースの配布版はそれだけ完成度が高い。(今更)

そこで2.1とddで対局時間を変えて対局してみると

・1秒対局 2.1圧勝(割りと高い 16-4ぐらい)
・5秒対局 2.1圧勝(推定)
・15秒対局 互角(推定)

と短時間かどうかで結果が全く異なる。
これは、上記の絶妙なバランスの差が短時間ほどよく出てしまうからで、短時間の場合、全幅でも最大2手ぐらい深く読むために、中盤の怪しい局面で2.1が優勢になる。

ところが、15秒になるとちょっと局面を深く読んだぐらいでは優位になる確率が低いので、評価関数自体の対決になるが、同じoslを使っているので互角になる。

また、ちょっといじると全幅探索を犠牲にして選択探索が異常に深くなったりとかもできたが当然弱い。

積極的な探索カットがあると、あまりうまくいかないっぽいという仮説を試すため、BlunderとBonanzaでもやってみた

・Blunder 20秒以上
・Bonanza 不定

Blunderはかなり積極的にいろんなことをやっているらしいが、やはりカットしすぎなような感じがする。
Bonanzaは最終的には落ち着くのだが、gpsfishやBlunderと違って、読み筋がコロコロ変わる。アウトプットに安定性が無い。

で、このバージョンで、電王戦第2局の6四歩に同角とやるかどうかというのを調べてみた。
あの局面も取った瞬間の手はいいが、深く読むと悪い手の例。
改良前のdd版だと16分読んでも同角というか同角しか出てこないのだが、0.2.1ベースだと20秒程度で25飛と読み筋を変える。

ということで、現状ではDD版は劣化2.1みたいな感じになっている。
もう少し様子見て安定したらpushする予定

gpsfishone同士の対局 [将棋]

gpsfish DDバージョンには致命的な不具合がある?かもしれない。

少し前のFloodgateはNDF1強、Apollonなど中堅、gps_l少し弱いみたいな感じなので、4770-4cのPCで参戦した場合、NDF以外には負けないのが当然だと思っていた。

また、どこぞの人が自分と同じ4770でUbuntuバージョンをFloodgateに流していたので、これ幸いと勝率を見ていたのだが、たまに終盤に盛大なポカが紛れ込むのが気になった。

そこでFloodgateと同じように持ち時間を15分に設定して配布版と対局させたところ、結構変な負けかたが多いことに気がついた

今までは面倒なので配布版のgpsfishとばかり対戦させていたのだが、r2901対応させたついでにgpsfish one版で対決させてみると、読みが深くて正確なのでひどい負け方をしやすい模様。

・パターン1
 中盤に0点の手が出てきた時に、深く読まないでbestmoveを返してしまう。
 候補手が2つぐらいあって、どれもイマイチだなぁというところで、第3の手が出てきた時に、その手が本当にいけてるかどうかの検討する前にbestmoveを返してしまう。
 これはis_drawの判定が適当だったためと思われるので、まじめに作りなおしたところでなくなった(気がする)

・パターン1'
 is_drawによる0点の手はやらなくなったのだが、候補手が3つぐらいあって、15秒ぐらいで第3の手が1手で他瞬間に打ち切ってbestmoveを返してしまう。これのせいで中盤悪くする事が多い。
 定跡抜けた時点で負けてる時に多い?

・パターン2
 詰み探索が遅い
 特に自玉に詰みがある場合を2,3秒で読めない
 2.1ベースの配布版のgpsfishone版では早くて1秒、遅くて7秒ぐらいで見つけるところを、早くて22秒、遅くて1分近くかかる。
 このため終盤の詰むや詰まざるやのきわどい局面で負ける。


パターン1のほうは、TimeManagementルーチンが探索結果とあってないと思われる。チェスと違って中盤が長い将棋では怪しい局面が多いので、もっと時間を使うべきところが調整できていない

パターン2は移植ミスか、評価関数と探索の思想があってないために発生していると思われる
2.1 -> 2.3ぐらいになったときに、探索結果が明らかに変わった時があり、oslライブラリの使い方を勘違いしているとか、何か理由がある可能性がある。

3->ddのときに、複雑な判定をまるまるカットしてるのとかも影響ありそうな・・・

commit f5727deee3823accf791984836f45db78e3a53e5
Author: Lucas Braesch 
Date:   Sat Dec 14 19:27:29 2013 +0800

    Remove threat move stuff

    A great simplification that shows no regression
    and it seems even a bit scalable.

    Tested with fixed number of games:

    Short TC
    ELO: 0.60 +-2.1 (95%) LOS: 71.1%
    Total: 39554 W: 7477 L: 7409 D: 24668

    Long TC
    ELO: 2.97 +-2.0 (95%) LOS: 99.8%
    Total: 36424 W: 5894 L: 5583 D: 24947

    bench: 8184352



というわけで、現状64bitでoneビルドした場合では2.1ベースの配布版のほうが強いようだ。

gpsfishoneとベンチマーク [将棋]

今までコンパイルが通るので特に気にしてなかったのだが、GPSFISHONEというマクロがあって何者かとは思いつつも無視していた。

osl11対応の作業をしているときにtable.ccとmainone.ccというファイルを見つけたが、ビルドにも関係無いようでイミフだった。

GPSの人から「プロファイル最適化用」というのを聞いてなるほどと思った。

・ライブラリのソースコードを直接ビルド
・Makefile中にプロファイル最適化処理

ライブラリまで含めて最適化してしまおうというプロジェクトだった。

試しにgpsfishoneでO3ビルドしてみたところ、2.1で1割、ddで5%ほど向上が見られた。

https://github.com/woodyring/Stockfish/wiki/bench-mark-result

プロファイル最適化しなくても、gcc4.8でO3最適化まですると、かなり頑張ってくれるようだ。

というわけで、有用そうなので、gpsfishone用のファイルもコミットしてpush しておいた

https://github.com/woodyring/Stockfish


gpsfishのソースコード更新 [将棋]

OSLが凄まじく構造が変わっていた上に、C++11対応でないとビルドが通らなくなっていた

using hogehoge = template 


こんなのが原因

ubuntuに入っているmingwは4.6で4.8じゃないとC++11に対応していない。
そこで、電王戦見ながらアップデートを行った。

まず、Ubuntuをテスト版のtrustyだかにアップグレードする

vi /etc/apt/sources.list
:%s/pなんとか/trusty/g
sudo apt-get update
sudo apt-get dist-upgrade


こんなふうにやるとmingwが4.8になる。

oslライブラリの変更点はディレクトリ構成が変わっているがgpsfishにはcoreだけあれば動いた
ということで、CMakeList.txtをcoreだけビルドするように変更した

これでboostのテンプレート警告が出るがビルドは完了する

今まで入れてきた変更も必要

* Moveのvolatile用定義
* operator =
* Squareの後置デクリメント

これらは前は別々のヘッダだったが、今はbase_type.hにまとまった

で、手をいれたので、oslもアップしてしまうことにした

https://github.com/woodyring/osl

今後oslもアップデートすることを考えてブランチを切ってある。
また、これに対応したgpsfish_ddも更新した、タグはgpsfish_dd_for_osl11で新規に追加してある

で、mingwが更新された影響か、libwinpthread-1.dllを起動に要求するという罠があった
一応/usr/x86_64-w64-mingw32/lib/libwinpthread-1.dllを同じディレクトリに持ってくれば動くのだが、スタティックビルドは断念した。

GPSfish DD+r2901 64 by Team GPS (GPSshogi) / Tord Romstad, Marco Costalba and Joona Kiiski (Stockfish)
===========================
Total time (ms) : 320038
Nodes searched : 237170014
Nodes/second : 741068

結構増えたのは、mingwが4.8になって最適化が進んだからなのか、oslが更新されたからなのかは不明

gpsfish のLinuxビルド [将棋]

Linuxでのビルドしてみたところ、

* threadのマクロが機能しない
* assertの中の関数が古いまま
* msb/lsbの関数が展開されない
* network関数のビルドが通らない

というような問題があったので、修正してコミットしてプッシュしておいた。

ただ、問題はまだ残っていて、search.cppにあるPosition RootNodeのコンストラクタでエラーが出て落ちる。
(なので動作確認自体はできていない)

原因は初期化の順番がおかしいことだと思う。
グローバル変数内でinitを読んでそのiniが何かの別のステータスに依存していたりするとよく起きる。

が、これを直すのは面倒なので今のところ放置。
floodgateにはubuntuで実行しているらしき人がいるがどうやって解決したのか教えて欲しいぐらい(笑)

gpsfishをstockfish DDベースにしてみた [将棋]

コミット数が130ぐらいだったのでさくっとやってしまった。

===========================
Total time (ms) : 320001
Nodes searched : 229421688
Nodes/second : 716940

ニコ生再生しながらでもこれ

ただ、NPSそのものについては、時間関係がいじられているのであまり正確ではない
やはり対局させるのが一番わかる。

で、対局させてみると、あまり強くない。定跡抜けたところで有利な方がそのまま勝つ。
2.3.1だと逆転できたこともあったと思うのだが・・・

ここで、本家Stockfishのバージョンアップ自体は終わりなので、細かい調整的なところをやってみようと思う。
OSLはビルドできるかどうか調べるところからやらないとだめっぽいので気力が無い。

ちなみに探索自体はかなりレベルが上がっていると思う。
2.1 - > 2.3 でかなりよくなり、それ移行も少しずつ使い勝手がよくなる変更が入っていって安定性があがり、そのままそれが強さにつながっている印象。

========
追記
FoodgateみたらStockfish 3がいた。しかもマシンが4770でこれ幸いと自分もdd版を接続して寝てたのだが、stockfish 3な人は落としてしまったようで、結局対局できずじまい。

ちなみに、Floodgateは900秒切れ負けなので、タイムマネージメントが重要だったりする。
ろくに検査もせずに突っ込んでしまい浅はかだったが、朝まで感想できていた

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

マシンパワーで明らかに負けている相手 : NDF
不明だが同じぐらいと思われる: Apollon、Fluumi
マシンパワーが上なので勝って当然: Bonanza_RPi とか

という感じで、同じぐらいでの相手とたくさんやったわけでもなさそう。
今思えば名前をちょっと変えるべきだった。wつけるとか。

2.2.2~3ぐらいまでどっかの人が参戦してくれていたようだが、想定通りの強さというか、アブノーマルとか千日手とか起きていたが、概ね結果は同じ。

傾向として、

* 定跡DB抜けた時点でどっちが勝っているか
* 評価関数が正確か

という当たり前の結果。探索の深さとかは、短時間対戦だとあまり差が出てこないと思う。

Stockfish のリリースノート [将棋]

散々マージしてからリリースノートを見るというのがいかにもアホ。

http://blog.stockfishchess.org/

stockfish 3はELOを上げるために作ったバージョンではないとのこと
真のオープンソース・ソフトウェアとして多くの人に参加してもらうためのバージョンであると。

いやー、さすがですわ。マージしててそういうのはひしひしと感じた。

Stockfish 4はコード量は減ったけど強くなったらしい。ただ、Stockfishは将棋においては探索部分しか使ってないのでどれぐらい将棋の棋力に影響するかは不明。
Stockfish DDはコンピュータチェス大会?用のタグのようだ。

あと、コミットのメッセージのテスト対局数が増えたので、どうしたのかと思ったらテストフレームワークを作ったようだ

http://tests.stockfishchess.org/tests

こういうところも本当にすばらしい。

あと、よくよく見たらAperyの人の名前がw

This is really a new beginning for Stockfish development. A development that now is fully open and in just few weeks has already attract many people willing to test their ideas and some of their contributions have been already committed upstream: Lucas Braesch, Ryan Schmitt, Jean-Francois Romang, James Undery, Hiraoka Takuya, jhellis, Joona Kiisky (a great return!) and of course Gary Linscott.

さすがや。やねうらおさんがAperyの人にStockfishについて聞いたとかいうのもこういうのを見てたんだろう。

ほんと、自分は調べ方が足りない。

gpsfishをstockfish 4ベースにしてみた [将棋]

なんとか電王戦前にgpsfish_4をリリースできた

またしてもバグが2つもあり、stockfishブランチでgit bisectをやりながら、手動checkout +パッチみたいなことをやりながらも何とか修正完了

MoveがintValueを返す変更を入れたせいで、if分の判定でMOVE_NULLと比較しないといけないのに、コンパイルが通ってしまうという不具合が2つ残っていた。いずれなんとかしたい。

普通のC++クラスだったら、public継承してしまって動作を規定するところだが、explict宣言のせいかうまくいかなかった記憶がある。

今回はあまり棋力に影響しそうな変更はなかった。
そもそも3の評価もあまりできていないが、今のところ

2.3.1 > 3 = 4 > 2.1 > 2.2.2

ぐらいのイメージ。いずれ検証したい。

また、oslやgpsfishが選手権前ということでアップデートされたようだが
盛大にフォルダ構成が変わっていたので、マージは後回しにする。

先にsf_ddまでマージしてしまおうと思ってる。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。