BooleanConsecutiveFunction[{k,True},n]
変数のリストを循環的に扱う.
BooleanConsecutiveFunction[{k1,k2,…,kd},{n1,n2,…,nd}]
変数が n1 n2 ⋯ nd 個で,
変数配列の
ブロックのすべての変数がTrueのときTrueを与えるブール関数を表す.
BooleanConsecutiveFunction[{{k1,k2,…,kd},{c1,c2,…,cd}},{n1,n2,…,nd}]
ciがTrueのときは,変数配列の i
番目のレベルを循環的に扱う.
BooleanConsecutiveFunction[spec,{a1,a2,…}]
spec で指定されたブール連続関数に対応する変数 aiのブール式を与える.
BooleanConsecutiveFunction[spec,{a1,a2,…},form]
form で指定された形式でブール式を与える.
BooleanConsecutiveFunction
BooleanConsecutiveFunction[{k,True},n]
変数のリストを循環的に扱う.
BooleanConsecutiveFunction[{k1,k2,…,kd},{n1,n2,…,nd}]
変数が n1 n2 ⋯ nd 個で,
変数配列の
ブロックのすべての変数がTrueのときTrueを与えるブール関数を表す.
BooleanConsecutiveFunction[{{k1,k2,…,kd},{c1,c2,…,cd}},{n1,n2,…,nd}]
ciがTrueのときは,変数配列の i
番目のレベルを循環的に扱う.
BooleanConsecutiveFunction[spec,{a1,a2,…}]
spec で指定されたブール連続関数に対応する変数 aiのブール式を与える.
BooleanConsecutiveFunction[spec,{a1,a2,…},form]
form で指定された形式でブール式を与える.
詳細
- BooleanConsecutiveFunction[k,n]は,線形連続 k アウトオブ n:Fとしても知られている.
- BooleanConsecutiveFunction[{k,True},n]は,円形連続型 k アウトオブ n:Fとしても知られている.
- BooleanConsecutiveFunction[{k,False},n]はBooleanConsecutiveFunction[k,n]に等しい.
- BooleanConsecutiveFunction[{{k1,k2,…,kd},c},{n1,n2,…,nd}] はBooleanConsecutiveFunction[{{k1,k2,…,kd},{c,c,…,c}},{n1,n2,…,nd}]に等しい.
- BooleanConsecutiveFunction[spec]はFunctionのように動作するブール関数オブジェクトを与える.
- BooleanConsecutiveFunction[spec][a1,a2,…]は明示的ブール式BooleanConsecutiveFunction[spec,{a1,a2,…}]と同等の陰的表現を与える.
- BooleanConsecutiveFunction[…,{n1,n2,…,nd},…][vars]では,vars は次元{n1,n2,…,nd}の変数の配列かn1 n2 ⋯ nd 個の変数のリストのいずれかである.
- BooleanConsecutiveFunction[{k1,k2,…,kd},vars]では,vars は深さ d の変数配列でなければならない.
- BooleanConvertはBooleanConsecutiveFunction[spec][vars]を明示的ブール式に変換する.
- BooleanConsecutiveFunction[spec,vars,form]では,可能な形はBooleanConvertに対して与えられるものと同じである.
- BooleanConsecutiveFunction[spec,vars]はデフォルトで選言標準形(disjunctive normal form, DNF)で与えられる.
例題
すべて開く すべて閉じる例 (3)
BooleanConsecutiveFunction[2, 3][Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]]BooleanConvert[%]BooleanConsecutiveFunctionをReliabilityDistributionで使う:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = Table[ExponentialDistribution[Subscript[λ, i]], {i, 3}];ℛ = ReliabilityDistribution[BooleanConsecutiveFunction[2, 3][x, y, z], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}}];SurvivalFunction[ℛ, t]//SimplifyBooleanConsecutiveFunctionをFailureDistributionで使う:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = Table[ExponentialDistribution[Subscript[λ, i]], {i, 3}];ℱ = FailureDistribution[BooleanConsecutiveFunction[2, 3][x, y, z], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}}];SurvivalFunction[ℱ, t]//Simplifyスコープ (10)
線形モデル (4)
BooleanConsecutiveFunctionは未評価のまま残る:
BooleanConsecutiveFunction[2, 4][x, y, z, v]BooleanConvertを使ってこれを展開する:
BooleanConvert[%]BooleanConsecutiveFunction[2, {x, y, z, v}, "CNF"]BooleanConvert[BooleanConsecutiveFunction[{2, 2}, {3, 3}][Array[Subscript[x, #1, #2]&, {3, 3}]]]BooleanConvert[BooleanConsecutiveFunction[{2, 2}, {3, 3}][Array[Subscript[x, #]&, 9]]]1列になった連続する4つの成分の少なくとも3つが動けば動く系:
𝒟 = ExponentialDistribution[λ];ℛ = ReliabilityDistribution[BooleanConsecutiveFunction[3, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}}];SurvivalFunction[ℛ, t]BooleanConsecutiveFunctionは構造で使うことができる:
ℛ2 = ReliabilityDistribution[w∨BooleanConsecutiveFunction[3, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}, {w, 𝒟}}];SurvivalFunction[ℛ2, t]1列になった連続する4つの成分の少なくとも3つが故障すると故障する系:
𝒟 = ExponentialDistribution[λ];ℱ = FailureDistribution[BooleanConsecutiveFunction[3, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}}];SurvivalFunction[ℱ, t]BooleanConsecutiveFunctionは構造で使うことができる:
ℱ2 = FailureDistribution[w∨BooleanConsecutiveFunction[3, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}, {w, 𝒟}}];SurvivalFunction[ℱ2, t]円形モデル (4)
BooleanConsecutiveFunctionは未評価のままで残る:
BooleanConsecutiveFunction[{2, True}, 3][x, y, z]BooleanConvertを使ってこれを展開する:
BooleanConvert[%]BooleanConsecutiveFunction[{2, True}, {x, y, z}, "ANF"]BooleanConvert[BooleanConsecutiveFunction[{{2, 2}, True}, {3, 3}][Array[Subscript[x, #1, #2]&, {3, 3}]]]BooleanConvert[BooleanConsecutiveFunction[{{2, 2}, True}, {3, 3}][Array[Subscript[x, #]&, 9]]]円状になった連続する4つの成分のうち少なくとも3つが故障すると故障する系:
𝒟 = ExponentialDistribution[λ];ℛ = FailureDistribution[BooleanConsecutiveFunction[{3, True}, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}}];SurvivalFunction[ℛ, t]//PiecewiseExpandBooleanConsecutiveFunctionは構造に使うことができる:
ℛ2 = FailureDistribution[w∨BooleanConsecutiveFunction[{3, True}, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}, {w, 𝒟}}];SurvivalFunction[ℛ2, t]//PiecewiseExpand円状になった連続する4つの成分のうち少なくとも3つが動くと動く系:
𝒟 = ExponentialDistribution[λ];ℱ = ReliabilityDistribution[BooleanConsecutiveFunction[{3, True}, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}}];SurvivalFunction[ℱ, t]//PiecewiseExpandBooleanConsecutiveFunctionは構造に使うことができる:
ℱ2 = ReliabilityDistribution[w∨BooleanConsecutiveFunction[{3, True}, 4][x, y, z, v], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {v, 𝒟}, {w, 𝒟}}];SurvivalFunction[ℱ2, t]//PiecewiseExpand混合モデル (2)
ラッピングは次元が異なると異なることがある.円柱を定義する:
BooleanConsecutiveFunction[{{2, 2}, {True, False}}, {3, 3}][Array[Subscript[x, #1, #2]&, {3, 3}]]BooleanConvertを使ってこれを展開する:
BooleanConvert[%]BooleanConsecutiveFunction[{{2, 2}, {True, False}}, Array[Subscript[x, #1, #2]&, {3, 3}], "CNF"]BooleanConsecutiveFunction[{{2, 3, 3}, {False, False, True}}, {3, 3, 3}][Flatten[Array[Subscript[x, #1, #2, #3]&, {3, 3, 3}]]];BooleanConvertを使ってこれを展開する:
BooleanConvert[%]アプリケーション (2)
一連の10台の無線等塔は,隣り合う2台の塔が故障すると故障する:
structure = BooleanConsecutiveFunction[2, 10][Array[Subscript[x, #]&, 10]]𝒟tower = ExponentialDistribution[1 / 10];ℱ = FailureDistribution[structure, Array[{Subscript[x, #], 𝒟tower}&, 10]];Plot[Evaluate@SurvivalFunction[ℱ, t], {t, 0, 10}, Filling -> Axis]Probability[t > 5, tℱ]//Nカメラが重なり合う格子上に配置されている.2×2の格子が故障するまでは全領域がカバーされている:
structure = BooleanConsecutiveFunction[{2, 2}, {4, 4}][Array[Subscript[x, #1, #2]&, {4, 4}]];𝒟camera = ExponentialDistribution[1 / 6];完全なカメラの系の寿命分布は’FailureDistributionでモデル化することができる:
ℱ = FailureDistribution[structure, Join@@Array[{Subscript[x, #1, #2], 𝒟camera}&, {4, 4}]];オーバーラップを最小にして同じ領域をカバーするのに4台のカメラが必要である:
ℱnooverlap = FailureDistribution[Subscript[x, 1] || Subscript[x, 2] || Subscript[x, 3] || Subscript[x, 4], {{Subscript[x, 1], 𝒟camera}, {Subscript[x, 2], 𝒟camera}, {Subscript[x, 3], 𝒟camera}, {Subscript[x, 4], 𝒟camera}}];重なり合う構造の方が信頼度は高いが,より多くのカメラが必要である:
Plot[Evaluate@{SurvivalFunction[ℱ, t], SurvivalFunction[ℱnooverlap, t]}, {t, 0, 15}, Filling -> Axis]𝒟standby = StandbyDistribution[𝒟camera, {𝒟camera, 𝒟camera, 𝒟camera}, 0.9];ℱstandby = FailureDistribution[Subscript[x, 1] || Subscript[x, 2] || Subscript[x, 3] || Subscript[x, 4], {{Subscript[x, 1], 𝒟standby}, {Subscript[x, 2], 𝒟standby}, {Subscript[x, 3], 𝒟standby}, {Subscript[x, 4], 𝒟standby}}];業務時間によっては,待機構造の方がオーバーラップする格子よりも信頼性が高くなる:
Plot[Evaluate@{SurvivalFunction[ℱ, t], SurvivalFunction[ℱstandby, t]}, {t, 0, 15}, Filling -> Axis]特性と関係 (2)
BooleanConvert[BooleanConsecutiveFunction[{3, True}, 4][Array[Subscript[x, 1, #]&, 4]]]BooleanConvert[BooleanConsecutiveFunction[{{1, 3}, True}, {1, 4}][Array[Subscript[x, #1, #2]&, {1, 4}]]]Equivalent[%%, %]//TautologyQBooleanConsecutiveFunctionのあるReliabilityDistributionはFailureDistributionにおいて対応するブール式を否定したものに等しい:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = Table[ExponentialDistribution[Subscript[λ, i]], {i, 3}];ℛ = ReliabilityDistribution[BooleanConsecutiveFunction[2, 3][x, y, z], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}}];ℱ = FailureDistribution[¬BooleanConsecutiveFunction[2, 3][¬x, ¬y, ¬z], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}}];CDF[ℛ, t] - CDF[ℱ, t]おもしろい例題 (1)
meaning[False] = "working";meaning[True] = "failed";simulate[k_, n_, λ_ : 1 / 2] := Block[{failed = False, deaths, t = -1, res = {}},
deaths = RandomVariate[ExponentialDistribution[λ], n];
While[!failed,
t++;
tab = Table[Style[Subscript[x, i], If[deaths[[i]] < t, Red, Green]], {i, n}];
failed = BooleanConvert@BooleanConsecutiveFunction[k, n][Map[t > #&, deaths]];
AppendTo[res, Graph[tab, Table[Subscript[x, j]Subscript[x, j + 1], {j, n - 1}], VertexSize -> Large, PlotLabel -> "t = " <> ToString[t] <> ", system " <> meaning[failed]]];
];
res//Column]10個のうち4個の成分が故障すると系が故障する場合.故障率
で:
simulate[4, 10, 1 / 3]テキスト
Wolfram Research (2012), BooleanConsecutiveFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/BooleanConsecutiveFunction.html.
CMS
Wolfram Language. 2012. "BooleanConsecutiveFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BooleanConsecutiveFunction.html.
APA
Wolfram Language. (2012). BooleanConsecutiveFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BooleanConsecutiveFunction.html
BibTeX
@misc{reference.wolfram_2026_booleanconsecutivefunction, author="Wolfram Research", title="{BooleanConsecutiveFunction}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/BooleanConsecutiveFunction.html}", note=[Accessed: 12-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_booleanconsecutivefunction, organization={Wolfram Research}, title={BooleanConsecutiveFunction}, year={2012}, url={https://reference.wolfram.com/language/ref/BooleanConsecutiveFunction.html}, note=[Accessed: 12-August-2026]}