访问Gurobi中的Objective Q矩阵Python Shell
问题描述:
我正在尝试在一个优化问题(二次约束和二次目标函数)中重新构造客观Q矩阵,我正在用Gurobi和Python解决这个问题。 Gurobi可以选择将约束和目标函数作为线性表达式来添加,而不是用矩阵摆弄,所以我没有原始矩阵,Gurobi通过我的客观方程和系数为我创建了它。我需要Q(客观矩阵)和A(约束矩阵)。有谁知道在gurobi.py shell中是否有一个命令允许我访问/查看Objective Q矩阵?访问Gurobi中的Objective Q矩阵Python Shell
预先感谢您,如果有必要请随时要求澄清!
答
Gurobi Optimizer没有简单的函数从Model
对象中检索矩阵。但是,您可以通过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
用于二次目标或二次约束。