在會(huì)議安排示例中,我試圖應(yīng)用過度約束的計(jì)劃。我檢查了文檔并在 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但是,當(dāng)我運(yùn)行該應(yīng)用程序時(shí),六個(gè)不同的人中只能分配一個(gè)人。如果 nullable 為 false 并且每個(gè)人都可以分配,則不會(huì)發(fā)生這種情況。也這六人不打破硬約束。您對(duì)過度約束規(guī)劃解決方案問題有什么想法嗎?
1 回答

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