第26回世界コンピュータ将棋選手権はじまりました

私のほう、このゴールデンウィーク期間中は、部屋の片付けとお絵かきに忙しい。コンピューター将棋どころではない。ざっと、WCSC26(第26回世界コンピュータ将棋選手権)の見どころを書いておく。

Apery、やねうら王チルドレン問題

やねうら王のほうはCSAライブラリに登録に間に合ったのが(2016年1月末締め切り)、やねうら王nano + 評価関数バイナリだけだったが、Aperyのほうは、大樹の枝(電王トーナメント2015)相当のものがCSAライブラリに登録されている。このAperyから強くなるような改造をするのは並のプログラマーでは実質的に不可能だと思う。

将棋ソフトとして完成形に近づけば近づくほど、その棋力を向上させるような意味のある改良を出来る人は限られてくる。これは自明なことである。いまやAperyを改造して少しでも強くできるなら、その人はプログラマーの上位1%に属する人だと思う。いや、もしかすると上位0.1%ぐらいなのかも知れない。

そういう意味では、独自の改造をして元のソフトより弱くなっているのが普通であり、健全であり、弱くなっていないなら、「独自性が足りていない」ということになる。まあ、弱くなるような改造をもって独自性を主張して欲しくないという人もいるだろうが…。

オープンソースとしてのうさぴょん2

Apery、やねうら王と並ぶ棋力のオープンソースのソフトとしてうさぴょん2の存在を無視するわけにはいかない。しかし私が思うに、うさぴょん2は2,3年、他のソフトより技術的に遅れている。(ソフトの棋力的な話ではない。技術的な話。)

というのも、Stockfishを持ってきて、自ら学習部は書かずに他人の作った評価関数バイナリを用いているだけだからだ。しかも指し手生成部はなのはminiがベースになっていて、Bitboardを用いていないのでその部分でも取り残されている。ここがBitboardだったとしても、やはり2,3年の開きはある。この地点はAperyが4年以上前に到達していた地点だからだ。(池さん、早くキャッチアップして!)

読み太は何故強いのか

やねうら王classic-tceと同じ評価関数バイナリを使っているのに、やねうら王classic-tceより一回り強いようである。これが何故なのか私にはよくわからない。私は作者の塚本さんと色々と話す機会があったので、長い時間あれこれ議論していたのだけど、結局お互いそのへんは結論が出ず。塚本さん自身は元奨励会の人なので、定跡面での整備がしっかりしていて、そのあたりの差があるのかも知れない。(ということぐらいしか私は思いつかなかった)

lazySMPで強くなりすぎ

Stockfish7で、並列化の手法であるYBWC(Young Brothers Wait Concept)が廃止され、lazySMPに変わったことはこのブログで何度かお伝えしたと思うが、これはそれぞれのスレッドが投機的にメインスレッドより少し深い探索で探索するという手法である。置換表を共有しているので、メインスレッドがそこを探索するころにはそのnodeは探索済みであったりしてちょっとお得なのである。スレッド間の同期がほとんど要らないという点で、many coreになったときの効率が段違いであり、大樹の枝(lazySMP非対応)とやねうら王classic-tce(lazySMP対応)とを24コアぐらいのPCで対戦させると、やねうら王のほうが勝ち越す。(はず)

逆にYBWCが使われていたころは、12コアぐらいで棋力的にサチっていて、24コアになるとむしろ弱くなっていることすらあった。
そんなわけで今回の大会でlazySMPで実装していて24コアPCとかで出場しているチームはそれなりの活躍が期待できるはず。

たぬきのもり

そういや、たぬきのもりは、tanuki-さんに聞いたら、「大樹の枝をlazySMP化したけど、棋力が下がって(たぶん何らかのバグ)、結局YBWCで行かざるを得ないかも」と言っていた。おまけに1日前なのにクラスター化がまだ終わってないとかなんとかツイートがあったりして。こりゃ、たぬきのもりは森が全焼するレベルの大火事ですわ…。

