制約のある効率的なジョブスケジューリングを開発するには??
スケジューラには、次のメソッドが含まれている必要があります。
startBeforeEndOf(Job j)
startAfterEndOf(Job j)
startBeforeStartOf(Job j)
startAfterStartOf(Job j)
endBeforeEndOf(Job j)
endAfterEndOf(Job j)
endBeforeStartOf(Job j)
endAfterStartOf(Job j)
すべてのジョブには ID と時間パラメーターがあります。
この問題の可能な解決策は、技術的なバックトラッキングに基づいている可能性があります。ジョブは選択ポイントとして使用され、一時的な瞬間が選択肢として使用されます (最悪の場合、アクティビティの合計期間は作業期間の合計になり、完全に順次実行されます)。
あるいは、データを適切に表現してから、時間軸でスケジューリングを生成し、作業を制約の下に置き、制約が満たされない場合にジョブ (およびそれに依存するすべてのジョブ) を進める必要があります。しかし、Javaでこれを正確に行う方法がわかりません。
言い換えれば、説明されているジョブ管理において、強烈な後戻りアプローチを回避する方法を探しています。