为什么 OptaPlanner 在我使用 @PlanningPin 时给出 "Bailing out of neverEnding selector to avoid infinite loop." 错误?
Why OptaPlanner gives "Bailing out of neverEnding selector to avoid infinite loop." error when I used @PlanningPin?
我已经阅读了 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 为假,则没有问题,算法完美运行,但是,当它为真时(此 class 内的 PlanningVariable 设置了一个值,它不为空)它给出错误:
[FilteringEntitySelector] WARN - Bailing out of neverEnding selector
(Filtering(FromSolutionEntitySelector(CrewGroupAssignment))) to avoid
infinite loop.
如果此 class 中的 PlanningVariable 未设置值,则它也不起作用。为什么会因为这个原因报错?
谢谢!
我们以前见过这个。这是因为您的所有实体都已固定。有一个 jira 可以改善 OptaPlanner 的行为:当从没有可移动实体的数据集开始时,它应该简单地立即结束求解(它们是 none 或者都是不可移动的(例如因为它们被固定))。
我已经阅读了 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 为假,则没有问题,算法完美运行,但是,当它为真时(此 class 内的 PlanningVariable 设置了一个值,它不为空)它给出错误:
[FilteringEntitySelector] WARN - Bailing out of neverEnding selector (Filtering(FromSolutionEntitySelector(CrewGroupAssignment))) to avoid infinite loop.
如果此 class 中的 PlanningVariable 未设置值,则它也不起作用。为什么会因为这个原因报错?
谢谢!
我们以前见过这个。这是因为您的所有实体都已固定。有一个 jira 可以改善 OptaPlanner 的行为:当从没有可移动实体的数据集开始时,它应该简单地立即结束求解(它们是 none 或者都是不可移动的(例如因为它们被固定))。