Многомерная оптимизация

Введение в оптимизацию на Python

Jasmin Ludolf

Content Developer

Фабрика печенья

 

Целевая функция:

  • $F = K^{0.34} \times L^{0.66}$
    • $F$: производственная функция
    • Труд ($L$): часы работы сотрудников
    • Капитал ($K$): часы работы оборудования
    • Многомерная задача

 

Печенье на производственной линии.

Введение в оптимизацию на Python

Частные производные

 

Одномерная задача

 

Целевая функция:

$p = 40q - 0.5q^2$

Производная: наклон целевой функции изменяется при изменении одной переменной

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

 

Многомерная задача

 

Целевая функция:

$F = K^{0.34} \times L^{0.66}$

Частные производные: изменение наклона относительно каждой переменной

$\frac{\partial F}{\partial K}$ и $\frac{\partial F}{\partial L}$

Введение в оптимизацию на Python

Решение многомерных задач

 

Целевая функция:

  • $F = K^{0.34} \times L^{0.66}$
    • $F$: производственная функция
    • Труд ($L$): часы работы сотрудников
    • Капитал ($K$): часы работы оборудования
from sympy import symbols, diff, solve

K, L = symbols('K L') F = K**.34 * L**.66
dF_dK = diff(F, K) dF_dL = diff(F, L)
crit_points = solve([dF_dK, dF_dL], (K, L))
print(crit_points)
[]
Введение в оптимизацию на Python

Наша производственная функция

 

Целевая функция:

  • $F = K^{0.34} \times L^{0.66}$
  • При росте $K$ и $L$ значение $F$ увеличивается
  • Максимумов и минимумов нет!

3D-график производственной функции фабрики печенья.

Введение в оптимизацию на Python

Ограничения дифференцирования

 

Обратите внимание:

  • Отсутствие производной
  • Разрывы
  • Монотонно возрастающие или убывающие функции

 

  • Недифференцируемые функции: оптимизация с помощью дифференцирования невозможна

Три графика функций, для которых дифференцирование не позволяет найти максимум или минимум.

Введение в оптимизацию на Python

Давайте потренируемся!

Введение в оптимизацию на Python

Preparing Video For Download...