2017-03-01 109 views
0

我正在尝试在一个优化问题(二次约束和二次目标函数)中重新构造客观Q矩阵,我正在用Gurobi和Python解决这个问题。 Gurobi可以选择将约束和目标函数作为线性表达式来添加,而不是用矩阵摆弄,所以我没有原始矩阵,Gurobi通过我的客观方程和系数为我创建了它。我需要Q(客观矩阵)和A(约束矩阵)。有谁知道在gurobi.py shell中是否有一个命令允许我访问/查看Objective Q矩阵?访问Gurobi中的Objective Q矩阵Python Shell

预先感谢您,如果有必要请随时要求澄清!

回答

0

Gurobi Optimizer没有简单的函数从Model对象中检索矩阵。但是,您可以通过LinExprQuadExpr对象迭代获取该数据。下面是一个简单的程序,通过线性约束矩阵(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用于二次目标或二次约束。