У меня есть некоторые предполагаемые входные данные (X0), которые я хочу оптимизировать в нескольких функциях, как описано ниже.
X0 = [A, B, C, D, E, F, G, H, I, J, K] # каждый элемент имеет значение с плавающей запятой
Функции:
F1 = A + B + C + D - 200 = 0
F2 = C + D + E - 50 = 0
F3 = C + D + E + F + G - 45 = 0
F4 = E + F + G + H + I + J + K - 67 = 0
F5 = H + I + J + K - 64 = 0
Я не уверен, как Сципи может оптимизировать входные данные в нескольких функциях.
Я подготовил сценарий ниже; Я не уверен, отзывчив ли он.
from scipy.optimize import minimize
x0 = np.array([1. for i in range(11)])
def my_function(A, B, C, D, E, F, G, H, I, J, K):
F1 = A + B + C + D - 200
F2 = C + D + E - 50
F3 = C + D + E + F + G - 45
F4 = E + F + G + H + I + J + K - 67
F5 = H + I + J + K - 64
return F1 + F2 +F3 +F4 + F5
cons = ({'type': 'ineq', 'my_function': lambda A, B, C, D: A + B + C + D - 200},
{'type': 'ineq', 'my_function': lambda C, D, E: C + D + E - 50},
{'type': 'ineq', 'my_function': lambda C, D, E, F, G: C + D + E + F + G - 45},
{'type': 'ineq', 'my_function': lambda E, F, G, H, I, J, K: E + F + G + H + I + J + K - 67},
{'type': 'ineq', 'my_function': lambda H, I, J, K: H + I + J + K - 64})
res = minimize(my_function, x0, method='BFGS', constraints=cons )