Rete算法

Rete算法是由Charles Forgy提出的一种用于规则引擎的高效模式匹配算法,广泛应用于drools、jess等规则引擎。该算法通过状态保存和节点共享减少重复计算。本文介绍了算法的基本概念,包括working memory事实库和production memory规则库,并详细描述了算法的匹配过程,以及一个简单的例子来说明Rete网络的工作原理。
摘要由CSDN通过智能技术生成

1、算法简介

Rete算法是Charles Forgy在1979年的论文中首次提出的,针对基于规则知识表现的高效模式匹配算法,就目前来说,大部分规则引擎还是基于rete算法作为核心,但都有所改进,比如drooljess等。

Rete算法有两个特点使其优于传统的模式匹配算法:

1)状态保存事实库的每次变化,其匹配后的状态都被保存在alphabeta节点中。在下一次事实库发生变化时,绝大多数的结果都不需要变化,Rete算法通过保存操作过程中的状态,避免了大量的重复计算Rete算法主要是为那些事实库变化不大的系统设计的,当每次事实库的变化非常剧烈时,Rete的状态保存算法效果并不理想。

2)节点共享。另一个特点就是不同规则之间含有相同的模式,从而可以共享同一个节点。Rete网络的各个部分包含各种不同的节点共享。


2、算法基本概念

1working memory事实库(facts),表示系统当前的状态,是将要被处理的数据。组成working memory里的每一项叫做working memory elementWME)。我们假设WME采取三元组的这种表示方式,(identifier ^attribute value) 举一个简单的例子,在一个“积木的世界”里,它的working memory

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值