簡體   English   中英

為什么Arc-Consistency Algorithm O(cd ^ 3)的復雜性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM