I want to implement a resolution algorithm which tries to get empty set as it resolves the candidate clauses.
I want algorithm to resolve the candidate parent clauses in a breadth-first order. However, I got confused at a point:
Let S be conjunction of all the clauses in knowledge base and negation of goal clause
when we try to resolve candidate clauses in S with the ones again in S, we get S'
As second step in the algorithm, should we try to resolve for S and S' or S' with S' itself? and how should it proceed?
For example;
Suppose knowledge base + neg. of goal set consists of set of clauses such as
p(a,b) ^ q(z),~p(z,b) ^ ~q(y) ((let's call this set S)
when we run resolution algorithm on set S, we get clauses like:
q(a) ^ ~p(z,b) (let's call this set S')
now, If we have to employ BFS strategy, should we first find the resolvents whose first parent is in S and second is in S' first? or try to check for the resolvents whose parents are both from S'?
In some examples, when you first check with S' and S' for resolvents, you get the solution. However, when you proceed with checking pair of sets (S, S') (S, (S, S')) you get another way leading to empty clause. So, which order does correspond to BFS?
Thanks in advance