1

連鎖エンティティに不動の計画エンティティを実装しようとしていました。私の計画の問題は、optaplanner の例のプロジェクト ジョブ スケジューリングの例に似ていました。以前、連鎖エンティティをロックする問題について質問を投稿しました: How to add Immovable feature in Project Job Scheduling solution? プロジェクト リーダーは、すでに 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