上下文:我是的开发人员,这是一个portfolio优化库,我正在尝试允许用户向最大夏普比率问题添加约束。
目前,用户可以将其约束作为lambda函数传递,例如使所有权重大于1%:
ef = EfficientFrontier(mu, S) # mu and S are expected return and covariance
ef.add_constraint(lambda w: w >= 0.01) # example new constraint
ef.min_volatility() # optimise with constraint
在后端,我将一个cvxpy变量w
我试图解决混合问题的整数版本。我想要最大化的线性目标,我有几个线性约束。守则是:
# 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 =
我使用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
我遇到了一个奇怪的错误,报告参数:'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,\
我试图用CVXPY从中解决Stephen提出的等周问题(7.14)。问题的表述是:
约束准则如下:
constraints = [ y[1] == 0,
y[N] == 0,
y[F] == yfixed[F],
cp.abs(( y[i+2] - 2 * y[i+1] + y[i]) / h**2) <= C for i in np.arange(1,199) ] #not using the first constraint here
约束有for循环,当我试图根据CVXPY文档描述问题
我有一个由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.
我试图解决一个投资组合优化问题,约束条件是权重可以是零,或者至少是min (一个Nx1向量)。
import cvxpy as cp
w = cp.Variable(len(mu))
mins = np.ones(len(mu)) * 0.03
risk = cp.quad_form(w, S)
prob = cp.Problem(cp.Minimize(risk),
[cp.sum(w) == 1,
w >= 0,
w >= min OR w == 0 # p
我正尝试在python中使用CVXPY来解决一个有几个约束的线性规划问题。我创建了一个列表,其中列出了所有约束,但在运行problem.solve()时,它返回以下错误: "AttributeError:'list‘对象没有’parameters‘属性“ 我相信它引用了我创建的约束列表,但我不知道如何纠正这个问题。 import cvxpy as cvx
import numpy as np
p = cvx.Variable(shape=(3,1), name="p")
f = cvx.Variable(shape=(6,1), name="f
我正在尝试使用cvxpy,但我不知道如何使用或操作。
我有过
x = cp.Variable(N, integer=True)
我试着
x[i]==0 or x>=m[i]。
我犯了这个错误
> Cannot evaluate the truth value of a constraint or chain constraints, e.g., 1 >= x >= 0.
然后我试着:
for i in range(N):
constraints += [
x[i]*(x[i]-m[i])>=0,
]
我得到了
> Proble
我是python的初学者,我尝试在我的优化项目中使用cvxpy库。我尝试更改n维变量的第一个值,但得到了一个AttributeError import cvxpy as cp
S = cp.Variable(100)
S[0].value=320000
output:AttributeError: can't set attribute 它适用于一维变量 import cvxpy as cp
S = cp.Variable()
S.value=320000 提前感谢
我正试图用CPLEX解决程序将一些代码从纯CPLEX转换为CVXPY。原始代码如下:
p = cplex.Cplex()
p.objective.set_sense(p.objective.sense.maximize)
obj = np.zeros(numCols)
for i in range(numSamples):
if labels[i] == 0:
for b in range(numBuckets):
obj[zv_ + b*numSamples + i] = C
我正在使用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
我目前正在使用cvxpy来优化一个非常大的问题,但现在面临着当前的问题。我运行求解器的多次迭代(每次迭代都会降低某些变量的灵活性)。每次运行总共有50个约束,其中只有2个约束在每次运行时是不同的。其余48个约束是相同的。在每次迭代中,我从头开始重新构建这两个约束、问题和obj函数。如果我不重新构建剩余的(相同的) 48个约束,最终的解决方案就没有意义了。 我读了这篇文章CVXPY: how to efficiently solve a series of similar problems,但在我的例子中,我不需要改变参数和重新优化。 我刚刚准备了一个例子来说明这个问题: x = cv
我正在使用CVXPY在Python中计算SDP问题,我想设置这样的约束:不仅我的变量矩阵是半正定的( psd ),而且它在某个轴上的部分转置也是psd。我不知道如何设置这个要求。我的代码将如下所示
#Set the variable matrix
P_0 = cp.Variable((d,d), symmetric=True)
现在我想定义一些东西,比如
def PT(d1, d2, rho):
"""Return rho^{T_1}, the partial trace of the density operator rho on C^{d_1} \ot C^
我想取变量列表的2-范数。如何将序列转换为与CVXPY兼容的变量“列表”?有办法处理这事吗?提前谢谢。例如,
test_a=cvxpy.Variable(1)
test_b=cvxpy.Variable(1)
mylist= [test_a,test_b]
mynorm=cvxpy.norm(mylist,2) #error thrown for this line
packages/cvxpy/interface/matrix_utilities.py", line 63, in size
return (len(constant[0])
import pandas as pd
import numpy as np
import re
import cvxpy as cvx
data = pd.read_excel('Optimality_V3.xlsx', encoding='latin-1') ? 正如您所看到的,我刚刚导入了一个csv文件作为数据帧。现在,我想使用CVXPY库来求解一个最大化函数,以确定行数据‘d’的最佳值,从而使数据‘B’的值之和达到最大值。 我的目标函数是作为我的决策变量data'D‘的二次函数,该函数类似于: data'B‘= data
我使用包cvxpy form Python来解决一个非凸优化问题,如下所示: import numpy as np
import cvxpy as cp
def kl(a,b):
if a==b:
return 0.000001
if b==0:
return 1000000
if a==0:
return -np.log(1-b)
return a*np.log(a/b)+(1-a)*np.log((1-a)/(1-b))
t = 0.5
q = 0.1
p = 0.1
d = cp.Vari