我已经用尽了optaplanner文档,并且@PlanningPin的用法非常简单。 我的PlanningEntity是:
@PlanningEntity()
public class CrewGroupAssignment extends AbstractPersistable {
我在这样的PlanningEntity内部使用了PlanningPin:
@PlanningPin
private Boolean pinned = true;
public Boolean getPinned() {
return pinned;
}
public void setPinned(Boolean pinned) {
this.pinned = pinned;
}
如果this.pinned为false则没有问题,算法可以完美运行,但是,当它为true时(此类中的PlanningVariable设置了一个值,它不为空)会给出错误:
[FilteringEntitySelector]警告-从neverEnding选择器中释放 (Filtering(FromSolutionEntitySelector(CrewGroupAssignment)))避免 无限循环。
如果此类中的PlanningVariable没有设置值,则它也不起作用。为什么会由于这个原因给出此错误?
谢谢!
答案 0 :(得分:0)
我们之前已经看过了。这是因为您所有的实体都是固定的。有一个改进OptaPlanner行为的方法:当从没有可移动实体(它们都不是或全部都不移动(例如,因为它们被固定))的数据集开始时,应该立即结束求解。