Мне нужно максимизировать функцию с некоторыми сложными ограничениями. Я попытался реализовать его, используя функцию minimize
в библиотеке scipy.optimize
в python. Я включил все ограничения, кроме одного. Это определенный интеграл . Здесь F - кумулятивная функция распределения (скажем, равномерное распределение). Таким образом, внутренний член интеграла становится функцией t , (1-t) dt в случае равномерного распределения. Я не знаю, как добавить это ограничение в функцию minimze
.
Вот мой код для целевой функции, если это необходимо. Мне нужно p, f, x, y в виде массива (все p ij s, f ij и др. c в одном массиве * (1026 * p , f соответственно) внутри целевой функции, чтобы ускорить процесс, но я отправляю исходные данные предположения как 1d массив, а затем я конвертирую их в нужные фигуры внутри целевой функции (функция convert
). Не уверен, если это необходимо, но я все равно упоминаю об этом.
def цель (z, * args):
p,f,x,y = convert(z)
W = w*(1-delta)
I = 0.2*W
return -((np.sum(np.multiply(p,f[:2]) + np.multiply(p, f[2:4])) * k) - (W*np.sum(x)) + (I*(x[0][0]+x[1][1])))
Я ввел другие ограничения, но могу не реализовать определенное интегральное ограничение. Любая помощь очень ценится