首页 > 解决方案 > Python 中的 OSQP 求解器

问题描述

我有一个关于 OSQP(算子分裂二次程序)求解器实现的问题:

我想用它来解决随机生成的 10x10 矩阵的二次问题。

我尝试了以下方法:

import osqp
import numpy as np
from scipy import sparse


# Define problem data
P = sparse.csc_matrix(np.random.uniform(1, 10, size=(10, 10)))
q = np.random.uniform(0, 9, size=10)
Gs= np.random.uniform(0, 9, size=10)
print("der Maßstab für Gs:", Gs)
A = sparse.csc_matrix(np.diag(-1*Gs))
l = np.zeros(10)


# Create an OSQP object
prob = osqp.OSQP()

# Setup workspace and change alpha parameter
prob.setup(P, q, A, l, alpha=1.0)

# Solve problem
res = prob.solve()

但只是有错误 ValueError: Workspace allocation error!

你知道我做错了什么吗?

当我使用求解器cvxopt以及使用网站上的示例代码时,它运行良好。

我改变了一点,但它根本不起作用。

标签: pythonsolverquadratic-programming

解决方案


推荐阅读