Вступ до математичної оптимізації

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

Jasmin Ludolf

Content Developer

Далі буде...

 

Ви дізнаєтесь про...
  • Розв'язання прикладних задач оптимізації
  • Побудову інструментарію для різних задач

 

Що варто знати заздалегідь...

 

Чого знати не потрібно...
  • Математичний аналіз
  • Алгоритми
Вступ до оптимізації в Python

Що таке математична оптимізація?

 

  • Пошук ідеальних вхідних параметрів для конкретної задачі

 

  • Приклади:
    • Максимізація врожайності

На полі ростуть культури.

  • Умови ґрунту, погода
  • Найкраща кількість і якість урожаю
Вступ до оптимізації в Python

Що таке математична оптимізація?

 

 

Фургони їдуть маршрутом доставки.

 

 

  • Оптимальні маршрути доставки
  • Відстань і трафік
  • Поліпшення часу доставки та зниження витрат
Вступ до оптимізації в Python

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

  • Описує залежність між вхідними змінними та результатом

 

Виробництво меблів:

  • Максимізувати прибуток, P
  • Кількість, q

 

$P = 40q - 0.5q^2$

  • Яке значення q максимізує P?
Вступ до оптимізації в Python

Оптимізація з 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

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

 

  • Максимальне значення = оптимум

 

  • Можливі причини такої форми:
    • Бракує персоналу чи обладнання

 

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

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

Повний перебір

  • Метод «brute force»
  • Обчислення прибутку для діапазону кількостей
  • Виберіть ту, що дає найбільший прибуток

 

Чоловік із біноклем сидить на повітряній кулі з доларовим знаком у пошуках прибутку.

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

Повний перебір у 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

Переваги та недоліки повного перебору

 

  • Переваги
    • (+) Проста реалізація
    • (+) Не потрібне дороге ПЗ
    • (+) Мінімум припущень
  • Недоліки
    • (-) Не масштабується для складних випадків
Вступ до оптимізації в Python

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

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

Preparing Video For Download...