이 게시물에서는 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입니다.
첫 번째 제약 조건은 바인딩입니다.
두 번째 제약 조건은 구속력이 없습니다.

최적화 및 시뮬레이션을 전문으로하는 산업 엔지니어 (R, Python, SQL, VBA)

Leave a Reply