1. Learn
  2. /
  3. Cursuri
  4. /
  5. Introducere în optimizare în Python

Connected

exercițiu

Alocarea resurselor

Bine făcut! Acum e momentul să rezolvi următoarea problemă prezentată anterior.

Un manager alocă 120 de sarcini unui inginer software senior (S), unul junior (J) și unui stagiar (I) și dorește să minimizeze costurile.

Stagiarul necesită o formare care costă 500 $ înainte de a începe lucrul. Costul pentru rezolvarea fiecărei sarcini este c = [30, 40, 5], respectiv.

\(x\) reprezintă numărul de sarcini atribuite, iar \(o\) variabila binară care indică dacă stagiarului i se asigură formarea. Costul total este:

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

Folosește metoda BigM pentru a liniariza această problemă cu ajutorul noii variabile \(z\):

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

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

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

pulp, împreună cu un model, parametrii c, M și names, precum și variabilele x, z, o au fost deja importate pentru tine.

Instrucțiuni

100 XP
  • Definește funcția obiectiv înlocuind o parte din formulă cu z.
  • Definește constrângerile completând indexul stagiarului.