ここでの私の最初の投稿–しばらくの間検討していたアルゴリズムの設計を手伝ってくれることを願っています–どのアプローチを取るべきかわからない(VRPTWまたはリソーススケジューリングまたは他の何か!?)
実例に言えば、少数の場所(通常は5つ未満)に大量の庭ごみがあります。廃棄物はすべて、所定の時間枠内に他の場所に輸送する必要があります。庭のゴミを移動するために、車で牽引しなければならないトレーラーがあります。庭のゴミは、特定の時間(時間枠)にのみゴミ捨て場に捨てることができます。いくつかの場所では、トレーラーを降ろしてそこにいる人々がいっぱいになるか空にすることができますが、他の場所では、車の運転手が自分でそれをしなければならず、車はそこに留まらなければなりません。すべてのタイミングを計算できます(つまり、ロード/アンロード時間、通過時間など)。車はトレーラーなしでサイト間を移動できます。トレーラーは空に牽引できますが、トレーラーは場所間を移動できません。
私たちの目的は、トレーラーに積まれたすべての廃棄物が輸送されていることを確認することです。
- 使用中のトレーラーと車の数を最小限に抑える
- 廃棄物を落とすためのすべての時間枠を満たす
- トレーラーの「バランスをとる」–つまり、1日の終わりには、1日の始まりにあったのと同じ数のトレーラーが各場所にあります。
これをリソーススケジューリングアルゴリズムとしてアプローチすることを考えましたが、トレーラーの「バランシング」をどのように処理するかがわかりません。
私が考えたもう1つの方法は、最初に車を検討することでした。次に、最も早いタスクを選択し、その後に実行可能なすべてのタスクのグラフを作成できます。次に、トレーラーの最大積載数に対応するグラフの最長パスを選択した場合。次に、これらのタスクをタスクのリストから削除し、すべてのタスクが処理されるまで繰り返すことができます。次に、これらのトレーラーの負荷のリストを調べて、必要なトレーラーの数を計算する必要があります。
アプローチについての考えはありがたいです!