【问题标题】:Prolog backtracking VS Rete backtrackingProlog 回溯 VS Rete 回溯
【发布时间】:2018-07-07 06:37:46
【问题描述】:

在我的课堂上,我学习了 Prolog 回溯算法和 Rete forprop 算法,但我也被告知 Rete 可用于进行反向传播。

它是如何工作的?它在哪些方面与 Prolog 回溯相似/不同?


例如,这是我得到的练习之一:

(R1) 24fingers and antennas => origin(mars)
(R2) shy and 5feet => origin(mars)
(R3) shy and 4arms => origin(venus)
(R4) looksDownWhenTalking => shy
(R5) fleesWhenSeen => shy

目标是根据以下事实找到外星人的起源:

(F1) fleesWhenSeen
(F2) 4arms

在 Prolog 中,我们将通过将目标 origin(X) 与规则的 RHS 进行模式匹配来解决它。该规则与 R1、R2 和 R3 匹配,因此将触发第一个 R1,我们将尝试解析子目标 24fingers and antennas,这将失败。

然后我们会回溯到开始并触发R2,最终会失败,最后回溯并触发R3,它会成功。

所以X 在成功的查询中最终绑定到venus,算法结束。


现在,我们将如何使用 rete 反向传播算法解决相同的练习?

我天真地假设我们会使用以origin(X) 开头的子目标列表来开始触发 RHS 与子目标匹配的规则。

但我不清楚 Rete 算法在某些子目标失败时如何处理回溯,或者在解决某个目标子集后如何知道它已经成功。

【问题讨论】:

  • rete 算法是严格的前向链接。也许一些主要基于rete的引擎,也支持backward-chaining,但是使用的算法不能是rete算法。你能添加一些链接到声称使用rete和反向链接的资源吗?
  • @CoronA 这是在我的大学练习中,当我问我的老师如何使用类似 Prolog 的回溯来解决这些练习时,这只会让我更加困惑。如果您有信心使用 rete 回溯不是我满意的答案。
  • @Jsevillamol:我认为大多数基于 RETE 的系统都支持反向链接查询,但是这些查询不是用 RETE 算法处理的,而是其他的(SLD-Resolution as in Prolog, Semi- Naive-Bottom-Up-Evaluation 或 Magic-Sets-Evaluation,如演绎数据库)
  • @G_V:RETE-Algorithm 和 SLD-Resolution 都是演绎算法。 Backward-Chaining 和 Forward-Chaining 都是演绎的。归纳推理是超越 Rete 和 Prolog 的主题。通过归纳推理得出的所有事实都可能是错误的(演绎推理并非如此)。
  • @G_V:前向链接允许您从其他事实中得出事实。归纳推理允许您猜测事实。那是完全不同的。一条规则frog => green 意味着所有的青蛙都是绿色的。在这个世界上没有棕色的青蛙。对这条规则的归纳推理会提出给定的绿色物体可能(!)是一只青蛙。然而,在这个世界上可能还存在其他绿色的物体,并且不是青蛙的绿色物体与基于此规则的世界完全一致。

标签: prolog backtracking rule-engine rete


【解决方案1】:

在前向链接系统中没有支持后向链接的标准实现。混合工具使用不同的技术实现了此功能。这里描述了一种技术,数据驱动的反向链接:http://haleyai.com/wordpress/2008/03/11/goals-and-backward-chaining-using-the-rete-algorithm/。一些附加信息:JESS vs DROOLS : Backward chaininghttp://herzberg.ca.sandia.gov/docs/70/rules.html.

【讨论】:

    【解决方案2】:

    Rete 算法的解释在这里提供:http://www.drdobbs.com/architecture-and-design/the-rete-matching-algorithm/184405218

    在 Prolog 中,使用了 统一算法,这与模式匹配不同,两边都有模式(目标/规则头)。

    编辑

    这里有很多关于 Rete 和 Prolog 的信息。

    在 Prolog 中构建专家系统

    http://www.amzi.com/distribution/files/xsip_book.pdf

    http://www.oopweb.com/Prolog/Documents/XSIP/Volume/08performance.htm

    理论框架 和 PROLOG解释器的实现

    http://staff.um.edu.mt/mcam1/Files/Dissertation.pdf

    【讨论】:

    • 很好的资源,但这并不能回答我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多