比较使用不同相同函数的两种算法
Comparing two algorithms that use differently the same functions
我有一套规则,所有规则都从长文本中提取相同类型的实例(例如城市名称)。
我正在比较以下两种算法:
算法1:
算法2:
知道:
- 每条规则都有 属性 "TP" 是 "correct extracted instances".
的数量
- 函数sort():根据TP值对RulesList进行降序排序
- 函数 RemoveSubsumedRules() 从 RulesList 中删除规则 R2,前提是其 "correct extracted instances" 集包含在规则 R1(在 RulesList 中)中。
算法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这样的规则。
我有一套规则,所有规则都从长文本中提取相同类型的实例(例如城市名称)。 我正在比较以下两种算法:
算法1:
算法2:
知道:
- 每条规则都有 属性 "TP" 是 "correct extracted instances". 的数量
- 函数sort():根据TP值对RulesList进行降序排序
- 函数 RemoveSubsumedRules() 从 RulesList 中删除规则 R2,前提是其 "correct extracted instances" 集包含在规则 R1(在 RulesList 中)中。
算法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这样的规则。