パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

科学者は研究に使っているコードを公開すべき?」記事へのコメント

  • by wd-nara (25864) on 2010年02月11日 13時24分 (#1716765) 日記

    元のコラムではプログラムを公開して成功した例としてApelとHakenによる四色予想の証明をあげているけど、良い例ではないでしょう。あの論文の本文でアルゴリズムの詳細は解説されているし、ジャーナルの付録としてマイクロフィルムがついていてそこにデータは全部入っていたから、たとえ原プログラムを公開しなくても、独立した実装による追試が可能な状態でした。むしろ、原プログラムを参照しない独立した実装で追試を行ったほうが、原プログラムを検証するよりも強い支持を得られますよね。

    例の一つを例になっていないよと言っているだけで、元の主張全体を否定するものではありません。念のため。

    • # 四色問題はAppel,Hakenの当時公開してた情報にあたってないから感想になるけど

      あの論文の本文でアルゴリズムの詳細は解説されているし、ジャーナルの付録としてマイクロフィルムがついていてそこにデータは全部入っていたから、たとえ原プログラムを公開しなくても、独立した実装による追試が可能な状態でした。

      ちゃんと調べてないのでアレですが、査読に苦労するぐらいの難解なプログラムをアルゴリズム読みながら実装して1000時間以上の計算機量を費やして追試するってのが当時「独立した実装による追試が可能な状態」とはとても言えないのでは。
      アルゴリズムは正しく実装されていそうだし、全解探索もきちんと行われてるっぽいってのがそこそこ評価されたのは、コードが公開されていたからではないのでしょうか。
      (結果的には正しいようだと言われているだけで、公開していなければ「ミスで8割しか探索していないんじゃないか」と言われても反論できないでしょう)

      違う理由で四色問題は、あまり良い例で無いとは思います。
      ソース公開してみんなすっきり解決したって問題じゃなかったわけだし:-P

      # あとはまあ、性善説に立てばソース公開はしなくて良いと思うけど、
      # 性悪説に立つならソース公開は基本的には義務付けしないとバレるまで適当し放題じゃないかなあ。
      # 実験はみんな最低ラインを当然クリアしてやってるだろうという暗黙の前提があるけどプログラムはその手の蓄積が少ないわけだし。
      # そりゃ手でこねて作った寒天の上に手づかみで菌のせて繁殖させたりピペット使い回したって正しいらしい結果は出るかも知れないけど、そういう研究者を信用する人がどれだけいるかって話じゃないのかなあ。
      # コーディングの話も、その研究室では「大枠に影響のない些末な問題だ」と思ってるだけであって、それってその分野の常識として認知されてるのかな?

      親コメント
      • by wd-nara (25864) on 2010年02月12日 12時59分 (#1717200) 日記
        ApelとHakenによる証明でコンピュータを使ったのは、
        1. 可約で不可避な配置集合をみつけること
        2. 得られたものが可約で不可避な配置集合であることを確認すること

        の両方なんだけど、検証には2だけ必要で1は不要であることにご注意ください。 1のプログラムはヒューリスティックの塊になって書くのは大変で、だからApelとHakenは試行錯誤を繰り返したのだけど、それが終わった後で2だけを再現するだけなら、実はそんなに難しくありません。当時の状況としては、プログラムを書いたとしてそれを動かすことの出来る環境を手に入れるところで、一部の恵まれた人以外は苦労するでしょうけど。

        親コメント
        • 私は4色問題はソースを公開したことで成功している(ただ揉めちゃったので最良ではない)例だと思っています。
          その上で間違っていたら指摘して欲しいのですが、

          1.全てが可約配置であるような不可避集合を見つける
          2.あってるかチェックすること(要は最小判例を含まず、全てが可約配置であることを確認する)

          2の検証は、ソースコードを公開していないと(計算量的に)とてもやっかいなのでは?
          なぜなら(ちゃんと論文に当たってソース読んでないので推測だけど)「可約であるのをチェックする」「集合からグラフをもれなく持ってくること」の2点だけソースで正しく書かれているかチェックすれば、OKなのがわかるから。(少なくともそのソースコードで走らせれば正しい結果が出てくるのを確認できるから、故意に結果をねつ造しない限り正しいらしいと判断できる)
          これは「2を再現する他人のコードで結果を出す」のに先んじて、ある程度の検証が可能だという事ではないでしょうか。
          # 少なくともこの時点で間違っていれば指摘して、恵まれた人たちに回してもらうことが出来るし。

          そう言う意味でこれは「公開することで(実際に計算しなくても)検証してもらえた好例」なのではないでしょうか。

          親コメント
          • ソースが公開されたことでほんのちょっと手間がはぶけたということは否定できないけど、「ほんのちょっと」だけだと思います。

            たぶん、当時検証した人の多くは、単に検証するだけでなくついでに証明を改良できないか考えたと思うんですよ。その状況証拠として、その後もApelとHaken本人によるものを含めて、可約不可避配置集合をちょっと小さくしましたという成果が断続的に出ています。もしも自分が当時それに加わっていたらどうするかと考えると、オリジナルのソースを自分の環境に移植した上で改良するよりも、アルゴリズムはわかっているんだから独自に実装するほうを選ぶでしょう。おそらく、独自実装のほうが結局は楽でしょうから。当時の人もそうしたのではないかなあ。

            アルゴリズムそのものは面倒だけど難しくはないのが、四色問題の特殊事情なんですよ。

            親コメント

最初のバージョンは常に打ち捨てられる。

処理中...