pyddlib是一个python3库,用于操作决策图(dd)。

pyddlib的Python项目详细描述


pyddlib是一个python3库,用于处理决策图(dd)。



功能
操作**。计算机,ieee交易100,第8期(1986年):
677-691.

[2]Brace,Karl S.,Richard L.Rudell和Randal E.Bryant。**高效
实现bdd包**。第27届acm/ieee设计自动化会议记录,第40-45页。ACM,1991年。

[3]巴哈尔,R.艾里斯,埃里卡A.弗洛姆,查尔斯M.高纳,加里D.哈切特尔,
Enrico Macii,Abelardo Pardo和Fabio Somenzi。**代数决策
图及其应用**。系统设计中的形式化方法10,
2-3号(1997年):171-206。



install
---


























><~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
您可以从通过使用逻辑运算和(&;)或(\)、异或(^)和非(—)组合布尔函数的常量和变量。代码::python


from pyddlib.bdd import bdd

zero=bdd.zero()
print("==true==")
print(one)
print("==false=="
print(zero)

x1=bdd.variable(1)
x2=bdd.variable(2)
x3d=变量(3)
print(==x1=="
print(x1)


print(==非x1=="


print(==x1和x2=="
print(x1&;x2)

打印("==x1或x2=="
打印(x1 x2)

打印("==x1 xor x2==")
打印(x1 ^x2)


bdd1=~x1(x2 ^~x3)
如果(bdd1&;one)==bdd1:
打印(true是操作的中性元素!')

bdd2=~(~x2)^(~(x1 x3))
如果(bdd2零)==bdd2:
打印('false是or操作的中性元素!')

bdd3=x1&;~x1


bdd4=x1 ~x1


bdd5=~(x1 ~(x2&;~x3))
如果(bdd5^bdd5).is_zero():
print('您可以检查与xor的等价性!')

如果(x1&x2)=(x2&x1):
print('交换律对布尔函数有效!')

如果x1&;x2&x3)=(x1&x2)&x3:
print('关联定律适用于布尔函数!')

如果(x1&;x2 x3))=((x1&x2)(x1&x3)):
打印('分配律起作用:并且分布于或!')

如果(x1(x2&x3))=((x1 x2)&;(x1 x3)):
打印("分配律起作用:或分配到and!")

bdd6=~(x1&;~(~x2 x3))
valuation1={1:true,2:true,3:false}



valuation2={1:true}
如果bdd6.restrict(valuation2)=(~x2 x3):
print('您也可以使用restrict对函数进行部分求值!')



代数决策图(加法)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

通过组合算术运算函数+、-、*、/。

代码::python


=附加变量(2)
x3=添加变量(3)
打印(==x1=="
打印(x1)


打印(===not x1=="
打印(~x1)


打印(==x1*x2*c1=="
打印(x1*x2*c2)

打印(==(x1+x2)*c2=="
打印((x1+x2)*c2)


=="
打印(x1-x2)

add1=~x1+(x2*~x3)
如果(add1*c1)==add1:
打印(add.constant(1.0)是乘法的中性元素!')

add2=~(~x2)*(~(x1+x3))
如果(add2+c0)==add2:
打印('add.constant(0.0)是要添加的中性元素!')

add3=x1*~x1
如果add3==c0:
print('您可以通过与add.constant(0.0)比较来检查矛盾!')

add4=x1+~x1
如果add4==c1:
print('您可以通过与add.constant(1.0)进行比较来检查同义重言式!')

如果(x1*x2)=(x2*x1)和(x1+x2)=(x2+x1):
print('交换定律适用于乘法和加法!')

如果x1*(x2*x3)==(x1*x2)*x3和x1+(x2+x3)==(x1+x2)+x3:
print('结合定律适用于乘法和加法!')

如果(x1*(x2+x3))==((x1*x2)+(x1*x3)):
打印("分布规律有效:乘法分布在加法上!")

add5=x1*x2+x3*c2
valuation={1:true,2:false,3:true}

if add5.restrict(valuation).value==2.0:
print('您可以使用restrict!')计算函数)

valuation2={1:true}
如果add5.restrict(valuation2)=(x2+x3*c2):
print('您也可以使用restrict对函数进行部分求值!')
BR/>许可证
-BR/> Copyright(C)2017蒂亚戈·佩雷拉BueNo保留所有权利。
BR/> PyDLIB是免费软件:您可以在
< BR/>自由软件基金会发布的GNU小通用公共许可证的条款下重新分发和/或修改它。许可证的第3版,或(由您选择)任何更高版本。

保证;甚至没有对适销性或特定用途的适用性的暗示保证。有关详细信息,请参阅gnu less general public
许可证。

如果没有,请参见http://www.gnu.org/licenses/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用户界面如何在JavaGUI中为按钮创建各种颜色?   使用MSCAPI的RSA密钥包装的java使用   java Spring数据Redis JedisConnectionException:意外的流结束   java饼图未显示预期输出   java hystrixCommand注释commandKey的用途是什么   windows java可以从cmd运行jar,但不能通过双击来运行   java在单击按钮时遍历XML节点   java试图使用日期(int,int,int)构造函数   带有Buildship 2子项目的java不作为项目依赖项链接   java jsonrpc4j:如何从服务器获取列表<SomeObject>?   用于Java应用程序的内存设置MaxDirectMemory和MaxHeapMemory   java如何从以下类型格式化日期   javayoutube。搜索列表搜索不返回任何内容   java My参数在方法中不起作用,因为泛型存在问题   java如何将Map<Key1Type,Val1Type>转换为Map<Key1Type,Val2Type>   JavaJUnit测试:测试用例的改进,测试数组列表的长度?   java如何在Android中解析带有属性值的xml数据?   使用Hibernate对枚举类型进行Java8bean验证