Posts Issued on January 22, 2021

posted by sakurai on January 22, 2021 #349

2. 愚直に場合分けする導出法

前稿のようにエレガントに導出するのではなく、全ての場合を愚直に場合分けすることを行います。そのほうが抜け漏れが防止でき、確実そうです。

図347.1
図347.1 定期検査と時刻$t$の関係

ただし、任意の検査時刻$\tau_i,\ i=1,...,n$で考えると、区間がn+1個、検査がn回であるため、区間$[\tau_{i-1}, \tau_i)$でのフォールトの生起有/無が$2^{(n+1)}$とおり、検査時点$\tau_i$でのフォールト検出可/不可が$2^n$とおりあるので、検討の組み合わせが$2^{(2n+1)}$とおりと膨大になります。

ところが幸いなことに、フォールト検出は確率的に行われるのではなく、アーキテクチャ的に行われる前提です(ブログ記事の前提の2項を参照)。従って、いつフォールトが起きてもその次の周期での検査(時刻=$\tau_i$)ではなく、最近の検査(時刻=$\tau_n$)まで です。

従って、フォールトの生起を単に「生起」、フォールトの検出を単に「検出」と省略して書けば、最近の検査までの生起の有/無最近の検査での検出の可/不可その後の生起の有/無の$2^3$とおりを考えれば良いわけです。この絞り込みは愚直とは言えず、むしろエレガントかもしれませんが。

この絞り込みを表現するために、3つ組記法を考え、

 (($0$から$\tau_n$までの生起の有/無),($\tau_n$での検出の可/不可),($\tau_n$からtまでの生起の有/無))

の全ての組み合わせを考えます。有/無や可/不可をYes(有)/No(無)で表せば、全ての場合は$2^3$とおりあり、

  1. (Yes, Yes, Yes)
  2. (Yes, No, Yes)
  3. (Yes, Yes, No)
  4. (Yes, No, No)
  5. (No, Yes, Yes)
  6. (No, No, Yes)
  7. (No, Yes, No)
  8. (No, No, No)

の8とおりです。このうち、時刻$t$でSMが不稼働状態になるのは、

  1. (Yes, Yes, Yes)⇒不稼働
  2. (Yes, No, Yes)⇒不稼働
  3. (Yes, Yes, No)
  4. (Yes, No, No)⇒不稼働
  5. (No, Yes, Yes)⇒不稼働
  6. (No, No, Yes)⇒不稼働
  7. (No, Yes, No)
  8. (No, No, No)

の1, 2, 4, 5, 6の5とおりです。これらの不稼働になる場合を、真ん中の検出可(=Yes)でまとめれば、

 1. (Yes, Yes, Yes)⇒不稼働
 5. (No, Yes, Yes)⇒不稼働

の2とおりとなります。検出可の条件で不稼働となる確率は、上記の2とおりです。従って、この条件での時刻$t$での不稼働確率は、次の確率式 $$ \Pr\{\text{fault detected at }\tau_n\ \cap\ \text{SM receives a fault in }(\tau_n, t]\}\tag{349.1} $$ で表されます。

一方、真ん中の検出不可(=No)でまとめれば、

 2. (Yes, No, Yes)⇒不稼働
 4. (Yes, No, No)⇒不稼働
 6. (No, No, Yes)⇒不稼働

の2, 4, 6の3とおりとなります。検出不可の条件で不稼働となる確率は、上記の3とおりです。従って、この条件での時刻$t$での不稼働確率は、次の確率式 $$ \Pr\{\text{fault not detected at }\tau_n\ \cap \text{SM receives a fault in }(0, t]\}\tag{349.2} $$ で表されます。

以上から、

  1. 検出の可不可のそれぞれの場合は排反事象である(ためそれぞれの確率は足すことができる)
  2. フォールトの生起と検出可不可はそれぞれ独立事象である(ため積事象の場合それぞれの確率は掛けることができる)

従って、不稼働度は、(349.1)と(349.2)を用いて $$ Q_\text{SM}(t)\equiv\Pr\{\text{SM is down at }t\}\\ =\Pr\{\text{fault not detected at }\tau_n\ \cap \text{SM receives a fault in }(0, t]\ \cup\\ \text{fault detected at }\tau_n\ \cap\ \text{SM receives a fault in }(\tau_n, t]\}\\ =\Pr\{\text{fault not detected at }\tau_n\}\Pr\{\text{SM receives a fault in }(0, t]\}\\ +\Pr\{\text{fault detected at }\tau_n\}\Pr\{\text{SM receives a fault in }(\tau_n, t]\}\\ =\img[-1.35em]{/images/withinseminar.png} \tag{349.3} $$ と導出されます。

なお、本稿はRAMS 2025に投稿予定のため一部を秘匿しています。


左矢前のブログ 次のブログ右矢