Optaplanner 看不到我的计划变量
Optaplanner doesn't see my planning variable
所以我有一个class周期:
@PlanningEntity
public class Cycle {
private Integer START = 29;
private Integer END = 42;
private final int SUSTAIN_START = 29;
private final int SUSTAIN_END = 72;
@PlanningVariable(valueRangeProviderRefs = { "startRange" } )
public Integer getStartIndex() {
System.out.println("DEBUG: getStartIndex");
return START;
}
public void setStartIndex(Integer i) {
System.out.println("DEBUG: setStartIndex");
START = i;
END = i+13;
}
@ValueRangeProvider(id = "startRange")
public List<Integer> getStartIndexes () {
ArrayList<Integer> startRange = new ArrayList<Integer>();
for(int i = SUSTAIN_START; i < SUSTAIN_END; i++) {
startRange.add(i);
}
return startRange;
}
}
并且 Optplanner 从未调用过任何这些方法,我不知道为什么。我尝试在 getStartIndexes 方法上添加“@ProblemFactCollectionProperty”注释,但我在文档中读到该注释只能在 PlanningSolution 中使用。
我也尝试过使用 scanAnnotatedClasses 并在我的求解器配置中明确指定 entityClass,但似乎都没有什么不同。
为什么 Optaplanner 看不到我的变量,为什么 Optaplanner 不更改它?
更多信息:我使用的是 Optaplanner 7.30 版。0.Final 我有另一个规划实体,其中有两个规划变量,Optaplanner 可以看到和更改这些变量。
根据@yurloc 的评论,问题是我在 PlanningSolution class 中缺少 Cycles 的 PlanningEntityCollectionProperty。谢谢您的帮助!
所以我有一个class周期:
@PlanningEntity
public class Cycle {
private Integer START = 29;
private Integer END = 42;
private final int SUSTAIN_START = 29;
private final int SUSTAIN_END = 72;
@PlanningVariable(valueRangeProviderRefs = { "startRange" } )
public Integer getStartIndex() {
System.out.println("DEBUG: getStartIndex");
return START;
}
public void setStartIndex(Integer i) {
System.out.println("DEBUG: setStartIndex");
START = i;
END = i+13;
}
@ValueRangeProvider(id = "startRange")
public List<Integer> getStartIndexes () {
ArrayList<Integer> startRange = new ArrayList<Integer>();
for(int i = SUSTAIN_START; i < SUSTAIN_END; i++) {
startRange.add(i);
}
return startRange;
}
}
并且 Optplanner 从未调用过任何这些方法,我不知道为什么。我尝试在 getStartIndexes 方法上添加“@ProblemFactCollectionProperty”注释,但我在文档中读到该注释只能在 PlanningSolution 中使用。
我也尝试过使用 scanAnnotatedClasses 并在我的求解器配置中明确指定 entityClass,但似乎都没有什么不同。
为什么 Optaplanner 看不到我的变量,为什么 Optaplanner 不更改它?
更多信息:我使用的是 Optaplanner 7.30 版。0.Final 我有另一个规划实体,其中有两个规划变量,Optaplanner 可以看到和更改这些变量。
根据@yurloc 的评论,问题是我在 PlanningSolution class 中缺少 Cycles 的 PlanningEntityCollectionProperty。谢谢您的帮助!