2023年12月30日土曜日

今年のふりかえり 2023年版

もうすぐ今年も終わりなので、一年をふりかえります。

Dirk 本 会読会

昨年始めたオンラインの会読会は、参加者の皆様と共に、最後まで完走することが出来ました! The Theory of Backgammonは理論が中心の内容で、数式も多く出てきます。ひとりで読んでも読了しなかったかもしれないですが、会読会を主催している以上なんとしても読み切ろうと頑張りました。私としては多くの気づきや学びがありましたが、例によって速やかに忘れてしまうのが困りごとです。また読み返して理解を深める必要を感じています。

また、会読会に参加されていたメンバーの皆さんが次々と試合で結果を残されたのが嬉しかったです! 高橋さんは王位戦で準優勝、寺尾さんは魔王獲得。水谷さんは賽王に! 会読会の「飲み会」枠も楽しかったな。

12月からは、Bootcamp の会読会を始めています。勉強するぞー。

今年の成績

JBSのレーティングページを確認したら、今年はちょうど100試合してました。勝率は 58% だったので、なかなかではないですか。本当は、今週の代官山でキスノさんに負けた試合がまだ登録されていないので正確じゃないですが、自分としてはとても満足な成績でした。
夏ごろは調子がよく、14連勝もあったので自己最高レーティングも更新しました。名人リーグ、盤聖リーグは東京1部リーグを突破できました。
USBGF もまずまず勝っておりまして、こちらも直近で最高レーティングを更新しました。

こうなるとさぞかし mkisono は強くなったと思いたいのですが、ダメなときはものすごくダメになるので、あまり進歩したとは思えません。
せっかくリーグ戦を突破しても、本戦でまったく勝てないのは相変わらずで、下平さんとの試合はひどく惨めな負け方をしました。来年はぜひとも、本戦トーナメントで一勝を目標に頑張ろうと思います。 

"Guessr"の開発

Dirk本の理論を実践するためには、そもそも局面の勝率やギャモン率を見積もれないことには話になりません。訓練したら少しは上達するかと思い、アプリを作りました。 

作ったアプリはこちらです。本当は GamoGuessr という名前にしたかったのですが、商標的にまずかろうと思い、ChatGPT に相談した結果、このようなつまらない名前にしました。

アクセスログを見ると、たまに使ってくれている人もいるようで嬉しいです。作者である私も、それほど熱心ではないユーザーのひとりです😀

私はソフトウェア開発が本業なのですが、今年は ChatGPT の年だったなと思います。開発者向けには、GitHub Copilot という素晴らしいサービスも登場し、開発の生産性が飛躍的に向上したと思います。もはや GitHub Copilotが無いとコードが書けない体になってしまったので、個人アカウントでも課金している始末です。

以前運用していた kifu.me は、今年の夏にひっそりとクローズし、ドメインも手放してました。ところが、Guessrが思いがけず有用なツールだったので、来年は kifu.me 再開に向けて開発するつもりです。

来年の野望

とても楽しみにしているネタひとつあるので、ぜひ実現させたいと思います。
じゃあまた、れば屋で会おう!

2022年12月29日木曜日

今年のふりかえり 2022年版

時の経つのは早いもので、前回ブログを書いてから3年も経ちました。コロナ感染が拡がったり、戦争が起きたり、世界が激変する中、私も少し変化があった一年でした。とはいえ、話題は酒とかギャモンとか、その辺りはいつもと同じです。

ソバーキュリアス

この本に出会い、本格的に禁酒をしてみました。コロナで外出自粛が呼びかけられ、酒を飲むのが家ばかりになり、面白く無いなーと感じていたのは一つのきっかけでしたが、 単にちょっと気が向いたので始めました。

3月までは、本当に完全に禁酒を継続して、飲み会に行っても酒を飲まないなどという、これまでの私には考えられないようなこともしてました。4月に代官山に遊びに行った時、つっしーの誕生日で振る舞いシャンパンが出て来ました。眼前の輝くシャンパンから、何とも言えないいい香りが漂ってきて、こればっかりは我慢できずに飲んじゃいました。以降は、ギャモンの打ち上げや会社の飲み会で飲むことはありますが、家では本当に飲んでません、信じてください!

「おうちソバキュリアン」となって良かったことは、頭がスッキリしていることです。これまでは常に霞がかかっていたようにすら思います。おそらく、睡眠の質が改善したのが大きいと思います。夜はダラダラと酒を飲んで過ごしていた時間が、本を読んだりする時間に使えるのも有意義だと感じますし、また、そうする必要があった年でもありました。


転職

昨年末に、新卒で入社してから長らくお世話になった会社を退職し、今年からはベンチャー企業で働いています。転職した話を誰かにすると、「よく思い切りましたね」と言われることがありました。確かにそうだと思いますが、私としては risk と gain を見積もって判断したつもりでした。gain は不透明でよくわからないですが、risk は結構小さいことに気づき、ギャモン的に言うなら、私の転職テイクラインは低いのでした。

