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

本地搜索阶段 (1) 需要从初始化的解决方案开始

督辉
2023-03-14

在使用Optaplanner 6.1.0解决车辆路线问题时,我遇到了错误

Java . lang . illegalstateexception:本地搜索阶段(1)需要从初始化的解决方案开始,但是实体的规划变量(Customer.previousStandstill)未初始化

它从解决开始。[org.optaplanner.core.impl.solver.DefaultSolver](Thread-166)解决开始:花费的时间(86)、最佳分数(760un初始化/0hard/0soft)、环境模式(REPRODUCIBLE)、随机(种子为0的JDK)。但在两者之间会抛出异常

java.lang.IllegalStateException:本地搜索阶段 (1) 需要从初始化的解决方案开始,但实体 (KANDIVALI) 的计划变量 (Customer.previousStandstill) 未初始化。通过在此阶段之前配置构造启发式阶段来初始化解决方案。

如何克服这个问题?

共有2个答案

纪勇军
2023-03-14

在本地搜索之前配置一个启发式构造,或者什么都不配置。

郑星雨
2023-03-14

当我在termination中设置“improvedMinutesSpentLimit”时,如下所示:

<termination>
        <unimprovedMinutesSpentLimit>5</unimprovedMinutesSpentLimit>
</termination>

如果CH阶段没有在5分钟内完成,我将在LS阶段开始后得到此错误。CH阶段似乎提前退出,并不是所有规划实体都已初始化。

所以我查看了手册,并设置了如下终止条件

    <termination>
        <minutesSpentLimit>15</minutesSpentLimit>
    </termination>

它工作正常。

 类似资料:
  • 问题内容: 还原此类时,我想手动初始化,否则,我只想使用默认的序列化。 我该如何在不恢复整个序列化机制的情况下,将一种方法注入对象还原过程,就像我希望做的那样? 问题答案: 实现方法: 从javadoc: 在序列化和反序列化过程中需要特殊处理的类必须实现具有以下确切签名的特殊方法: 私有void readObject(java.io.ObjectInputStream in)抛出IOExcepti

  • 问题内容: print语句导致以下编译时错误, 局部变量f可能尚未初始化 如果Java中的原语已经具有默认值(float = 0.0f) ,为什么需要定义一个? 所以这有效 感谢大家! 问题答案: 因为它是一个局部变量。这就是为什么什么都没有分配的原因: 局部变量略有不同。编译器永远不会为未初始化的局部变量分配默认值。如果您无法在声明它的地方初始化本地变量,请确保在尝试使用它之前为其分配一个值。访

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

  • 我无法理解以下几行之间的区别(http://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.2 ) A) 准备工作包括将静态字段初始化为默认值。 b)类的初始化包括为类中声明的静态字段(类变量)执行初始化器。 这是否意味着'a'将在准备阶段分配默认值,'b'将在初始化阶段分配值:

  • 如果我在我的类中创建一个bool,就像一样,它默认为false。 当我在我的方法中创建相同的bool时,我得到一个错误“使用未分配的局部变量检查”。为什么?

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