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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b40a42dcfece39560da6134e9153a958748868e67ad2302870db7481a687c09c |
|
MD5 | cd2fe4b4184ee2649aa209b4ca27ee6d |
|
BLAKE2b-256 | 8965fff7b3ca25f41195e9b42336684360536b7991e1fbcfe92b8239b71b5e2c |