在會議安排示例中,我試圖應(yīng)用過度約束的計劃。我檢查了文檔并在 stackoverflow 中找到了答案,然后將nullable = true應(yīng)用于 MeetingAssignment 中的 @PlanningVariable: @PlanningVariable(valueRangeProviderRefs = { "roomRange" }, nullable = true)
public Room getRoom() {
return room;
}我還為流口水添加了一條規(guī)則:rule "Assign Every Person To A Room"
when
$meetingAssignment : MeetingAssignment(room == null)
then
scoreHolder.addMediumConstraintMatch(kcontext, -100);
end我的記分員是:HardMediumSoftScoreHolder但是,當我運行該應(yīng)用程序時,六個不同的人中只能分配一個人。如果 nullable 為 false 并且每個人都可以分配,則不會發(fā)生這種情況。也這六人不打破硬約束。您對過度約束規(guī)劃解決方案問題有什么想法嗎?
1 回答

慕萊塢森
TA貢獻1810條經(jīng)驗 獲得超4個贊
最后我找到了解決方案。我只有硬和中等約束條件。我已將所有 mediumConstraint 懲罰更改為 softConstraint,但“將每個人分配到一個房間”規(guī)則除外?,F(xiàn)在我可以分配每個人。
添加回答
舉報
0/150
提交
取消