Универсальный подсказчик


Подсказчик — это когда модель, подогнанная под данные, используется для оптимизации в условиях ограничений.

Допустим есть у нас модель, которая прогнозирует маржу с выручки в киоске с мороженым, и на входе у неё температура воздуха и наценка.

Наценка продажи — управляющий параметр, его можно подкрутить, в отличие от температуры воздуха. Хотелось бы максимизировать маржу, но есть ограничения — мороженое портится быстро, чем выше температура.

$$ Sales = a_s * Q * M + b_s $$

$$ Q = a_q * T + b_q* e^{-c_q * T} + d_q $$

Q — количество, M — маржа. В условиях количество более либо равно нулю и меньше остатков + подвоза, мы хотим максимум продаж. a…d — это у нас коэффициенты, которые мы можем восстановить из истории.

Решатели

  1. Получать на вход, упрощать (приводить подобные и пр.) выражения может sympy, равно как и выдавать значение — при определенных коэффициентах,
  2. Найти коэффициенты по истории может например jax. Не самый простой пакет, но очень мощный, потому что его вычисления можно завернуть в…
  3. Оптимизатор с ограничениями из scipy, SLSQP какой. Вообще конечно можно сделать по Карушу-Куну-Таккеру — затолкать ограничения в функцию оптимизации (тогда лагранжиан называется), и продолжать через тот же jax, или например pytorch. Всё веселее и оптимизаторы поинтереснее (AdamW мне в последнее время всё больше нравится).

На входе формула и история данных — на выходе оптимальное решение

просто добавь пакеты в окружение

Вот такие вещи можно делать с этими вашими python.

Но с последним, надо серверить, ибо завернуть в десктопное приложение — это целая эпопея. На плюсах тоже есть аналоги всего перечисленного, либо в питоне они просто обертки (как в случае с pytorch любимым).

Кому это надо, никому не надо, кому это нужно… — никому не нужно

фольклор

Вообще нужно, интересно и полезно. Только многие об этом не догадываются. И сделать чтобы они начали об этом догадываться — большая история. Другая… про которую мне не хочется. Потому что люди хотят готовых решений, а не рецептов, а иначе их и старые рецепты устраивают.

Избалованный нынче инженер пошел, измельчал 🙂


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *