システム理論では、「創発」と「階層」が重要な概念とされます。
"Engineering a Safer World" では、創発と階層に関して、次のような説明があります。
(引用①)
A general model of complex systems can be expressed in terms of a hierarchy of levels of organization, each more complex than the one below, where a level is characterized by having emergent properties. Emergent properties do not exist at lower levels; they are meaningless in the language appropriate to those levels.
「階層のレベルは、創発性(emergent properties)によって特徴づけられる。」
「創発性は、下位の階層(lower levels)には存在しない。創発性は、下位階層の記述に適した言語では無意味(meaningless)である。」
(引用②)
The operation of the processes at the lower levels of the hierarchy result in a higher level of complexity—that of the whole apple itself—that has emergent properties, one of them being the apple’s shape.
「下位階層でのプロセス間の作用が、上位階層における複雑性をもたらし、その複雑性が創発性を持つのである。」
また、階層の概念は「コントロール」とも関わります。
(引用③)
An example of regulatory or control action is the imposition of constraints upon the activity at one level of a hierarchy, which define the “laws of behavior” at that level. Those laws of behavior yield activity meaningful at a higher level.
「規制またはコントロールアクションの一例は、ある階層レベルの動作に制約を与えることである。」
「その制約により、その階層レベルにおける『振舞いの法則』が定められ、それが上位階層での意味のある振舞いを生み出す。」
(引用④)
The upper level is a source of an alternative (simpler) description of the lower level in terms of specific functions that are emergent as a result of the imposition of constraints.
「下位階層に制約が課せられる結果として、上位階層に特定の機能が創発される。」
この、「階層」と「創発性」、そして「コントロール(制約)」の関係を、スッと体感的に理解することは簡単ではありません。
しかし、システム理論に基づくSTAMPで重要な役割を果たす「制御構造図」は、このような「階層」、「創発性」、「コントロール」を表すものであるはずです。逆に言うと、これらの概念を理解しないと、適切な制御構造図を描くことはできないと思います。
以下に、制御構造図の具体例を使って、「階層」、「創発性」、「コントロール」の概念について説明します。
制御構造図の具体例で階層、創発性、コントロールを考えてみる
例題として、STPA Handbook に載っている航空機の自動ブレーキシステムの制御構造図を使います。
(STPA Handbook より引用)
この例題では、航空機が着陸した後、滑走路上で航空機を適切に減速させ、安全に停止させるための自動ブレーキシステムを分析対象としています。
まず、システム全体レベルの視点で見てみます。
「航空機が安全に停止する」というのは、システム全体に創発される性質です。パイロット(フライトクルー)は、システム全体(航空機)に対し、そのような性質を創発させる責務を持ちます。
パイロットは、その責務を果たすために、一つ下の階層であるBSCU(ブレーキシステム制御ユニット)に対し、自動ブレーキモードに設定した上で、安全な距離で停止するように減速率を設定します。これは、BSCUの振舞いに一定の制約を与えることに相当します。(上記「引用③」)
制約を与えたBSCUの振舞いによって、安全な距離で停止するという性質が創発されることを期待するわけです。(上記「引用②」、「引用④」)
次に、BSCUの階層レベルの視点で見てみます。
BSCUは、指定された減速率を達成するようにホイールの回転を減速させる責務があります。BSCUとしては、指定された減速率で減速させることが「安全」かどうかは関知しないでしょう。この階層では単に「ホイールの回転が一定の減速率で減速する」という性質を創発しているだけです。つまり、この階層では、安全という性質は存在しないということが言えます。(上記「引用①」)
BSCUは、その責務を果たすために、一つ下の階層である「ホイールブレーキ」に対して、油圧のバルブを開けたり閉じたりします。これは、ホイールブレーキの振舞いに一定の制約を与えることに相当します。
制約を与えたホイールブレーキの振舞いによって、一定の減速率という性質が創発されることを期待するわけです。
次に、ホイールブレーキの階層レベルの視点で見てみます。
ホイールブレーキは、与えられた油圧を、ホイールに対して摩擦材を押し付ける力に変え、摩擦力を生じさせることで、ホイールの回転を減速させる責務があります。ホイールブレーキの立場では、上位から与えられる油圧の変動が、一定の減速率につながることを関知しないでしょう。「ホイールの回転の減速率」という概念は、この階層では存在しない(meaningless)ということです。
このように考えると、以下のように整理できます。
- 「航空機の安全」という性質はシステム全体レベル(トップ階層)の性質であり、パイロットがそれを認識している。
- パイロットは、安全責務を果たすために一つ下の階層のBSCUをコントロールし、BSCUは自分の責務を果たすために一つ下の階層のホイールブレーキをコントロールする。
- 「一つ下の階層」は、ランダムに勝手気ままに振る舞うのではなく、上からのコントロールによって一定の制約を受けて振る舞う。
- その制約を受けた振舞いによって、一つ上の階層で意味のある性質がもたらされる(それが創発性である)。しかし、下位階層は、その創発性は関知しない(自分の振舞いが、上位階層でどういう意味をもたらすのかを知らずに振る舞っている)。
STAMP/STPAで分析しようとする対象の「システム安全」は、最上位階層の創発性です。上位階層は、その階層で必要とする創発性を得るために、下位階層をコントロールします。このような階層間のコントロールの様子を図にしたものが、制御構造図です。
制御構造図を描くときによく誤解しやすいのは、「システムの階層が自明に存在していて、その「正解」を見つけよう」とすることです。そうではなく、まず、今関心のあるシステム安全(それが最上位階層の創発性に相当します)を定め、その創発性はどのような階層構造によって生じるのかを考えることによって、一つ下の階層が見えてくるのです。同時にコントロールアクションも見えてきます。さらに、その階層に期待される創発性をもたらすもう一つ下の階層を見つける、ということを繰り返すことで、制御構造図が見えてくるということになります。
コーヒーブレイク
「美味しいコーヒー」が飲みたいので、コーヒーを淹れます。
お湯を適温に沸かし、コーヒーの豆を適当な粗さに挽き、ペーパーフィルターの上からドリッパーに入れ、その上からお湯を注ぎます。
全てのコーヒー豆の粒にお湯を行き渡らせ、時々撹拌するようにお湯を注ぐと、それによって、コーヒー豆の香り、コク、味がお湯に溶け出し、コーヒーが出来上がります。
このようにしてお湯の中でコーヒー豆が舞う様子を眺めながら思うのは、「彼らは、自分たちがなぜこんなことをしているのかなんて分かっていないんだろうな」ということです。結果として「コーヒー」という飲み物が出来上がるなどということは知る由もないでしょう。コーヒー豆やお湯の立場(階層)で考えてみると、自分たちは、単にお湯であり、豆として生まれてきただけなのです。お湯やコーヒー豆の階層では、「美味しいコーヒー」などと言われても意味不明(meaningless)ということでしょう。
「私」が、お湯やコーヒー豆をコントロールして、「美味しいコーヒー」を創発しているのです。ただし、どういうやり方がベストかは分かりません。(演繹的に導き出すのは難しいのです。)試行錯誤を続けるしかありません。
このような日常経験する些細なことにも、システム理論の教えは通じるのだと思わされます。