イベントツリー解析

帰納的な前向きリスク解析 — 一つの起因事象が安全機能を経て成功・失敗に分岐し、定量化された最終状態に至る。

イベントツリーについて

イベントツリーはフォルトツリーの前向き・帰納的な対をなす手法です。一つの起因事象(配管破断、火災、安全系への要求)から出発し、下流の各安全機能が順番に成功するか失敗するかを問います。分岐ラダーを通る各パスは定量化されたアウトカム(OK、封じ込め、炉心損傷など)に終わります。これは原子力PRAおよびプロセスQRAの主力手法であり、IEC 62502および**NUREG-0492**時代のWASH-1400慣行によって標準化されています。

Schematexの強みはフォルトツリーと同じです。エンジンは単にラダーを描くのではなく、答えを計算します。起因頻度と各機能の失敗確率が与えられると、各パスの頻度(f₀ · ∏ 分岐確率)を導出し、パスをまたいでアウトカムを集計し、支配的シーケンスを赤でハイライトします。draw.ioが描くのは分岐ラダーの絵であり、解析ではありません。

eventtree·§
↘ preview
100%
Loss of coolant accident Event tree for "Large LOCA" (f₀ = 1.000e-4): 3 functions, 4 sequences. OK: 9.841e-5. Early release: 9.990e-7. Late release: 4.945e-7. Core damage: 1.000e-7. Dominant sequence: "OK" [1s 2s 3s] at 9.841e-5. Loss of coolant accident Initiating Event ECCS injects Containment spray Containment integrity Outcome Frequency Large LOCA f₀ = 1.000e-4 Success (1s) 0.999 Success (2s) 0.99 Success (3s) 0.995 Failure (3f) 0.005 Failure (2f) 0.01 Failure (1f) 0.001 OK 9.841e-5 · 1s 2s 3s Late release 4.945e-7 · 1s 2s 3f Early release 9.990e-7 · 1s 2f Core damage 1.000e-7 · 1f
UTF-8 · LF · 9 lines · 325 chars✓ parsed·1.3 ms·6.2 KB SVG

1. 最初のイベントツリー

すべてのドキュメントは eventtree キーワード(エイリアス eta)、任意のタイトル、そして宣言のフラットなリストで始まります。

eventtree "Smoke detector demand"
  initiating FIRE "Fire starts" freq: 0.01
  function D "Detector actuates" p: 0.02
  function S "Suppression works" p: 0.05
  outcome s s -> "Controlled"
  outcome s f -> "Damage, contained"
  outcome f * -> "Uncontrolled fire"
  • initiating ID "label" freq: N — 正確に1つ。チャレンジ頻度。小数または指数表記を受け付けます(freq: 0.01 または freq: 1e-4)。
  • function ID "label" p: N — 分岐列ごとに1つ、クエリ順に左→右で宣言します。p:失敗確率であり、エンジンは成功レグをその補数 1 − p として導出します(両方を記載する必要はありません)。
  • outcome <パターン> -> "最終状態" — 実現した葉ノードごとに1つ。

2. s / f / * アウトカムパターン

outcome 行は関数列を左→右に読みます。

outcome s s s -> "OK"           # すべての関数が成功
outcome s s f -> "Late release" # Cが最後のクエリで失敗
outcome s f * -> "Early release"# Bが失敗;Cはクエリされない(枝刈り)
outcome f * * -> "Core damage"  # Aが失敗;パスは直ちに終了
  • s — 成功レグ(上の分岐)。
  • f — 失敗レグ(下の分岐)。
  • * — 枝刈り:ここではパスがクエリされず、葉まで平坦に進む。

これがイベントツリーが完全なバランス2ⁿ木にならない仕組みです。機能の失敗によってその後の問いが無意味になったら * を書き、シーケンスを早期終了します。2つの厳格なルール:パターンは列数より長くなってはならない、そして列が枝刈り(*)されたら、それ以降のすべての列も * でなければならない — 終了したパスはクエリを再開できません。


3. 計算されたパス頻度とアウトカム

これが差別化要因です。失敗確率と freq を用いてエンジンは以下を計算します。

  • 各パス頻度 = s/f レグ(成功レグは 1 − p、失敗レグは p を使用)に沿った f₀ · ∏ 分岐確率
  • アウトカム集計:同じ最終状態ラベルを持つアウトカムは、それに到達するすべてのパスで合算されます(すべての "Core damage" 葉が加算される)。
  • 支配的シーケンス — 最大頻度のパス — が予約色の赤でハイライトされます。これはフォルトツリーの単一障害点に相当するETAのアナログです。

各葉は data-*data-freqdata-outcome)を持つため、計算された数値は後続で検査可能です。


4. よくある間違い

# 誤り — 失敗確率のない関数
function A "ECCS"

# 誤り — 枝刈り済みの列の後でクエリする(パスはすでに終了)
outcome * s -> "bad"

# 誤り — 宣言された列数より多いトークン
function A p: 0.1
outcome s s -> "ok"

# 誤り — 頻度のない起因事象
initiating LOCA "Large LOCA"

いずれも該当行を名指した平易な英語メッセージで拒否されます。p:失敗確率(小さな値)として記載し、起因事象には freq: を与え、枝刈りは末尾に置いてください。そうすれば構成上正確です。


5. 標準準拠

形式はIEC 62502および古典的PRA慣行(WASH-1400 / NUREG)に従います:ヘッダー列として順序付けられた機能、二値の成功/失敗分割、補数から導出された成功レグ、および乗算による頻度伝播。monochrome テーマは教科書の白黒の外観を再現し、default は支配的シーケンスのために赤を予約しています。

6. ロードマップ

延期:分岐ごとにリンクされたフォルトツリーフラグメント(共有基本事象)、不確実性伝播、結果カテゴリのグループ化。

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.