경계 제약 최적화

Python으로 배우는 Optimization 입문

Jasmin Ludolf

Content Developer

경계 제약 최적화

 

  • 기본 솔버: Broyden-Fletcher-Goldfarb-Shanno (BFGS)
  • 제약은 구간입니다
  • 하루 50~100단위 생산

 

from scipy.optimize import Bounds

bounds = Bounds(50, 100)
Python으로 배우는 Optimization 입문

L-BFGS-B

from scipy.optimize import minimize, Bounds

def objective_function(b):
  return (2*b[0] - 1.5*b[1])

bounds = Bounds([5, 10], [25, 30])
x0 = [10, 5] result = minimize(objective_function, x0, method='L-BFGS-B', bounds=bounds) print(result.x)
[ 5. 30.]
Python으로 배우는 Optimization 입문

선형 제약 최적화

목적함수 또는

  • 선형
  • $p = 2x + 1.5y$

목적함수의 선형 그래프

제약

  • 선형
  • $3x + 2y <= 100$

제약의 선형 그래프

Python으로 배우는 Optimization 입문

하드 부등식

  • 하나의 조건
  • 밀가루가 떨어지면 더는 비스킷을 못 만듭니다!

밀가루 자루

Python으로 배우는 Optimization 입문

선형 제약 문제 풀기

from scipy.optimize import minimize


def objective_function(b): return (b[0]) ** 2 + (b[1]) ** 0.5
def constraint_function(x): return 2*x[0] + 3*x[1] - 6
constraint = {'type': 'ineq', 'fun': constraint_function}
x0 = [20, 20]
result = minimize(objective_function, x0, constraints=[constraint])
print(result)
     fun: 1.4000405652399073
     jac: array([0.24057153, 0.36086182])
 message: 'Optimization terminated successfully'
    nfev: 25
     nit: 8
    njev: 8
  status: 0
 success: True
       x: array([0.12028576, 1.9198095 ])
  • 제약 유형:
    • 'eq': 등식
    • 'ineq': 부등식
Python으로 배우는 Optimization 입문

Ayo berlatih!

Python으로 배우는 Optimization 입문

Preparing Video For Download...