Ошибка минимизации Python Linprog - симплекс метод

Это означает, что вы пытаетесь получить доступ к индексу массива, который недопустим, поскольку он не находится между границами.

Например, это инициализировало бы примитивный целочисленный массив с верхней границей 4 .

int intArray[] = new int[5];

Программисты подсчитываются с нуля. Таким образом, это, например, выбрало бы ArrayIndexOutOfBoundsException, поскольку верхняя граница равна 4, а не 5.

intArray[5];
2
задан Dubster 16 January 2019 в 15:05
поделиться

1 ответ

Я проверил систему, и решения действительно возможны. После прочтения этого поста кажется, что в linprog есть проблемы с плавающей запятой, явно проблема метода. Кажется, что прохождение method='interior-point' улучшает алгоритм.

Это сработало для меня в обоих случаях

Дело 1:

res = linprog(c, A_eq=A, b_eq=b, method='interior-point')
print('Optimal value:', res.fun, '\nX:', res.x)
>> Optimal value: 64090.8624935836 
X: [4.90908724e+02 1.50821194e-05 3.45454303e+02 7.63635788e+02]

Дело 2:

res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds=(0, None), method='interior-point')
print('Optimal value:', res.fun, '\nX:', res.x)
#output:
>> Optimal value: 449999.99988966336 
X: [ 377.22836393  748.5144238  1874.25721154]
0
ответ дан Mstaino 16 January 2019 в 15:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: