Я хочу решить следующую задачу оптимизации: ![Проблема, которую я хочу решить] (

С:

(x=(y2,...,y25))
И: s_m = s_0 + сумма для i=1 до 12 (s0 + сумма для k=1 до m (p0 + сумма l=1 до k (y[2l+1] -y[2l])) - д[к]))
Проблема в том, что моя функция не возвращает хорошее решение. Вот код:
# Разрешение р0 = 40 с0=0 d = {'0': 0., '1': 10, '2': 10, '3': 50, '4': 50, '5': 70, '6': 40, '7': 20, '8': 30, '9': 20, '10': 20, '11': 20, '12': 40} защита разрешения_pb(X): # Constantes et données de l'énonce защита lst_mois(я): Л = [] для n в диапазоне (1, i+1): L.append(str(n)) вернуть Л v = [] для n в диапазоне (2, 26): v.append(str(n)) мой = [] для n в диапазоне (1, 13): mois.append(str(n)) # Определение проблемы prob = LpProblem("Планирование производства", LpMinimize) # Определение переменных y = LpVariable.dicts("индексы", v, 0) # Объект функции pro += 20 * lpSum([(s0 + lpSum([p0 + lpSum([(y[str(2*int(k)+1)] - y[str(2*int(k))]) for k in lst_mois(int(i))]) - d для i in lst_mois(int(m))])) для m в mois]) + 50 * lpSum([y для i в v]), "Coût" # Противопоказания для м в месяцах: prob += s0 + lpSum([p0 + lpSum([(y[str(2*int(k)+1)] - y[str(2*int(k))]) для k в lst_mois(int(i )))]) - d для i в lst_mois(int(m))]) >= 0, "Positivite du stock au mois" +m для м в месяцах: проб += p0 + lpSum([y для i в v]) >= 0 если X < np.inf: для м в месяцах: prob += p0 + lpSum([y[str(2*int(k)+1)] - y[str(2*int(k))] для k в lst_mois(int(m))])