我使用Julia JuMP。我对如何实现约束ci’Xci>=0
感到困惑。 X这里是一个大的稀疏矩阵。 X的尺寸为1512 * 1512。
Q=sparse(eigvecs(Y)) //Y is value of variable X
for i=1:1512
if P[i]<=-1.0e-5 // P[i] is the ith eigenvalue of X
@constraint(model, Q[:,i]'*X*Q[:,i]>=0) //(Q[:,i] is the ith eigenvector of X)
end
end
运行此代码时,出现以下警告:
加法运算符已在JuMP表达式上多次使用。此警告可以忽略不计,但可能表明模型生成的速度比必要的慢。出于性能原因,您不应在循环中添加表达式。代替x + =,使用append!(x,y)修改x。如果y是单个变量,则也可以使用push!(x,coef,y)代替x + = coef * y”。
是否要避免这种情况?谢谢!