1. 程式人生 > >3.3.1 Complexity of Arc Consistency

3.3.1 Complexity of Arc Consistency

弧一致性是傳播約束的最古老和最著名的方式。 這確實是一個非常簡單和自然的概念,它保證域中的每個值都與每個約束一致。

REF-ARF [51]可能是第一個將特徵看起來類似於弧一致性的系統之一(即使非正式描述不能確定等效性)。 在Waltz [124]和Gaschnig [61]的論文中,由於提出了實現電弧一致性的演算法,因此對應性更加明顯。 但關於這一主題的開創性論文歸功於Mackworth,他是第一個明確界定二元約束的弧一致性概念的人[86],他將定義和演算法擴充套件到非二元約束[88],並分析了複雜性[89]。

我以最一般的形式給出了弧一致性的定義,即對於任意約束網路(在這種情況下,它通常稱為廣義弧一致性

)。 在其第一次正式演示中,Mackworth將定義限制在二進位制規範化網路中。

constraint c is arc consistent:D is arc consistent on c for all xi ∈ X(c)

variable xi is arc consistent on constraint c:all values in D(xi) are consistent with c in D

從歷史上看,許多關於約束滿足的論文都簡化了網路二進位制和規範化的假設。 這樣做的優點是符號變得更加簡單(見3.1節),新概念更容易呈現。 但這有一些我們必須記住的奇怪效果。

首先,名稱'arc consistency'與二進位制網路繫結得非常緊密,即使二進位制和非二進位制約束的定義完全相同,在非二進位制約束上也經常使用不同的名稱來表示一致性。 有些論文使用超弧一致性或域一致性(hyper arc consistency, or domain consistency),但最常見的名稱是廣義弧一致性(generalized arc consistency)。 在下文中,我將無差別地使用弧一致性(AC)或廣義弧一致性(GAC),但是當網路明確是非二進位制時我將使用GAC。

將AC與二進位制歸一化網路相關聯的第二個奇怪效果是弧一致性和二次一致性概念之間的混淆。 (正如我們將在3.4節中看到的那樣,2-consistency保證了對變數值的任何例項化都可以一致地擴充套件到任何第二個變數。)在二進位制網路上,2-consistency至少與AC一樣強。 當二進位制網路規範化時,弧一致性和2一致性是等價的。 但是,一般情況下並非如此。 以下示例表明,在非規範化二進位制網路上,2一致性嚴格強於AC,並且廣義弧一致性和2一致性在任意網路上都是無法比擬的。

3.3.1 Complexity of Arc Consistency
有許多與GAC推理相關的問題。 值得分析它們的複雜性。 Bessiere等人已經描述了可以詢問約束的五個問題[21]。 有些問題更多是學術性的,而其他問題則是傳播演算法的核心。 一般可以詢問這些問題,也可以詢問特定類別的約束,例如給定的全域性約束(參見第3.8.2節)。 這些問題可以適應我們將在後面部分介紹的其他地方一致性。 在下文中,我使用符號PROBLEM [data]來引用帶有輸入'data'的PROBLEM例項。

GACSUPPORT:GACSUPPORT是所有通用弧一致性演算法的核心。 GACSUPPORT通常會逐個詢問所有值。

ISITGAC:ISITGAC具有實踐和理論重要性。 如果對特定約束強制執行GAC是昂貴的,我們可能首先測試是否有必要啟動傳播演算法(即,約束是否已經是GAC)。 在學術方面,這個問題通常用於比較不同級別的區域性一致性。

NOGACWIPEOUT:在通過回溯過程進行搜尋期間維護GAC時,會發生NOGACWIPEOUT。 在搜尋樹中的每個節點處(即,在每個例項化變數的值之後),我們想知道是否可以在不擦除域的情況下使剩餘網路成為GAC。 如果沒有,我們必須取消分配已經例項化的其中一個變數。

MAXGAC:要求Arc一致性演算法(參見下一小節)返回網路的弧一致性閉包,即GAC的子域和任何較大的子域不是GAC。 MAXGAC描述了這種“極大”問題。

GACDOMAIN:GACDOMAIN返回弧一致性閉包,即GAC演算法計算的域。 GACDOMAIN不是一個決策問題,因為它計算“是”或“否”以外的其他內容。 在[20,21]中,Bessiere等人表明,所有五個問題一般都是NP難的。 此外,在任何特定型別的約束條件下,NP-硬度因子都暗示了其他問題的NP-硬度。

在3.2中給出了定理3.26中的依賴性的總結。 請注意,因為圖3.2中從問題A到問題B的每個箭頭意味著A可以被重寫為對B的多項式呼叫次數,我們立即得出B的易處理性意味著A的易處理性。而決策問題GACSUPPORT,I SITGAC 和NOGACWIPEOUT在NP中,MAXGAC可能在NP之外。 事實上,MAXGAC一般都是DP完整的。 DP複雜性類包含的問題是NP中的問題與coNP中的問題的結合[101]。

假設,則GAC推理因此一般不易處理。 實際上,在具有任何型別約束的網路上實施GAC的演算法可以實現的最佳複雜度在中,其中e是約束的數量,r是約束的最大arity。

雖然與GAC無關,但約束蘊涵([70])是約束求解器用於加速傳播的第六個問題。 可以安全地從網路斷開所需的約束。

在D上實施c意味著D⊆c.ENTAILED通常是coNP完全的。 蘊涵的難以解決和GAC問題的難以處理之間沒有依賴關係。 在C類約束條件下,ENTAILED可以是易處理的,GAC可以解決難以處理的問題,或者相反的問題,或者易於處理或難以處理的問題。