新しい職場では、毎日目まぐるしく仕事をしていて飽きることがないです。いろいろな人がいますが、「私は運がいい」と公言しているエライ人がいて、心に刺さる一言でした。


「私は運がいい」

多くのバックギャモンプレイヤーは、運について考えたことがあると思います。私は特に運が良くも悪くもないし、長い目で見ればみんな同じだと思っています。ところが、今年はどう考えても運がいい年でした。名人リーグは東京一部リーグでの参加でしたが、本戦に出場することが出来ました。対戦相手は地球最強クラスのプレイヤーばかりなので、私が勝つためにはとてもたくさんラッキーが必要なのです。

とうやったら運が良くなるのか? 「運のいい人の法則」(角川文庫)によれば、自分が運がいいのだと思い込むように、言い聞かせるのだという。

「私は運がいい。今日も幸運な一日が待っている」

自分は運がいいと思っている人は、新しいことにチャレンジしたりするから、結果的に運がいいことが起きることもあるという。つまり、運を掴むチャンス自体を作り出す、試行回数を増やす必要があるのですね。

輪読会

5月のバックギャモンフェスティバル会場で、Dirk Schiemann の The Theory of Backgammon を購入しました。大会に参加すると、一時的にギャモンのモチベーションが高まるので、本を買ったりします。大体そこで満足してしまい、本はちっとも読まないのは良くない癖だと思っていました。

ヒビキくんが「Dirk本を読む会をやりましょう」と声をかけてくれたので、Twitterでメンバーを募集してみました。集まったのは、驚きの7人! なんて勉強熱心な人たちなのでしょうか。12月に一度オンラインで輪読会を開催しました。これから毎月一回のペースでやって行く予定です。こんなに勉強したら強くなっちゃうな!

「私はどんどん強くなる」

パソコンを入れ替えたりしているうちに、XG のプロファイルが無くなってしまいました。以下のグラフは私の最近の成績ですが、モリモリ強くなっているように見えないでしょうか? Dirk本の勉強はつい最近始めただけだし、なぜこんなに右肩上がりなのか、自分でも見当がつきませんが、以前と比べて、難しい局面で何とか手を尽くそうと頑張るようになったかもしれないです。禁酒したことと、毎朝詰将棋を頑張って解こうとしているのが役に立ってるかもしれないです。

グラフの y軸は、お見せするのが恥ずかしいです。実戦の PR は、良い時で3点台が出る時もありますが、8点や9点も余裕で出します。平均すると 5点台の半ばくらいで、3年前に立てた目標の水準に近づいていると思います。

「私は運がいい」に加えて、「私はどんどん強くなる」と毎日唱えようかと思います。そうすれば、きっと自信もつくし、勉強しようって気分にもなるんじゃないかな。







2019年12月27日金曜日

今年のふりかえり 2019年版

以前は毎年書いていた一年のふりかえりを、久しぶりに書きます。今年は例年になく良い年だったので、記憶に留めておきたいと思ったのです。

将棋に専念

去年10月のツイートです。当時は、後に「リコー将棋AI棋譜記録システム」として発表することになるシステムを、必死に作っていたのでした。当初は個人プロジェクトであったこともあり、多くのプライベート時間をプログラミングに費やしていました。このプロジェクトは、なんとしてもやり遂げたいと、強い想いを持っていましたので、何か大事なものを代わりに差し出さなければいけないんじゃないかと考えた時、それは私の場合バックギャモンでした。

バックギャモンをそんなに一生懸命やっているの? と聞かれると、実はそうでもありませんが、少し離れてもいいかと。いつでも戻れるし、ギャモンはどこにも逃げない。あとは、リーグ戦でも勝てないし、自分より後から始めたプレーヤーがどんどん強くなり、大会に出ても期待値低すぎだよなーと、正直ネガティブに思うところもありました。

さて、システム開発の方は順調に進み、今年の冬には森内俊之専務理事(当時)、鈴木大介常務理事へのデモンストレーションもうまく行きました。そして6月にはまさかの記者会見。新聞各社、テレビの取材があり非常に緊張しました。人間の掌からは、あんなに汗が出るものかと、驚きましたね。夏からは実証実験開始。近頃はだいぶ完成度が上がって来て、ゆったりと年末を迎えることが出来ています。

このプロジェクトのおかげで、他にも有り得ないような体験をいくつもさせてもらいました。まずはグッドデザイン賞。六本木で開催される受賞展は、毎年のように家族で見に行ってたのですが、私の名前が「デザイナー」として出ているとは、夢のようですね。


あとはこれ。リコー杯女流王座戦の前夜祭でシステムのデモをしました。このシステムは女流棋士の先生方にモテモテなのですが、自分がモテていると勘違いしているわたくしでした。


禁酒

