规则引擎与专家系统

Posted

技术标签:

【中文标题】规则引擎与专家系统【英文标题】:Rules Engine vs Expert System 【发布时间】:2010-12-13 20:24:11 【问题描述】:

规则引擎和专家系统有什么区别?

示例 1: 假设我有一个程序可以确定新驾照的到期日期。它接受签证到期日期、护照号码、生日等输入。它根据该输入确定驾驶执照的到期日期。如果输入没有足够的有效标识来允许新的驾驶执照,它甚至会出错。

示例 2: 假设我正在制作游戏 Monopoly 的在线版本。我想要改变游戏规则的能力(比如传球需要 400 美元,或者没有人可以购买房产,直到他们两次登陆同一个房产,等等)。我在代码中有一个模块来处理这些规则。

这两个是规则引擎还是专家系统?他们俩看起来都那么相似。它只是一个同义词吗?

【问题讨论】:

【参考方案1】:

“推理引擎”(我相信您称之为“规则引擎”)是专家系统的一部分。另一部分是“知识库”(你的规则列表,它知道的东西,它迄今为止弄清楚的东西,等等)

推理引擎是实际使用您的规则和已知事实来推断事物的部分。

在上面的两个示例中,您谈论的是专家系统。有点像。

我会给你第三个例子。 GNU make 是一个推理引擎。如果给定一组构建规则和过时的文件,它可以找出需要重建的内容,但必须告诉它所有这些东西。包含 makefile、相关脚本和 make 本身的构建系统是一个专家系统

我在网上找到了详细的解释here,但是对于新手来说可能有点太详细了。

【讨论】:

谢谢,我一直想知道这个区别很长时间 @T.E.D.专家系统是唯一基于规则的系统吗?我找不到其他人...【参考方案2】:

“专家系统”通常是指包含一组关于给定问题领域的专家知识的特定应用程序。专家系统可能会也可能不会使用规则引擎作为其实现的一部分。

【讨论】:

【参考方案3】:

我认为区别是语义上的,只是更多一点。

“专家系统”意味着该系统包括用于挑选专家大脑的编码,即将专家的领域知识转化为程序的内部规则集。

把它拿走,我会说剩下的是“规则引擎”。尽管也可以构建不基于规则引擎的专家系统。

【讨论】:

【参考方案4】:

这可能是旧的。但是术语规则引擎,有时是给语义推理器推理引擎的名称。它们可以被视为推理引擎的扩展或概括。

作为answered by T.E.D,推理引擎只是专家系统的一部分,另一个是知识库。知识库是整个系统的公理或真理,推理机就是将这些公理推导出新的“真理”。

【讨论】:

请链接到您所指的 T.E.D 演讲。 @MartinThoma - (脸红)。好吧,你看……他在谈论公认的答案。我还没有被邀请真正进行 TED 演讲,但这会很有趣。 哈哈哈,没看到你的回答?? @MartinThoma - 我想你可以说我的每一次演讲都自动成为 T.E.D.说话...

以上是关于规则引擎与专家系统的主要内容,如果未能解决你的问题,请参考以下文章

drools 决策引擎介绍开发

规则引擎选型及简单应用

什么时候使用规则引擎drools

Java规则引擎及JSR-94[转]

什么事规则引擎

Atitit.工作流 与 规则引擎