java中的前向链接和后向链接

Tea*_*App 5 java algorithm artificial-intelligence inference reasoning

在java中为推理过程实现前向链接和后向链接的最佳方法是什么?

我们获得了Horn形式的知识库,其中包含一系列陈述.

我试图在互联网上搜索,但我无法找到关于如何将这些人工智能概念实现到编码中的任何描述.

我的理解 :

到目前为止,我一直认为我将阅读每个句子(Horn-Form)并创建它的对象.每个Sentence类对象都有关系变量,当我要求Backward或Forward链的知识库时,它将检查这些对象的数组并构造我想要的链.

 public class Sentence{

    private String impliedBy;
    private String implementedVar;

    public Sentence(String sentence){
       String[] relation = sentence.split("=>");
       this.impliedBy = relation[0];
       this.implementedVar = relation[1];
    }
    ...
 }
Run Code Online (Sandbox Code Playgroud)

通过说...来打电话给上课

Sentence s = new Sentence("a&b=>c");
Run Code Online (Sandbox Code Playgroud)

对于这些复杂的编程而言,我是正确的道路,并且根据我的预测,我可能需要进行大量优化才能在非常高的水平上运行这些推理.但似乎我需要一些人的理解,如果你们中的一些人可以提供帮助,谢谢你......

谢谢!

duf*_*ymo 6

在我尝试为自己编写之前,我会使用像DroolsJESS这样的规则引擎.

除非您的目的是学习如何编写Rete规则引擎,否则我将撤回我的答案.我去寻找Charles Forgy的论文.