愛、死、ロボット:開発者の目を通してアシモフの物語を見る





プログラマーズデーを記念して、少しリラックスして、アイザックアシモフのお気に入りの物語を読み直すことにしました。そして、発見が私たちを待っていました。半世紀以上前のサイエンスフィクションの作家が、現代の開発の現実の多くを十分な正確さで説明していることがわかりました。これはどのように可能ですか?一緒に考えてみましょう。 



有名なサイエンスフィクション作家の多くの物語の中で、会社についてのシリーズ「Yu。 S.ロボット」とその従業員。いくつかの物語は、テスターのパウエルとドノバン(ロボットテスターの一種)の日常生活について、主要なロボット心理学者であるカルビン博士について語っています。彼らが直面する問題の範囲は広く、今日まで彼らの現代の同僚の多くによく知られています。



これらの一般的な問題の1つは、タスクで不正確に定式化された作業のステートメントです。 Azimovはこのトピックを何度も持っていますが、驚くことではありません。彼のロボットは最新のマシンよりもはるかにスマートで「人間味があり」、ロボットを使用する人々はロボットの考え方が異なることを簡単に忘れてしまいます。その結果、ストーリー「ラウンドダンス」で起こったように、問題の不注意な設定は災害に変わる可能性があります



そして、それがテスターに​​見えたように、それはすべて非常にうまく始まりました。マーキュリーの放棄された基地を整理するために必要なのは、フォトセルを固定するための1キログラムのセレンだけです。そして、電気があり、それとともに、基地の冷却があり、それなしではマーキュリーで生き残る方法はありません。セレナは近所でいっぱいで、湖全体...それらの最も近いところに送られたロボットだけが狂っていて、それよりも悪いことに、輪になって走っています-ロボットは飲まないが、酔ったデリリウムを運びます。揚げる危険を冒して外への遠足中に、英雄たちはロボットが湖に向かう途中で自分自身のために危険な状況に遭遇したことに気づきます。しかし、直接の注文があります、どうしたのですか?



-私は言った...待って...私は言った: 'スピード、私たちはセレンが必要です。あなたはあちこちで彼を見つけるでしょう。行って、それを手に入れなさい。」それで全部です。他に何を言うべきでしたか?

-それが非常に重要で緊急だとは言わなかったのですか?

- 何のために?問題は簡単です。


この「単純さ」は、ロボットのプログラムにジレンマをもたらしました。「重要でない」タスクの優先順位は、自己保存の感覚(損傷を回避することを規定する第3法則)よりも低かった。その結果、ロボットは命令を実行するか生き残るかの選択に固執するようになり、テスターに​​なる予定の人は危険な行動を取ることによって間違いを修正しなければなりませんでした-最優先の第一法則に目を向けます。簡単に言えば、自分自身を危険にさらし、ロボットに他のタスクを延期させ、所有者を救うために急いでください。そのような経験の後、テスターはより思慮深く委託条件に近づきました-そしてすべてが時計仕掛けのようになりました:



-私は彼を別のセレン湖に送りました-今回はすべての費用でセレンを入手するために。彼はそれを42分3秒で持ってきました-私はそれを計時しました。


マーキュリーの後、新しい割り当てはヒーローにはそれほど危険ではないように見えます(ストーリー「ロジック」が行われる惑星間ステーションでは、はるかに涼しく、「ゼロより273度低い」だけです)が、開発者が見ることができる問題に直面する必要があります悪夢。少なくとも、そのような不完全な存在がそれを書くことができないことをその作成者に伝えたプログラムはまだありません。



しかし、エネルギー変換器を整備するための新しい開発であるキューティーのロボットは、その作成に人々が関与することを信じていませんでした。まあ、本当に、これらの弱い生き物はどうやって自分たちよりも完璧なものを作ることができますか?これは非論理的です。彼はもっともっともらしいバージョンを持っています:



-マスターは最初に人を作成しました-最も単純な種で、最も生産が簡単です。徐々に、彼はそれらをロボットに置き換えました。それは一歩前進でした。最後に、彼は残りの人々の代わりに私を作成しました。これから私は主に仕えます!


ヒーローたちはロボットを説得し、本と事実(彼らが考えるように)の両方に訴え、地球の存在を証明しようとしています。キューティーの前で新しいロボットを組み立てても、結果は得られません-彼らは納得していませんでした。おそらくこれは、その起源とポジトロニック脳に組み込まれた目標についての仮定が欠如しているためです。このアーキテクチャ上のエラーは簡単に説明できます。開発者は、ロボットが人々の議論を疑うことをほとんど期待していませんでした。しかし、前の世代の製品では役割を果たさなかった新しい製品の欠陥により、マシンの頭脳に異なる一連の仮定が作成されました。 



「私はそれを信じていません」とパウエルは悲しそうに同意した。-それは推論ロボットです、くそっ!彼は論理だけを信じています、そしてそれが要点です

...-何ですか?

-厳密に論理的な推論は何でも証明できます-どの最初の仮定が受け入れられるかに応じて。私たちはそれらを持っています、そしてキューティーは彼女を持っています。


ただし、ロボットは他の変数を介してタスクを認識しているにもかかわらず、その機能を完全に果たしています。彼は人々が彼にそれを命じたからではなく、それが主の意志であるからです。



そして人々は古典的なジレンマに直面しています:それがうまくいくなら何かを修正する価値がありますか?それで、英雄たちは、振り返って、結論に達しました-それだけの価値はありません:



– , - . , .

– ?

– ! , ?

– ?

– , …

– !