私はギャモンが好きで酒も好き。となれば「飲んでギャモン」というスタイルでやって来ましたが、8月にこの態度を改めました。ツイートの日付から判断するに、リーグ戦で恒次さんに負けて心を入れ替えたようです。実際のところ、家に帰って酒を飲んでしまうと、クリエイティブなことはほとんどできない。結局ダラダラとテレビや動画見てしまう。そこをグッと堪えると、GGでレーティング戦しても良い結果になる。8月末からは、突如としてGGで勝てるようになり、一時期は勝率8割超えてましたし、当然レーティングも上がりました。JBLのレーティング戦でも概して好調で、直近の例会で自身の最高レーティングも更新しました。

将棋をするとギャモンが強くなる

勝ち続けていた時期は、これまでよりギャモンボードが狭いというか、「あれとこれがこうなって・・」という構想が冴えてたような気がします。こんな風に感じるようになったのは、きっと将棋のおかげです。将棋は81マスあるし、駒も入り乱れて複雑なことこの上ない。おまけに、星図に載っていない銀河系の星から角がすっ飛んで来てやられてしまう、とてつもなく注意力が要求されるゲームです。それと比べたら、ギャモンは24マスしかないし、ゾロ目の見落としだって頑張ればなんとかなるレベル(たぶん)。

あとは、相手の打ち手に対して、対抗策を考えられるようになりました。飛車取りとやられて黙って取られんじゃなくて、じゃあ代わりにあなたの飛車を頂きましょうみたいな手。ギャモンの場合は、スロットしたチェッカーが打たれても、今度はあなたの陣地のいい場所にアンカー取りますよって感じでしょうか。総じて、困った時に「どっかに隙はないか?」と真剣に考えるようになりましたね。

もう一つの大きな要因は、ギャモンの配信をしてくれるプレーヤーの存在です。特にいぺさんの配信は最近よく観ています。対局中に何を考えているか喋ってくれるし、感想戦もがっつりやってくれる。至れり尽くせりです。いぺさん独特の表現も大好きで、「ここをちょっとほぐして」とか「ヒットして痺れさせましょう」など、実に的確だなとニヤニヤしながら観ています。これからも配信してくれるプレーヤーが増えることを期待しています。ギャモンの「観戦」は、私の禁酒ルールから除外してあるので、飲みながら適当なコメント入れるのが楽しいです。

今後の目標

特に無いです。

が、それだとモチベーション的に問題があると思うので、100マッチで PR5.5以下(BMAB M2相当)を目指そうと思います。やはり「PRは裏切らない」でしょう。もはやこれが限界かと思っていた私のPRも、夏の「禁酒」以降は大改善していて、この目標は到達可能だと思っています(グラフの縦軸は企業秘密だ)。10マッチならPR5以下も時々出ますし、来年中に達成してさらに突き抜けたいと思います。ちなみにこの目標は、2015年に打ち立てた目標よりも低いですw


ということで、来年も楽しくギャモンで遊べる年でありますように。良いお年を!

2018年7月1日日曜日

おうち kifu.me

kifu.meの開発を始めたのは、ちょうど一年くらい前でした。当初から、低コストで運用できるシステムを構想し、Amazon Web Services(AWS)の各種マネージドサービスを駆使して作りました。その結果、手離れが良くて運用が楽チンなサービスが出来ました。コスト面では、kifu.meが使っているAWSのほとんどの機能が、タダみたいな料金で使えるのですが、唯一データベースだけが、コストがかかってました(飲み会1回分/毎月 くらいのコスト)。そのため、サービスを利用している人にコストを負担してもらおうかと考えていましたが、最近別の作戦に切り替えました。

データベースは「自宅サーバー」で運用すればいいじゃんということに思い当たったので、少し前にデータを移行しました。
「自宅サーバー」は、言うほど立派なものじゃなくて、写真の通りのシングルボードコンピュータ(SBC)です。今はkifu.meの利用者がとても少ないので、これ一枚で十分さばけます。なおかつ、SBCと電源アダプタ+SDカードを合わせても、飲み会2回分くらいの値段です。

自宅サーバーにした結果、保存できるデータの容量が格段に増えたので、これまで制限していたXGファイルのアップロード可能数は、2000ファイルまでに変更しました。

kifu.meは、ポジションをアップロードして共有する機能がありますが、私としてイチ押しの機能は「検索」機能の方です。これまでの全棋譜を対象に検索することも簡単に出来ますので、ぜひ使って欲しいです。どんなことが出来るかは、また別の記事で紹介したいと思います。

最後に、kifu.meは無料のサービスということにしましたが、「寄付」はいつでも受け付けております。

2018年3月11日日曜日

初手で一番難しいのは たぶん64

kifu.meは、データベースに登録した棋譜を検索することができますが、データの分析をすることもできます。出目とスコア、何ロール目かをキーにして集計する機能をリリースしました。


