システム思考とSTAMP

世の中のいろいろなモノやコトを「システム」として考えることと、その道具の一つであるSTAMP/STPAについて。

システムの「階層」について

システム理論では、「創発」と「階層」が重要な概念とされる。

"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 に載っている航空機の自動ブレーキシステムの制御構造図を使う。

航空機自動ブレーキシステムのCS図
STPA Handbook より引用)

 

この例題では、滑走路上で、航空機を適切に減速させ、安全に停止させるための自動ブレーキシステムを分析対象としている。

 

まず、システム全体レベルの視点で見る。

「航空機が安全に停止する」というのは、システム全体に創発される性質である。パイロット(フライトクルー)は、システム全体(航空機)に対し、そのような性質を創発させる責務がある。

パイロットは、その責務を果たすために、一つ下の階層であるBSCU(ブレーキシステム制御ユニット)に対し、自動ブレーキモードに設定した上で、安全な距離で停止するように減速率を設定する。これは、BSCUの振舞いに一定の制約を与えることになる。(上記「引用③」)

制約を与えたBSCUの振舞いによって、安全な距離で停止するという性質が創発されることを期待する。(上記「引用②」、「引用④」)

 

次に、BSCUの階層レベルの視点で見る。

BSCUは、指定された減速率を達成するようにホイールの回転を減速させる責務がある。BSCUは、指定された減速率で減速させることが「安全」かどうかは関知しないだろう。この階層では、安全という性質は存在しないと言える。(上記「引用①」)

BSCUは、その責務を果たすために、一つ下の階層である「ホイールブレーキ」に対して、油圧のバルブを開けたり閉じたりする。これは、ホイールブレーキの振舞いに一定の制約を与えることになる。

制約を与えたホイールブレーキの振舞いによって、一定の減速率という性質が創発されることを期待する。

 

次に、ホイールブレーキの階層レベルの視点で見る。

ホイールブレーキは、与えられた油圧を、ホイールに対して摩擦材を押し付ける力に変え、摩擦力を生じさせることで、ホイールの回転を減速させる責務がある。ホイールブレーキは、上位から与えられる油圧の変動が、一定の減速率につながることを関知しないだろう。「ホイールの回転の減速率」という概念は、この階層では存在しない(meaningless)ということだ。

 

このように考えると、以下のように整理できるのではないか。

  • 「航空機の安全」という性質はシステム全体レベル(トップ階層)の性質であり、パイロットがそれを認識している。
  • パイロットは、安全責務を果たすために一つ下の階層のBSCUをコントロールし、BSCUは自分の責務を果たすために一つ下の階層のホイールブレーキをコントロールする。
  • 「一つ下の階層」は、ランダムに勝手気ままに振る舞うのではなく、上からのコントロールによって一定の制約を受けて振る舞う。
  • その制約を受けた振舞いによって、一つ上の階層で意味のある性質がもたらされる(それが創発性である)。しかし、下位階層は、その創発性は関知しない(自分の振舞いが、上位階層でどういう意味をもたらすのかを知らずに振る舞っている)。

 

上位階層は、その階層で必要とする創発性を得るために、下位階層をコントロールする。トップレベルの創発性が、(今関心のある)システムの安全性である。

このような階層間のコントロールの様子を図にしたものが、制御構造図になるのではないか。

 

システムの「階層」が自明に存在して、その階層間のコントロールを考える、ということではなく、「今関心のあるシステムの創発性は何か。その創発性はどこから生じるのか」を考えることによって、一つ下の階層が見えてくる(それを繰り返して制御構造図を得る)、ということではないだろうか。

Nancy Levesonの資料で度々出てくる以下の図は、そのような意味ではないだろうか。

 

以上の整理は、あくまでも個人的に理解を試みた結果であり、表現や内容がシステム理論として適切かどうかは分からない。

 

コーヒーブレイク

コーヒーを淹れた。

「美味しいコーヒー」を飲みたい。

お湯を適温に沸かし、コーヒーの豆を適当な粗さに挽き、ペーパーフィルターの上からドリッパーに入れ、その上からお湯を注ぐ。全てのコーヒー豆の粒にお湯を行き渡らせ、時々撹拌するようにお湯を注ぐ。それによって、コーヒー豆の香り、コク、味がお湯に溶け出し、コーヒーが出来上がる。

ただ、お湯やその中で乱舞しているコーヒー豆の立場になって考えてみると、自分たちがなぜこんなことをしているのか、その結果として「コーヒー」という飲み物が出来上がるとは、知る由もないだろう。自分たちは、単にお湯であり、豆として生まれてきただけなのだ。お湯やコーヒー豆の階層では、「美味しいコーヒー」などと言われても意味不明(meaningless)であろう。

「私」が、お湯やコーヒー豆をコントロールして、「美味しいコーヒー」を創発しているのだ。ただ、どういうやり方がベストかは分からない。試行錯誤を続けている。

(豆だけの知識でも、お湯だけの知識でもだめで、それらのどういう相互作用でコーヒーの味が決まるかを知らなければ、美味しいコーヒーを淹れられない。要素を個々に見るのではなく、全体を見る必要がある。システム安全は美味しいコーヒーにつながる。)