1

我试图为我的链式实体实现不可移动的规划实体。我的计划问题类似于 optaplanner 示例中的项目作业调度示例。以前我在这里发布了一个关于锁定我的链式实体的问题:如何在项目作业调度解决方案中添加不可移动功能? 项目负责人已经从 jira 给了我一些解决方法:https ://issues.jboss.org/browse/PLANNER-239 。现在我试图为解决方法编写代码,但被卡住了。请有人帮我完成这些解决方法代码。

从吉拉:

解决方法:添加自定义移动过滤器,如果 getNextEntity 对于更改和交换移动不是不可移动的。至于子链移动......不允许反转。至于 2opt 移动,不允许内部移动(因为它们反转)。无论如何,解决方法很笨拙,这个问题很重要。

我只是想了解解决方法,所以在这里,请有人帮我完成这个解决方法:

自定义移动过滤器,如果 getNextEntity 不是不可移动的更改和交换移动:

public boolean accept(ScoreDirector scoreDirector, Allocation allocation) {         
   JobType jobType = allocation.getJob.getJobType();
   boolean isLocked = false;
   for(Allocation nextAllocation : allocation.getSuccessorAllocationList()) {
      isLocked = nextAllocation.isLocked();
   }       
   return !isLocked && jobType != JobType.SOURCE && jobType != JobType.SINK;
}

下一句不清楚,所以我不明白该怎么办:

至于 2opt 移动,不允许内部移动(因为它们反转)。

如果有人想帮助我完成此代码,我将不胜感激,谢谢。

4

0 回答 0