python - CVXPY 抛出 SolverError

标签 python convex-optimization cvxopt cvxpy

使用 CVXPY 时,我经常收到“SolverError”。他们的doc只是说这是由数字问题引起的,但没有提供有关如何避免这些问题的进一步信息。

下面的代码片段是一个例子,问题很简单,但是'CVXOPT'求解器只是抛出“SolverError”。确实,如果我们将求解器更改为另一个求解器,例如“ECOS”,问题将按预期得到解决。但重点是,“CVXOPT”原则上应该解决这个小问题,但它真的让我困惑为什么它不起作用。

import numpy as np
import cvxpy as cv
np.random.seed(0)
temp = np.random.rand(5)
T = 2
x = cv.Variable(T)
u = cv.Variable(2, T)
pbs = []
for t in range(T):
    cost = cv.sum_squares(x[t]-temp[t])
    constr = [x[t] == u[0,t]+u[1,t],]
    pbs.append(cv.Problem(cv.Minimize(cost), constr))
prob = sum(pbs)
prob.solve(solver='CVXOPT')

最佳答案

使用prob.solve(solver='CVXOPT', kktsolver=cv.ROBUST_KKTSOLVER)使优化过程更加稳健。

关于python - CVXPY 抛出 SolverError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49176880/

相关文章:

python - 如何减少 elif 语句

python - 为 pandas.io.json_normalize 提供默认值

从文本文件读取时的 Python 编码问题

python - PSO 能否收敛于导数非零的点?

python - 通过 libsvm 对 n-gram 进行线性一级 SVM 训练的参数估计

linprog 包中设置的 R 线性规划使用solveLP忽略约束(小于或等于)

python - 只有等式约束的 CVXOPT

python - Conda 未安装最新版本

python - 使用来自 Octave 音程的数据在python中进行二次编程

python - Python 中的随机优化