くじらちゃん , NDF

くじらちゃんは、もしかするともしかするのかも。
NDFはPonanza、技巧に続いて注目株ですが、他のソフトの近年の追い上げも…。

たこっと

「大樹の枝と同等の探索部で、かつ大樹の枝より高速化されているのでは」という声がありますが、あんな高度な最適化、そう簡単に短い期間で出来るわけないだろうと私は考えていますが、果たして…。

たこっとが大樹の枝の棋力以上であった場合、私は反省して、やねうら王のソースコードを全面的にByteBoardで書き直したいと思っています。

今回の優勝候補は?

私の予想では優勝は技巧。PonanzaとはR100〜200ぐらい引き離されている(負けている)のかも知れないが、クラスター化手法が単なる楽観合議なPonanzaよりは断然優れているし、PC編成などにおいてPonanzaを十分上回る(と思う)ので、技巧推し。技巧が、地雷定跡さえ踏まなければ…。

第26回世界コンピュータ将棋選手権はじまりました」への40件のフィードバック

  1. 本文

    しかも指し手生成部はなのはminiがベースになっていないのでBitboardを用いていないので

    指し手生成部はなのはminiがベースになっていてBitBoardを用いていないので

    or

    指し手生成部はAperyがベースになっていないのでBitboardを用いていないので

    のどちらかの間違いかと。
    (選手権会場よりお送りしておりますw)

    • おお、修正しときました!

      池さん、落ち着いたらまたメールください。いまこそ残り2,3年分の差を埋めましょう!(お手伝いします)

      • よくよく考えると、やねさんのメールアドレス、すごい古いのしか知らない…。確かそのメアド、使わなくなったってどこか(多分「はてな」の方)に記述していたような記憶があります…。
        どっかこのサイト内とかに記述ありましたっけ?

          • どうもありがとうございます。

            しかし、これを探して見つけられてない私って相当オツムに問題があるような気がしてならないです…。

  2. たしかニコ生の解説で塚田さんが「こっちは現状維持するだけでも大変なのに、ソフトは毎年進化する」って嘆いてましたが・・

    >独自に改造すれば改造するほどソフトの棋力は下がる一方

    ソフトも現状維持するの大変なんですね

    • あとは他のソフトが半年ごとに前のバージョンに7割勝つ、というぐらいの進化はしてくるので、それぐらいのペースで改良出来て当たり前、みたいな空気もありますね。

  3. 今日の結果を見る限り、たこっとは大樹を超えてそうな感じですね。
    これはByteBoard採用の流れでしょうか。

    • うーん。たこっとの作者に確認したところ、やはり、以前、私が予想したようにSEEが綺麗に実装できないようですね。この部分が簡易実装となると、-R40ぐらい下がる可能性があって、他の部分で+20%速くなっても、これと相殺してしまいかねないです。なかなか難しいです。

      評価関数を改善してSEEが簡易実装でもそこそこうまく局面の評価が出来ると良いのですが…。

  4. https://twitter.com/yaneuraou/status/727409890474389505?ref_src=twsrc%5Etfw

    きふわらべさん、私も応援していたのですが、わずかに届かなかった様です。
    そのかわりといっては何ですが、うさ親さんは届きました。
    そうして、今夜なんとしてもクラスター化を成功させたい、、、との様であります。

    竹内さん(習甦)も何とか入りましたが、前回電王トーナメント2位のnozomi が届きませんでした。
    これほど厳しい一次予選は今までなかったかと思います。
    これも、それもAperyのオープンソース化とやねうら王の教育プロジェクト(含むオープンソース化)のたまものでありましょう。
    そういうわけで、やねうらチルドレンの読み太、堂々の2位で一次予選通過であります。

    話変わりますが、クジラちゃん、今回はちゃんと200台ほどのリスナーのPCをクラスター化しての大合神になり、そのNPSは2億~3億というバケモノぶりを発揮しております。
    実戦でネットを介してリスナーのPCを計算資源として使いこなす、、、というアイデアは良いアイデアではありますが、実現するのは難しいと思っておりました。
    でもえびふらいさん、見事になしとげて、そうしてあの「どやっ」顔であります。

    • クジラちゃんへ
      ジト目の「ドヤ顔」があまりにお似合いで、つい扇子に書かれた「どや?」の文字を「どやっ」と脳内変換するミスをおかしてしまいました。
      ここに改めてお詫びするとともに、「決勝進出おめでとうございます」と申し上げる次第であります。

      うさ親さんへ
      決勝進出、おめでとうございます。
      このご活躍はクラスター化がうまくいったものと推察いたしております。
      追伸
      二次予選結果では本家(Apery)の次に付けていますが、決勝では直接対決されるかと思います。
      そのおりには、しっかりと恩返しできる事、期待しております。

      読み太さんへ
      10万円台のノーパソとお見受けいたしました。
      それで決勝進出とは、まるでツツカナのお株をうばったような健闘ぶりであります。
      そうして、決勝進出の唯一のやねうら王チルドレンでありますれば、ご活躍、期待しております。

      技巧さんへ
      ポナンザとの対戦、しびれました。
      あすの決勝戦でも、みごとだった今日の対局のような戦いぶりを期待しております。

    • WCSC26決勝戦 結果
      1位 ponanza         7勝   クラスター
      2位 技巧           6勝1敗 クラスター
      3位 大将軍          5勝2敗 デスクトップ
      4位 Apery          4勝3敗 クラスター
      5位 大合神クジラちゃん    3勝4敗 クラスター
      6位 NineDayFever      2勝5敗 デスクトップ
      7位 読み太         1勝6敗 ノートPC
      8位 うさぴょん2         7敗  クラスター

      個人的にはGPS将棋の予選落ち、、、という事に時代の移り変わりを感じています。
      そうして大合神クジラちゃんが360台をこえるリスナーのPCをクラスター化して、GPS(670)の2.7億NPSをこえる3億NPSを達成したことに驚いています。

      • 張ってくれたサムライさんに感謝します。
        感想を言うなら、チンピラの格付けみたくなったなぁと・・・。Orz

        言葉悪いですが・・・。

    • https://twitter.com/yaneuraou/status/728233759145791492?ref_src=twsrc%5Etfw

      昔、数学の授業で「これを証明しなさい」といわれて「自明です」と答えたら、こう言われました。
      「自明と思われる事を、レベルをひとつ下げて説明することを証明と言います」とね。

      そういうわけで、一つ説明してみましょうか。
      一人では勝負ができませんので、最低二人が必要です。
      勝った方が、全勝、負けた方が全敗で、トップとボトムが決まります。

      三人の場合は一勝一敗の人が真ん中にきます。
      自分より一つ上の人には負けて、下の人には勝ちました。

      四人の場合は、全勝の人がトップで全敗の人がボトム。
      中の二人はトップの人には負けて、ボトムの人には勝っています。
      そして中の二人で勝負して勝った方が順位が一つ上にいく。
      これは上記の二人勝負の場合と同じです。

      五人の場合は、全勝の人がトップで全敗の人がボトム。
      中の三人の対戦で全勝した人が上に、全敗が下に、一勝一敗が真ん中になります。
      それでこれは上記の三人の場合と同じ事の繰り返しです。

      以下、六人は全勝と全敗を引いて四人のケースになり、さらに全勝と全敗を引いて二人のケースに帰着します。
      偶数人の場合はこれの繰り返しですね。

      奇数人の場合は二人ずつマイナスしていって、最後が三人のケースに帰着します。

      さて、出題の答えになっていたでしょうか?
      やね先生の採点やいかに。

  5. なんとかちゃんねるとかまだ読んでるんですか。
    なんとかちゃんねるを意図的に避けると、効率が結構上がりますよ?
    私の場合は14%ほど効率が良くなったw

    • なんとかちゃんねるを読むことによる作業効率のダウンによる損失より、なんとかちゃんねるの一部のゴミクズ共を捻り潰すためのエネルギーの発生による新規作業のモチベーション獲得による利得が上回るような状況もあったりして。

  6. クジラちゃんの心臓部SILENT_MAJORITYですが
    大樹の枝にstockfish7を入れただけでは7割強勝てるようになるとは思えないのですが、やねさんはどうお考えになりますか?
    自己対戦の数が少ないからあてにならないデータなのか、他の部分もかなり弄っているのか、強くなったのはえびふらいさんの気のせいなのか

    https://github.com/Jangja/apery

    • 自己対戦の回数が少なくて不正確な計測なのだと思いますよ。あと、大樹の枝をlazySMP化するだけでmany coreではずいぶん勝率上がるのでそういう上乗せもありますし。

    • とある掲示板からの情報です。
      ご参考までに。

      名無し名人2016/05/05(木) 13:41:44.52 ID:Ww0ntHmu
      >>140
      lazySMP効果って2coreと4coreでも十分実感できるレベルなのね(もっとコア数多くないとあまり効果ないと思っていた )。
      詳細は今の3000局が終わってから書くとして、2coreは2000局で打ち止めにして今4coreで3000局設定で対戦させてるが成績が驚くほど違う……
      他は同じ設定なのに 2coreと4coreの差がここまであるとなると、22coreなら(エビちゃんはあの性格だし3000局で統計取ってないと思うが)エビちゃんの想像通りかそれを超える成績になりそう。

      • 以下続報です。
        255 : 名無し名人2016/05/05(木) 23:16:29.81
        設定:thread=4, byoyomi margin=900, Best Book Move=ON PONDER=OFF
        Apery_Twig_SDT3(以下大樹) vs SILENT_MAJORITY(以下SILENT)で3000局
        結果:http://imgur.com/HBf6L2p
        対局数3000局 先手勝ち1480(50%) 後手勝ち1422(49%) 引き分け98
        大樹 815勝(28%)  SILENT 2087勝(71%)

        • 0.1秒固定ってわりと同じ進行になりやすく、定跡でバラけさせたり、思考時間を0.1〜0.2秒のように思考時間でバラけさせたり、色々工夫をしないときちんとしたデータは得られなかったり。

          あとは、今回の思考時間の10ms前を過ぎていたらすぐ指すようにStockfish7系のコードはなっていますけども、ここが0になっていると0.1秒指しのときに10%以上の思考時間を得しますし。

          まあ、そのへん考えると公平な比較はなかなか難しいのではないかと思います。

          • 多くの方が自己対戦をやってSilent Majorityの強さはどうやら本物のようです。
            stockfish探索を参考にしてる人も多いですし。もしよろしければ、やねさん見解を聞かせていただけないでしょうか?

            Woodyring氏はsingular extension 、counter moveに”何かが”あると推測されています。

          • 同じ評価関数を使っているソフトならsingularのパラメーター少し変えるだけで大幅に勝ち越すでしょうし、まあ、そのへんも含めて公平な比較というのはなかなか難しいのかなと。

  7. https://twitter.com/yaneuraou/status/727807426548752384
    double位の円周率なら一瞬で出ちゃうのでクラスタ化する意義が全くないですねぇ。
    お金にするんだったら時代は素数ですよ!たぶん。
    それに、将棋ソフトの開発難易度はそれの何倍も難しいですよ。

    ちなみに自分は、今年は選手権の放送すら見てないので蚊帳の外です。
    まぁ、ちょっと検索してフレーバーだけとっておこうと思います。

    • > double位の円周率なら一瞬で出ちゃうのでクラスタ化する意義が全くないですねぇ。

      なぜにdouble?1兆桁ぐらいまで計算すれば良いのでは?

      • 多倍長精度浮動小数実装するスキルって結構高いと思うのですけど、そんなもの実装してる暇があったら本編を作れと・・・。

        C++に多倍長精度演算来ないですかねー。

        • > 多倍長精度浮動小数実装するスキルって結構高いと思うのですけど

          それは、IEEE 754-2008のように拡張するだけなのでは。

          > C++に多倍長精度演算来ないですかねー。

          (`ω´)っ boost::multiprecision

          • 屋根さんはさすがに規格読める人ですね。自分は免疫がなくていまいち腑に落ちないんですよね。どこがっていうと説明が難しいのですがリミットが取りずらいというか。
            読んでると加算加算で頭がフットーしてしまいます。
            算数で組んでる関係で基数変換も最近ちょっとだけ触るようになった程度で・・・。Orz

            boostは覚えるべきですかねー。お題を解くとかたまにやるのですが、そういう時に知ってるツールが使えないとストレスがマッハなのでなるべくローレベルに解釈しようとしてるのですが、チャンスを逃さないために覚えないという選択肢を取り続けています。無駄な努力なんでしょうけど。
            boostを準標準と見るかはちょっとしょっぱい感じです。
            でも、Boostあったら何ができるかはワクワクしますね。
            とりあえず、今はC++17にワクテカしつつ、VCの超絶バージョンアップを期待してます。
            ユニファイドコールシンタックスで試したいことがあるんですよね。
            疎結合オブジェクト指向というものを邪推しました。うまくいくかはわかりません。

  8. コンピュータ世界選手権は、
    統一のマシン構成ではないため、
    各出場ソフトのコード/アルゴリズム面での進化や、比較が
    できないのが少し面白みにかけてしまいます。
    ※マシン構成も含め、ソフトを開発していくという
    面白みももちろんありますのでそこは好みですね。

    そこで、やねさんの感想を聞いて見たいのですが、
    今回の結果を見て、単純なソフト(コード/アルゴリズム)の面でどのソフトが強い!と感じられますか?
    ※マシン構成が同じだとして。。。

    やねさんのブログは本当に面白くていつも楽しみにしています。

    • > 単純なソフト(コード/アルゴリズム)の面でどのソフトが強い!と感じられますか?

      Ponanzaが断トツですね。1PC比較ですとPonanzaと技巧の差がさらに開いたような…。

      • そうなですね!!!
        やねさんにそこまで言わせるPonanzaも凄いけど、
        その知見での読みの鋭さと深さ、と、あと文章の面白さ。。。
        やねさんも本当に唯一無二の天才です。
        いつもワクワクさせてくれる記事を掲載くださり感謝です!

    • さんさ_WCSC26実況 ‎@wcsc26_2016
      ポナンザWCSC2連勝後のインタビュー

      朝日新聞「技巧について」
      山本「クラスタの完成度はponanzaよりも高い」
      下山「技巧に負けるのはしょうがないなと」
      ・・・とうようにやねさんをはじめとして、ポナンザの開発者さん達も考えていました。

      でも当のポナンザだけはそうは考えなかった様です。
      そうして鬼のような急戦法によって技巧のすきを突いて勝ちきりました。
      これは「ポナンザは伊達に年季を重ねてきた訳ではない」という一つの証拠であります。

  9. こんぴゅーたーせんしゅけん

    やねうらさんは てんさい くさいですが
    でむらさんも同じにおいがしました
    くさかったです

    小並感

    • くさい、くさい、うっせえよ!

      「やねうらおさんは てんさい とくゆうの たいへん よい かおりが しますが」

      にしてくれよ…。

      • 分かりました! それに訂正します。

        天才くさいじゃなくて実際二人共
        天才ですからね。

        努力もしてますし。

        結局「くさい」って言いたかっただけやん
        orz

Taka へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です