2017-05-18 3 views
0

이것은 파이썬 관련 질문 일 가능성이 높지만 출력을 계획 할 수 있도록 파이썬에서 gurobi의 변수를 처리하는 데 문제가 있습니다.model.getVars()를 사용하면 어떻게 개별 배열로 변수를 추출합니까?

저는 개별 배열로 추출 할 수있는 변수 집합을 사용하여 일반적인 시간별 배열에 대해 배열을 그릴 수 있습니다.

model.getVars()을 사용한 후에 배열 형식으로 개별 변수를 추출하는 방법은 무엇입니까?

+0

당신이 변수 p와 V를 생성하는 방법을 게시 할 수 있습니까? –

답변

0

사전, tupledict 목록에 변수를 저장하는 경우 이러한 변수를 사용하여 특정 변수의 X 속성 (http://www.gurobi.com/documentation/7.0/refman/x.html#attr:X)에 쉽게 액세스 할 수 있습니다. 그래서 예를 들면

: 당신이 솔루션을 조회하기 전에 최적화의 상태를 확인해야합니다

... 
myVar = m.addVar(vtype=GRB.BINARY, name="myVar") 
... 
m.optimize() 
if m.status == GRB.Status.OPTIMAL: 
    print('%s %g' % (myVar.varName, myVar.x)) 

참고.

전체 예를

는 여기에서 찾을 수 있습니다 : http://www.gurobi.com/documentation/7.0/examples/diet_py.html

+0

도움을 많이 주셔서 감사합니다. 나는 화면에 인쇄하는 것이 아니라 개별 배열에 결과를 저장하는 것에 관심이있어서 matplotlib를 사용하여 결과를 플로팅 할 수있다. 나는 지금 몇 가지 예제 코드를 찾으려고 노력 중이다. 이 내가 마음 A의 무슨의 일반적인 생각이다 : 1] = myVar.x [: 1] 그러나 , 나는 이것이 올바른 코드가 아닙니다 알 - 조금 더 나은 설명이 아마도하지만, sol_p = model.getAttr (: 'model.optimize() 상태 = model.status 경우 상태 == GRB.Status.OPTIMAL - 난 후 무엇을 ... – tm553

+0

이것은 내가 사용하고있는 코드는 '최적의 상태는 % g'% model.objVal입니다. ' print ('최적화 상태는 % d '% status) print ('최적의 목표는 % g '% model.objVal'입니다.) sol_v = model.getAttr ('x', v) 그리고 나는 기대했다. sol_p 및 sol_v 변수는 올바른 행 길이를 가진 5 개의 열 변수가 될 것이지만 그렇지 않으면 모든 변수 데이터가 포함 된 tupledict가 반환됩니다 – tm553