什么是混合推理引擎?

问题描述 投票:0回答:2

我已经尝试对此进行了很多搜索,即使如此,如果有类似的帖子,我深表歉意。

我知道规则引擎基本上有两种推理方法:前向链接和后向链接。我还相信我了解两者如何单独工作,但是具有混合推理功能的引擎将如何首先执行前向链接然后向后执行,反之亦然?或者引擎是否有可能根据知识库和工作记忆中的事实来决定使用哪种推理?

另外,如果我想构建一个具有两种推理方法的引擎,增强正在使用的匹配算法(Rete、Treat 等)是开始的方式吗?

我知道我问了很多问题,如果有人可以回答或向我推荐一些参考任何部分的文献,我将非常感激。

谢谢!

artificial-intelligence rule-engine inference-engine rete
2个回答
1
投票

我建议看看 Jess 和 Drools。这两个工具都实现了前向和后向链接,因此您可以看看它是如何实际实现的。

在正向链接工具中实现反向链接的一种方法是实现自动目标生成并提供可以匹配这些目标的模式。例如,以下是用 CLIPS 编写的汽车维修程序的一些规则摘录(仅支持前向链接):

(defrule determine-engine-state ""
   (not (engine-starts ?))
   (not (repair ?))
   =>
   (assert (engine-starts (yes-or-no-p "Does the engine start (yes/no)? "))))

(defrule determine-rotation-state ""
   (engine-starts no)
   (not (repair ?))   
   =>
   (assert (engine-rotates (yes-or-no-p "Does the engine rotate (yes/no)? "))))

(defrule determine-gas-level ""
   (engine-starts no)
   (engine-rotates yes)
   (not (repair ?))
   =>
   (assert (tank-has-gas
              (yes-or-no-p "Does the tank have any gas in it (yes/no)? "))))

(defrule tank-out-of-gas ""
   (tank-has-gas no)
   (not (repair ?))
   =>
   (assert (repair "Add gas.")))

提问规则包含条件中包含的前提信息,维护起来比较困难。

通过自动目标生成,规则可以重写如下:

(defrule determine-engine-state ""
   (goal (engine-starts ?))
   =>
   (assert (engine-starts (yes-or-no-p "Does the engine start (yes/no)? "))))

(defrule determine-rotation-state ""
   (goal (engine-rotates ?))
   =>
   (assert (engine-rotates (yes-or-no-p "Does the engine rotate (yes/no)? "))))

(defrule determine-gas-level ""
   (goal (tank-has-gas ?))
   =>
   (assert (tank-has-gas
              (yes-or-no-p "Does the tank have any gas in it (yes/no)? "))))

(defrule tank-out-of-gas ""
   (not (repair ?))
   (engine-starts no)
   (engine-rotates yes)
   (tank-has-gas no)
   =>
   (assert (repair "Add gas.")))

在这种情况下,提问的规则被简化并且更容易维护。每当特定类型的事实存在目标时,就会向用户询问其价值。无需对问题的先决条件信息进行编码。自动目标生成允许油箱耗尽规则驱动包含目标的规则。如果尚未确定修复,则(引擎启动否)模式会在不存在引擎启动事实的情况下自动生成目标(规则引擎可以确定存在另一个规则,即确定引擎状态,该规则与关于这个目标事实)。如果用户回答“否”,则将匹配(发动机启动否)模式,从而为发动机旋转事实生成目标(触发确定旋转状态规则)。如果用户回答“是”,则(引擎启动否)模式将不会匹配,并且由于没有其他规则适用,因此执行将停止。

通过这种目标生成方法,基本上使用后向链接来获取前向链接规则所需的数据。


0
投票

混合推理引擎是指结合多种推理或推理技术来执行问题解决、决策或数据分析等任务的软件系统或组件。推理引擎是人工智能(AI)系统和基于知识的系统的重要组成部分。他们负责根据现有信息和规则得出结论或做出预测。 推理引擎:这些是执行推理和决策任务的核心组件。他们获取输入数据,应用规则或算法,并根据可用信息生成输出。

混合方法:混合推理引擎结合了不同的推理技术或方法来提高其整体性能或能力。这些方法可以包括基于规则的推理、统计推理、机器学习、符号推理、模糊逻辑等等。

© www.soinside.com 2019 - 2024. All rights reserved.