1. 程式人生 > >Chapter 3 Constraint Propagation序

Chapter 3 Constraint Propagation序

約束推理涉及各種型別的技術,以解決滿足一組約束的問題的固有難以處理的問題。 約束傳播是這些型別的技術之一。 約束傳播是解決約束問題過程的核心,如果沒有它,我們很難想到約束推理。

約束傳播是一個非常通用的概念,根據時期和作者的不同,出現在不同的名稱下。在這些名稱中,我們可以找到約束鬆弛,過濾演算法,縮小演算法,約束推理,簡化演算法,標籤推理,區域性一致性實施,規則迭代,混沌迭代。

約束傳播嵌入了任何推理,其中包括明確禁止問題的某些變數的值或值組合,因為其約束的給定子集不能滿足。例如,在填字遊戲中,當您從歐洲國家/地區中丟棄單詞NORWAY和SWEDEN時,由於第二個字母必須為“R”,因此您可以傳輸約束。在包含兩個變數x1和x2的問題中,取1..10中的整數值,以及指定| x1 - x2 |的約束。 > 5,通過傳播這個約束,我們可以禁止x1和x2的值為5和6。解釋這些'nogoods'是一種減少搜尋機制將探索的組合空間的方法。

約束傳播的概念可以在不同種類和名稱的其他領域中找到。 (例如,參見命題演算中“單位傳播”的條款的傳播[40]。)然而,這個概念顯示了其最完美的形式。沒有其他領域約束傳播的概念以各種形式出現,並且其特徵已被如此深入地分析。

在過去的30年中,科學界已經投入了大量精力來形成和表徵這種無處不在的約束傳播概念,並提出了傳播約束的演算法。 這種形式化可以分為兩個主要方面:區域性一致性和規則迭代。 區域性一致性定義了約束問題在約束傳播之後必須滿足的屬性。 這樣,操作行為就完全打開了,唯一的要求就是在輸出上實現給定的屬性。 相反,規則迭代方法定義了傳播過程本身的屬性,即應用於問題的減少操作的種類/順序的屬性。

本章不包括資料流約束[76],即使這一系列研究已經成為互動式應用中相當多工作的焦點,並且其中一些論文談到了這些約束的“傳播”[27]。 它們確實與約束程式設計中出現的技術相差甚遠。

本章的其餘部分安排如下。 第3.1節包含本章中使用的基本定義和符號。 3.2節在統一框架內規範了所有約束傳播方法。 第3.3-3.8節包含主要的現有約束傳播型別。 這些部分中的每一部分都介紹了傳播型別和解決方案的基本知識。