深度优先证明数搜索的完备性探究
在搜索算法的领域中,深度优先证明数搜索(df - pn)是一种重要的算法,它在有向无环图(DAG)和有向循环图(DCG)的搜索场景中有着不同的表现。下面我们将深入探讨该算法在这两种图结构中的完备性问题。
1. df - pn算法伪代码
首先,我们来看一下df - pn算法的伪代码:
// Set up for the root node
// Note that the root is an OR node
int Df - pn(node r) {
r.φ = ∞; r.δ = ∞;
MID(r);
if (r.δ = ∞)
return true;
else
return false;
}
// Iterative deepening at each node
void MID(node n) {
TTlookup(n,φ,δ);
if (n.φ ≤ φ || n.δ ≤ δ) {
// Exceed thresholds
n.φ = φ; n.δ = δ;
return;
}
// Terminal node
if (IsTerminal(n)) {
Evaluate(n);
// Store (dis)proven node
TTstore(n,n.φ,n.δ);
return;
}
GenerateMoves(n);
// Iterativ