【问题标题】:Local Search phase (1) needs to start from an initialized solution局部搜索阶段(1)需要从一个初始化的解开始
【发布时间】:2017-10-02 08:07:24
【问题描述】:

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

java.lang.IllegalStateException: Local Search 阶段 (1) 需要从已初始化的解决方案开始,但实体的计划变量 (Customer.previousStandstill) 未初始化

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

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

如何解决这个问题?

【问题讨论】:

    标签: optaplanner


    【解决方案1】:

    当我像这样在终止中设置“unimprovedMinutesSpentLimit”时:

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

    并且 CH 阶段没有在 5 分钟内完成,我会在 LS 阶段开始后收到此错误。 似乎 CH 阶段已提前退出,并且并非所有规划实体都已初始化。

    于是我查了手册,这样设置终止条件

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

    而且效果很好。

    【讨论】:

      【解决方案2】:

      在本地搜索之前配置构造启发式或根本不配置任何内容。

      【讨论】:

      • 我已经配置好了。它的发生是因为我提供了终止动态配置。目前使用 setTerminationConfigList 并且在这 2 个配置中
      猜你喜欢
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多