2010-07-29 241 views
44

对方没有实践的好处是什么?我理解他们所做的理论,但他们在实际应用中的局限性和能力又是什么?我正在考虑Drools vs一个新的AI项目的java prolog,但可以接受其他建议。推理复杂关系数据集或替代方法的一些常用方法是什么?正向链接与反向链接

+6

一个不错的参考:“学习差正向和反向推理之间的” http://www.ijetae.com/files/Volume2Issue10/IJETAE_1012_48.pdf – Felixyz 2014-08-27 11:47:08

回答

41

反向链接(a Prolog)更像是寻找通过什么样的初始条件达到目标的路径。在一个非常基本的层面上,它是从你的目标向后搜索找到满足它的条件。

反向链接用于疑问应用程序(查找满足特定条件的项目) - 反向链接应用程序的一个商业示例可能会查找哪些保险策略被特定的再保险合同所涵盖。

正向链接(a CLIPS)匹配条件,然后从这些条件生成推论。这些条件可以反过来匹配其他规则。基本上,这需要一组初始条件,然后从这些条件中得出所有可能的推论。

推理(如果声明)也可以是可以触发外部操作的操作或事件。这在事件驱动型系统中很有用,因为规则集可以配置为(例如)启动工作流或其他操作。这种类型的规则引擎是商业应用中最常用的。

事件驱动系统是前向链规则引擎的常见应用。前向链应用的一个例子可能是电信计划供应引擎(通常用于管理移动电话计划)。通过特定计划输入特定用户将触发在各种电话交换机,计费系统,财务,CRM系统等中设置的一系列项目。

+0

FYI Drools的做到这些显然(假设这些功能完成):HTTP: //www.jbug.jp/trans/jboss-rules3.0.2/ja/html/ch01.html – AaronLS 2012-11-16 05:36:54

+0

单独使用正向链接会引发优于简单脚本语言的问题。 – Colin 2014-09-16 09:52:28

19

有关的答案非常好。当记者问到归结的差异健全咬,我通常会这样说:

大量输出假设+大量的数据在前面的=>使用正向推理

更少的输出假设+必须查询数据= >使用反向链接

但这只是一个经验法则,不是一条诫命。

1

正向链涉及的问题是“什么接下来会发生什么?“,而反向链接则着眼于”为什么发生这种情况?“这个问题。

正向链接的一个例子是预测股票市场状况是否对利率变化产生影响。

反向链接的一个例子是人类血液癌症的诊断。

简而言之,正向链接主要用于预测未来结果,而反向链接主要用于分析历史数据。