世界最強のチェスプログラム「Rybka」盗用発覚で優勝剥奪 41
ストーリー by headless
so-they-definitely-check-him 部門より
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氏に対して優勝トロフィーのレプリカおよび賞金の返還を要求している。
将棋では (スコア:1)
dodongaです。
将棋ではBonanzaがあるので、その辺りはどうなんだろう。
閑話休題
Re:将棋では (スコア:5, 参考になる)
bonanzaの思考ルーチン自体はライブラリ化されていて、申請すれば自由に使用できます。
参考:コンピュータ将棋選手権使用可能ライブラリ [computer-shogi.org]
ただし、予選通過枠に制限がありますし、今回のように使用したことを隠していれば同様に失格となるでしょう。
bonanzaのライブラリ化がなければ文殊、そしてあからは実現しなかったんだよなぁ。
Re: (スコア:0, オフトピック)
>bonanzaの思考ルーチン自体はライブラリ化されていて、申請すれば自由に使用できます。
bonanzaをdodongaに空目した。不思議と違和感がない。
Re: (スコア:0)
地デジに切り替えろメッセージ並に。
Re:将棋では (スコア:1)
dodongaです。
他の方の投稿で「libraryを使用したがパラメタは違う」のでダメなのは判りました。
shinshimashima さんの投稿 [srad.jp]で将棋ではBonanzaを使うのに問題ないと判りました。
ちょと疑問が。
Bonanzaの真髄は、ライブラリにある「検索関数」ではなくて「評価関数の特徴ベクトル」にあると思うのです。対戦時は検索関数」Onlyでしょうから。
# Bonanza 同梱の fv.bin ファイル
読める論文 [nii.ac.jp]でも(Wikipediaより)ベクトル比較をしてる。
とすると、コ~ドの利用はOKでも、ボナンザ使用をうたってる他のは「評価関数の特徴ベクトル」は自前ってことなのかなぁ。
私はBonanza用GUI マイボナ [geocities.jp]を使ってますが、定石登録でも 「fv.bin ファイル」は弄らないですね。
閑話休題
Re: (スコア:0)
ライセンスを守った上で、Bonanzaのコードを利用していますと明記すれば良いだけでは?
オリジナルより強かったんだったら (スコア:0)
Re:オリジナルより強かったんだったら (スコア:4, 興味深い)
Re: (スコア:0)
Re:オリジナルより強かったんだったら (スコア:3, 参考になる)
Rybcaは商用ソフトとして販売されてますから。
Re: (スコア:0)
Re: (スコア:0)
推測ですが、コードが借用されてたらすぐわかっちゃうんで今回はアルゴリズムの借用だったんじゃないでしょうか。
ライセンス違反というよりWCCCのルール違反だったんじゃないかと思います。
どういう調査? (スコア:0)
>ICGA(国際コンピューターゲーム協会)が集めた過去のWCCC出場者34名による調査委員会は、RybkaがFruitを元にしていることで一致したとのこと。また、Rybkaの初期のバージョンがCraftyを元にしていることも判明した。
ソースコードの提出を求めてないとすると、挙動から推測したってこと?
それだけでここまで分かるものなのでしょうか?
詳しい方教えてプリーズ。
Re:どういう調査? (スコア:4, 参考になる)
Re: (スコア:0)
トップレベルだとチェスでも将棋でも、やり方をどんなに詳しく聞いても、そのまま再現できません。
ソースを流用するようなレベルでパクらなければ、もしそれで強くできたならば、それはオリジナルとは
まったく違った味付けになり、当然挙動も違い、オリジナルプログラムだと言えるレベルになります。
ゲームはまだまだ思考アルゴリズムの方法論も決定版はなく、プログラマの腕の差が効いている分野です。
動きが似ている? (スコア:0)
>動きが似ていることを指摘され
ソフト毎に「こいつはこういう時にこう動く」という特徴が
そんなに分かりやすく出てるものなんでしょうか?
Re:動きが似ている? (スコア:1, 興味深い)
廃業したソフト会社から、既に別会社のものになっていたソースを流用して、別の商品として販売しようとした物語があります。
長いので要点だけ。
別のソフト会社に依頼して、見てくれや操作性を変えたのですが、内部ロジックには手を加えていなかったために、元ソフトの末期バージョンにしかなかった重大なバグが生きており、その点を権利者に追及されて息の根を止められた。という落ちです。
詳細はこちら。
如何にしてソフト会社は崩壊したか(核心部分)
http://www.fujigoko.tv/rev/sty0801.html [fujigoko.tv]
如何にしてソフト会社は崩壊したか(目次)
http://www.fujigoko.tv/rev/index2.html [fujigoko.tv]
Re: (スコア:0)
商用ソフトで、バグが修正されないままずっと残っていることがままあるのは、こういう事態に備えてなんですね!!
Re:動きが似ている? (スコア:1)
実際と違う地図にしている場所が何箇所もあるという話ですね。
Re:動きが似ている? (スコア:2, 参考になる)
まあ、実際こういうのは色々仕込まれてるわけで。
Wikipedia「ピカチュウ」より
Microsoft IME 2002で、変換モードを「話し言葉優先」にして「ぎれ」または「ぎぇ」という文字列を変換すると、「ピカチュウ」という変換候補が出てくる。これは盗用を発見するための一種の「透かし」であると考えられ、語源としてはポケモン関連の著作のある作家Gille Myotisの名前が有力。他にも任天堂内でのピカチュウのコードネームという説もある。これはWindows Vista以降やMicrosoft Office 2003以降上では確認されていない。
Wikipedia「アーグルトン」より
アーグルトン(Argleton)は、Googleが提供する地図上に存在した、実在しない町である。
2009年12月中旬に訂正が行われるまで、この地名はイギリス・イングランドのランカシャー州オートン (Aughton) に近接した位置に表示されていた。しかし、実際のこの場所には空き地が広がっている[1][2]。
Wikipedia「トラップストリート」より
トラップストリート(Trap street) とは、地図上に描かれた架空の道路である。虚構記事の一種で、無断複写によって地図の著作権を侵害した者が言い逃れできなくするための罠(著作権トラップ)として用いられる。
Re:動きが似ている? (スコア:2, 興味深い)
「スウェーデン風レモンエンジェル(Swedish Lemon Angels)」のレシピは
結果の面白さも含めてセンスがいいです。
Re:動きが似ている? (スコア:1, おもしろおかしい)
> Wikipedia「トラップストリート」より
> トラップストリート(Trap street) とは、地図上に描かれた架空の道路である。虚構記事の一種で、無断複写によって地図の著作権を侵害した者が言い逃れできなくするための罠(著作権トラップ)として用いられる。
ああなるほど、ウィキペディアに方針上存在しないはずの典拠も不明な記事がゴロゴロしているのはそういう
Re: (スコア:0)
Re:動きが似ている? (スコア:1)
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:0)
チェスの場合は分かりませんが、将棋の場合だと、有名なソフトはだいたい分かります。何戦かの棋譜を見たらほぼ確実に分かると思います。
それに、ソフトの場合はいろんな場合で試してみることができるので、そのソフト(アルゴリズム)に特徴的な手が出る局面での差し手を比べれば、より確実に判別できると思います。
ゆらぎは無いのか (スコア:0)
ふと思ったんだが指し手から元のプログラムを推測できるなら、同じ局面では同じ結果が返って来る物なのだろうか。制限時間で思考を打ちきる場合は別にして、相手の思考時間の長短で手を変えてくるとか、敢えて悪手を選んで相手を混乱させるとかの機能は実装されていないのだろうか。
Re:ゆらぎは無いのか (スコア:1, 興味深い)
>同じ局面では同じ結果が返って来る物なのだろうか。
乱数で挙動を変えるくらいはしてるみたいだけど、将棋は最適な手(と考えられる物)を
選択するのが基本だから、「相手の意表を突く機能」はそんなに必要ないと思う。
#捨て牌から手を予測する麻雀とは違うのです。
そんなことしなくたって、人間とは思考ルーチンが異なるから人間には思いもよらない
手を指すことはあるみたいだし、統計や何かを使ってコンピューター同士で相手ルーチンの
癖を読むようになるのは、まだ先の話じゃないかなあ。
>ふと思ったんだが指し手から元のプログラムを推測できるなら、
あくまで「特徴的な棋譜」という結果から予測するだけで、
ある時点の指し手から次の手を予測できるとは限らないんじゃないの?
#予測できるとすれば「あと8手で詰み」みたいな時。予測できても嬉しくない。orz
Re: (スコア:0)
囲碁でよく使われるモンテカルロ法のアルゴリズムだと、当然指すたびに違う手になりますね。
将棋は最適手が「深くて狭い」場合が多いのであまりはやっていないようですけど。
Re:ゆらぎは無いのか (スコア:1)
>敢えて悪手を選んで相手を混乱させるとかの機能は実装されていないのだろうか。
相手が人間だったらそういう姑息な手も効果は薄いが「ある」だろうけど、
相手がコンピュータだったら不利局面に自ら陥る利敵行為にしかならない。
Re:ゆらぎは無いのか (スコア:2)
相手の先読みを無効にする効果はあるかもよ。
#でもチェスでは全幅探索が当たり前なんだったっけ?
Re:ゆらぎは無いのか (スコア:1)
>相手の先読みを無効にする効果はあるかもよ。
それ、意味がない。
「相手の読みを外すために、自分の読みでは劣勢となる手を選ぶ」時点で単なり利敵行為。
逆に言えば、「自分が劣勢になる手を元にした無駄読み」前提なわけだから、
コンピュータ相手としては意味がないってことになる。
相手が切り捨てた手を再度検索の原点にするだけで、すでに劣勢で
そこから読み負けを拡大するという悪手でしかない。
>でもチェスでは全幅探索が当たり前なんだったっけ?
目の前1手か3手レベルは全検索で、そこで評価がダメなのを捨てる
というのはチェスに限らない。そこで、劣勢にしておいて読み比べ
というのが、戦略として終わっているってことです。
Re: (スコア:0)
読みはソフトごとに違うので、ワンチャンスの可能性はゼロではないと思います。
敗勢の時に勝負手を発見して、
その手を指すと最善手で迫られたら10手後に必死をかけられて負けだけど、
相手がそれを読みきれず次の一手を発見できなければ逆転の目がある、
というとき、それをソフトが選択するのが正解の場面もありそう。
最善の粘りではなく、頓死覚悟の逆転を狙うような感じ。
Re:ゆらぎは無いのか (スコア:1)
>読みはソフトごとに違うので、ワンチャンスの可能性はゼロではないと思います。
ゼロでないとして、それが有意な確率であることをどう読むかだね。
>敗勢の時に勝負手を発見して、
勝負手という概念はそもそもないからね。
必然手/最善を読み、それを粛々と指す。
>相手がそれを読みきれず次の一手を発見できなければ逆転の目がある
コンピュータでは、基本、発見していない手順は少なくて、
ある手の効果が低いということでそこで捨てるわけです。
前提として発見という意識は、コンピュータ将棋ではないと
思った方がいいですよ。
>頓死覚悟の逆転を狙うような感じ。
詰めの読みは結構高度で確実。
頓死筋があると、読みが収斂されちゃい、まさに利敵行為でしかないわけな。
Re: (スコア:0)
たとえば9手必死なら相手は読めないと判断するケースがあってもいいと思います。
勝負手というのは、ハイリスクハイリターンの手、という意味なので実装は不可能ではないはずです。
コンピュータ将棋には数手先で読みを打ち切る水平線効果があるので、
仮に水平線の向こう側で頓死するとしても、それに気づかなければ、
その筋を発見することができません。
読みの深さに自信のあるプログラムは相手の水平線効果の限界を弱点として利用できる、
と考えられる気がします。
Re:ゆらぎは無いのか (スコア:1)
>たとえば9手必死なら相手は読めないと判断するケースがあってもいいと思います。
劣勢になって、しかも相手が読めないで、自分が読めているというケースは、ありえなくないけど、そんなことをするよりはもっとましな手があれば、それを選択するだろうね。
>勝負手というのは、ハイリスクハイリターンの手、という意味なので実装は不可能ではないはずです。
相手が王手筋にとびだしてくれることを望むに近いことですね。
基本、ハイリスクな手を刺さなければいけないなら、それを指す。
>コンピュータ将棋には数手先で読みを打ち切る水平線効果がある
それについては、読み先の評価で基本、打ち切る先は相当先になります。
>仮に水平線の向こう側で頓死するとしても、それに気づかなければ、
自分は気づいていて、相手が気づかないというのは、劣勢になったとしたらそれはムシがよい考えにすぎませんよ。
>読みの深さに自信のあるプログラムは相手の水平線効果の限界を弱点として利用できる、
水平線がずっと先だから、劣勢になったという事実の裏打ちのひとつであるわけです。
その局面だけ、自分が相手より読んでいるという考え方は、ヘタレなギャンブラーさんが「最後の一発になれば逆転するんだ」と言っているに等しいわけです。
>考えられる気がします。
つまりは、なぜ負け込みになるかを考えないとだめなわけですよ。
Re: (スコア:0)
仮にゆらぎがあったとしても、そのゆらぎ自体が特徴では?
同じ局面を同じ制限時間で100回でも1000回でも差させればよいわけで。
Re: (スコア:0)
自分も読んでないくせに、知ったかぶりしない方が良いよ。
しったかしても、すぐバレる。