恐ろしい追っ手を振り切った後 エシックと ヘッジと 新たな味方のレマは 洞窟のようなコントロールルームに たどり着きました ここには最後のアイテム 記憶の石があり 力場で浮遊しながら スーパーコンピュータを動かしています エシックが力場を停止させようとすると レマがそれを止めます レマが言うには 10年前に 彼女は研究の仕事を割り当てられ 世界を動かす機械を使って 皆を 幸せにするものを作るよう言われたのでした 何度も失敗を繰り返した後 レマはある化合物を発見しました 口にすると やる気が出て楽しくクリエイティブで 愛情豊かな 最高の自分になれるものです すぐに生産が始まりました やがてハクセンボーグから 国中に供給される食品に この化合物が 混ぜ込まれるようになりました 最初の1年は天国のようでしたが 2年目はそうでも ありませんでした 物忘れや 倦怠感や 自分以外に関心を失う といった副作用が表れ始めたのです 3年目になると 政府が崩壊し ロボットが自己完結したプロセスとして 全てを管理するようになりました その頃には レマにはどうしようもないほど 事態は進行していました 人々はこの化合物に 依存するようになり 摂取することを拒否した少数の人々が 事態を変えるためレジスタンスを結成しました レマが治療薬を発見するのに 10年の歳月がかかりました この工場には治療薬を作るのに 必要なものが全て揃っていますが 記憶の石に手をかけた瞬間に 警報が発動し ロボットに 追われることになります その前に工場の設定を 治療薬製造用に変更すれば 人々を救うことができます レマは工場の再編法を すでに考案していましたが 問題は その解読が ちょっと難しいことでした レマの図面には 治療薬を作る製造過程が 全て示されていました 「硝酸を加える」から 「強く振る」への矢印は 硝酸を加えるのが 振る前でなければ ならないことを示しています ひとつでも 順番を間違えると 治療薬は効かないか もっと悪いことになります 循環参照はありません つまり ステップAが ステップBを必要とするとき ステップBも結果的にステップAを 必要とするようなことはありません ここでエシックとヘッジの 腕の見せ所です レマはヘッジに 込み入った図面を 逐次的なステップへと 変換してもらう必要があります それが工場に実行させる 作業手順になります これを中央コンピュータに インプットできれば 工場は指示通りに 再編されます 情報を表の形で格納できる ヘッジの能力がここで役立ちます では 工場を再編する 正しい作業手順を作るには ヘッジをどうプログラムしたら よいでしょう? ビデオをいったん止めて 自分で考えてみましょう ヘッジはループと変数と条件文を使え 情報を表に保持できる ①大きな図式を一連の手順に変換する ②各手順はリストに一度だけ現れる ③A→Bは「AはBより先」の意味 ④図式中に循環参照はない まずは この問題を 機械ではなく 人間の目線で 考えてみるといいでしょう この図を見て 最初が 「ボウルを見つける」だと分かるのは そこに向かう矢印がないからです 次にすべき作業を見つけるには 図にどんな印を付けると良いでしょう? ビデオをいったん止めて 自分で考えてみましょう 解法まで 3秒 解法まで 2秒 解法まで 1秒 レマが描いたような図のことを 有向非循環グラフといいます 「グラフ」とは 様々な要素と 要素間の関係を表したものです 「有向」というのは 矢印で表される方向が 重要だということです この例では AからBには進みますが BからAには進みません 「非循環」というのは 循環する経路が存在しないということです もし循環があれば この問題は 解決不能だったので 幸いでした このグラフを人間の目線でたどるには シンプルなやり方があります 自分に向いた矢印のないステップが 出発点になります それを実行したら そのステップと そこから伸びている矢印を消します 再び 自分に向いた矢印のない ステップを探し 同じことを すべてのステップが 片付くまで繰り返します ロボットにとっては 処理しにくいことが2つあります まず どうやって経過を 記録するのか? 次に 複数の選択肢が ある場合にどうするのか? 1つ目の問題については 機械が情報を格納する便利な方法である 表を使うことです この場合は ヘッジに縦の列と 横の行の 両方の見出しに 各ステップを書き込ませます それから 1行ずつ 確認していきます 図で矢印が「混ぜる」に 向いているものは どれでしょう? 「振る」と「滴定する」です ヘッジは それぞれの列に 印を付けます 全ての行を同様に確認していくと こんな表ができるでしょう もちろん全体の表は ずっと大きいはずです 人間の目線と同じように ヘッジのスタート地点も 自分に向いた矢印のない ステップを探すことです 一切 印がついていない行が それにあたります それが2つ以上ある場合は アルファベット順で若い方を 選ぶのが便利ですが 他の方法でも上手くいきます 次に ヘッジはそのステップを 手順リストに追加し 表からそのステップの行と列を 削除することで そのステップが依存先である 依存関係を取り除き 最初の状態に戻ります このグラフには 循環参照している部分がないので この状態に達する度に 少なくとも1つは 自分に向かう矢印のないステップがあるはずです アルファベット順で一番若いものを 手順リストに追加して そのステップの行と列を表から削除し ループの始めに戻ります これでループ部分ができたので 表に何も残らない状態になるまで すべての要素について これを繰り返せばよいのです ヘッジはグラフの中を 行ったり来たりして やがて 作業手順を生成し始めます これを使って エシックが 組み立てラインを設定します 3人の協力によって あっという間に 何千人分もの 治療薬が作り出されました エシックが とうとう力場から 記憶の石をつかみ取ると 警報が鳴り出します 瞬く間に ロボットたちに 囲まれてしまいます エシックが驚きながら落下してゆく中で 記憶の石は彼女の記憶だけでなく 謎を解明するための 最後の欠落した部分を明らかにします エシックがヘッジを作ったのは あるひとつの目的のため― 腐敗した政府から 世界を動かす機械を守る迷路を 作るためでした でもエシックは急ぐあまりに 決定的な誤りを犯しました ヘッジにその迷路の大きさを指示して ループを終わらせるための 条件を設定し忘れたのです そこでヘッジは 限界まで 迷路を広げ続けました やがて 葛藤が生じました 迷路を作らなければならないのに 人々を傷つけたり ブラッドバリアを越えないでは 続けられなくなったのです いずれも できないよう プログラムされていることです そこで土地をさまよいながら 解決策を探しているうちに 力の石 創造の石 そして記憶の石に 行き着いたのです ヘッジは3つのアイテムが揃って 発揮される真の力― 自意識を芽生えさせる力に 気づきました 3つが揃えば 自分で プログラムを書き換えて 世界全体を巨大な迷路にするという 使命を叶えることができるのです 簡単なことではありません それぞれの石には ロボットに利用されないように 安全装置が備えられているのですから でも ヘッジが ちょうどいい人間を見つけて 使命を果たすための冒険に 連れ出すことができたなら... 話は変わってきます まったく違った話に—