[파이썬][Scipy] Optimization (최적화) 객체 예제
scipy.optimize
모듈은 최적화 문제를 풀기 위한 객체와 알고리즘을 제공합니다. 아래 예제에서는 scipy.optimize
모듈을 사용하여 최적화 문제를 해결하는 방법을 보여줍니다.
먼저, 필요한 모듈을 가져옵니다:
mport numpy as np
from scipy.optimize import minimize
예제 1: 단일 변수 함수의 최소값 찾기
단일 변수 함수의 최소값을 찾는 예제입니다.
# 최소화할 함수 정의
def f(x):
return x**2 + 4*x + 4
# 초기 추측값 설정
x0 = 0
# 최적화 문제 정의 (최소화)
result = minimize(f, x0)
# 최적 결과 출력
print("최적해:", result.x)
print("최소값:", result.fun)
예제 2: 다변수 함수의 최적화
다변수 함수의 최적화 문제를 해결하는 예제입니다.
# 최소화할 다변수 함수 정의
def multivariate_f(x):
return (x[0] - 2)**2 + (x[1] - 3)**2 + (x[2] - 1)**2
# 초기 추측값 설정
x0 = np.array([0, 0, 0])
# 최적화 문제 정의 (최소화)
result = minimize(multivariate_f, x0)
# 최적 결과 출력
print("최적해:", result.x)
print("최소값:", result.fun)
예제 3: 제약 조건을 가지는 최적화
제약 조건을 가지는 최적화 문제를 해결하는 예제입니다.
from scipy.optimize import LinearConstraint
# 최소화할 함수 정의
def f(x):
return x[0]**2 + x[1]**2
# 초기 추측값 설정
x0 = np.array([1, 1])
# 선형 제약 조건 정의: x0 + 2*x1 >= 1
linear_constraint = LinearConstraint([[1, 2]], [1], [np.inf])
# 최적화 문제 정의 (최소화, 선형 제약 조건 추가)
result = minimize(f, x0, constraints=linear_constraint)
# 최적 결과 출력
print("최적해:", result.x)
print("최소값:", result.fun)
이러한 예제에서는 단일 변수 및 다변수 함수의 최적화, 그리고 제약 조건을 가지는 최적화 문제를 다루는 방법을 보여줍니다. scipy.optimize
모듈을 사용하면 다양한 최적화 문제를 해결할 수 있습니다.