あまりにも広く知られ、いまや文化的な共通言語にさえなっている技術的な助言がある。「いったん電源を切って、もう一度入れてみましたか?」ITジョークのオチであり、そして、おそらく意外なことに、複雑系についてのきわめて深い洞察を日常の言葉に凝縮したものでもある。

突き放されているように感じる。はぐらかされているようにも。本当の理解がお手上げになったときに唱える、儀式めいた呪文。それなのに。それなのに。効くのだ。不気味なほど、何度も。しかも、ソフトウェアに限った話ではない。


なぜ岩を丘の上まで押し戻すだけではだめなのか?

複雑系には、特定の不具合を突き止めて修正することを途方もなく難しくする性質がいくつもある。そのため、従来のデバッグ手法は実用にならず、ときには不可能ですらある。

  • 目に見えない内部状態の蓄積:

    • あらゆる相互作用は、十分に記録されることも、外から見通せることもない、かすかで持続的な痕跡を残す。それが「隠れた状態」を生み、現在の振る舞いをシステムの全履歴に依存させる。
    • 湖底に人知れず堆積物が積もるように、過去の入力、小さな出来事、調整は、外からはわからない内部の痕跡を残していく。システムの現在の振る舞いは、その大半が記録されず、参照することもできない履歴に依存している。そのため、現在の状態だけをもとに診断すると判断を誤ってしまう。
  • 経路依存性:

    • 複雑系の基本構造や動作の経路は、初期の判断や過去の出来事によって恒久的に制約されることが多い。そうした判断や出来事の理由が、とっくに失われていたとしても。
    • 昔の牛の通り道に沿って築かれた都市のように、その後の発展が最初の土台の上に積み重なっているため、システムは特定の動き方に「固定」されてしまう。
  • 密な相互接続と非線形性:

    • 複雑系の構成要素は複雑に結びつき、接続とフィードバックループの密な網を形成している。
    • ある部分での行動は、隣接する部分に影響するだけではない。遠く離れた、一見無関係な領域に、予想外で不釣り合いに大きな結果を引き起こすことがある。小さな変化が増幅され、大規模な変動や連鎖を生むこともある。
    • そのため、介入にはリスクが伴う。緊密に結びつき、原因と結果が比例しないこうした連鎖のせいで、一つの問題を直すと、思いがけず別の何かが壊れるかもしれない。
  • 圧倒的に広大な状態空間:

    • システムを構成する部分が増えるほど、それらが互いに作用し_うる_組み合わせの数は、指数関数的に膨れ上がる。構成要素の数がそれほど多くなくても、状態と相互作用の組み合わせは天文学的な数になる。
    • 特定の問題を引き起こしている相互作用や状態の組み合わせを突き止めることは、事実上不可能になる。探索空間、つまり確認すべきすべての可能性が、しらみつぶしに調べるにはあまりにも広大だからだ。
  • 不透明性と創発:

    • 多くの複雑系、特に自然や社会のシステムは、全体の設計図に沿って作られたものではない。進化したり、自己組織化したりしてきたものだ。
    • 私たちは、その根本的な動作原理を、予測に使えるほど完全には理解していないことが多い。そうしたシステムを最も特徴づける振る舞いは、明示的にプログラムされたものではなく、下位の構成要素どうしの相互作用から、予期せず_創発する_ことが多い。
    • 決定版と呼べる取扱説明書も構成図もないため、デバッグは難航する。相手にしているのは自然に生じる現象であり、単純なトップダウンの説明では捉えきれないかもしれないのだ。

白紙に戻す

リセットという戦略は、まったく異なる方法を取ることで、正確な診断と修復に伴う途方もない難しさを回避する。問題のある状態を、丸ごと放棄するのだ。その有効性は、次の点に支えられている。

  • 既知の、より単純な基準状態に戻る:

    • リセットの中心的な価値は、複雑で、エラーだらけで、よく理解できていない現在の状態を、あらかじめ定められた初期状態に置き換えることにある。
    • この出発点となる状態は、通常はるかに単純であり、何より、少なくとも基本的な水準では機能すると_わかっている_。コンピューターを工場出荷時の設定に戻すようなものだ!
  • 経路依存性の鎖を断ち切る:

    • 初期状態に戻すことで、リセットは、そのシステムがたどってきた固有の歴史とのつながりを事実上断ち切る。過去の出来事がもたらした最適とはいえない構成や制約から抜け出し、やり直す機会を与えてくれる。以前の落とし穴を避けられる可能性もある(ただし、同じような罠に再びはまらないという保証はない)。
  • 不確実性のもとでの経済合理性:

    • 多くの状況では、非常に複雑で不透明なシステムの問題を完全に診断し、正確に修正しようとする場合の予想コスト(時間、労力、資源、さらなる損害の可能性)は、リセットに伴うコスト(停止時間、現在の状態の喪失)を上回る。
    • 診断が難しく、費用もかかり、結果も不確かなら、リセットを選ぶのは考えるまでもない。既知の、管理可能なコスト(リセットに伴う混乱)を引き受けることで、未知の、際限なく膨らむ可能性のあるコスト(一つバグを直したら二つ出てくる)から逃れるのだ。
  • 状態空間の大幅な単純化:

    • リセットは一時的にシステムをはるかに単純な構成へと強制的に移し、考慮すべき変数と相互作用の数を大幅に減らす。これにより、直後のシステムの振る舞いは予測しやすく、管理しやすくなり、いずれ避けようもなく複雑さが再び積み重なり始める前に、中核となる機能を立て直せる。

