我想知道值范围提供者是如何工作的。
我有一门课叫
Entity
,在该类中有多个实例,都映射在
Solution
就像下面一样
@PlanningEntityCollectionProperty
public List<Entity> getEntityList() {
return entityList;
}
实体
物体
@ValueRangeProvider
实体
班级。
@PlanningEntity()
public class Entity {
@PlanningVariable(valueRangeProviderRefs = {"quantityRange"})
public Long getAllocatedWeight() {
return allocatedWeight;
}
@ValueRangeProvider(id = "quantityRange")
public CountableValueRange<Long> getQuantityRange() {
return ValueRangeFactory.createLongValueRange(minWeights, maxWeights);
}
}
getQuantityRange
永远不会被调用,Optaplanner在生成结果时也不会考虑范围,但所有drools规则都按预期工作良好。我所需要的就是,静态地为每个实体对象分配范围。
注意:我正在使用
InvestmentQuantityTransferMove.java
投资
我的解决方案也是类似的,所有实体的总和应该是
完全等于一个特定的值。