我使用MOSEK作为求解器,在cvxpy中求解SDP。我的问题是不可行的,而MOSEK有一个很好的特性,它提供了一个“不可行性报告”。在我的例子中,报告如下所示:
MOSEK PRIMAL INFEASIBILITY REPORT.
Problem status: The problem is primal infeasible
The following constraints are involved in the primal infeasibility.
Index Name Lower bound Upper bound Dual l
在下面的代码片段中,我尝试使用cvxpy和mosek求解器进行非常简单的线性回归。
weight = df2['weight'].to_numpy()
A = df2[ regressors ].to_numpy()
x = cp.Variable(len(regressors ));
R = df2['y'].to_numpy()
cost = cp.sum_squares( A @ x - R)
print(A.shape, x.shape, R.shape) # here it prints (134882, 8) (8,) (13488
我遇到了一个奇怪的错误,报告参数:'numpy.bool_‘对象没有’AttributeError‘属性 import numpy as np
import math
import cvxpy as cp
def max_peak(power_signal,overall_ld):
max_value = overall_ld[0] + power_signal[0]
for i in range(1,time_slot):
max_value= cp.maximum(max_value,\
我有一个由961个元素组成的变量。我有这样一个约束:变量中只有8个元素是非零的,其他元素是0。我不知道如何在cvxpy中表达这个约束。我试过这个:
import cvxpy as cp
K = cp.Variable(961, integer=Ture)
s = 0
constraint = [cp.sum([s+1 for t in K if t!=0])==8]
但我得到了以下错误:
异常:无法计算约束或链约束的真值,例如1 >= x >= 0.
我正在使用cvxpy来解决一些简单的投资组合优化问题。我唯一不能理解的约束是基数约束,即非零投资组合持有量的约束。我尝试了两种方法,一种是MIP方法,另一种是传统的凸方法。
以下是一个有效的传统示例的一些虚拟代码。
import numpy as np
import cvxpy as cvx
np.random.seed(12345)
n = 10
k = 6
mu = np.abs(np.random.randn(n, 1))
Sigma = np.random.randn(n, n)
Sigma = Sigma.T.dot(Sigma)
w = cvx.Variable(n)
ret
我试图解决混合问题的整数版本。我想要最大化的线性目标,我有几个线性约束。守则是:
# we'll need both cvxpy and numpy
import cvxpy as cp
import numpy as np
N = 5 # the number of products
M = 5 # the number of materials
# material availability of each item
material_bounds = np.random.uniform(50, 80, size=M)
# value of each product
v =