模式识别算法

时间:2008-08-28 18:51:32

标签: algorithm pattern-recognition

在过去,我必须开发一个作为规则评估员的程序。你有一个先行者和一些联邦政府(行动),所以如果先行者躲到了真实的行动。

当时我使用了RETE algorithm的修改版本(有三个版本的RETE,只有第一个是公开的)用于先行模式匹配。我们在谈论一个大系统,每条规则有数百万次操作,一些操作员在几条规则中“重复”。

我可能必须用其他语言再次实现它,即使我在RETE中有经验,有没有人知道其他模式匹配算法?有任何建议或我应该继续使用RETE吗?

1 个答案:

答案 0 :(得分:4)

TREAT算法类似于RETE,但不记录部分匹配。因此,在某些情况下,它可能比RETE使用更少的内存。此外,如果您修改了大量已知事实,那么TREAT可以更快,因为您不必花时间撤消。

还有RETE*通过保存一些连接节点状态(取决于您要使用多少内存)来平衡RETE和TREAT之间的平衡。因此,您仍然可以节省一些断言时间,但也可以节省内存和缩回时间,具体取决于您调整系统的方式。

您可能还想查看LEAPS,它使用惰性评估方案并包含RETE和TREAT的元素。

我只有RETE的个人经验,但似乎RETE *或LEAPS是更好,更灵活的选择。