Одновимірна оптимізація

Вступ до оптимізації в Python

Jasmin Ludolf

Content Developer

Приклад: оптимізація у виробництві

 

Цільова функція:

$P = 40q - 0.5q^2$

  • Одновимірна: має одну змінну

Прибуток залежно від кількості.

Вступ до оптимізації в Python

Приклад: оптимізація у виробництві

 

Цільова функція:

$P = 40q - 0.5q^2$

  • Одновимірна: має одну змінну

Прибуток залежно від кількості.

Вступ до оптимізації в Python

Обчислення похідних

 

Цільова функція:

$P = 40q - 0.5q^2$

Похідна: описує, як поводиться нахил

$\frac{dP}{dq} = 40 - q$

from sympy import symbols, diff, solve


q = symbols('q')
P = 40 * q - 0.5 * q**2
dp_dq = diff(P)
print(f"The derivative is: {dp_dq}")
The derivative is: 40 - 1.0*q
1 https://docs.sympy.org/latest/index.html
Вступ до оптимізації в Python

Критична точка

Оптимум шукаємо там, де похідна дорівнює нулю

  • Критичні точки: точки, де похідна дорівнює нулю

Оптимальне $q$ задовольняє:

$\frac{dP}{dq} = 40 - q = 0$

q_opt = solve(dp_dq)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Вступ до оптимізації в Python

Максимум, мінімум чи ні те, ні інше?

 

Прибуток залежно від кількості.

 

Цільова функція:

$p = 40q - 0.5q^2$

q_opt = solve(p_prime)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Вступ до оптимізації в Python

Опуклість і увігнутість

 

Увігнута функція.

  • Максимум

 

Опукла функція.

  • Мінімум
Вступ до оптимізації в Python

Друга похідна

 

  • Похідна від похідної
  • Швидкість зміни нахилу зі зміною змінної

 

  • Якщо 2-га похідна в точці $< 0$: максимум
  • Якщо 2-га похідна в точці $> 0$: мінімум
  • Якщо 2-га похідна в точці $= 0$: ні те, ні інше

Прибуток залежно від кількості.

Вступ до оптимізації в Python

Приклад: максимум, мінімум чи ні те, ні інше?

 

Похідна:

$\frac{dp}{dq} = 40 - q$

 

Друга похідна:

$\frac{d^2p}{dq^2} = -1 < 0$

  • Максимум!

 

d2p_dq2 = diff(dp_dq)

sol = d2p_dq2.subs('q', q_opt)
print(f"The 2nd derivative is: {sol}")
The 2nd derivative is: -1.0000000000000
Вступ до оптимізації в Python

Похідні в оптимізації

 

  • Перші похідні
    • Знаходять критичні точки в задачах оптимізації
  • Другі похідні
    • Визначають мінімум чи максимум
Вступ до оптимізації в Python

Давайте потренуємось!

Вступ до оптимізації в Python

Preparing Video For Download...