我想实现一个解析算法,它在解析候选子句时尝试获取空集。
我希望算法以广度优先顺序解决候选父子句。但是,我有一点困惑:
令 S 为知识库中所有子句的合取和目标子句的否定
当我们尝试用 S 中的候选子句解析 S 中的候选子句时,我们得到 S'
作为算法的第二步,我们应该尝试用 S' 本身来解决 S 和 S' 还是 S'?它应该如何进行?
例如;
假设知识库+否定。目标集由一组子句组成,例如
p(a,b) ^ q(z),~p(z,b) ^ ~q(y) ((我们称这个集合为 S)
当我们在集合 S 上运行解析算法时,我们得到如下子句:
q(a) ^ ~p(z,b)(我们称这个集合为 S')
现在,如果我们必须采用 BFS 策略,我们是否应该首先找到其第一个父级在 S 中,第二个在 S' 中的解析器?或尝试检查其父母都来自S'的解析器?
在某些示例中,当您第一次使用 S' 和 S' 检查解析剂时,您会得到解决方案。但是,当您继续检查一对集合 (S, S') (S, (S, S')) 时,您会得到另一种导致空子句的方法。那么,BFS 对应的是哪个顺序呢?
提前致谢