比较使用不同相同函数的两种算法

Comparing two algorithms that use differently the same functions

我有一套规则,所有规则都从长文本中提取相同类型的实例(例如城市名称)。 我正在比较以下两种算法:

算法1:

算法2:

知道:

算法1和算法2一样吗?他们return 相同的RulesList(相同的规则)到底是什么?

或者算法 1 删除的规则比算法 2 多? (因为在每次迭代中都会调用 RemoveSubsumedRules())。

谢谢。

两种算法做同样的事情(就产生的结果而言)。

看到这一点,我们可以证明,最终,RuleList 正是由那些没有被任何其他规则包含的规则组成的。在算法 2 的情况下,这很清楚,所以让我们为算法 1 证明这一点。

首先,很容易看出那些规则确实在最终的RuleList中,因为它们不能被RemoveSubsumedRules删除。

其次,假设在最终的RuleList 中有一些规则R1 被一些其他规则R2 包含(不一定在RuleList 中)。然后存在一些不同于 R1 的规则 R3,它包含 R1 并且不被任何其他规则包含(注意 R3 可能等于 R2)。我们已经知道 R3 在最终的 RuleList 中,因为没有其他规则包含它。但在这种情况下,当最后一次调用 RemoveSubsumedRules 时,R1 和 R3 都在 RuleList 中,因此 R1 应该被删除,但我们认为情况并非如此。我们遇到了矛盾,所以最终的RuleSet中不能存在像R1这样的规则。