簡體   English   中英

在OptaPlanner會議計划示例中,是否可以根據會議室的最小容量將會議分配給會議室?

[英]Is there a way to assign meetings to the rooms according to minimum capacity of room in OptaPlanner Meeting Scheduling example?

我正在看OptaPlanner會議安排示例。 有房間和人。 我已經定義了每個房間的最小和最大容量,然后嘗試實施一些規則。 一個規則是不要超過最大容量,我已經實現了以下規則:

rule "Max Quota"
    when
    $ma : MeetingAssignment( room != null,$city: city, $room:room, $roomCapacity : roomCapacity)
    accumulate(
        $m2 : MeetingAssignment(room != null,city==$city, calculateOverlap($ma) > 0, room.getRoomName() == $room.getRoomName());
        $total : count($m2);
        $total > $roomCapacity
    )
    then
        scoreHolder.addMediumConstraintMatch(kcontext, -50000000);
end

工作正常 現在我要實現最小容量。 例如,有四個房間,每個房間的最大容量為60,最小容量為20(或可以不同)。 分配后,一個房間可容納50人,第二個40,第三個60,最后一個只有10人。 最后一個房間不超過20。我不想分配40、40、40、40之類的東西。最后一個房間超過20個就足夠了。您有什么建議嗎?

roomCapacity重命名為roomMaximumCapacity 然后添加roomMinimumCapacity 然后添加一個約束規則來處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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