Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Gurobi-pythonshell中访问目标Q矩阵_Python_Matrix_Optimization_Psd_Gurobi - Fatal编程技术网

在Gurobi-pythonshell中访问目标Q矩阵

在Gurobi-pythonshell中访问目标Q矩阵,python,matrix,optimization,psd,gurobi,Python,Matrix,Optimization,Psd,Gurobi,我试图在一个优化问题(带有二次约束和二次目标函数)中重新构造一个目标Q矩阵,我正在用Gurobi和Python解决这个问题。Gurobi可以选择添加约束和目标函数作为线性表达式,而不是摆弄矩阵,因此我没有原始矩阵,Gurobi通过我的目标方程和系数为我创建了它 为了分析目标Q矩阵的凸性psd特性,我需要有Q(目标矩阵)和A(约束矩阵)。有人知道gurobi.py shell中是否有命令允许我访问/查看目标Q矩阵吗 提前感谢您,如有必要,请随时要求澄清 Gurobi优化器没有从模型对象检索矩阵的简

我试图在一个优化问题(带有二次约束和二次目标函数)中重新构造一个目标Q矩阵,我正在用Gurobi和Python解决这个问题。Gurobi可以选择添加约束和目标函数作为线性表达式,而不是摆弄矩阵,因此我没有原始矩阵,Gurobi通过我的目标方程和系数为我创建了它

为了分析目标Q矩阵的凸性psd特性,我需要有Q(目标矩阵)和A(约束矩阵)。有人知道gurobi.py shell中是否有命令允许我访问/查看目标Q矩阵吗


提前感谢您,如有必要,请随时要求澄清

Gurobi优化器没有从
模型
对象检索矩阵的简单函数。但是,您可以通过
LinExpr
QuadExpr
对象以迭代方式获取该数据。下面是一个简单的程序,它迭代线性约束矩阵(a)并打印系数:

from gurobipy import *

m = read('afiro.mps')

for ct in m.getConstrs():
    row = m.getRow(ct)
    for i in range(row.size()):
        print("%s %s %f" % (ct.ConstrName, row.getVar(i).VarName, row.getCoeff(i)))

将其调整为二次目标或二次约束的
QuadExpr

使用gurobipy 9.x,可以使用(未记录的)
Model.getQ()
方法获得目标Q矩阵,如下所示:

from gurobipy import read

m = read('mwe_example.mps')
Q = m.getQ()
Qdense = Q.todense()