これを使うと、自分がどんな場面で多くミスしているのか気づくことができると思います。例えば初手ムーブでエラーの多い出目を調べてみましょう。私のムーブを集計した結果です。
初手で平均エラーが一番多いのは64だと分かりました。次に、初手64の条件で、どのスコアでエラーが多くなっているか見てみましょう。
いろいろ出てきましたが、分かりやすいところで、2away-4away4away-2awayの場合をみてみましょう。このスコアはご存知の特殊スコアなので、4away側はギャモンが取りたい、2away側はその逆で取られたくありません。この状況が初手の選択に大きく影響するので、最善手とそれ以外の手との期待値の差が大きくなります。2away-4awayで初手64はアクションプレイ、4away-2awayでは2ポイントメイクが最善となります。

近頃はこのパターンで間違えることはなくなりましたが、全データを対象に集計するとこのような結果となりました。過去1年分の棋譜に期間を絞ると、今度は43の間違いが多くなりました。例えば、2away-4awayではツーメンダウンが良いことになってますが、つい最近も間違えてました。

序盤のパターンを丸暗記できればよいのですが、私にはそんなことできそうもありません。なので「これ間違えたらダメでしょ」という大きなエラーについて、こんな感じでつぶしていこうと思ってます。

2017年12月31日日曜日

Do you remember how many Whoopers you’ve eaten in your life so far?

kifu.meを公開してから約2ヶ月経ちました。たくさんの方に使って頂いて、本当にありがとうございます! シェアしていただいたポジションの数も順調に増えていて、今見たら469になってました。
さて、kifu.meの"community"機能は公開済みですが、本丸の"検索・分析機能"はまだ開発中です。とはいえ、出来ている部分もあるので少し紹介したいと思います。

ギャモンプレーヤーにとっての「ワッパー」とは、0.100以上期待値を下げるエラーを指します。皆さんは、これまでいくつ「ワッパー」をやらかしたか覚えていますか? 私はもちろん覚えてませんし、そもそもワッパーの数が多すぎて・・

こんな時、kifu.meの検索機能を使えば、これまでの全ての棋譜から条件を指定して「ワッパー」のみを取り出せます。例えば、0.100なんてケチな条件ではなく、1.0以上の超超超特大ワッパーを探してみましょう。こんなとてつもないエラーは、みなさんの棋譜に無いかもしれませんが、非常に残念なことに私の棋譜からはザクザク出て来ます。


これまでのチェッカープレイでの最大のエラーはこれでした。14バックゲームでヒットチャンスが来たのに、特大ワッパーとはこれいかに? 実戦では5の目でヒット出来るのを見落としてしまったのでした。これはボットとの練習試合だったのですが、ほぼ同じ局面で同じ見落としをしていることが、今回調べてみて分かりました。以下の局面は、2015年9月25日の寺尾さんとの7ポイントマッチです。ということはフェスティバルのオンライン予選とかだったかもしれません。24/19*がどうして私には見えないのか?? 全くもって理解不能です。


キューブアクションはどうでしょうか? Doubleの最大エラーはこれです。

2015年5月25日。その"事件"は起こりました・・ というほどでも無いのですが、PlayOKでdaruma3と対戦していた私は、操作を間違えて、ここでダブルしてしまいました。対戦中に小泉さんに「私、今ダブルしました?」と確認したように思います。これ以降、何となくPlayOKから足が遠のくきっかけになった瞬間でした。

二番目にひどいキューブアクションは、こちらです。

2015年12月22日の木村さんとのマッチです。この時は"操作ミス"をした記憶無いので、ガチでdouble-takeと思ってダブルしたんだと思われます。いやヒドイもんだ。

ということで、ワッパー見つける以外にもいろいろ使えるはずのツール作ってます。来年早々にもリリースしたいと考えていますので、どうぞよろしくお願いします。


今年はリーグ戦にフル参戦できたし、リーグの成績はすこぶる良かった。私にとっては最高の一年でした。例会とかネットでお世話になった皆さまありがとうございました。来年も楽しくギャモンが遊べる年でありますように!

2017年11月24日金曜日

ガマンぎりぎりライン

先日、twitterにこう書いたものの、実は思っていたキューブアクション間違ってたし(スコアを加味すると)、もう一度ちゃんと調べてみることにしました。

バーポイントホールディングゲームでは、18ポイントと13ポイントのアンカーが相対し、お互いにギリギリまでポイントを崩さない状況が発生すると思います。私はこれを「ガマンぎりぎりライン」と心の中で呼んでいます。NHKの「デザイン あ」という番組にそういうコーナーがあるんです。このラインを越えると、途端にダイレクトヒットのチャンスがやってくるので、キューブアクションを考えるわけです。

さて、上記のポジションは、マネーなら Double / Take で、実戦のスコアだと No Double / Take でした。


