В классе реализован метод forward для расчета функции потерь и метод backward для оптимизации скидок. Оптимизатор Adam. Все дополнительные ограничения внесены в данный класс и результаты оптимизации не требуют дальнейшей постобработки. В целевую функцию входят 2 критерия: 1. constraint_criteria = 𝑭 (цель по продажам – продажи, цель по выручке – выручка, …). Чем больше отклонение от целевых значений, тем больше критерий ограничений 2. maximization_criteria = 𝑭 (продажи, выручка, прибыль). Чем больше ключевые метрики, тем больше критерий максимизации. Если отклонение от целевых значений слишком большое, то maximization_criteria = 0 Целевая функция: loss = - maximization_criteria + constraint_criteria