2017-03-01 23 views
0

Gurobi 및 Python으로 해결하려는 최적화 문제 (2 차 제약 조건 및 2 차 목적 함수 포함)에서 Objective Q 행렬을 재구성하려고합니다. Gurobi는 행렬을 조작하지 않고 선형 표현식으로 제약 조건과 목적 함수를 추가 할 수있는 옵션을 가지고 있기 때문에 원래 행렬이 없기 때문에 Gurobi는 객관적인 방정식과 계수를 통해 나를 만듭니다.Gurobi Python 쉘에서 객관적인 Q 행렬에 액세스

객관적인 Q 매트릭스의 convexity psd 속성에 대한 분석을 수행하려면 Q (객관적인 매트릭스)와 A (제약 매트릭스)가 필요합니다. gurobi.py 셸에 Objective Q 매트릭스에 액세스하거나 볼 수있는 명령이 있는지 아는 사람이 있습니까?

미리 감사 드리며 필요한 경우 설명을 요청하십시오.

답변

0

Gurobi Optimizer는 Model 개체에서 행렬을 검색하는 간단한 함수가 없습니다. 그러나 해당 데이터를 LinExprQuadExpr 개체를 통해 반복적으로 가져올 수 있습니다.

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이 적응 다음은 간단한 선형 제한 행렬 (A)을 반복하고이 계수를 출력 프로그램이다.