チェッカーの配置をいくつか変えてみて、Double / Take と No double / Take の境界はどのあたりか探してみました。その結果が上のポジションで、pip差が大きく効いてくるようでした。この局面では紫が68、水色が81。紫13pip(19%)リードです。これよりリードが大きいと水色からはダブル出来ないようでした。
他の条件としては、水色が完全なボードを作っている必要があります。6ポイントが空いてしまっているようなボードでは、勝率がガクッと下がります。

こんなポジション本当に出てくるの? と思い検索してみましたが、実際に過去に何度も出てきてました。
例えば、これは一年くらい前の私の実戦で出てきた局面です。ほとんど条件を満たしているように見えますが、ボードが完全じゃないのでダブルできないようです。
他にも、nishikenさんとの名人ネット予選nasuさんとの王位戦などなど、割と頻繁に出くわす形と思いました。

そんなわけで、過去の局面をサクッと検索できる、ギャモン研究に革新をもたらすと信じて疑わないシステムを開発中です。一部の機能は使えますので、ぜひ https://kifu.me/ へ来てください。




2017年6月24日土曜日

第23期名人戦決勝トーナメント

今期の名人リーグは、東京の2部で優勝し2枠を獲得しました。さらに、くじ運が良くて決勝トーナメントではいきなりベスト8からの登場となりました。

こんなチャンスはもう2度と無いかもしれないと考え、ここ2週間ほどは大好きなプログラミングもほどほどに、ギャモンに打ち込みました。実際のところは、先週風邪を引いて寝込んでしまい、暇な時間はAceをひたすらやってました。これでだいぶギャモンの感覚を取り戻したと思ったのは気のせいで、あまり考えずにプレイしてしまう悪い癖がついただけでした。それを急いで修正しているところで、今日はUSBGFのトーナメントで Joe Russellと当たる幸運に恵まれました。最強クラスのプレーヤー相手にどこまでやれるのか、自分の調子を測るにはもってこいの相手です。

試合は負けましたが、自分の調子としては悪くなかったので、明日は体調を万全に整えて下平さんに挑戦したいと思います。

2017年6月3日土曜日

棋譜ミー ライブストリーミング

5月のバックギャモンフェスティバルで、棋譜ミーを使ってライブ配信しました。Kazuki-Sander戦という好カードでした。
AbemaTVで配信し、たしか2000人以上のviewがあったと思いますが、私としてはあまり満足の行く内容ではありませんでした。全くの言い訳ですが、準備を始めたのが前日で、ストリーミング用に作っていなかった棋譜ミーを改造するのは、あの時点ではあれが限界でした。
ライブ配信自体、フェスの配信が初めてだったのですが、横瀬さんにやり方を教えてもらったので、今では自分で出来るようになりました。棋譜ミーを改造して、ライブ配信でここまで出来るようになりました。

ちょっと分かりづらいですか、これはプレイ中にリアルタイムで処理している映像です。テストプレイの時はいつも息子に手伝ってもらってますが、息子はこの画面をチラ見しながらプレイしています。つまり、ダイスをロールするとまもなくベストムーブが画面に表示されます。その気になればいくらでも「チート」できます。
後半、映像が途切れ途切れになってしまいましたが、これは自宅のネットワークの問題で、プログラム自体は最後までちゃんと動いてました。

現実のマッチでは、これを見ながらやっては意味ないですが、ライブ配信を見ている人には参考になるかもしれません。作ってみて改めて思ったのは、そもそもこういう情報が必要かってことです。将棋の電王戦みたいに「評価値」が出るのがすでに受け入れられているかもしれませんが、バックギャモンにおいてはどうでしょうか? 私としては、一流のプレーヤーがコメンタリーしているのを聞くのがとても楽しいです。コメンタリーを用意できない場合も多いでしょうから、そういう配信では有効かもしれないです。
これに加えて、キューブアクションの評価と勝率を表示する機能までは作ろうと思ってます。

2017年5月23日火曜日

8away - 4away

4月まで名人リーグ、5月はフェスティバルと、途切れなくギャモンで遊んでいると、ドイツ人が"Nach der EM ist vor der WM"と言っていたのを思い出します。ユーロが終わると次はワールドカップ予選、ワールドカップが終わるとすぐにまたユーロの予選と、いつまで経ってもサッカーの楽しみが続くのです。
というわけで、次のお楽しみ「盤聖リーグ」が始まりました!

5月21日の四ツ谷例会で、犬塚雄輝くんと対戦しました。2セット目でこんな場面がありました。白の振り番です。キューブアクション?


仮にこれがマネーゲームだったらビーバーでしょうし、XGもビーバーだと言っています。実戦ではこれが 1-5/9p と白がリードされている 8away-4away のスコアでした。このスコアで解析すると、キューブアクションの結果は全く異なるものになります。なんと白はダブルすべきで、黒はパス!

白の勝率はさほど高くありませんが、ギャモンがそこそこあります。リダブルしてギャモンが取れればぴったりマッチ勝ちとなるので、ここでのギャモンはとても価値があります。4away-2awayのキューブと同じように考えればよいと、試合後に日野くんに教えてもらいました。なるほどー、対戦中は全く気づきませんでした。なんてボンヤリしているんでしょうか・・