テスターに​​ついての3番目のストーリーである「CatchingaRabbit」は、製品がリリースされる前にストレステストされていない場合に何が起こるかをよく示しています。ストーリーでは、デイブのロボットマイナーのフィールドトライアルについて説明します。新しいデザインは複合的なものです(1人のロボット司令官が手などの他の6台のロボットを制御します)。しかし、ロボットが無人のままになるとすぐに、ロボットは動作を停止します。さらに、彼はチーム全体で行進し始めます-鉱夫にとって非常に疑わしい活動です。 



テスターの問題は、ストーリー自体からの引用によって最もよく説明されます。



– . – ! – . – : . : «. . » , . : . : , «. . » . : , , .


良い仕事を失うという脅威の下で、テスターは多くのことができます-事実。ストーリーのヒーローたちは、現場でのユニットテスト(分解して個別にテストすることもできますが、10日しかなく、これで何かが得られるかどうかはまだわかりません)から特別なテスト環境(ですが、遠くの地球にあり、重さは10トンです)。何が残っていますか?バグが発生する条件をシミュレートし、探して、理由を探します。これは、悲しいかな、多くの現代のテスターのシェアです。確かに、彼らはもっと幸運でした-物語の英雄とは異なり、今日の専門家は少なくとも彼らと一緒に鉱山を故意に爆破する必要はありません。しかし、石の瓦礫の下では、人ははるかに効率的に考えるので、開発者がまだこの手法を採用していないのは良いことです。



不正な事故は、バグを引き起こすだけでなく、その原因を推測するのにも役立ちました。極端な方法でも、ロボットの「指」の1つを爆破することで、負荷を軽減し、問題を解消しました。



- それは私が話しているものです。コマンドは6つのチャネルで同時に送信されます!通常の状態では、1つまたは複数の「指」が厳密な監視を必要としない単純な作業を行います。さて、私たちの通常の歩行運動と同じように。また、極端な状況では、6つすべてを即座に同時に実行する必要があります。そして、ここで何かが諦めます。残りは簡単です。たとえば、人の外見など、彼に必要なイニシアチブが低下すると、彼は自分自身になります。私はロボットの1つを破壊しました、そしてデイブはたった5つを命令する必要がありました、イニシアチブは減少しました、そして彼は正常になりました!


ただし、テスターだけでなく、「テスター」はAzimovのストーリーで難しいタスクを実行します。「ロボットが失われた方法」のストーリーでは、ロボット心理学者のスーザン・カルビンが故障ではなく、ロボット全体を探す必要があります。いいえ、彼は跡形もなく姿を消しませんでした-彼は彼のような他の人たちの中に隠れて、彼らの一人のふりをしました。 63台のロボットのうち62台だけが真実を語っており、1台は嘘をついています。これは深刻なバグです。



失敗の理由はすぐにわかります。顧客がロボットプログラムに変更を加えました。そして、どこかではなく、その重要な部分である第一法則の策定において。新しいロボットは、人を保護する義務がなくなりました(科学者のガンマ線に登ったり、劣化したりしないようにするため)。しかし、実際の生活ではよくあることですが、一流の専門家の知識なしに行われたそのような一貫性のない変更は、悲惨な結果を伴います。この場合、干渉は以前に明確だった法律の論理に違反し、一度デバッグされたシステムは不安定になりました。したがって、「離れて、二度とあなたに会わないように自分を見せない」という感情的な秩序は、ロボットに抜け穴を与え、それに従います-そしてコマンドを実行するためにすべてを行います。

第一法則を順守するための一連のテストを開発し、ロボットのプログラムの変更に関する別のバグに基づいてトラップを設定する必要があります。これは、通常のマシンにはない優越感です。



– . , -, . , . -10 . , . - , -2 , . , . , . , , , , , -10 , . - , , … .


ヒーローはストーリー「リスク」のバグを探すことを余儀なくされています。ハイパードライブを搭載した船は検証の対象となりますが、何らかの理由でテスト中にジャンプしませんでした。人間にとって、そのようなジャンプは危険なので、船はロボットによって操縦されました。ここで、失敗の原因を見つけるために誰かを船に送る必要があります。



この話はいくつかのプログラミングの問題を引き起こしました。まず、テスト-自動化(この場合-ロボットによる)または手動(科学者)。一見すると、ロボットの方が適しているように見えます。機械は人間の専門家よりも高速で信頼性があります。しかし、ロボ心理学者は人間によるチェックを主張します。彼女は後で次のように自分の立場を明確にします。



–  , , . : . , , . . . , , .



,  , . , . , . , , , , ? « » – , . , , .


部分的には、これらの原則は今日でも関連しています-自動テストはますます広く使用され、多くの利点がありますが、状況によっては手動テストが依然として理にかなっており、その特異性のためにマシンの助けを借りて見つけるのが難しい問題を特定できます。物語では、船で何が起こったのか正確に理解されておらず、考えられる問題の原因不明に気付かないため、ロボットがバグを見つけるための本格的なシナリオを準備することは不可能です。しかし、人は自分が見たものに基づいて、自分の結論に頼ることで、すでにその場で自分自身を方向付けることができます。



第二に、この話は再び正しい参照条件の問題を提起します。バグの理由はそこにありました-ロボットのエンジンを始動するためのアルゴリズムは、人との違いを考慮せずに登録されました。その結果、誤って定式化されたコマンドに続いて、彼はそれをやり過ぎました-そしてトリガーを壊しました:



–  , . , «. . » . , . ! , , . . : , .

–  …

–  , , . , . , … 


部分的に時代遅れに見えるが、多くの点で、アジモフと他の作家の両方で、将来の出来事を予想している多くの同様の物語があります。私たちがまだそのような高度に開発されたロボットを持っていないのは残念です、そして問題と締め切りは常に私たちにあります、偉大なサイエンスフィクション作家はこれを正しく指摘しました。



All Articles