1. Învăţa
  2. /
  3. Courses
  4. /
  5. Python으로 배우는 Optimization 입문

Connected

exercise

자원 배분

잘하셨어요. 이제 앞에서 소개한 다음 문제를 풀어볼 차례예요.

한 매니저가 시니어(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는 이미 가져와 두었습니다.

Instrucţiuni

100 XP
  • 목표 함수를 정의하되, 식의 해당 부분을 z로 바꿔서 작성하세요.
  • 제약식을 정의하되, 인턴의 인덱스를 알맞게 채워 넣으세요.