Ваша проблема
макс U( з1, . , , , zN)
с . т . ∑ ряZя≤ я
а также
с . т . ∑ зя= X,Zя∈ N
Таким образом, у вас есть дополнительное линейное ограничение, но также , как отмечено в комментарии, ограничение делает эту проблему оптимизации, когда переменные решения являются дискретными (в частности, целыми числами), что означает, что, формально говоря, вы не получите иметь производные.Zя∈ N
На практике многие проблемы дискретной оптимизации подвергаются «притворству», что мы можем вычислить производные (таким образом, сформировать лагранжиан с двумя ограничениями, получить условия Каруша-Куна-Такера и т. Д.), Получить вектор максимизатора таким образом, а затем проверьте, что происходит, когда мы округляем вверх или вниз его элементы, чтобы они стали целыми числами.
Вам также необходимо проверить, что бюджетное ограничение не нарушается этими округлениями, и разрешить только те комбинации, которые этого не делают. Здесь важно ограничение бюджета как неравенства, потому что допустимый вектор максимизатора , скорее всего, не полностью исчерпает бюджет.Zя
Смотрите здесь для некоторых вводных битов по целочисленному программированию.