使用一个API来创建一个批处理

批量优化是一个特性只与Gurobi集群管理器可用。它允许客户创建一个模型,标记的一组相关的元素模型,然后提交该模型为一批。一批独特的ID返回响应,允许客户端查询和监控批的状态(提交、完成等)。一旦批处理请求被处理,客户端可以检索的解决方案和相关的属性标记元素作为JSON文档模型中。

在本节中,我们只是想介绍API的原则的简要说明这些步骤。下面的代码片段显示的主要概念,但不一定完整程序。你可以参考Gurobi参考手册详细完整的API和一个完整的和功能的例子。

这个过程的第一步是创建一个批处理环境通过连接到一个集群管理器和启用批处理模式CSBatchMode参数。为了验证应用程序集群管理器,你有两个选择。第一个是使用您的用户名和密码,通过设置用户名ServerPassword参数。第二,我们建议是使用API键和设置CSAPIAccessIDCSAPISecret参数。我们直接在代码片段中设置这些参数为简单起见,我们建议您将他们的许可文件或阅读他们的价值观从环境变量来避免硬编码的需要。

然后您可以构建一个模型,标签和其他元素的变量需要出口的解决方案,最后你可以提交批处理,使一批ID。

下面的Python代码演示了这些步骤:

进口gurobipy gp #创建一个批处理环境与gp.Env env(空= True): env。setParam (CSManager, http://localhost: 61080) env。setParam (‘CSAPIAccessID’,‘0 e8c35d5 ff20 - 4 - e5d a639 - 10105——e56b264) env。setParam (“CSAPISecret”、“d588f010——ad47 - 4310 - 933 - e - 1902057661 - c9的)env。setParam (CSBatchMode, 1) env.start() #与gp.read建立模型(misc07。议员们,env)模型:#出口设置标签来控制解决方案[…)# batchid提交并得到批ID = model.optimizeBatch ()

然后你的客户或应用程序可以监视批处理状态。这是一个例子,访问和打印当前状态:

#创建一个批处理环境与gp.Env env(空= True): env。setParam (CSManager, http://localhost: 61080) env。setParam (‘CSAPIAccessID’,‘0 e8c35d5 ff20 - 4 - e5d a639 - 10105——e56b264) env。setParam (“CSAPISecret”、“d588f010——ad47 - 4310 - 933 - e - 1902057661 - c9的)env。setParam (CSBatchMode, 1) env.start与gp() #获得批处理信息。批量(batchid env)批量:print(“批ID{}:错误代码{}({})”。格式(批处理。BatchID,批处理。BatchErrorCode, batch.BatchErrorMessage))

批处理完成后,您可以检索解决方案作为一个JSON对象:

#创建一个批处理环境与gp.Env env(空= True): env。setParam (CSManager, http://localhost: 61080) env。setParam (‘CSAPIAccessID’,‘0 e8c35d5 ff20 - 4 - e5d a639 - 10105——e56b264) env。setParam (“CSAPISecret”、“d588f010——ad47 - 4310 - 933 - e - 1902057661 - c9的)env。setParam (CSBatchMode, 1) env.start与gp() #获得批处理信息。批量(batchid env)批量:#得到JSON解决方案作为字符串,从索尔=创建dict json.loads (batch.getJSONSolution()) #漂亮打印通用解决方案信息打印(JSON。转储(sol (“SolutionInfo”),缩进= 4))