2015-05-12 3 views
1

Я пишу программу на Java с Gurobi 6.0.2, и у меня есть некоторые проблемы с управлением переменными, в частности я не могу их установить или распечатать.Gurobi не может установить или распечатать (вручную) значение переменных

Пример:

GRBEnv env = new GRBEnv(); 
GRBModel model = new GRBModel(env); 
GRBVar x = model.addVar(0.0, GRB.INFINITY, 0.0, GRB.SEMIINT, "x"); 
x.set(GRB.DoubleAttr.X, 10.0); 
System.out.println(x.get(GRB.DoubleAttr.X)); 

NetBeans показывает это сообщение:

Exception in thread "main" gurobi.GRBException: Error at GRBVar.set 
    at gurobi.GRBVar.set(GRBVar.java:141) 
    at core.Optimize.main(Optimize.java:29) 
Java Result: 1 

Эта проблема происходит также, когда я решил модель релаксации, поэтому не могу retrive значения переменных.

ответ

1

Если вы хотите установить начальные значения переменных, вы не можете использовать

x.set(GRB.DoubleAttr.X, 10.0); 

но должны написать

x.set(GRB.DoubleAttr.Start, 10.0); 

Получение значений переменных имеет смысл только после того, как вы решили модели.

+0

Я написал этот фрагмент кода только для проверки правильности работы только потому, что после разрешения модели релаксации Gurobi показывает GRBException в GRBVar.get –

+1

Это исключение обычно означает, что первичное решение не найдено (либо потому, что модель недопустима или потому, что был достигнут тайм-лимит). –