如何设置凸= 2在Gurobi R ?
回答我得到这个错误当我运行下面的代码兆瓦。有谁知道如何解决这个问题?谢谢!
错误:错误10020:Q矩阵不是半正定(PSD)。解决模型凸参数设置为2。
兆瓦:
库(gurobi)
库(矩阵)
< -模型列表()
#优化问题:
#马克斯x + y
#酸处理
# - x + y < = 0
# x ^ 2 - y ^ 2 < = 10
# 0 < = x < = 20
# 0 < = y < = 20
模型美元obj < - c (1,1)
模型$ < -矩阵(c (1, 1), nrow = 1, byrow = T) # lh的线性约束:- x + y < = 0
模型美元rhs < - c (0) # rhs线性约束:- x + y < = 0
模型乌兰巴托美元[1]= 20 # x < = 20
模型乌兰巴托美元[2]= 20 # y < = 20
模型美元感< - c (“<”)
#非凸二次约束:x ^ 2 - y ^ 2 < = 10
qc1 < -列表()
qc1 Qc < - spMatrix美元(2,2,c (1、2), c (1、2), c (1.0, -1.0))
qc1 rhs < - 10美元
模型美元quadcon < -列表(qc1)
# QC约束非凸二次约束,所以设置凸= 2
模型参数个数< -列表(凸= 2)
gurobi_write(模型,”quadtest。lp ', env)
结果< - gurobi(模型)#这就是我上面的错误
打印(结果objval美元)
打印(结果x美元)
0
-
海里……我发现我可以修复这个问题不把参数作为模型的列表,并运行它作为输入而不是gurobi()调用如下:
参数< -列表(凸= 2)
结果< - gurobi(模型、参数)
0
请登录留下你的评论。
评论
1评论