UnateQ
詳細
- 正ユネイトブール関数はブール増加関数としても知られている.
- 負ユネイトブール関数はブール減少関数としても知られている.
- 他変数のすべての値についてBoole[bexpr/.xi->False]≤Boole[bexpr/.xi->True]のとき,ブール式 bexpr は変数 xiにおいて正ユネイトである.
- 他の変数のすべての値についてBoole[bexpr/.xi->False]≥Boole[bexpr/.xi->True]のとき,ブール式 bexpr は変数 xiにおいては負ユネイトである.
- 任意の変数の組合せとその否定を使うことができる.
- UnateQ[bf,{ind1,ind2,…}]はブール関数 bf が変数 k においてユネイトかどうかを識別子 indkに照らして検定する.
- 識別し indk の取り得る値
-
True,1 正ユネイトについての検定を行う False,0 負ユネイトについての検定を行う _ ユネイトかどうかの検定は行わない
例題
すべて開く すべて閉じる例 (2)
スコープ (5)
UnateQ[(x∧y)∨z]UnateQ[(x∧y)∨z, {¬x, ¬y, ¬z}]UnateQ[(x∧y)∨z, {z}]1つの変数について正ユネイト性の検定を行い,他の変数について負ユネイト性の検定を行う:
UnateQ[Implies[x, y], {¬x, y}]UnateQ[#1∧#2∨#3&]UnateQ[BooleanFunction[30, 3]]第1変数について負のユネイト性の,第2変数について正のユネイト性の検定を行う:
UnateQ[Implies[#1, #2]&, {False, True}]関数がその第1変数と最終の変数について正ユネイトかどうかの検定を行う:
UnateQ[#1∧¬#2∨#3&, {True, _, True}]アプリケーション (2)
Select[Table[BooleanFunction[i, {x, y, z}], {i, 0, 2 ^ 2 ^ 3 - 1}], UnateQ]ReliabilityDistributionは正ユネイト関数しか取らない:
vars = Array[Subscript[x, #]&, 5];
dists = Table[{Subscript[x, i], ExponentialDistribution[λ]}, {i, 5}];f = BooleanFunction[4294967282, 5, vars]//BooleanConvertDistributionParameterQ[ReliabilityDistribution[f, dists]]Extract[Array[Subscript[x, #]&, 5], Position[Map[UnateQ[f, #]&, vars], False]]Falseと設定することで x4を削除する:
f /. Subscript[x, 4] -> FalseDistributionParameterQ[ReliabilityDistribution[%, dists]]特性と関係 (6)
UnateQ /@ {x, And[x, y], Or[x, y], Majority[x, y, z]}UnateQ[#, {¬x, ¬y}]& /@ {Not[x], Nand[x, y], Nor[x, y]}Impliesは1つの変数について負ユネイトであり,他の変数については正ユネイトである:
UnateQ[Implies[x, y], {¬x, y}]ブール関数の中にはどの変数についてもユネイトではないものもある:
Table[UnateQ[Xor[x, y], {v}], {v, {x, y, ¬x, ¬y}}]Table[UnateQ[Xnor[x, y], {v}], {v, {x, y, ¬x, ¬y}}]Table[UnateQ[Equivalent[x, y], {v}], {v, {x, y, ¬x, ¬y}}]countFraction[n_] := Count[Table[BooleanFunction[i, n], {i, 0, 2 ^ 2 ^ n - 1}], _ ? UnateQ] / 2 ^ 2 ^ nBarChart[Table[countFraction[i], {i, 4}], ChartLabels -> Range[4], AxesLabel -> {n, None}]UnateQ[(x∧y)∨z]負ユネイト関数の組合せは必ずしも負ユネイトであるとは限らない:
UnateQ[(x⊼y)⊼z, {¬x, ¬y, ¬z}]expr = (x∨y)∧z;UnateQ[expr, {x, y, z}]UnateQ[¬expr, {¬x, ¬y, ¬z}]おもしろい例題 (1)
各3変数のブール関数のいくつの変数が正ユネイトであるか示す:
PieChart[Map[{Total[#], 3 - Total[#]}&, Boole@Table[Map[UnateQ[BooleanFunction[i, 3][x, y, z], #]&, {x, y, z}], {i, 0, 2 ^ 2 ^ 3 - 1}]], ChartBaseStyle -> Directive[EdgeForm[None]], ChartLegends -> {"Positive unate", "Not positive unate"}, ChartStyle -> "TemperatureMap", ImageSize -> Medium]テキスト
Wolfram Research (2012), UnateQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/UnateQ.html.
CMS
Wolfram Language. 2012. "UnateQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/UnateQ.html.
APA
Wolfram Language. (2012). UnateQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/UnateQ.html
BibTeX
@misc{reference.wolfram_2026_unateq, author="Wolfram Research", title="{UnateQ}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/UnateQ.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_unateq, organization={Wolfram Research}, title={UnateQ}, year={2012}, url={https://reference.wolfram.com/language/ref/UnateQ.html}, note=[Accessed: 02-November-2026]}