使用cvxopt来解决只有Aeq = beq的LP问题(没有A * x< = b的约束)

时间:2013-02-22 16:48:23

标签: python linear-programming convex-optimization

我正在尝试解决格式

的线性编程问题
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求解器。

2 个答案:

答案 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]