建設プロジェクトのスケジューリング問題の最適化
建設プロジェクトのスケジューリング問題を考えてみます。
ある建設プロジェクトにおいて、以下の6つの作業が必要です。
🔹作業A: 2週間かかる
🔹作業B: 3週間かかる
🔹作業C: 4週間かかる
🔹作業D: 2週間かかる
🔹作業E: 3週間かかる
🔹作業F: 4週間かかる
作業が開始されたら中断することはできません。さらに、以下の制約があります。
🔹作業A, B, Cは同時に開始することができます。
🔹作業Bが完了した後、作業Dを開始することができます。
🔹作業Cが完了した後、作業Eを開始することができます。
🔹作業DとEは同時に開始するることができます。
🔹作業DとEが完了した後、作業Fを開始できます。
解き方・ソースコード
この問題をPuLPで解いてみます。
問題の設定や解法の詳細はコメントを確認して下さい。
[Google Colaboratory]
1 | # 必要なライブラリをインポートする |
[実行結果]
Status: Optimal
Optimal Solution:
a: 2.00
b: 3.00
c: 6.00
d: 11.00
e: 10.00
f: 13.00
Task Schedule:
Task A starts at day 2.00
Task B starts at day 3.00
Task C starts at day 6.00
Task D starts at day 11.00
Task E starts at day 10.00
Task F starts at day 13.00
最適解は、作業の完了までの日数を最小化するようにスケジュールが設定された結果であり、最適なスケジュールでの各タスクの開始日を示しています。


