[英]How to create/post and delete/unpost constraints during search in Choco
我在Choco求解器中有一個項目,但是我對搜索過程中的外部影響有疑問。
我有一個規划圖,其中有(假設)BoolVars按層組織,並為各層分配了持續時間,這意味着一些動作開始並且一些結束。 從計划結束到計划開始,變量選擇是靜態的(層中動作的選擇是任意的)。
我正在研究一種使用單純形算法來幫助分配持續時間的解決方案,因為在動作A的開始和結束之間,我們需要使持續時間等於N。 兩者之間還有更多限制。
附加約束是基於BoolVars的實例創建的,但是它們是在外部矩陣中組織的,因此,當添加動作A的結束動作時,實際上會在矩陣中添加附加行,並重新構造當前約束。 回溯時,我們想以相反的方式修改矩陣,即刪除行並取消發布約束。
有什么方法可以在Choco中實現這種復雜的行為?
您是否事先知道將布爾值設置為true會觸發什么約束?如果是,請使用reification(在開始時創建約束,但將其與boolvars關聯,而不是發布它們)。
要獲得Choco Solver的專業支持,可以聯系https://www.cosling.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.