2017-04-09 61 views
0

我有在喬科求解一個項目搜索中刪除/ unpost的限制,但我有一個關於搜索過程中的外部效應問題。如何創建/職位和喬科

我有與(比方說)在分配給層,這意味着層和持續時間組織BoolVars一個規劃圖,一些動作的開始和結束部分。從計劃結束到計劃開始,變量選擇是靜態的(層中的動作選擇是任意的)。

我研究了使用單純形算法來幫助分配持續時間爲開端,一個動作一個我們需要有等於ň的持續時間結束之間的解決方案。中間還有一些限制。

的附加約束創建基於所述BoolVars的實例化,但是它們是在外部基質組織的,因此當添加動作的結束動作,在效果的額外行被添加到矩陣和當前的約束條件重新制定。在回溯時,我們希望以相反的方式修改矩陣,即移除行並取消約束。

是否有某種方式來實現這種巧克力複雜的行爲?

回答

0

你提前知道,如果一個布爾值設置爲true,則觸發什麼約束嗎?如果是,請具體化(創建之初的約束,但他們boolvars張貼,而不是關聯)。

有關巧克力求解的專業支持,您可以聯繫https://www.cosling.com/

+0

具體化並不能解決問題,很遺憾。我通過我的模型廣泛使用它,但這是不同的。它在實例化時觸發外部動作,並在回溯時觸發反向操作。 – Eramol

+0

1)你應該能夠動態地創建和使用solver._post後約束(假,C),使得它在原路返回刪除(見的javadoc)。 2)你也可以使用一個IOperation觸發自定義操作(如顏色爲紅色按鈕,並把它回綠色後原路返回): - 你必須做的事(讓說顏色塞入紅色) - 做環境。保存(新IOperation(color in ref))...你可以使用lamda ...該代碼將在回溯時調用 在你的情況下,你將添加/刪除行而不是着色,我只是想表明你可以實際做任何事情。 我清楚嗎? :-) –