簡體   English   中英

在Choco中搜索期間如何創建/發布和刪除/取消發布約束

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

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