布尔逻辑最小化
按明确 dont-care 集合精确最小化 DNF、CNF 或两者,核验全部 care 行,并保留完整真值表、变量映射、成本与逻辑门 SVG。
- 1添加输入
- 2调整设置
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
先明确哪些输入允许改变,再按最少项或子句、随后最少字面量完成化简。完整真值表与逻辑门图帮助你核对每个必需输入。
如何使用
- 选择粘贴或文件模式,提供完整 JSON;在其中明确 expression、dontCare 和 form。
- 使用 ~ 或 !、&、^、| 及括号写安全布尔表达式;核对 dontCare 为 true 的输入是否确实允许改变。
- 运行后核对完成状态、全部 care 行等价、项/子句数与字面量数,以及变量到 bit/mask 的映射。
- 下载每种请求范式的 SVG、完整真值 CSV、report、settings、表达式文本和原件;复制完整表达式或完整报告。
支持范围与限制
明确选择粘贴或文件模式。粘贴仅处理活动文本;文件模式仅处理一个原始 File,不自动采用另一来源。输入为最多 64 KiB 的完整严格 UTF-8 JSON,表单只选输入模式,form 写在 JSON 中。可接受一个开头的 UTF-8 BOM,原件保存时仍保留其字节;原 File 文件名最多 512 UTF-8 字节且不得含控制字符或 BOM。
JSON 使用 expression 字符串、form(dnf、cnf 或 both)和可选 dontCare 字符串;省略 dontCare 默认为 False。只支持 ASCII 变量、True/False(也接受 true/false)、~ 或 !、&、^、| 和括号;不执行代码。变量名符合 [A-Za-z_][A-Za-z0-9_]*,区分大小写。
最多 8 个不同变量,每个名字最多 128 ASCII 字节;expression 与 dontCare 合计最多 4,096 个 token、1,000 个 AST 节点。parser 递归和括号各最多 64 层,冗余括号也计入。
变量由两个表达式的并集按 ASCII 排序。第 i 个变量绑定 bit i、mask 1<<i;完整枚举最多 256 行。dontCare 为 true 的行不约束结果,但仍保留原函数、dontCare 与化简后的数值。
每种请求范式必须完成精确 cover:先最少项数(CNF 为子句数),同项数再最少字面量数,并重新核验全部 care 行。最多 6,561 个候选 cube、整次总计 10,000,000 工作量;未完成搜索或超预算会整件拒绝。
下载完整真值 CSV、全部请求表达式、report、有效 settings、逐字节原 JSON,以及每种请求范式的完整逻辑门 SVG。报告保留全部变量/bit/mask、prime 与已选 cube 映射、成本和完成状态;SVG 反映选中的 cover,不承诺最少逻辑门数。
完整文件加全部复制文本最多 8 MiB,typed compact JSON 另为 8 MiB,两者合计 16 MiB,二进制加完整传递元数据最多 32 MiB;内存预留预算 256 MiB。这些资源守卫不代表实测浏览器 heap,预览有限但导出不得截短。
整次一个 60 秒时限,从来源预检、原生 File 元数据/读取、加载与 Worker 创建,一直到完整结果校验、清理和 await 后首次发布;不重置。取消、超时或输入改变撤销旧成功,不发布部分或迟到结果,可用相同原件与参数重新尝试。
操作示例
示例输入
{
"expression": "(A & B) | (A & C)",
"dontCare": "False",
"form": "both"
}
示例参数
{"inputMode":"paste"}示例输出
DNF: (A & B) | (A & C) CNF: (B | C) & A
出现问题时
保留完整原件和 dont-care 条件。修正 JSON/安全语法、变量数或深度错误;超工作量/时间预算时明确缩减函数或选一种范式并记录参数改变,不把未完成的候选当最小解。取消后使用相同原 File 或文本和参数,在新的 Worker 中完整重试。
常见问题
dontCare 为 true 表示输出必须 true 吗?
不是。它表示该输入行不约束新函数。care 行是 dontCare=false,全部必须与原函数等价;dont-care 行仍留在真值表。
DNF 和 CNF 要开两个工具吗?
不需要。form 写 dnf、cnf 或 both,是同一工具的输出请求;both 分别完成两种范式的精确搜索与核验。
最少项就等于最少门数吗?
不等于。目标先最少项或子句,再最少字面量;图忠实表达选中 cover,不做多级逻辑、电路时序或最少门数优化。
全部输入都是 dont-care 时怎么办?
没有 care 行时使用确定策略:DNF False、CNF True,成本都是零项/子句、零字面量。非空目标由一个 mask-0 全域 cube 覆盖时成本为一项/子句、零字面量(DNF True 或 CNF False)。报告 constant 表示最终函数值。