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

Optaplanner:可重复的解决方案

金阳曜
2023-03-14

我正在尝试解决类似于员工名册的问题。我面临的问题是,每次我运行求解器时,它都会生成不同的任务。这使得更难调试为什么选择特定案例而不是另一个案例。为什么会这样?

附注:我的任务有许多硬性限制,可能无法全部满足(大多数情况下,我仍然看到一些负面的硬性评分)。所以我的终止策略是基于< code > unimprovedSecondsSpentLimit 。会不会是这个原因?

共有1个答案

干子瑜
2023-03-14

是的,很可能是终止。OptaPlanner的默认< code>environmentMode保证在完全相同的步骤(*)获得完全相同的解决方案。但是每次运行的CPU周期有很大的不同,所以这意味着每次运行的步数或多或少。使用< code>DEBUG日志来查看。

使用< code>stepCountLimit或< code > improvedstepcountlimit 终止。

(*)除非文件中另有规定。例如,如果与时间限制终止一起使用,即使在完全相同的步骤中,模拟退火也会不同。

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

  • 我尝试了开发人员为同一问题提供的所有解决方案。我像这样更新了 Vite.config.js 文件—— 我在两个文件中都添加了标头属性- 但是,当我检查代码并在网络标头属性下看到时- 如何更改这些标头属性或任何其他方法来解决此 CORS 问题。我只想解决前端问题。目前,我正在通过禁用安全 chrome 在 Chrome 中运行此应用程序.exe --user-data-dir=“C://Chrome

  • 我正在为一所学校创建课程表生成器,我面临着两个挑战: 在构建启发式阶段,我没有得到任何回调传入这意味着我不能在这个阶段向用户提供任何反馈。(到今天为止只有大约10秒左右,但仍然很烦人。) 我怀疑这是设计使然(从这个问题来看),但如果我错了,请纠正我。 (我怀疑这样的想法是,构造启发式阶段无论如何都应该很快,并且99%的长时间运行的解决方案将花费在本地搜索阶段,因此这是唯一真正重要的阶段。对吗?)

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

  • 本文向大家介绍thinkphp3.0输出重复两次的解决方法,包括了thinkphp3.0输出重复两次的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkphp3.0输出重复两次的解决方法。分享给大家供大家参考。具体方法如下: 主入口文件如下: 使用以上代码作文入口文件,但输入结果重复两次. 原来是因为 thinkphp3.0的入口文件更加简化,默认情况下,只需要添加一行代码