问题标签 [cudd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binary - Cudd 包:二进制决策图
任何人都可以在 Cudd 包装上指出一些好的材料。我在这里寻找一些简洁的东西。http://vlsi.colorado.edu/~fabio/CUDD/上的那个似乎没有很好地介绍这个问题。欢迎任何与 BDD 及其应用相关的视频讲座。
谢谢并恭祝安康
c++ - How to copy a structure with pointers to data inside?
I am using the CUDD package for BDDs manipulation. I want to make a copy for a big data structure in it that is called the DdManager. The problem is : this data structure has so many pointers inside it , so when I make a direct copy it is a "shallow" copy(as some use the term) i.e. : the pointers in the new copy point to the same places pointed to by the original copy , so when I change in anyone of them I also change in the other which is undesirable .... Trying to make a copy function by hand is not feasible because the data structure is really big and very detailed with many pointer to other complex structures also !!! I have tried the vector solutions described here but I did not get the expected result because there are many nested structures and pointers and I want a completely new copy.
Here is a code sample of what I want to do :
#xA;binary-decision-diagram - 通过CUDD计算图像后获取BDD的所有变量(C接口)
我卡在CUDD(C接口)的BDD上的操作上,我不知道我们在计算图像时是否可以删除一些变量(从BDD的一个状态到另一个状态)以及如何传递结果BDD(最终BDD ) 要获取所有变量,有人可以告诉我我们是否可以通过 CUDD 做到这一点吗?干杯
binary-decision-diagram - 可以从 CUDD 管理器中删除变量吗?
谁能告诉我是否可以安全地从 CUDD 的经理中删除变量?例如:我通过v1 = Cudd_bddNewVar(manager)
;注册了两个变量 和v2 = Cudd_bddNewVar(manager)
。我可以v2
从管理员中删除吗?
binary-decision-diagram - 如何在窗口中成功运行 cudd 库
windows中是否有任何二进制决策图(BDD)可用。我试图在vc++6.0中运行cudd ..提到链接 http://web.cecs.pdx.edu/~alanmi/research/soft/softPorts .htm
但它不能正常工作。运行示例代码时出现编译器错误
visual-studio-2010 - 使用 Cudd 访问冲突读取位置
我正在尝试使用 Cudd 包在 Visual C 中实现一个算法。我必须递归地使用一个函数。但它不断在某一行抛出错误。错误是访问冲突读取位置 0x00594a5ct。它与temp_bdd_result的使用背道而驰。我无法弄清楚为什么会发生这种情况,因为 temp_bdd_result-bdd_node 和 bdd_result 中使用的两个值都包含值。那么为什么它们无法访问。或者这个错误指向我看不到的其他东西。请帮忙。
binary-decision-diagram - CUDD 包:传递特定变量顺序的方法?
我正在使用 CUDD 包进行 BDD 操作。我想知道是否有人知道传递特定变量顺序以指示程序在构建 BDD 时使用此顺序的方法。我正在使用变量数量相对较少的布尔函数。
事实上,即使有一种方法可以将特定的输入变量传递给程序以作为 BDD 的根,这也符合我的目的。如果有人知道如何做到这一点,那么我将非常感谢您的帮助。我浏览了文档,但没有发现任何与此相关的内容。也许我错过了什么。
c++ - Cudd_BDD 零节点参考值
我正在使用 Cudd 包http://vlsi.colorado.edu/~fabio/CUDD/ 首先我得到一个错误状态“死计数!=删除”所以我开始调试,我遇到了一个我无法理解的问题。
以下代码将一个十进制值作为输入,它应该使用 nodes_vector 中的变量将相应的 BDD 返回到该十进制值。
在某些情况下,我得到结果节点和 tmp3 节点的参考值为零,但我不明白在我调用“Cudd_ref(tmp3)”后怎么会发生这种情况
我将不胜感激对此的任何解释,以及为什么我会在循环中得到“死计数!=已删除”错误,尽管在该循环的第一次迭代中我没有收到“死计数!=已删除”错误。
c++ - C++ 编译错误:'{' 标记之前的预期 unqualified-id
我在用着:
编译器我正在使用 Cudd 包http://vlsi.colorado.edu/~fabio/CUDD/开发一些项目,我想缓存一些结果,所以这是我的缓存 c++ 代码
lrucache.h
lrucache.c
nfaobdd.h
nfaobdd.c
当我在我的项目中使用此缓存时,我收到以下我无法理解的错误。我很感激任何帮助
algorithm - 扩展查找由 BDD 表示的关系中的唯一元组
将 {<1,2>, <1,3>, <1,7>, <0,4>} 视为关系 R 的元组集合。现在考虑 R 由(通过其隶属函数)表示BDD。也就是说,表示 R 的 BDD 取决于变量 {x1,x2,y1,y2,y3} 其中 {x1,x2} 用于表示每个元组的第一个元素,{y1,y2,y3} 用于表示第二个元素。
现在,考虑查找在其第一个元素中具有唯一值的元组集合的问题。对于该集合之上的关系将是 {<0,4>}。所有其他元素都被丢弃,因为它们在第一个组件中超过一个具有 1 的值。
作为第二个例子,考虑与元组集合 {<1,2>, <1,3>, <1,7>, <2,3>, <2,5>, <0,4>} 的关系。在这种情况下,预期结果仍然是 {<0,4>} 因为 2 作为第一个元素出现了不止一次。
这个问题也可以看作是对变量 {y1,y2,y3} 的抽象化,从而只保留 {x1,x2} 的唯一值。有了这个结果,可以通过计算得到的 BDD 与输入的结合来重建预期的关系。
总之,问题是:必须对 R 的表示执行哪些 BDD 操作才能获得仅具有唯一元组的 BDD。
请注意,这是对这个问题的概括
编辑1: 以下代码反映了我到目前为止的实现。但是,我想知道是否有可能获得更高效的版本。为简单起见,我有意省略了计算表的处理(对于获得更好的时间复杂度至关重要)。另外,我使用 &, | 和 !表示 BDD 上的合取、析取和补码操作。
EDIT2:在尝试了三种不同的实现之后,仍然存在一些性能问题。让我来描述他们三个。
本次更新的目标是分析一下使用这三种方法的结果。由于此时时间度量似乎会误导判断它们,因此我决定在一组不同的度量上评估实现。
- 递归调用
- 缓存命中
- 抽象简单。无需存在抽象即可解决函数调用的次数。
- 抽象复合体:需要存在抽象解决函数调用的次数。
- 存在抽象:对存在抽象的调用次数。
实现 1 的结果:(21123 毫秒):唯一抽象统计:递归调用:1728549.000000 缓存命中:638745.000000 非抽象:67207.000000 简单抽象:0.000000 复杂抽象:0.000000 现有抽象:1593430.000000
实现 2 的结果:(运行时间:54727 毫秒)唯一抽象统计:递归调用:191585.000000 缓存命中:26494.000000 简单抽象:59788.000000 复杂抽象:12011.000000 现有抽象:24022.000000
实现 3 的结果:(运行时间:20215 毫秒)唯一抽象统计:递归调用:268044.000000 缓存命中:30668.000000 简单抽象:78115.000000 复杂抽象:46473.000000 现有抽象:92946.000000
编辑 3:根据 ITE 5实施每个逻辑操作后获得以下结果。
uniqueAbstractRecRef (21831 ms) 唯一抽象统计:总调用:1723239 优化调用:0 总存在抽象调用:30955618 对存在抽象的唯一抽象调用:2385915 总 ite 调用:3574555 在总时间中,uniqueAbstractRecRef 需要 4001 毫秒 (12.4%)
uniqueAbstractSERec (56761 ms) 唯一抽象统计:总调用:193627 优化调用:60632 总存在抽象调用:16475806 对存在抽象的唯一抽象调用:24304 总 ite 调用:1271844 在总时间中,uniqueAbstractSERec 需要 33918 ms (51.5%)
uniqueAbstractRec (20587 ms) 唯一抽象统计:总调用:270205 优化调用:78486 总存在抽象调用:13186348 对存在抽象的唯一抽象调用:93060 总 ite 调用:1256872 在总时间中,uniqueAbstractRec 需要 3354 ms (10.6%)