规则引擎 vs 专家系统

20

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

例如1:假设我有一个程序,它可以确定新驾照的到期日期。它需要输入类似于签证到期日期、护照号码、生日等信息,并从这些输入中确定驾照的到期日期。如果输入不包含足够的有效身份识别信息,则它甚至可以给出错误提示。

例如2:假设我正在制作一个在线版的大富翁游戏。我想要能够更改游戏规则(比如过GO的奖励为400美元或者在落地同一处地产前不能购买任何物业等)。我已经在代码中编写了一个模块来处理这些规则。

这两者都是规则引擎还是专家系统?它们看起来非常相似。它们只是同义词吗?

4个回答

16
“推理引擎”(我认为你所说的“规则引擎”)是专家系统的一部分。另一部分是“知识库”(包括规则列表、已知真实的事实以及已经确定的内容等)。
推理引擎是使用规则和已知事实进行推断的部分。
在您上面的两个示例中,您谈论的是专家系统。有点像。
我给您举一个第三个例子。GNU make是一个“推理引擎”。如果给定一组构建规则和日期文件,它可以计算出需要重新构建的内容,但必须告诉它所有这些信息。包括Makefile、相关脚本和make本身的构建系统是一个“专家系统”。
我在这里找到了一个详细的解释,但对于新手来说可能有点太详细了。

谢谢,我对这个区别已经思考了很长时间。 - michael nesterenko
@T.E.D. 是一个专家系统,是唯一的基于规则的系统吗?我找不到其他的... - 476rick

3

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


1

我认为这个区别是语义上的,只是微不足道的。

“专家系统”意味着该系统包括编码来挖掘专家的智慧,即将专家的领域知识转化为程序的内部规则集。

如果去掉这一点,我会说剩下的就是一个“规则引擎”。虽然也有可能构建一个不基于规则引擎的专家系统。


0

这可能是老旧的。但术语规则引擎有时被赋予语义推理器推理引擎的名称。它们可以被看作是推理引擎的扩展或概括。

正如T.E.D所回答的, 推理引擎只是专家系统的一部分,另一部分是知识库。知识库是整个系统的公理或真理,而推理引擎则会利用这些公理来推导出新的“真理”。


请提供您所参考的T.E.D演讲链接。 - Martin Thoma
2
@MartinThoma - (脸红)。嗯,你看...他在谈论被接受的答案。我还没有被邀请去真正地发表TED演讲,但这会很有趣。 - T.E.D.
哈哈哈,我没有看到你的回答。 - Martin Thoma
2
@MartinThoma - 我想你可以说我每次演讲都自动成为了 T.E.D. 演讲... - T.E.D.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接