我正在尝试解决格式
的线性编程问题minimise cT.x
A.x = b
x >= 0
运输问题。
但是,使用CVXOPT需要为lp(G,h,A,b)求解器定义变量G.x< = h。
我尝试创建我的A和b矩阵,对于G和h矩阵,我使用G的单位矩阵(乘以-1)和h的零向量,以便强加x> = 0约束
但是,当我运行我的代码时,它会返回一个“奇异的KKT矩阵”。
任何人都可以帮助我解决问题,或者如何在没有G和h变量的情况下运行CVXOPT求解器。
答案 0 :(得分:0)
使用潜在方法搜索运输问题的最优解。 要使用势方法,您应解决三个拉威尔方程。 运输问题等网络问题必须解决使用双重问题。
答案 1 :(得分:0)
你的解决方案( -G - 单位矩阵, h - 零向量)应该可行。您可以在此处发布您的数据。
例如:
from cvxopt import matrix, solvers
c = matrix([ 2.0, 1.0 ])
G = matrix(-np.eye(2))
h = matrix(np.zeros(2))
A = matrix(np.eye(2))
b = matrix([1., 2.])
sol = solvers.lp(c, G, h, A, b)
print(sol['x'])
Optimal solution found.
[ 1.00e+00]
[ 2.00e+00]