我正在尝试为实体计划变量实现值范围。变量定义为
@PlanningVariable(valueRangeProviderRefs = {"xPosRange"})
public BigDecimal getXCenter()
{
return xCenter;
}
ValueRangeProvider 被指定为
@ValueRangeProvider(id = "xPosRange")
public CountableValueRange<BigDecimal> getXPositions()
{
return ValueRangeFactory.createBigDecimalValueRange(new BigDecimal(0.0,
MathContext.DECIMAL64), new BigDecimal(maxLength, MathContext.DECIMAL64));
}
理想情况下,我希望在规划实体中拥有它。但是,在求解解决方案时,这些值永远不会更改。将“ValueRangeProvider”添加到解决方案时也是如此。
是否需要将“CountableValueRange”集合添加到问题事实中?如果是这样,添加
facts.addAll(getXPositions());
引发参数不匹配错误。
我试图将以下内容添加到 xml 配置文件中
<changeMoveSelector>
<valueSelector>
<variableName>xCenter</variableName>
</valueSelector>
</changeMoveSelector>
但是,这会引发运行时错误,说明 xCenter 在实体中没有“getter”。
The selectorConfig (ValueSelectorConfig(xCenter)) has a variableName (xCenter) for
entityClass (packetName.Part) that does not have that as a getter.
Check the spelling of the variableName (xCenter)
请任何人都可以指出我正确的方向。谢谢你。