1. 学习
  2. /
  3. 课程
  4. /
  5. Pythonで学ぶOptimization入門

Connected

练习

リソースの割り当て

よくできました。次に、先ほど紹介した問題を解いていきましょう。

マネージャーはシニア (S)、ジュニア (J)、インターン (I) のソフトウェアエンジニアに合計120件のタスクを割り当て、コストを最小化したいと考えています。

インターンはタスクに取り組む前に$500の研修費用が必要です。各タスクの処理コストはそれぞれ c = [30, 40, 5] です。

\(x\) は割り当てたタスク数、\(o\) はインターンが研修を受けるかどうかのバイナリ変数です。総コストは次のとおりです。

\(TC = 30x_S+40x_J+(5x_I+500)o\)

新しい変数 \(z\) を用いて、この問題を Big-M 法で線形化してください。

\(z = (5x_I+500)o\)

\(-oM\leq z \leq oM\)

\(-(1-o)M \leq z- (5x_I+500)o \leq (1-o)M\)

pulp、model、パラメータ c、M、names、および変数 x、z、o はすでにインポートされています。

说明

100 XP
  • 目的関数を、式の一部を z に置き換えて定義します。
  • 制約を定義し、インターンのインデックスを正しく埋めてください。