ソフトウェア以外への応用

医療

  • 副腎皮質ステロイドパルス療法

    • 多発性硬化症やループスなどの自己免疫疾患が激しく悪化したとき、患者にはわずか1〜3日間、極めて高用量のステロイドが点滴で投与される。この大量のステロイドは、免疫反応全体を一時的に事実上停止させ、攻撃を止め、体にリセットの機会を与える。治療後、免疫系は徐々に戻ってくるが、多くの場合、そのバランスは変わり、自分の体の組織を攻撃しにくくなっている。
  • 自家幹細胞移植

    • 患者の免疫系全体を置き換える。まず、医師は患者自身の血液から幹細胞を採取する。次に、強力な化学療法で既存の免疫系を完全に除去する。最後に、先ほど採取した幹細胞を体内に戻すと、それらが新しい免疫系を一から再構築する。この方法は多発性硬化症で目覚ましい成果を示しており、約半数の患者で病気の進行が完全に止まっている。
  • 糞便微生物移植

    • FMTは、健康なドナーのうんちを患者の腸管に移すことで、有益な微生物のバランスの取れた集団を丸ごと一度に導入する。当初は抗菌薬に耐性のあるC. diff感染症の治療のために開発されたが、現在では潰瘍性大腸炎などの炎症性腸疾患への応用が研究されている。多発性硬化症(MS)、慢性疲労症候群(CFS)、炎症性腸疾患(IBD)についても、うまくいったという体験談は数多くある。
  • 臓器移植

    • 説明するまでもない。アンインストールして、再インストール。
  • 多血小板血漿(PRP)

    • 患者の血液を採取し、処理して血小板を通常の最大5倍の濃度に濃縮し、それを損傷部位に注入する処置だ。この血小板は成長因子を放出し、「治癒過程を刺激または促進し、けがの治癒にかかる時間を短縮し、痛みを軽減し、さらには発毛も促す」。私の友人にも、これを受けて、なかなか治らなかった腕のけがが治った人がいる。
  • 免疫グロブリン静注療法(IVIG)

    • 数千人の献血者から得た抗体を濃縮し、機能不全に陥った免疫系をリセットする。「体が自分自身を攻撃するのを防ぎ、いくつかの種類の炎症を抑える」ことで、IVIGは免疫不全から、皮膚筋炎やループスなどの自己免疫疾患まで、さまざまな病態に有効な治療となる。
  • サイケデリックと神経のアニーリング

    • サイケデリックは、固定化した脳の活動パターンを一時的に崩し、より健全なつながりが形成されるようにすることで、うつ病やPTSDなどの治療に役立つ可能性がある。科学者たちは、この過程を金属加工の「焼きなまし(アニーリング)」に似たものとして説明している。金属を加熱して加工しやすくし、新たな形にして冷ます、あの過程だ。脳内では、サイケデリックが神経活動と柔軟性を一時的に高め、深く根づいた思考パターンを作り直せる時間を生み出す。
  • 断食と除去食:

    • 長期間の断食(通常は3日以上)をすると、体はオートファジーと呼ばれる掃除の仕組みを活性化させる。細胞が損傷した構成要素を分解して再利用するもので、要するに、細胞内のごみや炎症の引き金を取り除く。この過程は複数の系に同時に作用し、全身の炎症の程度、免疫機能、細胞間のシグナル伝達をリセットする。こうした全身のリセットは、ときとして薬では断ち切れない悪循環を断ち切る。同様に、除去食では、引き金になりうる食品をすべて一度に取り除き(乳製品、グルテン、大豆、ナッツなど、一般的なアレルゲンを含むことが多い)、その後、順序立てて再び取り入れることで問題を特定する。
  • ヒストン脱アセチル化酵素(HDAC)阻害薬

    • 併用療法でバルプロ酸を用い、メチル化とアセチル化のパターンに、いわばエピジェネティックなリセットを起こす。HDAC阻害薬は、クロマチンをより開いた、転写が起こりやすい状態に保つ(脱アセチル化は、基本的には環境の状態に対する核の応答であり、時間とともに蓄積して、特定の転写ができないようクロマチンを閉じていく。これは限定的には適応に役立つものの、最終的には元に戻すのが難しくなる)。

    • がんの治療によく使われる。

