我正在使用 JavaBDD 对 BDD 进行一些计算。我有一个非常大的 BDD,其中包含许多变量,我想计算有多少种方法可以满足这些变量的一小部分。
我目前的尝试如下所示:
// var 1,2,3 are BDDVarSets with 1 variable.
BDDVarSet union = var1;
union = union.union(var2);
union = union.union(var3);
BDD varSet restOfVars = allVars.minus(union);
BDD result = largeBdd.exist(restOfVars);
double sats = result.satCount(); // Returns a very large number (way too large).
double partSats = result.satCount(union) // Returns an inccorrect number. It is documented that this should not work.
存在()的用法不正确吗?