パスワードを忘れた? アカウント作成
341301 story
ゲーム

世界最強のチェスプログラム「Rybka」盗用発覚で優勝剥奪 41

ストーリー by headless
so-they-definitely-check-him 部門より

greentea 曰く、

世界コンピューターチェス選手権(WCCC)で4年連続優勝していたチェスプログラム「Rybka」が他のチェスプログラムを盗用していたことが判明し、過去の入賞および優勝が取り消され、作者のVasik Rajlich氏が選手権から終生追放されたとのこと(Chess vibesの記事Extreme Techの記事本家/.)。

盗用されていたのはオープンソースのチェスプログラム「Fruit」と「Crafty」の2本。Fruitは2005年のWCCCで2位になっており、その翌年に初出場したRybkaはFruitに動きが似ていることを指摘されていた。ICGA(国際コンピューターゲーム協会)が集めた過去のWCCC出場者34名による調査委員会は、RybkaがFruitを元にしていることで一致したとのこと。また、Rybkaの初期のバージョンがCraftyを元にしていることも判明した。

WCCCのルールでは、出場するプログラムにオリジナルでないコードが含まれる場合は作者名やソースを明示する必要があるとしているが、Rajlich氏はRybkaをすべてオリジナルであると申告していた。また、動作がほとんど同じなど、他のプログラムの派生版であることが判明した場合は失格になるとも記載されている。Rybkaの失格に伴ってICGAは2007~2010年の新たな優勝者を発表し、Rajlich氏に対して優勝トロフィーのレプリカおよび賞金の返還を要求している。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by dodonga (4178) on 2011年07月02日 17時22分 (#1980798) 日記

     dodongaです。

     将棋ではBonanzaがあるので、その辺りはどうなんだろう。

    --
    閑話休題
    • Re:将棋では (スコア:5, 参考になる)

      by shinshimashima (9763) on 2011年07月02日 17時32分 (#1980802) 日記

      bonanzaの思考ルーチン自体はライブラリ化されていて、申請すれば自由に使用できます。
      参考:コンピュータ将棋選手権使用可能ライブラリ [computer-shogi.org]
      ただし、予選通過枠に制限がありますし、今回のように使用したことを隠していれば同様に失格となるでしょう。

      bonanzaのライブラリ化がなければ文殊、そしてあからは実現しなかったんだよなぁ。

      親コメント
      • Re: (スコア:0, オフトピック)

        by Anonymous Coward

        >bonanzaの思考ルーチン自体はライブラリ化されていて、申請すれば自由に使用できます。

        bonanzaをdodongaに空目した。不思議と違和感がない。

        • by Anonymous Coward
          dodongaの場合、ライブラリを使用していることを大々的に書くことが条件につきそうだ。
          地デジに切り替えろメッセージ並に。
    • by dodonga (4178) on 2011年07月03日 17時23分 (#1981142) 日記

       dodongaです。

       他の方の投稿で「libraryを使用したがパラメタは違う」のでダメなのは判りました。
       shinshimashima さんの投稿 [srad.jp]で将棋ではBonanzaを使うのに問題ないと判りました。

       ちょと疑問が。

       Bonanzaの真髄は、ライブラリにある「検索関数」ではなくて「評価関数の特徴ベクトル」にあると思うのです。対戦時は検索関数」Onlyでしょうから。
      # Bonanza 同梱の fv.bin ファイル
       読める論文 [nii.ac.jp]でも(Wikipediaより)ベクトル比較をしてる。

       とすると、コ~ドの利用はOKでも、ボナンザ使用をうたってる他のは「評価関数の特徴ベクトル」は自前ってことなのかなぁ。

       私はBonanza用GUI マイボナ [geocities.jp]を使ってますが、定石登録でも 「fv.bin ファイル」は弄らないですね。

      --
      閑話休題
      親コメント
    • by Anonymous Coward

      ライセンスを守った上で、Bonanzaのコードを利用していますと明記すれば良いだけでは?

  • by Anonymous Coward on 2011年07月02日 17時38分 (#1980807)
    より強いものを作ったんでしょ?ルール通り、他のプログラムを使っているが改良してもっといいものにしたんだよ、と宣言しておけば取り消されることもなかったのに、なぜだろ。
    • by Anonymous Coward on 2011年07月02日 18時08分 (#1980820)
      FruitはGPLのよう [wikipedia.org]なので、Fruitからの借用を認めるとソースを開示しなくてはいけない。それが嫌だったんでしょう。強さの秘密を人に見せたくないとか、あるいはオープンソースでない本来使えないライセンスのコードが入っていたりするのかも。
      親コメント
      • by Anonymous Coward
        頒布しないのなら開示の必要は無いです。
      • by Anonymous Coward

        推測ですが、コードが借用されてたらすぐわかっちゃうんで今回はアルゴリズムの借用だったんじゃないでしょうか。
        ライセンス違反というよりWCCCのルール違反だったんじゃないかと思います。

  • by Anonymous Coward on 2011年07月02日 19時42分 (#1980853)

    >ICGA(国際コンピューターゲーム協会)が集めた過去のWCCC出場者34名による調査委員会は、RybkaがFruitを元にしていることで一致したとのこと。また、Rybkaの初期のバージョンがCraftyを元にしていることも判明した。

    ソースコードの提出を求めてないとすると、挙動から推測したってこと?
    それだけでここまで分かるものなのでしょうか?
    詳しい方教えてプリーズ。

    • by Anonymous Coward on 2011年07月02日 23時32分 (#1980941)
      Chess vibesの記事の末尾にリンクされたドキュメント群にあるとおり、リバースエンジニアリングしたコードとの比較によって評価関数が一部の違い(Rybkaの使うbitboard形式への対応、重み付けの調整など)を除いて同一のものであることが示されています。
      親コメント
    • by Anonymous Coward
      挙動だけからの判断ですね。でもそれで充分わかります。
      トップレベルだとチェスでも将棋でも、やり方をどんなに詳しく聞いても、そのまま再現できません。
      ソースを流用するようなレベルでパクらなければ、もしそれで強くできたならば、それはオリジナルとは
      まったく違った味付けになり、当然挙動も違い、オリジナルプログラムだと言えるレベルになります。

      ゲームはまだまだ思考アルゴリズムの方法論も決定版はなく、プログラマの腕の差が効いている分野です。
  • by Anonymous Coward on 2011年07月02日 20時44分 (#1980864)

    >動きが似ていることを指摘され

    ソフト毎に「こいつはこういう時にこう動く」という特徴が
    そんなに分かりやすく出てるものなんでしょうか?

    • by Anonymous Coward on 2011年07月02日 22時33分 (#1980923)

      廃業したソフト会社から、既に別会社のものになっていたソースを流用して、別の商品として販売しようとした物語があります。

      長いので要点だけ。
      別のソフト会社に依頼して、見てくれや操作性を変えたのですが、内部ロジックには手を加えていなかったために、元ソフトの末期バージョンにしかなかった重大なバグが生きており、その点を権利者に追及されて息の根を止められた。という落ちです。

      詳細はこちら。
      如何にしてソフト会社は崩壊したか(核心部分)
      http://www.fujigoko.tv/rev/sty0801.html [fujigoko.tv]

      如何にしてソフト会社は崩壊したか(目次)
      http://www.fujigoko.tv/rev/index2.html [fujigoko.tv]

      親コメント
      • by Anonymous Coward
        なるほど!
        商用ソフトで、バグが修正されないままずっと残っていることがままあるのは、こういう事態に備えてなんですね!!
        • by Elbereth (17793) on 2011年07月03日 7時34分 (#1980996)
          マジレスすると、ゼンリンとかの地図メーカーは意図して
          実際と違う地図にしている場所が何箇所もあるという話ですね。
          親コメント
          • by Anonymous Coward on 2011年07月03日 12時36分 (#1981042)

            まあ、実際こういうのは色々仕込まれてるわけで。

            Wikipedia「ピカチュウ」より
            Microsoft IME 2002で、変換モードを「話し言葉優先」にして「ぎれ」または「ぎぇ」という文字列を変換すると、「ピカチュウ」という変換候補が出てくる。これは盗用を発見するための一種の「透かし」であると考えられ、語源としてはポケモン関連の著作のある作家Gille Myotisの名前が有力。他にも任天堂内でのピカチュウのコードネームという説もある。これはWindows Vista以降やMicrosoft Office 2003以降上では確認されていない。

            Wikipedia「アーグルトン」より
            アーグルトン(Argleton)は、Googleが提供する地図上に存在した、実在しない町である。
            2009年12月中旬に訂正が行われるまで、この地名はイギリス・イングランドのランカシャー州オートン (Aughton) に近接した位置に表示されていた。しかし、実際のこの場所には空き地が広がっている[1][2]。

            Wikipedia「トラップストリート」より
            トラップストリート(Trap street) とは、地図上に描かれた架空の道路である。虚構記事の一種で、無断複写によって地図の著作権を侵害した者が言い逃れできなくするための罠(著作権トラップ)として用いられる。

            親コメント
            • by curtz (26188) on 2011年07月03日 18時31分 (#1981171)
              いわゆる虚構記事 [wikipedia.org]ですね。
              「スウェーデン風レモンエンジェル(Swedish Lemon Angels)」のレシピは
              結果の面白さも含めてセンスがいいです。
              親コメント
            • Re:動きが似ている? (スコア:1, おもしろおかしい)

              by Anonymous Coward on 2011年07月03日 18時27分 (#1981170)

              > Wikipedia「トラップストリート」より
              > トラップストリート(Trap street) とは、地図上に描かれた架空の道路である。虚構記事の一種で、無断複写によって地図の著作権を侵害した者が言い逃れできなくするための罠(著作権トラップ)として用いられる。
              ああなるほど、ウィキペディアに方針上存在しないはずの典拠も不明な記事がゴロゴロしているのはそういう

              親コメント
            • by Anonymous Coward
              Google日本語入力で「まどういん」とタイプすると「魔導院ペリティシリウム朱雀」がサジェストされる(「魔導院ペリシティリウム朱雀」ではない)のはどう解釈したらいいのでしょうか。
              • "~ペリティシリウム~"での検索クエリ発行回数が"~ぺりシティリウム~"より多かった ため収録選定時に正誤如何を問わず選ばれてしまったとかでは?
                親コメント
              • by Anonymous Coward
                これは「盗用」になるのかというあたりが気になるところ。Googleが最初にこのtypoを流行らせたわけじゃないよね。
          • by Anonymous Coward
            以前、インクリメントPが踏んだ地雷ですね。
    • by Anonymous Coward

      チェスの場合は分かりませんが、将棋の場合だと、有名なソフトはだいたい分かります。何戦かの棋譜を見たらほぼ確実に分かると思います。
      それに、ソフトの場合はいろんな場合で試してみることができるので、そのソフト(アルゴリズム)に特徴的な手が出る局面での差し手を比べれば、より確実に判別できると思います。

  • by Anonymous Coward on 2011年07月02日 22時05分 (#1980905)

    ふと思ったんだが指し手から元のプログラムを推測できるなら、同じ局面では同じ結果が返って来る物なのだろうか。制限時間で思考を打ちきる場合は別にして、相手の思考時間の長短で手を変えてくるとか、敢えて悪手を選んで相手を混乱させるとかの機能は実装されていないのだろうか。

    • by Anonymous Coward on 2011年07月02日 23時35分 (#1980942)

      >同じ局面では同じ結果が返って来る物なのだろうか。
      乱数で挙動を変えるくらいはしてるみたいだけど、将棋は最適な手(と考えられる物)を
      選択するのが基本だから、「相手の意表を突く機能」はそんなに必要ないと思う。
      #捨て牌から手を予測する麻雀とは違うのです。

      そんなことしなくたって、人間とは思考ルーチンが異なるから人間には思いもよらない
      手を指すことはあるみたいだし、統計や何かを使ってコンピューター同士で相手ルーチンの
      癖を読むようになるのは、まだ先の話じゃないかなあ。

      >ふと思ったんだが指し手から元のプログラムを推測できるなら、

      あくまで「特徴的な棋譜」という結果から予測するだけで、
      ある時点の指し手から次の手を予測できるとは限らないんじゃないの?

      #予測できるとすれば「あと8手で詰み」みたいな時。予測できても嬉しくない。orz

      親コメント
      • by Anonymous Coward

        囲碁でよく使われるモンテカルロ法のアルゴリズムだと、当然指すたびに違う手になりますね。
        将棋は最適手が「深くて狭い」場合が多いのであまりはやっていないようですけど。

    • by d5 (42418) on 2011年07月03日 0時31分 (#1980958)

      >敢えて悪手を選んで相手を混乱させるとかの機能は実装されていないのだろうか。

      相手が人間だったらそういう姑息な手も効果は薄いが「ある」だろうけど、
      相手がコンピュータだったら不利局面に自ら陥る利敵行為にしかならない。

      親コメント
      • >相手がコンピュータだったら不利局面に自ら陥る利敵行為にしかならない。
        相手の先読みを無効にする効果はあるかもよ。

        #でもチェスでは全幅探索が当たり前なんだったっけ?
        親コメント
        • by d5 (42418) on 2011年07月03日 5時14分 (#1980986)

          >相手の先読みを無効にする効果はあるかもよ。

          それ、意味がない。
          「相手の読みを外すために、自分の読みでは劣勢となる手を選ぶ」時点で単なり利敵行為。
          逆に言えば、「自分が劣勢になる手を元にした無駄読み」前提なわけだから、
          コンピュータ相手としては意味がないってことになる。
          相手が切り捨てた手を再度検索の原点にするだけで、すでに劣勢で
          そこから読み負けを拡大するという悪手でしかない。

          >でもチェスでは全幅探索が当たり前なんだったっけ?

          目の前1手か3手レベルは全検索で、そこで評価がダメなのを捨てる
          というのはチェスに限らない。そこで、劣勢にしておいて読み比べ
          というのが、戦略として終わっているってことです。

          親コメント
          • by Anonymous Coward
            同じソフト同士ならそうだと思いますが、
            読みはソフトごとに違うので、ワンチャンスの可能性はゼロではないと思います。
            敗勢の時に勝負手を発見して、
            その手を指すと最善手で迫られたら10手後に必死をかけられて負けだけど、
            相手がそれを読みきれず次の一手を発見できなければ逆転の目がある、
            というとき、それをソフトが選択するのが正解の場面もありそう。
            最善の粘りではなく、頓死覚悟の逆転を狙うような感じ。
            • by d5 (42418) on 2011年07月03日 17時30分 (#1981146)

              >読みはソフトごとに違うので、ワンチャンスの可能性はゼロではないと思います。

              ゼロでないとして、それが有意な確率であることをどう読むかだね。

              >敗勢の時に勝負手を発見して、

              勝負手という概念はそもそもないからね。
              必然手/最善を読み、それを粛々と指す。

              >相手がそれを読みきれず次の一手を発見できなければ逆転の目がある

              コンピュータでは、基本、発見していない手順は少なくて、
              ある手の効果が低いということでそこで捨てるわけです。
              前提として発見という意識は、コンピュータ将棋ではないと
              思った方がいいですよ。

              >頓死覚悟の逆転を狙うような感じ。

              詰めの読みは結構高度で確実。
              頓死筋があると、読みが収斂されちゃい、まさに利敵行為でしかないわけな。

              親コメント
              • by Anonymous Coward
                詰みに関しては高度なのはわかっているので、あえて必死と書きました。
                たとえば9手必死なら相手は読めないと判断するケースがあってもいいと思います。
                勝負手というのは、ハイリスクハイリターンの手、という意味なので実装は不可能ではないはずです。
                コンピュータ将棋には数手先で読みを打ち切る水平線効果があるので、
                仮に水平線の向こう側で頓死するとしても、それに気づかなければ、
                その筋を発見することができません。
                読みの深さに自信のあるプログラムは相手の水平線効果の限界を弱点として利用できる、
                と考えられる気がします。
              • by d5 (42418) on 2011年07月04日 6時14分 (#1981310)

                >たとえば9手必死なら相手は読めないと判断するケースがあってもいいと思います。
                劣勢になって、しかも相手が読めないで、自分が読めているというケースは、ありえなくないけど、そんなことをするよりはもっとましな手があれば、それを選択するだろうね。

                >勝負手というのは、ハイリスクハイリターンの手、という意味なので実装は不可能ではないはずです。

                相手が王手筋にとびだしてくれることを望むに近いことですね。
                基本、ハイリスクな手を刺さなければいけないなら、それを指す。

                >コンピュータ将棋には数手先で読みを打ち切る水平線効果がある

                それについては、読み先の評価で基本、打ち切る先は相当先になります。

                >仮に水平線の向こう側で頓死するとしても、それに気づかなければ、

                自分は気づいていて、相手が気づかないというのは、劣勢になったとしたらそれはムシがよい考えにすぎませんよ。

                >読みの深さに自信のあるプログラムは相手の水平線効果の限界を弱点として利用できる、

                水平線がずっと先だから、劣勢になったという事実の裏打ちのひとつであるわけです。
                その局面だけ、自分が相手より読んでいるという考え方は、ヘタレなギャンブラーさんが「最後の一発になれば逆転するんだ」と言っているに等しいわけです。

                >考えられる気がします。

                つまりは、なぜ負け込みになるかを考えないとだめなわけですよ。

                親コメント
    • by Anonymous Coward

      仮にゆらぎがあったとしても、そのゆらぎ自体が特徴では?
      同じ局面を同じ制限時間で100回でも1000回でも差させればよいわけで。

typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...