Симплекс с использованием Python: как настроить код - PullRequest
0 голосов
/ 11 марта 2019

Ограничения

5x1 + 6x2> = 95

18x1 - 9x2> = 189

x1 + x2 <= 45 </p>

x1, x2> = 0

Увеличить:

z = 15x1 + 15x2

Код:

import numpy as np
import scipy as sp


c = [-15,-15]
A = [[-5,-6], [-18,9],[1,1]]
b = [-95,-189,45]
x0_bounds = (0,None)
x1_bounds = (0,None)


from scipy.optimize import linprog
# Solve the problem by Simplex method in Optimization
res = linprog(c, A_ub=A, b_ub=b,  bounds=(x0_bounds, x1_bounds), method='simplex', options={"disp": True})
print(res)

Это возвращается:

Макс. 675 в x1 = 22, x2 = 23

Однако ответ max = 675 происходит при (x1, x2) = (22,23) & (45,0)

Таким образом, он не возвращает второе значение для x1 и x2

...