为什么 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 可以改善 Opt​​aPlanner 的行为:当从没有可移动实体的数据集开始时,它应该简单地立即结束求解(它们是 none 或者都是不可移动的(例如因为它们被固定))。