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

使用optaplanner返回调度问题的多个解决方案

田成化
2023-03-14

强大的textHello Optaplanner专家,

set of jobs, A, B and C, which can be completed by 5 resources, say Will, Jane, Roy, Tom, Jeff. 
1. Will - A, Roy - B and Jeff - C
2. Roy - B, Tom - B and Jane - C
... and so on

爱丽丝

共有1个答案

洪建茗
2023-03-14

可能有更好的解决方案,但我建议通过以下方式将SolverEventListener添加到您的求解器中:

solver.addEventListener(new SolverEventListener<Solution>() {
    @Override
    public void bestSolutionChanged(BestSolutionChangedEvent<Solution> event) {
        // TODO Auto-generated method stub  
    }
});

每次找到更好的解决方案时,都会调用bestSolutionChanged方法。从这里您将需要克隆(我想Geoffrey会更清楚)解决方案,并将其保存到一个列表中(也许保留最后5个最佳解决方案或其他什么?我将检查克隆过程需要多长时间,因为方法应该返回得相当快。

 类似资料:
  • 我有以下CVRPTW问题,我正在尝试使用OptaPlanner找到一个好的解决方案。时间为hh: mm: ss格式。 我的DRL文件是这样的。此外,我还定义了一个与准备时间之前到达相关的硬约束。我的解算器配置如下,但终止标记不同: 这是问题陈述: 我有2辆车,容量为10件物品和1个仓库。 这是解决方案(客户按车辆分组,按到达时间排序): (D=需求,Ar.T=到达时间,上一个D=与上一个位置的距离

  • 我正在为班级(老师,课程,时间)安排项目。我使用optaplanner作为spring-boot应用程序的一部分,测试代码正在正确编译和运行,但结果包含空解决方案,在日志输出中我看到以下消息: RTED:花费的时间(11)、最佳得分(0hard/0soft)、环境模式(REPRODUCIBLE)、移动线程计数(NONE)、随机(带有种子0的JDK)。2021-09-28 22:39:26.619信

  • 本文向大家介绍Fragment 多层嵌套方法调用问题的解决方案,包括了Fragment 多层嵌套方法调用问题的解决方案的使用技巧和注意事项,需要的朋友参考一下 Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可

  • 本文向大家介绍Mybatis返回插入的主键问题解决方案,包括了Mybatis返回插入的主键问题解决方案的使用技巧和注意事项,需要的朋友参考一下 MyBatis添加记录后获取主键ID,这是一个很常见的需求。这个需求有分为两种情况:(1)添加单条记录时获取主键值;(2)获取批量添加记录时各记录的主键值。 备注:MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。 1、添加单一记录

  • 本文向大家介绍python 解决函数返回return的问题,包括了python 解决函数返回return的问题的使用技巧和注意事项,需要的朋友参考一下 定义一个带返回值的函数,需要使用return语句在调用这个函数时返回一个目标值,当没有return时,函数默认返回None。 分析下面两个程序: out: 2017-9-25 out: 2017-9-25 None 对于第一个程序,仅仅调用了'no

  • 问题内容: 在我正在写的打印函数中,我试图根据switch语句的结果返回一个值;但是,我得到的错误太多,无法返回。 如果这个问题的答案很简单,请原谅我,但是函数有多少个参数可以返回一件事就不应该吗?还是需要为每个参数返回一件事。 这是我的代码。我在返回行上收到错误(返回的参数过多)。如何修复它,使其返回在switch语句中设置的字符串? 问题答案: 您需要指定输入参数后返回的内容,这不是pytho