XGID=-b--BCCBA---A----abbbbcaBA:1:1:1:00:1:5:0:9:10

X:mkisono   O:yuki
Score is X:1 O:5 9 pt.(s) match.
 +13-14-15-16-17-18------19-20-21-22-23-24-+
 |             O  O |   | O  O  O  O  O  X |
 |                O |   | O  O  O  O     X |
 |                  |   |          O       |
 |                  |   |                  |
 |                  | X |                  |
 |                  |BAR|                  |
 |                  |   |                  |
 |                  |   |                  |
 |                  |   | X  X             | +---+
 |                X |   | X  X  X        O | | 2 |
 | X           X  X |   | X  X  X        O | +---+
 +12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count  X: 148  O: 111 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action

Analyzed in Rollout
No redouble
  Player Winning Chances:   53.33% (G:17.58% B:2.10%)
  Opponent Winning Chances: 46.67% (G:24.01% B:9.01%)
Redouble/Take
  Player Winning Chances:   54.52% (G:18.08% B:4.28%)
  Opponent Winning Chances: 45.48% (G:25.71% B:12.09%)

Cubeless Equities: No Double=+0.056, Double=+1.051

Cubeful Equities:
       No redouble:     +0.644 (-0.356)
       Redouble/Take:   +1.051 (+0.051)
       Redouble/Pass:   +1.000

Best Cube action: Redouble / Pass

Rollout:
  1296 Games rolled with Variance Reduction.
  Moves: 3-ply, cube decisions: XG Roller
  Confidence No Double: ± 0.014 (+0.631..+0.658)
  Confidence Double:    ± 0.020 (+1.030..+1.071)

  Double Decision confidence: 100.0%
  Take Decision confidence: 100.0%

  Duration: 13 minutes 08 seconds

eXtreme Gammon Version: 2.10, MET: Kazaross XG2

実戦で私は、missed doubleを繰り返し、ブランダーの山を築きました。例えば、以下のポジションでもXGはダブルせよといいます。まだまだ修行が足りないことを痛感しました。


XGID=---bBCCBA---A------bcbccBA:1:1:1:00:1:5:0:9:10

X:mkisono   O:yuki
Score is X:1 O:5 9 pt.(s) match.
 +13-14-15-16-17-18------19-20-21-22-23-24-+
 |                  |   | O  O  O  O  O  X |
 |                  |   | O  O  O  O  O  X |
 |                  |   |    O     O  O    |
 |                  |   |                  |
 |                  | X |                  |
 |                  |BAR|                  |
 |                  |   |                  |
 |                  |   |                  |
 |                  |   | X  X             | +---+
 |                X |   | X  X  X  O       | | 2 |
 | X           X  X |   | X  X  X  O       | +---+
 +12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count  X: 148  O: 94 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action

Analyzed in Rollout
No redouble
  Player Winning Chances:   43.18% (G:8.31% B:0.54%)
  Opponent Winning Chances: 56.82% (G:34.96% B:19.06%)
Redouble/Take
  Player Winning Chances:   43.46% (G:9.03% B:0.61%)
  Opponent Winning Chances: 56.54% (G:37.43% B:18.90%)

Cubeless Equities: No Double=-0.401, Double=+0.186

Cubeful Equities:
       No redouble:     +0.129 (-0.057)
       Redouble/Take:   +0.186
       Redouble/Pass:   +1.000 (+0.814)

Best Cube action: Redouble / Take

Rollout:
  1296 Games rolled with Variance Reduction.
  Moves: 3-ply, cube decisions: XG Roller
  Confidence No Double: ± 0.013 (+0.116..+0.142)
  Confidence Double:    ± 0.015 (+0.171..+0.200)

  Double Decision confidence: 100.0%
  Take Decision confidence: 100.0%

  Duration: 15 minutes 03 seconds

eXtreme Gammon Version: 2.10, MET: Kazaross XG2

ようやく私がダブルしたのは以下の場面でした。ここでのキャッシュポイントは60%くらいでしたので、その勝率も超えてしまっており、遅すぎるダブルでした。

盤聖リーグではあり得ないスコアですが、8away-16awayでも同じ理屈でしょうから、次にこんな場面に出くわしたら、サッとキューブを差し出したいと思います。


XGID=-a-BBBBBB----------cbbcdC-:1:1:1:D:1:5:0:9:10

X:mkisono   O:yuki
Score is X:1 O:5 9 pt.(s) match.
 +13-14-15-16-17-18------19-20-21-22-23-24-+
 |                  |   | O  O  O  O  O  X |
 |                  |   | O  O  O  O  O  X |
 |                  |   | O        O  O  X |
 |                  |   |             O    |
 |                  |   |                  |
 |                  |BAR|                  |
 |                  |   |                  |
 |                  |   |                  |
 |                  |   |                  | +---+
 |             X  X |   | X  X  X  X       | | 2 |
 |             X  X |   | X  X  X  X     O | +---+
 +12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count  X: 138  O: 77 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action

