我想对 QP 问题使用 Solver ecos,问题是这个求解器不能不承认我的矩阵是稀疏矩阵,我想知道我应该如何修复它。
所以这是矩阵设置的代码
import numpy as np
matrixSize = 10
Qa= np.random.rand(matrixSize, matrixSize)
Q_1 = np.dot(Qa, Qa.transpose())
print(Q_1)
np.linalg.cholesky(Q_1)
p_1= np.random.uniform(0, 9, size=10)
G_1 = np.diag(-1*np.random.uniform(0, 9, size=10))
h_1 = np.random.uniform(-9, 9, size=10)
np.savez_compressed(r'C:\Users\skqkr\Desktop\Semesterarbeit/Chiwan_Q1',
Q=Q_1, p=p_1, G=G_1, h=h_1)
现在是 ecos Solver 的代码
import ecos
import time
import numpy as np
from scipy import sparse
Matrix10 = np.load(r'C:\Users\skqkr\Desktop\Semesterarbeit/Chiwan_Q1.npz')
start = time.time()
P = 2*(Matrix10['Q']) # quick way to build a symmetric matrix
q =Matrix10['p']
G_1= Matrix10['G'] ## sparsematrix??
G= sparse.bsr_matrix(G_1)
h = Matrix10['h']
solution = ecos.solve(P,q,G,h)
print("QP solution: x = {}".format(x))
print("time :", time.time() - start)
TypeError: G is required to be a sparse matrix
我在变量 G 处使用了他们的稀疏矩阵,但它没有被确认为稀疏矩阵 我该如何解决这个问题?