配置参数


配置参数

在启动Gurobi会话时,您通常必须提供配置的详细信息。您可能需要指出是否希望在本地机器上使用许可证、从令牌服务器上使用许可证,或者可能希望将计算卸载到Compute Server或Gurobi Instant Cloud。在令牌服务器或计算服务器的情况下,必须提供服务器的名称。对于Compute Server和Instant Cloud,还需要提供登录凭据。

在许多情况下,您需要的配置信息已经存储在您的许可文件中(gurobi.lic)或您的环境文件(gurobi.env).这些文件是自动读取的,因此您只需创建一个标准的Gurobi环境对象(使用GRBloadenvC,或通过适当的GRBEnv在面向对象接口中的构造函数)。

如果您需要在运行时提供应用程序的配置信息,该怎么办?你可以用空环境将环境创建分解为几个步骤(与上面提到的标准的单步骤方法相反)。在第一步中,您将创建一个空的环境对象(使用GRBemptyenvC,或通过适当的GRBEnv在面向对象接口中的构造函数)。然后,您可以使用标准参数API在这个环境上设置配置参数。最后,您将启动环境(使用GRBstartenvC,或使用env.start ()方法),它将使用您刚才设置的配置参数。

空环境的例子

举个简单的例子,如果你想Python程序将优化计算卸载给名为server1,你可以说:

从gurobipy导入GRB #设置环境env = gp. env(空=True) env。setParam (ComputeServer, server1:61000) env。setParam('ServerPassword', 'passwd') env.start() #加载模型和优化模型= gp.read('misc07. php ')议员们,env = env) model.optimize ()

一个等价的Java程序看起来像这样:

进口gurobi。*;...//创建环境GRBenv env = new GRBenv (true);env.set (GRB.StringParam。ComputeServer, "server1:61000"); env.set(GRB.StringParam.ServerPassword, "passwd"); env.start(); // Load model and optimize GRBModel model = new GRBModel(env, "misc07.mps"); model.optimize()

一个等价的C程序看起来像这样:

#include "gurobi_c.h" int main(void) {GRBenv *env = NULL;GRBmodel *model = NULL;Int error = 0;/*设置环境*/ error = GRBemptyenv(&env);if (error) goto QUIT;错误= GRBsetstrparam(GRB_STR_PAR_COMPUTESERVER, "server1:61000");if (error) goto QUIT;错误= GRBsetstrparam(GRB_STR_PAR_SERVERPASSWORD, "passwd");if (error) goto QUIT;错误= GRBstartenv (env); if (error) goto QUIT; /* Load model and optimize */ error = GRBreadmodel(env, "misc07.mps", &model); if (error) goto QUIT; error = GRBoptimize(model); if (error) goto QUIT;

本示例使用ComputeServer参数连接计算服务器。要提供更多配置参数的示例,可以使用CloudAccessIDCloudSecretKey参数以提供凭据,以便启动Instant Cloud实例。要连接到令牌服务器,可以使用TokenServer参数。可以找到Gurobi参数的完整列表在这里

在启动Gurobi环境之前,必须设置配置参数。一旦环境开始,变化就没有影响。

在Python中,您还可以直接提供此类配置参数dict参数,而不首先创建空的环境。请参阅Env()的manbet体育手机客户端文档了一个例子。