- https://datascienceschool.net/view-notebook/0fca28c71c13460fb7168ee2adb9a8be/
- 최소값 : 제품 A와 제품 B 각각 100개 이상 생산해야 한다.
- 시간 : 시간은 500시간 밖에 없다. 제품 A는 생산하는데 1시간이 걸리고 제품 B는 2시간이 걸린다.
- 부품 : 특정 부품이 9800개밖에 없다. 제품 A는 생산하는데 특정 부품을 4개 필요로 하고 제품 B는 생산하는데 특정 부품을 5개 필요로 한다.
- 이익 : 제품 A의 이익은 하나당 3만원이고 제품 B의 이익은 하나당 5만원이다.
- ==> 이때, 이익을 최대화하기 위한 각 생산량 x1, x2의 값을 구한다.
pip3 install cvxpy
import cvxpy as cp
# 변수의 정의
a = cp.Variable() # A의 생산량
b = cp.Variable() # B의 생산량
# 조건의 정의
constraints = [
a >= 100, # A를 100개 이상 생산해야 한다.
b >= 100, # B를 100개 이상 생산해야 한다.
a + 2 * b <= 500, # 500시간 내에 생산해야 한다.
4 * a + 5 * b <= 9800, # 부품이 9800개 밖에 없다.
]
# 문제의 정의
obj = cp.Maximize(3 * a + 5 * b)
prob = cp.Problem(obj, constraints)
# 계산
prob.solve()
# 결과
print("상태:", prob.status)
print("최적값:", a.value, b.value)