
February 12th, 2010, 03:54 AM
#1
Horns clause and Backchaining most of the logic is done but how to implement it?
The problem that I am having is that I can not wrap my mind around how to implement this logic into a program such as c++, just the logic and I can code. For example, I have the logic that I reduced to Horn form:
1 a => b = ~a V b
2 c ^ d => a = ~(c ^ d) V a = ~c V ~d V a
3 e ^ c => d = ~(e ^ c) V d = ~e V ~c V d
4 f ^ a => c = ~(f ^ a) V c = ~f V ~a V c
5 f ^ e => c = ~(f ^ e) V c = ~f V ~e V c
6 f = f
7 e = e
So there are seven statements here. I want to know if I queried "b" if it is true or not. I am unsure of how to implement this in to code other than in Prolog... Any ideas? I found a small psuedo algorithm but have yet to dicipher its meaning so that I can implement it.
Backward_Chaining(in P0 : negated goal; GAMMA : set of facts and rules
{ if P0 = null then succeed;
pick a literal L in P0;
choose a clause C in GAMMA whose head resolves with L;
P := resolve(P0,GAMMA);
bc(P,GAMMA)
}
So I can guess that P0 is proposition 0 but don't know where to go from there...
Any ideas?
Thank you very much for any thoughts.
Brian
Tags for this Thread
Posting Permissions
 You may not post new threads
 You may not post replies
 You may not post attachments
 You may not edit your posts

Forum Rules

Click Here to Expand Forum to Full Width
This a Codeguru.com survey!
