0
我試圖實現車輛路線示例的一個變體,而不是客戶,我有「拾起」和「脫落」。我的硬約束是:處理鏈式規劃變量中的多個移動
- 每個相關聯的拾取/落對必須由同一車輛進行(例如,如果車輛的拿起一個項目,該項目不會被車輛B脫落)。
- 必須在關聯關閉之前進行拾取(例如,除非您已經拿起它,否則不能丟棄任何東西)。
- 車輛不能超過其最大載客量。
除了這些嚴格的約束,我的解決方案非常類似於車輛路線示例,其中每輛車都有一系列位置(PickUp或DropOff)。
我遇到的問題是,使用默認移動它不能輕易地將PickUp和DropOff移動到不同的車輛。例如,在一個無效的狀態下改變移動的結果,因此將被拒絕:
要正確地完成移動,我需要做一個額外的移動,使得送機屬於同一鏈作爲皮卡:
感覺就像正確的事情做是實施某種複合移動的它同時執行兩項舉措,但是我不知道的接近最好的辦法。以前有沒有人遇到類似的問題?
謝謝傑弗裏,我會試試看。我也試過使用CartesianProductMoveSelector來創建CompositeMoves。然而,我總是處於一種環狀的環境中,這樣在得分過程中會導致我無限循環。你知道爲什麼會發生這種情況嗎? – DeadPassive
嗨,傑弗裏。你知道創建ChainedChangeMoves的最佳方式是什麼嗎?構造函數需要一個GenuineVariableDescriptor和一個SingletonInverseVariableSupply,但我無法通過MoveListFactory訪問這些。 – DeadPassive