수리 최적화 소개

Python으로 배우는 Optimization 입문

Jasmin Ludolf

Content Developer

곧 배울 내용

 

학습 내용
  • 실제 최적화 문제 해결
  • 다양한 문제를 위한 도구 키트 구축

 

선행 필요 지식

 

몰라도 되는 것
  • 미적분학
  • 알고리즘
Python으로 배우는 Optimization 입문

수리 최적화란?

 

  • 특정 문제의 이상적 입력 찾기

 

  • 예:
    • 작물 수확량 최대화

밭에서 자라는 작물.

  • 토양 상태, 날씨
  • 최적 수량과 품질
Python으로 배우는 Optimization 입문

수리 최적화란?

 

 

배달 경로를 달리는 밴.

 

 

  • 최적 배송 경로
  • 거리와 교통량
  • 배송 시간 단축, 비용 절감
Python으로 배우는 Optimization 입문

목적 함수

  • 입력 변수와 결과의 관계를 설명합니다

 

가구 제조:

  • 이익 P 최대화
  • 수량 q

 

$P = 40q - 0.5q^2$

  • 어느 q가 P를 최대화할까요?
Python으로 배우는 Optimization 입문

Python으로 최적화하기

import numpy as np
import matplotlib.pyplot as plt

qs = np.arange(80)


def profit(q): return 40 * q - 0.5 * q**2
plt.plot(qs, profit(qs)) plt.xlabel('Quantity') plt.ylabel('Profit') plt.show()
Python으로 배우는 Optimization 입문

제조에서의 최적화

 

  • 최대값 = 최적값

 

  • 모양의 가능한 이유:
    • 인력·장비 부족

 

수량에 따른 이익 변화.

Python으로 배우는 Optimization 입문

전수 탐색

  • "브루트포스" 방법
  • 여러 수량에 대한 이익 계산
  • 최대 이익을 내는 수량 선택

 

달러 표시 풍선 위에 앉아 쌍안경으로 이익을 찾는 남성.

Python으로 배우는 Optimization 입문

Python에서의 전수 탐색

import numpy as np

qs = np.arange(80)

def profit(q): 
  return 40 * q - 0.5 * q**2


profits = profit(qs) max_profit = profits.max()
max_ind = np.argmax(profits) q_opt = qs[max_ind]
print(f"The optimum is {q_opt} pieces of furniture, which makes ${max_profit} profit.")
The optimum is 40 pieces of furniture, which makes $800 profit.
Python으로 배우는 Optimization 입문

전수 탐색의 장단점

 

  • 장점
    • (+) 구현이 단순함
    • (+) 고가 소프트웨어 불필요
    • (+) 가정이 최소화됨
  • 단점
    • (-) 복잡한 경우 확장 불가
Python으로 배우는 Optimization 입문

연습해 봅시다!

Python으로 배우는 Optimization 입문

Preparing Video For Download...