선형 최적화 (Python)

이 게시물에서는 SciPy를 사용하여 모델링하는 방법과 선형 최적화 문제를 보여줍니다:

Python의 SciPy-package에서 linprog 함수를 사용하여이 간단한 선형 최적화 문제를 모델링하고 해결할 수 있습니다. 이를 위해 벡터 행렬 표기법 형식으로 설명하고 최소화 문제로 변환합니다.

이제이 문제를 해결할 수 있습니다 :

#  비용 함수 계수 값으로 비용리스트 설정 
c = [-2,-3]

#  구속 계수 행렬 A_ub 설정 
A_ub = [[1,1],
        [2,1]]

#  상한에 대한 제한 목록 (제약 제한 이하)
b_ub =[10,15]

#  또한 각 최적화 변수에 대한 경계 튜플을 준비하고 목록을 요약해야합니다
x1_bounds = (0,None)
x2_bounds = (0,None)

#  이제 SciPy.optimize.linprog를 사용하여 현재 문제를 모델링하고 해결합니다. 
from scipy.optimize import linprog
model_linear = linprog(c=c,
                      A_ub=A_ub,
                      b_ub = b_ub,
                      bounds = [x1_bounds,x2_bounds])

#  인쇄 솔루션
print(str(model_linear))
     fun: -30.0
 message: 'Optimization terminated successfully.'
     nit: 1
   slack: array([ 0.,  5.])
  status: 0
 success: True
       x: array([  0.,  10.])

최적의 솔루션은 (x1 = 0; x2 = 30)입니다.

최적의 솔루션 값은 30입니다.

첫 번째 제약 조건은 바인딩입니다.

두 번째 제약 조건은 구속력이 없습니다.

Leave a Reply

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Close

그 밖의 기능