1. Learn
  2. /
  3. Courses
  4. /
  5. Wprowadzenie do optymalizacji w Pythonie

Connected

Exercise

Przydzielanie zasobów

Dobra robota! Czas rozwiązać kolejny problem, który już poznałeś/poznałaś.

Menedżer przydziela 120 zadań do seniora (S), juniora (J) i stażysty (I) – programistów – i chce zminimalizować koszty.

Stażysta wymaga szkolenia kosztującego 500 $ przed przystąpieniem do pracy. Koszt realizacji każdego zadania wynosi c = [30, 40, 5] odpowiednio.

\(x\) oznacza liczbę przydzielonych zadań, a \(o\) to zmienna binarna określająca, czy stażysta odbędzie szkolenie. Całkowity koszt to:

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

Użyj metody BigM, aby zlinearyzować ten problem za pomocą nowej zmiennej \(z\):

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

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

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

Biblioteka pulp wraz z model, parametrami c, M i names oraz zmiennymi x, z, o zostały już zaimportowane.

Instructions

100 XP
  • Zdefiniuj funkcję celu, zastępując część formuły zmienną z.
  • Zdefiniuj ograniczenia, podając indeks stażysty.