Analyzed in Rollout
No redouble
  Player Winning Chances:   66.64% (G:12.18% B:0.52%)
  Opponent Winning Chances: 33.36% (G:12.82% B:2.96%)
Redouble/Take
  Player Winning Chances:   67.24% (G:13.09% B:0.78%)
  Opponent Winning Chances: 32.76% (G:13.55% B:3.68%)

Cubeless Equities: No Double=+0.353, Double=+1.383

Cubeful Equities:
       No redouble:     +0.806 (-0.194)
       Redouble/Take:   +1.383 (+0.383)
       Redouble/Pass:   +1.000

Best Cube action: Redouble / Pass

Rollout:
  1296 Games rolled with Variance Reduction.
  Moves: 3-ply, cube decisions: XG Roller
  Confidence No Double: ± 0.011 (+0.796..+0.817)
  Confidence Double:    ± 0.015 (+1.368..+1.397)

  Double Decision confidence: 100.0%
  Take Decision confidence: 100.0%

  Duration: 14 minutes 19 seconds

eXtreme Gammon Version: 2.10, MET: Kazaross XG2

2017年5月1日月曜日

棋譜ミー ハーフバースデー

去年のフェスが終わった後から、自動棋譜起こしアプリの開発を続けています。テクノくんが名前を付けてくれてから、もう半年経ったのでハーフバースデーのお祝い、というか開発状況を書きます。

一言で言えば、「そこそこ動く」ところまで来ました。条件さえ良ければ、手で棋譜を入力するよりも、棋譜ミーが出力した棋譜の間違いを手で直す方が早いです。「条件」については、別のブログに書きました

名人リーグでの対戦動画を自動で処理しようと思って開発を始めたのですが、最初のマッチの解析が終わったのは、対戦が終わってから3ヶ月も後でした。それが現在では、週末の5試合の棋譜起こしが、次の週末までにはだいたい終わっているところまで来ました。
小野盤聖との19ポイントマッチでは、棋譜ミーが特定した全718ムーブのうち、手作業による修正が必要なのは35でした。これは割合にすると 4.87%で、私の平均PRよりもだいぶいいです。すでに娘は父を超えました!


これまで多大なる時間と労力をこのプロジェクトに投入して来ましたが、いよいよ投資を回収するフェーズに移りつつあります。開発にご協力いただいた方々、応援してくださった方々に感謝します。

私のフェス事前入金は間に合いませんでしたが、棋譜ミーは間に合いました。フェスのマッチ動画を棋譜ミーに解析させてもいいよという方は、フェス会場でお声がけくださいませ。

そんなわけで、私の今年のフェスの最大の関心事は「会場の照明」です。ダイスがテカらずに動画が撮影できるかどうか、それが最も重要なポイントであります。

棋譜ミー ユーザーガイド 2017年4月バージョン

棋譜ミーが扱えないケースがいろいろあります。

チェッカーをなるべく重ねない

現状ではチェッカーが重なっている場合をうまく扱えません。「チェッカーが重なる」とは以下のような状態のことです。右上にご注目。

チェッカーが重なって置かれてしまうと、そのターンのムーブを特定できません。やむを得ない場合を除いて、チェッカーをできるだけ重ねないようにしましょう。

例えば序盤で65が出て 24/13 と動かしたとします。チェッカーを重ねずに並べることができる場合は、下図のようにムーブしてください。

これはチェッカーをバーに置く場合も同じです。2枚以上がオン・ザ・バーだったとしても、一枚ずつ並べましょう。

カメラはボードの真上に

試合を撮影するカメラは、ボードの真上に配置してください。多少横にズレていても支障はありませんが、斜めすぎるとチェッカーやダイスを認識することができず、解析できません。

例えば、カメラが斜めすぎると、バー横のダイスやチェッカーを認識することができません。

また、ボード全体が写っていることも重要です。プログラムは「丸いもの」をチェッカーと認識しますので、チェッカーの一部が写っていなくて半月型になっていると、解析ができません。

解像度は1080pで

様々なマッチ動画でテストして来ましたが、解像度が低すぎる動画では、解析の精度が悪かったです。私は1080pの設定で撮影していますが、もう少し低い解像度(720p)でも大丈夫かもしれないです。
1080pでは動画ファイルのサイズが大きくなり過ぎる問題がありますが、そういう場合はタイムラプスモードが有効です。私は0.5秒ごとのコマ撮りにしています。これなら4時間録画しても、ファイルサイズは1GBくらいです。
棋譜ミーの解析は1秒ごとのフレームで処理していますが、この頻度で解析できなかったことは今までありません。

つまり、フレームレートを上げるよりも、解像度を上げてもらった方が、棋譜ミーとしてはうれしいです。


