0
: 나는 합계가 내 모델을 가지고 수행하고사용 결정 변수 Gurobi 자바 보통 Gurobi의 자바 인터페이스에 내가 예를 들어이와 모델에 변수를 추가하여 모델을 생성
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++) {
XobjectiveCoef = distance(i, j);
X[i][j] = model.addVar(0.0, 1.0, XobjectiveCoef, GRB.BINARY, "x" + String.valueOf(i) + "_" + String.valueOf(j));
}
}
모든 X가에 걸쳐 i와 j, 그리고 나는 이런 식으로 뭔가에 원하는 제약에 X[i][j]
을 사용할 수 있습니다 : 이제
for (int j = 0; j < n; j++) {
GRBLinExpr expr = new GRBLinExpr();
for (int i = 0; i < n; i++){
expr.addTerm(1.0, X[i][j]);
}
model.addConstr(expr, GRB.EQUAL, 1.0, "Name_of_constraint");
}
내가 무엇을 찾고, 단지 제약 조건이 아니라 의사 결정 변수를 사용하는 방법입니다 모델 정의에서. GRBLinExpr
에 addVar
을 사용할 수 있는지 확인했지만 그렇지 않은 것은 아닙니다.
감사
답변 해 주셔서 감사합니다. 나는 expr을 재사용 할 수 있다고 확신하지만, 나는 답을 얻지 못한다. 모델 정의에없는 경우 어디에서 어떻게 Y와 Z를 만듭니 까? (따라서 model.addVar (...)로 생성하지 않음)? –
Y와 Z는 새로운 변수입니다. 이 예에서는 단순히 expr이라는 GRBLinExpr을 다시 사용할 수 있음을 보여줍니다. –
예를 들어 주셔서 감사합니다. 그러나 주요 질문과 의견에서 볼 수 있듯이 문제는 표현식을 재사용하는 것이 아니라 목표 변수에 추가하지 않고 의사 결정 변수를 만드는 문제입니다. 새 GRBVar 생성자를 사용할 수 없으므로 model.addVar (...)를 실행해야합니다. 하지만 model.addVar (...)을 호출하면이 변수가 목적 함수에 추가됩니다. 나 맞아? –