BooleanMinimize[expr]
求出 expr 的最小长度的析取范式.
BooleanMinimize[expr,form]
求出指定形式下 expr 的最小长度表示.
BooleanMinimize[expr,form,cond]
当 cond 为真时,求出指定形式下等价于 expr 的最小长度的表达式.
BooleanMinimize
BooleanMinimize[expr]
求出 expr 的最小长度的析取范式.
BooleanMinimize[expr,form]
求出指定形式下 expr 的最小长度表示.
BooleanMinimize[expr,form,cond]
当 cond 为真时,求出指定形式下等价于 expr 的最小长度的表达式.
更多信息和选项
- BooleanMinimize[expr,form] 总是生成等价于 expr 的表达式.
- 可用的形式有:
-
"DNF","SOP" 析取范式,乘积和 "CNF","POS" 合取范式,和的乘积 "ANF" 代数规范形式 "NOR" 二级 Nor 和 Not "NAND" 二级 Nand 和 Not "AND" 二级 And 和 Not "OR" 二级 Or 和 Not - 通常,一个特定的表达式在特定形式下可能有多种最小长度的表示形式. BooleanMinimize 给出其中一种.
- BooleanMinimize 支持 Method 选项,它指定使用的具体方法.
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (2)
expr = BooleanCountingFunction[{2, 3}, {a, b, c, d, e}]m1 = BooleanMinimize[expr, "DNF"]{Length[m1], Length[expr]}m2 = BooleanMinimize[expr, "CNF"]m3 = BooleanMinimize[expr, "NAND"]m4 = BooleanMinimize[expr, "NOR"]m5 = BooleanMinimize[expr, "ANF"]TautologyQ[Equivalent[expr, m1, m2, m3, m4, m5]]f = BooleanCountingFunction[{2, 3}, 4][a, b, c, d]cond = Xor[a, b, c, d]g = BooleanMinimize[f, cond]h = BooleanMinimize[f, "CNF", cond]TautologyQ[Implies[cond, Equivalent[f, g, h]]]TautologyQ[Equivalent[f, g, h]]BooleanMinimize[f]BooleanMinimize[f, "CNF"]应用 (1)
最小尺寸的分布 (1)
size[h_] := If[Head[h] === Or, Length[h], 1]data = Table[{i, size@BooleanMinimize[BooleanFunction[i, {x, y, z}]]}, {i, 0, 2 ^ 2 ^ 3 - 1}];ListLinePlot[data]ListLinePlot[Tally[data[[All, -1]]]]data = Table[{i, size@BooleanMinimize[BooleanFunction[i, {x, y, z, w}]]}, {i, 0, 999}];ListLinePlot[data]ListLinePlot[Tally[data[[All, -1]]]]属性和关系 (4)
BooleanMinimize 的输出等价于它的输入:
f = BooleanFunction[228, {a, b, c}]g = BooleanMinimize[f]TautologyQ[Equivalent[f, g]]有条件的 BooleanMinimize 输出在条件下等价于它的输入:
f = BooleanFunction[158, {a, b, c}]cond = a || b || c;g = BooleanMinimize[f, "DNF", cond]TautologyQ[Implies[cond, Equivalent[f, g]]]TautologyQ[Equivalent[f, g]]最小长度 "DNF","CNF","NAND" 或 "NOR" 不唯一:
e = BooleanCountingFunction[{1, 2}, {a, b, c}]BooleanMinimize 将产生长度为 3 的表达式:
f = BooleanMinimize[e]g = f /. {b -> c, c -> b}TautologyQ[Equivalent[f, g]]{f = BooleanMinimize[Not[e], "CNF"], g = f /. {b -> c, c -> b}, TautologyQ[Equivalent[f, g]]}{f = BooleanMinimize[e, "NAND"], g = f /. {b -> c, c -> b}, TautologyQ[Equivalent[f, g]]}{f = BooleanMinimize[Not[e], "NOR"], g = f /. {b -> c, c -> b}, TautologyQ[Equivalent[f, g]]}当不需要最小长度形式时用 BooleanConvert:
BooleanConvert[BooleanCountingFunction[{1, 2}, 3][a, b, c]]BooleanMinimize[BooleanCountingFunction[{1, 2}, 3][a, b, c]]BooleanConvert 也可以转换到其它形式:
BooleanConvert[BooleanCountingFunction[{1, 2}, 3][a, b, c], "Implies"]文本
Wolfram Research (2008),BooleanMinimize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BooleanMinimize.html.
CMS
Wolfram 语言. 2008. "BooleanMinimize." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/BooleanMinimize.html.
APA
Wolfram 语言. (2008). BooleanMinimize. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/BooleanMinimize.html 年
BibTeX
@misc{reference.wolfram_2026_booleanminimize, author="Wolfram Research", title="{BooleanMinimize}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/BooleanMinimize.html}", note=[Accessed: 09-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_booleanminimize, organization={Wolfram Research}, title={BooleanMinimize}, year={2008}, url={https://reference.wolfram.com/language/ref/BooleanMinimize.html}, note=[Accessed: 09-August-2026]}