当前位置: 首页 > 知识库问答 >
问题:

在OptaPlanner会议安排示例中,是否有办法根据房间的最小容量将会议分配到房间?

金飞
2023-03-14

我正在查看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就够了。你有什么建议吗?

共有1个答案

益富
2023-03-14

roomCapacity重命名为roomMaximumCapacity。然后添加roomMinimumCapacity。然后添加一个约束规则来处理这个问题。

 类似资料:
  • 我目前正在开发一个基于文本的游戏,在游戏中,你可以在房间之间移动,并在所说的房间中拾取物品,直到你到达“老板”房间。到目前为止,我已将所有内容正确打印出来,并将其显示在房间中是否有物品、物品是什么以及您所在的房间中。 我目前的问题是,它不是根据用户输入来改变房间。例如,您从Sepulture开始。用户输入North会将您的位置带入兵营。然而,这并不能让我远离seculture。 我的代码如下: 感

  • 我正在尝试用Mockito模拟我的房间数据库,以便我可以在我的存储库中测试复杂的算法。无论我朝哪个方向走,我都会遇到很多不同的错误。 首先,我试图模仿整个数据库对象,这创建了一个空接口异常。 为了解决这个问题,我使用了房间的静态对象生成器。(这是一个仪器化的单元测试,所以我可以访问底层的Android依赖项) 有了这个,我收到了一个被滥用的匹配器异常… org.mockito.exceptions

  • 有成会议是一款专注会议管理的移动办公应用, 核心作用是发起有执行力的会议,为企业降低会议成本和提高沟通协作效率。 管理会议室 添加会议室 会议室添加 会议预约 会议内容编辑 选择参会人员 预约会议室 会议模板 支持创建会议模板 查找会议室 查找会议室 会议室查找 会议管理 我的会议管理列表 任务管理 我的任务管理列表 榜单排名 榜单排名

  • 问题内容: 我正在寻找一个支持多个房间的websocket / node.js聊天实现。 我还将编写一个需要多个房间或服务器的应用程序,而我只是在寻找一些人们如何操作的代码示例。 谢谢。 我知道有一个提供此服务的服务http://pusherapp.com,但我正在寻找一个开源示例。 问题答案: 我意识到您尚未收到针对您问题的解决方案。建议在我提供答案的地方看这个问题: node-websocke

  • 1.手机版 操作方法:收到会议通知或会议提醒-好的/去会议查看-签到   2.电脑版 操作方法:收到会议通知或会议提醒-知道了/去会议查看-手机签到 (1)收到会议通知 (2)点击“查看会议详情”。 (3)点击“知道了”可进入会议管理中进行查看。 (4)按照实际情况选择是否参会以及会议留言。

  • 当我试图构建我的应用程序时,我遇到了以下编译错误: 持久性模块在Android设置中是独立的。 建筑格拉德尔 ext.androidXRoom=“2.1.0-alpha02” 我试着把kotlin版本,room版本,改回AndroidArch room,但没用。我还尝试了清理项目和使Android Studio的缓存失效。但它不起作用。 编辑:AppDatabase源