3
我试图在C++中实现DPLL算法,我想知道什么样的数据结构最适合解决这种类型的递归问题。现在我正在使用矢量,但代码很长很丑。有什么建议吗?如何在C++中最好地实现DPLL?
function DPLL(Φ)
if Φ is a consistent set of literals
then return true;
if Φ contains an empty clause
then return false;
for every unit clause l in Φ
Φ ← unit-propagate(l, Φ);
for every literal l that occurs pure in Φ
Φ ← pure-literal-assign(l, Φ);
l ← choose-literal(Φ);
return DPLL(ΦΛl) or DPLL(ΦΛnot(l));