optaplanner - Optaplanner 计划变量不可为空,但仍分配给 null
问题描述
计划变量不可为空。当我在变量侦听器中为我的影子值打印计划实体时,仍在计划过程中 NULL 值仍分配给计划变量?
策划单位:
// Planning variables: changes during planning, between score calculations.
@PlanningVariable(valueRangeProviderRefs = {"numberRange"})
private Integer number;
@ValueRangeProvider(id = "numberRange")
private List<Integer> numberRange;
@CustomShadowVariable(variableListenerClass = BoxUpdatingVariableListener.class,
sources = {@PlanningVariableReference(variableName = "number")})
private Integer shaodowNumber;
变量监听器:
protected void updateShadowNumber(ScoreDirector scoreDirector, Box sourceBox) {
System.out.println("number:"+sourceBox.getNumber());
}
结果的一部分:
02:24:46.832 [main ] INFO Solving started: time spent (74), best score (-3init/-90), environment mode (FULL_ASSERT), random (JDK with seed 0).
number:1
number:null
number:2
number:null
number:3
number:null
number:4
number:null
number:5
number:null
number:6
number:null
number:7
number:null
number:7
number:7
number:null
number:null
02:24:46.883 [main ] DEBUG CH step (0), time spent (125), score (-2init/-43), selected move count (7), picked move (Box-1 {null -> 7}).
number:1
number:null
number:2
number:null
number:3
number:null
number:4
number:null
number:5
number:null
number:6
number:null
number:6
number:7
number:6
number:null
解决方案
这通常是未运行构建阶段的结果
例如像这样
<constructionHeuristic>
<constructionHeuristicType>STRONGEST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>
推荐阅读
- java - Mapbox for Android,使用来自服务器的 Tiles
- javascript - 我正在尝试显示几行 innerHTML,但它始终只显示一行
- c++ - 交叉和计算,任何人都可以解释一下代码吗?
- c++ - 我可以在矢量上创建视图吗?
- xml - 1对1或1对n关系相关的xml项目显示
- python - 如何使用 argparse 进行强制参数组合?
- python - 如何将 str('2018-12-02T14:29:41.655+05:30') 转换为日期和时间?
- javascript - 我该如何解决 TypeError:无法读取未定义的属性“蛋白质名称”
- typescript - How correctly type function that updates values of specified fields of object
- java - 带有多个主类的 kotlin DSL 的 Gradle 应用程序插件