跳转到主要内容

Quine-McCluskey算法的最小化布尔表达式的实现。

项目描述

minbool是一个用于最小化布尔表达式的小型库。它使用Quine-McCluskey算法来完成这项工作。

简化表达式

>>> import minbool
>>> result = minbool.simplify("A and not C or A and C")
>>> result
<minbool.ASTBooleanExpression object at 0xb723606c>
>>> result.ast()
<_ast.Name object at 0xb722ef2c>
>>> str(result)
'A'

生成表达式

有时从现有函数生成布尔表达式很有用

>>> def f(A, B, C, D):
...     return A if B else C or D
...
>>> result = minbool.synthesize(f, 'A', 'B', 'C', 'D')
>>> result
<minbool.BooleanExpression object at 0xb72361cc>
>>> str(result)
'(not(B) and D) or (not(B) and C) or (A and B)'

命令行使用

minbool egg安装了一个控制台脚本:“simplify”

$ simplify A and B or A and C and not C
(A and B)

性能

性能为指数级大O。在每种情况下都会构建一个真值表,其中行数为2**N,N为表达式中变量的数量。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

minbool-1.0.tar.gz (13.0 kB 查看散列)

上传时间:

由以下赞助商支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面