システムとフローの統一的な見方
私たちは小さな統合的な見方を静かに整理してきました — プロセスを本質まで削ぎ落としたとき、何が残るのか。ほぼあらゆるプロセス(生物的・計算的・組織的)は三つの基本要素に還元できると気づきました。新しい理論ではなく語彙です。自分たちの仕事で繰り返し役に立つから共有します。
三つの基本要素は、情報・規則・実行体です。情報はプロセスが存在する理由 — 扱うべき対象がなければプロセスは不要です。規則は各ステップで何をすべきかを定義します(読み、書き、次にどこへ行くかを決める)。実行体は実際に各ステップを行うものです。情報はプロセスの意味、規則はその上限、実行体はその上限に届けるかを決めるもの、と覚えておくと良いです。
この三要素を受け入れると、フローチャートでよく見かける六つのカテゴリ(トリガー・ノード・制御フロー・状態・制約・終了)はひとつの単位に畳まれます — 「処理スロットとルーティングスロットを持ったノード」。判定ノードはルーティングだけ。入口ノードは厳しい入力契約を持つ。制約は独立した存在ではなく、エッジの属性。制御フローも独立した存在ではなく、グラフのトポロジそのもの。システム全体はひとつの形になります — 同じ形のノードが異なる接続で並ぶ。
Figure 01
三つの基本要素 ── ひとつの統一ノードに畳み込まれる
情報・規則・実行体 ── あらゆるプロセスが還元される三つの基本要素。この三つを認めると、システムは「設定されたエッジで繋がれた同形ノードの集合」になる。
primitive · 01
情報
プロセスが存在する理由 ── 読まれ書かれるもの。
primitive · 02
規則
読む + 書く + 次を決める。規則が上限を定める。
primitive · 03
実行体
実際にステップを行うもの。上限に届けるかを決める。
fold into one shape
統一ノード
slot · A
処理スロット
slot · B
ルーティングスロット
Synthesis
システム = 同形ノード × 接続トポロジ
次の観察はこの構造がフラクタルであることです。ノードはサブネットワークに展開でき、安定したサブネットワークはひとつのノードに包み戻せます。包む条件は安定性です — 安定したサブシステムだけがブラックボックスとして扱える。物理学者が剛体を扱う方法、数学者が公式を扱う方法と同型です。ニュートンはケプラーの三法則を一つの方程式に包んだ。我々は小さく信頼できるサービスを配備可能な単位に包む。抽象化は怠惰ではなく、「この層では何を知らなくてよいか」を意識的に決めることです。何を忘れるかを知ることは、理解することの一部です。
ノードモデルの上に、システムが取りうる六つの粗い段階を置けます — 閉鎖系、受動的開放系、能動的処理系、自己適応系、創発的秩序を持つ自己組織系、自分自身を作る自己生成系。ソフトウェアのワークフローは三番目に属します — 目的を持ち、境界があり、概ね決定論的で、システム自身は変わらない。面白い境界は四番目の自己適応系です — パラメータ・規則・構造・目標のいずれかが変わりうる。階段を上がるほど予測は難しくなり、エンジニアリングはより慎重さを要します。
同じ三要素が — ここが驚きの部分でしたが — 三つの基礎的な計算モデルの中心にも現れます。チューリングマシン(1936)はテープ上の情報、表としての規則、知性のないリードライトヘッドの組み合わせ。ペトリネット(1962)はそれを多くの並行プロセスが資源を共有するケースに一般化し、待ち合わせと同期のための明示的な場(プレース)を導入したもの。ニューラルネットワーク(1943、学習規則 1986)は構造を保ちつつ、規則を書き下ろす代わりにデータから学ぶもの。どの場合でも、情報・規則・実行体。複雑さは実行体に宿らず、規則に宿ります。
Figure 02
システムが取りうる六つの段階
各層は下の層が持たない能力を一つ加える。問題が実際にどの層に属しているかを判断するときに役立つ。
L1
閉鎖系
外部との交換なし
理想化された孤立系
L2
受動的開放系
+ 外部と交換する
河、天候、生態系
L3
能動的処理系
+ 目的を持って処理する
ワークフロー、ソフト、ライン
L4
自己適応系
+ 自分自身を変える
サーモスタット、機械学習
L5
自己組織化・創発
+ 自発的に秩序を生む
アリの巣、市場、都市
L6
自己創生(オートポイエティック)
+ 自分自身を生み出す
生細胞、生命体
L3 → L4 boundaryソフトウェアのワークフローの多くは L3 ── 目的を持ち、境界があり、システム自身は変わらない。面白い境界は L4 ── パラメータ・規則・構造・目標のいずれかが変わり始める。
ペトリネットは特に、チューリングマシンだけ考えていると逃しがちな教訓を与えてくれます。チューリングモデルが答えるのは「何が計算可能か」です。ペトリの問いはそれとは別 — 「複数のことが同時に起きて、同じ資源を取り合うとき、どう設計を表現し、どうそれを作る前に検証するか」。我々のシステムでは、これは「コードを書く」ことと「デプロイ前にデッドロックや飢餓が起きえないと論証できる」ことの違いに対応します。インフラを設計するとき、両方の問いを生かしておくよう努めています。
ニューラルネットはひとひねり加えます。規則はもはや人が書くものではなく、システムが繰り返し間違えて重みを調整することで学ぶもの。学習中はパラメータレベルで自己適応系として振る舞い、重みを凍結してデプロイすれば、目的を持った決定論的な処理系に戻ります。同じ成果物が、学習が動いているかどうかで二つの状態を行き来します。
同じ語彙はエージェントベースのソフトウェアアーキテクチャの推論にも役立ちます。利用者のリクエストは情報。スキル(限定的な発火条件で動く狭く定義された振る舞い)は規則。スキルを実行するモデルは実行体。あるスキルが別のスキルを呼べば、プロセスは入れ子のネットワークになります。これを「エージェントオーケストレーション」と呼ぼうが「モジュラ設計」と呼ぼうが、底に流れる形はチューリングとペトリがすでに描いていたノードとエッジのグラフです。
Figure 03
フラクタル再帰 ── あらゆる粒度で同じ形
ノードはサブネットワークに展開でき、安定したサブネットワークは一つのノードに包み戻せる。関数 → サービス → プロダクト → 会社 ── 同じノードとエッジのグラフが、入れ子になっているだけ。
scale 01
scale 02
scale 03
scale 04
stability rule
安定したサブシステムだけがブラックボックスとして扱える。不安定な内部は黒箱になる資格がない。
再帰の道筋
最小単位 → 組み合わせ → 安定化 → 一単位に包む → 新しい単位として使う → 再び組み合わせ → ...
他のレンズと並べて持っておく価値のあるもうひとつのレンズが熱力学です。働いているプロセスは局所的にはエントロピー減少 — 無秩序が秩序に変わる現象です。それは無償では起きません。常に二つの入力が必要 — 仕事を駆動するエネルギーと、そのエネルギーを特定の経路に沿って導く情報(規則)。代償は大域的です — 一隅が秩序づくために、宇宙全体は少し暖かくなります。計算がタダではないこと、良いエンジニアリングが意味を持つこと、抽象化が単なる優雅さではなく物理であることの最も深い理由がここにあります。
この統合的な見方が新規だと主張するつもりはありません。システム理論、複雑適応系の文献、サイバネティクスの伝統、計算可能性の基礎研究と韻を踏んでいます。私たちにとって有用なのは、一つの短い語彙を指差せることです。「これの情報は何か、規則は何か、実行体は誰か」と問えば、不安定な部分、誤った境界、漏れている抽象が見つかる傾向があります。安いのに何度も見返りがある問いです。
このノートから一文だけ持ち帰るなら — システムとは、同じ形のノードを設定済みのエッジで繋いだもの。各ノードは読み、書き、決める。複雑さは安定化と包装によって下から積み上がる。流れる全てのものは、物理的にはより大きな大域的増分で支払われた小さな局所的エントロピー減少にすぎない。残りはすべて細部です。