[英]Why is the complexity of Arc-Consistency Algorithm O(cd^3)?
为什么Arc-Consistency Algorithm O(cd 3 )的复杂性?
我将假设您正在参考AC-3一致性算法。 这个算法在这里很好地简单描述。 我将参考这个算法的解释。
首先,让我们计算方法REVISE
的复杂性(方法修改两个域之间的一个弧)。 对于一个域中的每个值,它正在检查第二个域的所有值。 因此, REVISE
方法的复杂性将是d 2 ,其中d is maximum domain size
。
现在,在最坏的情况下, REVISE
会被召唤多少次? 最初,队列中存在所有弧。 每次调用REVISE
,都会从队列中删除一个弧。 这将是该方法的调用。 但我们也将弧线添加回队列。 我们能做多少次? 好吧,只有当弧从指向的域中删除了值时,我们才会将弧添加回队列。 一个弧指向一个域,因此我们只能将其添加为该域中值的数量。 所以在最坏的情况下,我们将每个弧添加回队列d次。
REVISE
在最大e + ed次调用,其中e is number of arcs
。
当我们把它们放在一起时,我们发现整个算法的复杂性是O((e + ed)d 2 ),即O(ed 3 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.