我有包含與屬性FOO中的相同類的實例許多可變大小的列表,以及對於每個列表,我必須應用等的規則:如果有一個元件如何檢查列表中元素之間的約束/是否約束編程?
- FOO = A不能有在以foo元素[ B,C,d]
- 如果有一個元素富= X必須有由至少一個以foo在[Y,Z]
- 可以有MIN和MAX元件之間富= BAR
結合上述三條規則可能足以表達任何類似的約束我永遠需要。這有點像依存性軟件包檢查,但我有數量和缺乏版本:)
一個幼稚的做法是:
R_CONFLICT={ A: [B,C,D] }
R_DEPENDS ={ X: [ [Y,Z], W, .. } # means: A depends on either Y or Z, and W
R_MIN ={BAR: n, BAZ: m}
R_MAX ={BAR: o, BAZ: p}
# now just loop over lists to check them..
這是Constraint programming一個問題嗎?我實際上並不需要解決東西,得到的結果,我需要驗證我的名單對一些約束和檢查它們是否滿意或不滿意。你如何分類這個問題,你將如何解決它?
爲什麼它的價值,我在Python編碼,但我歡迎一個泛型編程答案:)如果事實證明我必須深入研究約束編程我可能會開始嘗試python-constraint。