これらが最も重要なポイントですが、以下も注意してもらえると助かります。

ボードを動かさない
棋譜ミーは、対戦中にボードが固定されている前提でプログラムを作っています。なので、途中でボードが動いてしまうと困ります。実際は多少ずれても平気で、おおよそチェッカーの直径以内のズレなら大丈夫なはずです。
この問題は、いずれプログラム的になんとかしようと思っていますが、現状では制限事項です。

ダブリングキューブについて
ダブリングキューブは、ボード上に一つだけある前提でプログラムを書いています。たまに見かけるのですが、テイクしたキューブをボードの外に置いたり、ダブリングキューブが2つ以上置いてあったりする(シュエットじゃないのに!)のですが、棋譜ミーちゃんが混乱するのでやめましょう。

クロック・スコアボード
ボードの上に置いてあってもなんとかしますが、出来ればボードの外に置いて欲しいです。

だいたいこんなことろです。他にも「ドット柄のシャツを着ない」とか、そんなことにも口を出したい気持ちなのですが、プログラムが未熟なのを人のせいにしている上に、おせっかい過ぎるのでやめておきます。

2017年3月11日土曜日

Web 棋譜ミー

バックギャモンフェスティバル直後から「棋譜ミー」の開発を始めて、すでに5ヶ月も経ちました。未だにプロトタイプの状態ではありますが、徐々に進化しています。

「棋譜ミー」が出来ることは見た目あまり変わっていないのですが、中身の構造は大きく変更しました。1月になってから画像認識処理をごっそり変更した結果、処理の高速化が出来ました。なので2月の四ツ谷で「例会デビュー」し、対戦からリアルタイムで棋譜を起こすデモもやりました。当時はムーブの解析処理も一部実装していない状態でしたので、結構エラーが出ちゃいました。

最近は、細かいバグも都度対応しているので、エラーが起きる確率もだいぶ下がってきました。このデバッグ作業はこれからも果てしなく続くでしょうから、少しでも効率的にデバッグできるよう、エラーが起きた場面を即座に画像で確認出来るようなHTMLを出力する機能を追加しました。これで私のデバッグ作業は飛躍的に効率化できたのですが、マッチ動画を振り返るツールとしてもなかなかに使える気がします。こちらのページをご覧ください。名人リーグの私と鈴木さんのマッチです。

画面の左側のテーブルがいわゆる棋譜のデータですが、いくつかリンクがあります。一番左のリンクは、「出目を読んだ動画のフレーム」です。ここを参照すれば、どんな目がロールされたのかおよそ分かります。その隣のリンクをクリックすると、棋譜ミーが「ムーブを確定させたフレーム」が表示されます。なので、これらのフレームをぽちぽち辿っていけば、ゲームの流れを把握することができます。マウスでぽちぽちクリックするのは面倒なので、キーボードの左右矢印キーでもフレーム間を移動できるようにしました。現在は不完全な棋譜しか出力できない棋譜ミーですが、このページを見ながら修正していけば、それほど時間がからないのではないかと目論んでいます。(もしくはこれを見ながらXGで棋譜入力した方が早いかもw)


先日、リーグ戦の対戦のため赤坂に行きました。もはや行きつけの caffe beneで、盤聖戦のために上京されていた永井一矢さんにお会いしました。永井さんは私が棋譜ミーを開発していることをご存知でしたので、しばらくその話で盛り上がりました。その時話したネタも、このWebページに入れてみました。

動画には、当然ながら「時間」の情報も含まれています。つまり、あるムーブをしてから次のムーブが行われるまでどれくらい時間を要したかは、先ほど説明したフレームの番号を引き算すれば求めることができます。実戦でウンウン悩んだポジションこそ、後で振り返りたいものではないでしょうか? そんなわけで、60秒以上かかったムーブやアクションはオレンジ、120秒以上は赤でマークしてあります。


開発を始めた当初は、リーグ戦のマッチ動画解析に実践投入とか思っていたのですが、すでにリーグ戦は終わってしまいました・・ 棋譜を振り返るためのツールを開発していたはずが、いつの間にか棋譜を起こすこと自体が目的となってしまい、もはや振り返りなど全くしていません。それどころか、プログラミングが面白すぎるので、プログラミングの合間に思い出したようにギャモンをする状態となっています。それでもリーグ戦の成績が良かったのは、出目が良かったからに他なりませんが、開発用に提供していただいたマッチ動画がいずれも世界屈指のプレーヤーの動画だったのが奏功したかもしれないです。横田名人はたくさん動画を見たそうですが、私もこの数ヶ月でだいぶ見ましたから、その効果が少しはあったのかもしれないです。

棋譜ミーは私一人で作っていますが、他の人と意見交換するのは大事だと思っています。先日の永井さんとの会話もアイデアが膨らみましたし、これからもいろんな人の意見を伺いつつ、改善して行きたいと考えています。プレーヤーの皆さんから、コメントいただければうれしいです。