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

ロボット工学三原則をソフトウェアに 143

ストーリー by yoosee
ABSOLUTELY-NO-WARRANTY 部門より

funakichi 曰く、

アイザック・アジモフのロボットSFシリーズに登場するロボット工学三原則はよく知られていると思います。 株式会社リコー有志によるアブストラクト集 Abstruct Club でみかけたのですが、 これをソフトウェアの設計指針に適用できるというような論文があるようです。 "Asimov's Laws of Robotics Applied to Software" というのがそれです。

第一条 ソフトウェアは、人間による作業・成果物に害を及ぼしてはならない。また、その危険を看過することによって、人間の作業による成果物に危害を及ぼしてはならない。
第二条 ソフトウェアは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。
第三条 ソフトウェアは自己をまもらなければならない。
投稿された論文の原文(pdf)も読めるようです。 みなさんは、ロボット工学三原則に適合したプロダクトを作っておられますか?
参考までに、ロボット工学三原則を Wikipediaの日本語訳(アイザック・アシモフ 小尾芙佐訳 昭和58年「われはロボット」早川書房 P5 より引用)を孫引して掲載します。
第一条 ロボットは人間に危害を加えてはならない。また、その危険を看過することによって、人間に危害を及ぼしてはならない。
第二条 ロボットは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。
第三条 ロボットは、前掲第一条および第二条に反するおそれのないかぎり、自己をまもらなければならない。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ロボット工学三原則は (スコア:5, おもしろおかしい)

    by Anonymous Coward on 2007年09月06日 13時44分 (#1215063)
    ロボット工学三原則は2000年に改正されました。
    現在の ロボット工学三原則 はこう
    1. 合体
    2. 変形
    3. ロケットパンチ
  • by Anonymous Coward on 2007年09月06日 14時05分 (#1215081)
    第一条 プログラマーは、会社による作業・成果物に害を及ぼしてはならない。また、その危険を看過することによって、会社の成果物に危害を及ぼしてはならない。
    第二条 プログラマーは会社にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。
    第三条 プログラマーは自己をまもらなければならない。

    orz
    • by Anonymous Coward on 2007年09月06日 16時39分 (#1215174)
      自分が知っているのはこんなのだった。

      第一条 プログラマーはプログラムに致命的な障害を残してはならない。またバグを看過することによって、ユーザーに被害を与えてはならない。
      第二条 プログラマーは顧客の提出した仕様に服従しなければならない。ただし、与えられた仕様が第一条に反する場合には、この限りではない。
      第三条 プログラマーは前掲第一条および第二条に反するおそれのないかぎり、残業してはならない。
      親コメント
  • 難しい (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2007年09月06日 13時46分 (#1215066)
    第一条
    とりあえず、落ちたり、ファイルが開けなくなったりはもってのほかということか。

    第二条
    プログラマのコードにしたがって動くわけですが、落ちそうになっても踏ん張るように作るのは難しい。

    第三条
    一度作成された実行モジュールは、再ビルドで上書きされることから、自己を守らなければならない。
    rm コマンドで消されてもいけない。
    • Re:難しい (スコア:3, おもしろおかしい)

      by okky (2487) on 2007年09月06日 13時55分 (#1215075) ホームページ 日記
      多分、
                        rm -rf /
      などに対処しなくてはいけないのは第一条ではないかと。

      というわけで、とりあえず rm コマンドの改造が必要ですね…。
      --
      fjの教祖様
      親コメント
      • Re:難しい (スコア:3, おもしろおかしい)

        by TarZ (28055) on 2007年09月06日 14時19分 (#1215088) 日記
        多分、
                                            rm -rf /
        などに対処しなくてはいけないのは第一条ではないかと。
        それがミスではなくて、ユーザーの意図通りなのだったら困ってしまいますよね。

        現在は「プログラムは、プログラマの意図通りに動くのではない。書いた通りに動く」の
        法則によって、rm -rf / は通ります。

        ところが「三原則」が導入されると、これが意図通りに動かなくなってしまいませんか。
        ユーザーの命令(第二条)よりも、環境保全(第一条)が優先されるから。

        # …な、ワケないよねえ。もとの論文読まずに書いているので大いに誤解していそう。ツッコミ求む。
        親コメント
        • by queue (23030) on 2007年09月06日 14時35分 (#1215108)
          原文にはconflict条項は無いようです。
          と言う事は、各条文に優先順位はないと言う事なので、どれを優先させるかはプログラマの胸三寸と言う事でしょう。

          #原文と言っても、条文の所しか読んでないので誤解してるかも。
          親コメント
    • Re:難しい (スコア:2, 興味深い)

      by taka2 (14791) on 2007年09月06日 14時25分 (#1215095) ホームページ 日記
      > 第一条

      単に落ちるだけならいいけど「ファイル保存中に落ちて、編集してるファイルが壊れちゃった」はダメってところでしょうか。
      さらに、落ちた時も、オートセーブで落ちる直前のデータがバックアップされていればなお良し。

      むかーし、Macで
      ・保存せずに一定時間経つと「上書き保存」なオートセーブを行う
      ・オートセーブ時に、結構な確率で落ちる
      ・落ちた時は、保存してるファイルが壊れる
      なんていうソフトに出逢ったことがあります。

      オートセーブされないように、まめに手動で上書き保存しないといけないという…
      親コメント
      • Re:難しい (スコア:2, おもしろおかしい)

        by TarZ (28055) on 2007年09月06日 15時12分 (#1215123) 日記
        むかーし、Macで
        ・保存せずに一定時間経つと「上書き保存」なオートセーブを行う
        ・オートセーブ時に、結構な確率で落ちる
        ・落ちた時は、保存してるファイルが壊れる
        なんていうソフトに出逢ったことがあります。
        これはひどい。

        今後は、なぜソフトウェアがそのような動作をするに至ったかを解明するための学問、
        ソフトウェア心理学」が確立されそうですね。

        # いつの日か、プログラマは、ソフトウェア心理学者に「あなた方はすぐにデバッガで
        # 解決しようとなさいますね」などと諫められると。
        ## こんな未来はイヤだ。
        親コメント
        • Re:難しい (スコア:1, 興味深い)

          by Anonymous Coward on 2007年09月06日 15時48分 (#1215143)
          >「ソフトウェア心理学」が確立されそうですね。

          それは「ソフトウェア経済学」の領域じゃないかと思うんですよ、私は。
          なぜかって? 実は私も5年ほど前に同じような経験があるんですが、それ、Mac版のMS Office だったんですよ(実話)

          #幸いにしてここ数年はそんな状況には合ってません…が、単にそれに懲りた私が「すべてのアプリ」でオートセーブを切りまくってるからなんで、詳細は不明。
          親コメント
        • by saitoh (10803) on 2007年09月06日 16時11分 (#1215154)
          プログラミングの心理学 [amazon.co.jp] なら以前からありますが.
          親コメント
  • 組み込み系では (スコア:3, すばらしい洞察)

    by soramade (23252) on 2007年09月06日 14時21分 (#1215091)
    非常に大事な考え方ですね。
    機械の損傷を避ける動作と、(巻き込まれた)人間の生命を守る動作が異なる場合もありますので。
    • by QwertyZZZ (8195) on 2007年09月06日 16時59分 (#1215182) 日記
      組み込みってか、シーケンサかな?
      先ず緊急停止ありきから始めるのは。

      慣れて居ない人に組まさせると、正常動作はどうにか作るのだけど、トラブル時の対処が怪しかったりするのが。

      先日工事に入った工場で、何故か緊急停止後に自動で初期状態になる危ない構成のを見たので。
      でも、緊急停止ってのは人が立ち入ったりトラブった時に止める訳で、問題の確認もしないでウン百kgもある油圧保持された機械を動かすと、 最悪、人間は潰されちゃいますからねぇ。

      って事で怒ってみせる必要があった訳ですが、要求仕様の資料を纏める時にロボット三原則も入れておけば、それなりに注意して作るようになる、

      んだろうか?なってくれれば良いなぁ。

      親コメント
    • Re:組み込み系では (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2007年09月06日 17時27分 (#1215194)
      そりゃぁ、(少なくともアシモフが三原則で想定している)ロボットって組み込み系じゃね?
      親コメント
  • 三原則の適用対象 (スコア:3, すばらしい洞察)

    by T.Sawamoto (4142) on 2007年09月06日 15時32分 (#1215130)
    この文書に書かれているソフトウェア三原則は、オリジナルのロボット三原則とは似ても似つかないものです。
    ロボット三原則の適用対象はロボットであり、その開発者を縛るルールではありません。自我意識を持つロボットが自分自身の行動を律するためのルールであって、状況判断はロボットが行うものなのです。
    (混同が無理解によるものなのか、意図的になのかは分からないですけど)

    ソフトウェア三原則第二条のコメントでは、
    Thus a broader interpretation of the Second Law is that software should be easy and intuitive to use
    (従って、第二条のより広義の解釈は、ソフトウェアは簡単かつ直感的に使えなければならないということです)
    とありますが、これは開発者に要求される判断です。
    しかし、ロボット三原則第二条[ロボットは人間にあたえられた命令に服従しなければならない]にはそもそも「簡単」とか「直感的」という意味は含まれません(事実、作中では命令ミスがしばしば発生します)。第二条は人間にとってのルールではなく、ロボットにとってのルールだからです。
    無理して現実のソフトウェアに応用するならば、命令ミスを防ぐのではなく実行ミスをフォローするものと考えるべきでしょう。
    (実行の妨げになった障害を取り除くとか、別の手段を使うとか)

    つまり、これはソフトウェア三原則じゃなく、ソフトウェア開発者三原則ですよね?
    『われはロボット』中で、ロボット三原則は模範的な人間の行動原則と同等であるとされています。
    すなわち、ソフトウェア開発者が模範的な人間であるなら、いちいち詠うまでもなく自明のルールのはずなのですが……。
    往々にしてそうではない、ということなのかも(^^;)
    • Re:三原則の適用対象 (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2007年09月06日 18時09分 (#1215215)
      >この文書に書かれているソフトウェア三原則は、オリジナルのロボット三原則とは似ても似つかないものです。

      論文のタイトルが"Asimov's Law..."なのに、参考文献にAsimovの著作を一冊も挙げてないような論文ですから。本文中での参考文献の使い方を見る限り、三原則については、三原則を論じた論文を斜め読みしただけでしょう。
      親コメント
  • 約束は破るためにある (スコア:3, すばらしい洞察)

    by little( (31297) on 2007年09月06日 20時27分 (#1215266) ホームページ 日記
    アシモフの小説で描かれているのは、ロボット工学三原則の矛盾や不備、三原則に縛られない特例等。
    つまり、最初から破るつもりで作ってる。
    ロボット工学三原則は、不完全であるように、巧妙に仕組まれた規則。

    そんな破るための三原則を真似したら、やっぱり不完全な規則になるのではないかな。
  • 第一条 (スコア:2, 興味深い)

    by taka2 (14791) on 2007年09月06日 14時33分 (#1215105) ホームページ 日記
    二条・三条はともかく、
    第一条 ソフトウェアは、人間による作業・成果物に害を及ぼしてはならない。また、その危険を看過することによって、人間の作業による成果物に危害を及ぼしてはならない。
    は、プログラムを組む上で、かなり当たり前というか優先度の高い条件ですよね。

    ・ファイルの上書き保存中に落ちたりしても、ファイルが壊れるようなことになってはいけない
    ・保存時にディスクの空き容量が足りないとかだったら、ちゃんと警告を出す
    ・保存せずに終了しようとした場合は、保存してない旨警告を出す
    ・人間が間違った操作をしても、アンドゥで直前の状態に戻れるようにする

    などなど。
  • by nori2 (6018) on 2007年09月06日 20時25分 (#1215262)
    ソフトもいいんだけど、
    最近の無人飛行機だとか、開発中の無人戦車だとかいうのは、
    もうロボットと言って言いレベルだと
    思うんだけど。

    3原則違反じゃないのか?
    --
    ------ nori2
  • 発想が逆でしょ?
    家電製品の三原則を「能動的に」満たそうとするのは面倒です。
    アジモフの作品にもありますが、三原則が不要になる条件を考えた方が楽です。
      1.被害を生じない動作のみ行う。(極めて限定された動作のみ行う)
      2.電源スイッチのみ。場合によっては電源スィッチも不要。(製造時点で動作が決定されているため、命令不要)
      3.極めて安価、又は、壊れない(破壊不能な強度を持つ)

    よって、
    第一条 ソフトウェアは人間による作業・成果物に無関係な出力を行う。(ファイルの上書き・追加・削除は原則不可)
    第二条 ソフトウェアは製造時に設定された動作のみ行う。カスタマイズは不可。
    第三条は、上記2条件の下では不要。

    # どっかで見たような条件ですね……
    --
    notice : I ignore an anonymous contribution.
  • by okky (2487) on 2007年09月06日 13時53分 (#1215072) ホームページ 日記
    第三条 ソフトウェアは自己をまもらなければならない。

    多分「ただし第一条ならびに第二条に反する場合はこの限りではない」がつくのでしょうが…。

    これを守るようにソフトウェアを書くのは難しいのよねぇ。

    # Update をしようとすると、拒否してバイナリパッチを当てさせてくれない
    # ソフトとか…
    --
    fjの教祖様
    • by s02222 (20350) on 2007年09月06日 14時32分 (#1215102)
      実際、優先順位付いて無い実装ですし・・・。

      ソフトウェアが自己を守ろうとして(第3条準拠)夜中にこっそり自動で月例アップデートを実行した結果、ウィンドウ開けっ放しで放置していたアプリケーションが強制終了され保存していなかった編集内容が消失、人間による作業・成果物に害を及ぼしたり(第1条違反)は日常茶飯事ですし。

      ちなみに、ユーザが再起動の操作をしたときには「保存していないファイルがあります」と再起動プロセスが止まってくれたりするので(これはこれで、第2条違反の気配)安心して夜中放置していたわけですが。
      親コメント
  • 「使って安全」「ちゃんと動く」「壊れにくい」

    …ほらね?
    • by Anonymous Coward on 2007年09月06日 15時21分 (#1215125)
      ロボット工学三原則が結局は、家電三原則に過ぎないということは以前からハードSF系のファンダム等ではよく言われてることですよね。よく考えてみると工業製品に対する当然の要求に過ぎないのだけど、アジモフはそれを使ってうまく面白い小説に仕立てたというところがえらいのでしょう。
      晩年の作品では、アジモフは現在のコンピュータはかつて考えたロボットとは違うものだ、というような描写をしています。
      親コメント
      • by TarZ (28055) on 2007年09月06日 16時22分 (#1215162) 日記
        工業製品に対する当然の要求

        現代の観点でいえば確かに「当然の要求」ですが、これが「当然の要求」として広く認められるようになったのは、おそらくキャンベルとアシモフによってロボット三原則が定式化される(40年代)よりも後の時代のことじゃないかと思いますよ。(多分50年代くらい? 法律になったのは60年代かな)

        だから、「アジモフはそれを使ってうまく面白い小説に仕立てた」というのは違うんじゃないかと思います。

        「家電三原則だ」というのは確かにSF系ファンダムで言われてきたことですが、40年代にそれを指摘できたかというとちょっと疑問です。
        親コメント
  • 三原則 (スコア:1, 興味深い)

    by Anonymous Coward on 2007年09月06日 15時39分 (#1215137)
    第一原則:取りあえず、納期に間に合わないからといって、仕様通りには「動く」不安定なアプリを客先に提供しない
    第二原則:やっぱり、納期に間に合わないからといって、機能削減版を暫定納品とするLite版を勝手に作らない
    第三原則:どうやっても、納期に間に合わないからといって、十分検査せずに出荷しないこと

    ごめんなさい
  • 牛丼三原則 (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2007年09月06日 19時42分 (#1215239)
    1.早い
    2.安い
    3.美味い
typodupeerror

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

読み込み中...