Как реализовать определенный интеграл как ограничение в процессе оптимизации некоторой функции с помощью scipy - PullRequest
0 голосов
/ 26 февраля 2020

Мне нужно максимизировать функцию с некоторыми сложными ограничениями. Я попытался реализовать его, используя функцию 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])))

Я ввел другие ограничения, но могу не реализовать определенное интегральное ограничение. Любая помощь очень ценится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...