我正在嘗試用CVXOPT解決一個線性程序。有2n個變量,x_1,...,x_2n。 LP的形式是在CVXOPT中制定某個LP
min x_{n+1}+...+x_{2n}
s.t. Ax \leq b
這裏,A和b是固定的。從這裏看起來很直接。由於我正在優化後半部分變量的總和,因此我創建了一個包含n個零和n個向量的向量:c =(0,...,0,1,...,1),並具有以下代碼假設A和b是已經計算):
c = [1]*(2*k + 2)
for i in range(k + 1):
c[i] = 0
c = matrix(c)
sol=solvers.lp(c,A,b)
print(sol['x'])
該代碼是直接從CVXOPT文檔。不過,我得到一個錯誤說:
TypeError: 'c' must be a dense column matrix
我看這件事,但在我看來,調用矩陣()應該已轉化的C爲適當的類型。有誰知道如何解決這一問題?
我沒有解釋什麼是K,但我認爲這應該與這個問題無關。如果我錯了,請告訴我。 –