与模型相关的信息或特定的变量/约束可以通过访问属性。变量的值在当前的解决方案是通过访问X属性。注意,X属性存储为“双”。这是独立的变量的类型(二进制整数,连续的,等等)。
获取变量值之前,你可能想要查询模型状态确保模型是解决。
下面的示例展示了如何检索变量值在不同的编程语言。
Python
检索的价值单变量,查询相应的X属性Var对象。例如:
model.optimize ()
#打印所有变量的值
在model.getVars v ():
打印(f”{v。VarName} = {v.X}")
检索的值多个变量同时,用Model.getAttr ()。例如:
model.optimize ()
all_vars = model.getVars ()
值=模型。getAttr (“X”, all_vars)
名称=模型。all_vars getAttr (“VarName”)
名字,val zip(名称,值):
打印(f“{name} = {val}”)
有关更多信息,请参见:
C
检索的价值单变量、查询使用的X属性变量GRBgetdblattrelement ()。例如:
错误= GRBoptimize(模型);
如果(错误)转到退出;
int numvars,我;
双重价值;
char * varname;
错误= GRBgetintattr(模型、GRB_INT_ATTR_NUMVARS &numvars);
如果(错误)转到退出;
/ *打印所有变量的值* /
(我= 0;我< numvars;我+ +){
错误= GRBgetdblattrelement(模型、GRB_DBL_ATTR_X我,平均数);
如果(错误)转到退出;
错误= GRBgetstrattrelement(模型、GRB_STR_ATTR_VARNAME我&varname);
如果(错误)转到退出;
printf (" % s = %。0 f \ n”, varname价值);
}
检索的值多个变量同时,用GRBgetdblattrarray ()。例如:
错误= GRBoptimize(模型);
如果(错误)转到退出;
int numvars,我;
双*值=零;
char * * varnames =零;
错误= GRBgetintattr(模型、GRB_INT_ATTR_NUMVARS &numvars);
如果(错误)转到退出;
值=(双*)malloc (numvars * sizeof(双));
varnames = (char * *) malloc (numvars * sizeof (char *));
错误= GRBgetdblattrarray(模型、GRB_DBL_ATTR_X 0 numvars值);
如果(错误)转到退出;
错误= GRBgetstrattrarray(模型、GRB_STR_ATTR_VARNAME 0 numvars varnames);
如果(错误)转到退出;
/ *打印所有变量的值* /
(我= 0;我< numvars;我+ +){
printf (" % s = %。0 f \ n”, varnames[我],[我]值);
}
免费(值);
免费(varnames);
有关更多信息,请参见:
c++
检索的价值单变量,查询相应的X属性GRBVar对象通过GRBVar: get ()。例如:
model.optimize ();
GRBVar * var =零;
var = model.getVars ();
/ /打印所有变量的值
for (int i = 0;我< model.get (GRB_IntAttr_NumVars);我+ +){
cout < < var[我]. get (GRB_StringAttr_VarName) < < " = " < < var[我]. get (GRB_DoubleAttr_X) < < endl;
}
检索的值多个变量同时,用GRBModel: get ()。例如:
model.optimize ();
GRBVar * var =零;
双*值=零;
字符串*名称=零;
int numVars = model.get (GRB_IntAttr_NumVars);
var = model.getVars ();
值=模型。get (GRB_DoubleAttr_X一样,var, numVars);
名称=模型。get (GRB_StringAttr_VarName一样,var, numVars);
/ /打印所有变量的值
for (int i = 0;我< numVars;我+ +){
cout < <名称[我]< < " = "[我]< < < <值endl;
}
有关更多信息,请参见:
Java
检索的价值单变量,查询相应的X属性GRBVar对象通过GRBVar.get ()。例如:
model.optimize ();
/ /打印所有变量的值
(GRBVar v: model.getVars ()) {
System.out.println (v.get (GRB.StringAttr.VarName) + " = " + v.get (GRB.DoubleAttr.X));
}
检索的值多个变量同时,用GRBModel.get ()。例如:
model.optimize ();
GRBVar var [] = model.getVars ();
[]= model.get (GRB.DoubleAttr双值。X, var);
[]= model.get (GRB.StringAttr字符串名称。VarName一样,var);
/ /打印所有变量的值
for (int i = 0;我< model.get (GRB.IntAttr.NumVars);我+ +){
system . out。println(名字(我)+ " = " +值[我]);
}
有关更多信息,请参见:
- 报告结果——属性部分的快速入门指南
- Java示例(特别是Mip1.java)
- Java API的概述
c#
检索的价值单变量、查询相应的X属性GRBVar对象。例如:
model.Optimize ();
GRBVar [] var = model.GetVars ();
/ /打印所有变量的值
for (int i = 0;我< model.NumVars;我+ +){
Console.WriteLine (var[我]。VarName + " = " + vars[i].X);
}
检索的值多个变量同时,用GRBModel.Get ()。例如:
model.Optimize ();
GRBVar [] var = model.GetVars ();
[]= model.Get (GRB.DoubleAttr值的两倍。X, var);
string [] = model.Get (GRB.StringAttr名字。VarName一样,var);
/ /打印所有变量的值
for (int i = 0;我< model.NumVars;我+ +){
控制台。WriteLine(名字(我)+ " = " +值[我]);
}
有关更多信息,请参见:
- 报告结果——属性部分的快速入门指南
- c#示例(特别是mip1_cs.cs)
- net API概述
VB.NET
检索的价值单变量、查询相应的X属性GRBVar对象。例如:
model.Optimize ();
昏暗的var()作为GRBVar = model.GetVars ()
“打印所有变量的值
因为我作为Integer = 0到模型。NumVars - 1
Console.WriteLine (var (i)。VarName & " = " & vars(i).X)
下一个
检索的值多个变量同时,用GRBModel.Get ()。例如:
model.Optimize ();
昏暗的var()作为GRBVar = model.GetVars ()
昏暗的值()= model.Get (GRB.DoubleAttr两倍。X, var)
昏暗的名字作为字符串= model.Get (GRB.StringAttr ()。VarName var)
“打印所有变量的值
因为我作为Integer = 0到模型。NumVars - 1
Console.WriteLine(名称(i)和“=”和值(我))
下一个
有关更多信息,请参见:
MATLAB
检索解决方案值的数组,查询x
返回的结构gurobi ()函数。例如:
结果= gurobi(模型、参数);
%打印所有变量的值
disp (result.x)
有关更多信息,请参见:
- 打印解决方案部分的快速入门指南
- MATLAB的例子(特别是mip1.m)
- MATLAB API概述
评论
0评论
请登录留下你的评论。