その他の分野

組織設計

  • 巨大な一枚岩の組織全体を変えようとするより、その中に新たなイノベーション部門を作るほうが簡単だ。

教育における学びほぐし

  • 深く染みついた誤解を正そうとするより、概念を一から教えるほうが効果的なこともある(参照:負の転移)。マックス・プランクの有名な言葉:

「新しい科学的真理が勝利するのは、反対者を説得して真理に目覚めさせるからではない。むしろ、反対者がいずれ死に、それに親しんだ新しい世代が育つからである。」

経済政策

  • 管理された破綻と再生を許容する市場の循環は、介入によってあらゆる破綻を防ごうとするものよりも、よい結果をもたらす。
  • 破産。
  • ゼロベース予算編成:前回の予算を修正するのではなく、毎期、一から予算を組み立てる

ほかにも例があれば、ぜひ聞いてみたいので、教えてください


やり直すことの代償

はっきりさせておくと、私は車輪の再発明を勧めているわけではないチェスタトンの柵を参照)。とはいえ、リセットは大ざっぱな手段であり、実行にあたっては、慎重に検討すべき重大な欠点や考慮事項がある。

  • 価値ある情報と適応の喪失:

    • リセットは選り分けてくれない。捨て去る状態の中には、再現が難しい、あるいは不可能な価値が含まれているかもしれない。
    • コンピューターを再起動すると、保存していない作業が失われる。組織の再編は、価値ある非公式なつながりや、組織に蓄積された記憶を壊しかねない。長年の関係を終わらせると、共有してきた歴史や、身につけてきた折り合いのつけ方が消えてしまう。
  • 大きな移行コストと混乱:

    • リセットする過程そのものが、しばしば混乱を招き、大きなコストを伴う。
    • リセット中、システムは通常停止するため、サービスや生産活動が中断される。移行期間には、多大な労力や資源の投入が必要となり、不安定さが生じる可能性もある。たとえば会社を再編すると、直接的な費用がかかるだけでなく、効率の低下と混乱がしばらく続く。
  • 根本的な欠陥の放置・隠蔽:

    • リセットは、根本原因を修正せずに、機能不全の症状(システムのクラッシュや不規則な動作)だけに対処することが多い。土台となる設計に欠陥があったり、稼働環境が常にシステムを障害の起こる状態へ追いやったりするなら、リセットは一時しのぎにしかならない。
    • リセットに頻繁に頼ることは依存につながり、より優れた診断ツールの開発、より頑健なシステムの設計、あるいはシステムの動態への深い理解を妨げかねない。組織やプロジェクトをいつも「再起動」しなければならないなら、それは、より深い問題が放置され、一時的な対処が優先されていることを示唆している。
    • 根本的なメモリリークを抱えるソフトウェアで、リークを修正せずに再起動を繰り返すことを考えてみてほしい。
  • リセットの失敗や、事態の悪化のリスク:

    • 目標は正常だとわかっている状態に戻ることだが、リセットの過程自体が失敗したり、さらに悪い状態を招いたりすることもある。
    • OSの再インストールに失敗すれば、コンピューターが使えなくなるかもしれない。腐敗した体制のリセットを目指す政治革命が、内戦や、さらに抑圧的な政権につながることもある。移行が円滑に進み、成功するという保証はない。

結論

リセットを受け入れること、あるいは少なくとも、それを恥じなくていいということの理由は伝えられただろうか。ただ、次の問いを忘れずに考えてほしい。

  • システムの理解しやすさ:システムの内部状態を、どこまで詳しく理解できるか?
  • 相互依存の密度:システムの構成要素は、どれほど緊密に結びついているか?
  • 歴史的な蓄積:経路依存性は、現在の選択肢をどれほど制約しているか?
  • インターフェースの維持:リセットの最中も、重要な外部との接続を維持できるか?
  • モジュール性:システム全体を混乱させずに、一部だけをリセットできるか?

そして、何より大事なのは:

これ、全部、著者が適当にでっち上げただけじゃないのか?

そうかもね。だったら自分で記事を書きやがれ(冗談です。間違いを見つけたら、ぜひ教えてください!)

考えや事例を提供してくれたJimmyと、FMTのマッドサイエンス実験がこの記事を書くきっかけの一つになったultimapeに感謝します