Переменная планирования Optaplanner НЕ принимает значение NULL, НО по-прежнему назначается null

переменная планирования НЕ может принимать значение 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

person EeE    schedule 10.02.2019    source источник
comment
почему вы не принимаете ответ, если он вас устраивает?   -  person giannis christofakis    schedule 17.09.2019


Ответы (1)


Обычно это результат невыполнения этапа строительства.

https://docs.optaplanner.org/7.14.0.Final/optaplanner-docs/html_single/index.html#constructionHeuristics

например вот так

<constructionHeuristic>
  <constructionHeuristicType>STRONGEST_FIT_DECREASING</constructionHeuristicType>
</constructionHeuristic>

person Kostas Papadakis    schedule 20.02.2019
comment
спасибо за ваш ответ. так как избежать назначения нулевой переменной? - person EeE; 22.02.2019