批量请求#

int GRBabortbatch(GRBbatch *batch)#

此函数指示集群管理器中止此批处理请求的处理,将其状态更改为ABORTED。有关更多详细信息,请参阅批处理状态代码部分。

Return value:

非零返回值表示在终止批处理请求时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 将被中止的批次。

Example:
/* request to abort the batch */
error = GRBabortbatch(batch);
if (error) goto QUIT;
int GRBdiscardbatch(GRBbatch *batch)#

此函数指示集群管理器删除与相关批处理请求相关的所有信息,包括存储的解决方案(如果可用)。对相关批处理请求的进一步查询将失败,并返回错误代码DATA_NOT_AVAILABLE。请谨慎使用此函数,因为删除的信息无法恢复。

Return value:

非零返回值表示在丢弃批次时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 将被丢弃的批次。

Example:
/* discard the batch object in the manager */
error = GRBdiscardbatch(batch);
if (error) goto QUIT;
int GRBfreebatch(GRBbatch *batch)#

释放批处理结构并释放相关的内存。

Return value:

非零返回值表示在释放批次时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 要释放的批次结构。

Example:
GRBfreebatch(batch);
int GRBgetbatch(GRBenv *env, const char *BatchID, GRBbatch **batchP)#

给定一个由GRBoptimizebatch返回的BatchID,以及一个可以连接到适当的集群管理器的Gurobi环境(即已正确设置参数CSManager用户名ServerPassword的环境),此函数返回一个GRBbatch结构。通过它,您可以查询相关批处理请求的当前状态,并且一旦批处理请求被处理,您可以查询其解决方案。详情和示例请参阅批量优化部分。

Return value:

非零返回值表示在创建GRBbatch结构时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • env – 应在其中创建新批处理结构的环境。

  • BatchID – 您想要访问的批次的ID。

  • batchP – 应该放置指向批处理结构的指针的位置。

Example:
/* create batch-object */
error = GRBgetbatch(env, BatchID, &batch);
if (error) goto QUIT;
GRBenv *GRBgetbatchenv(GRBbatch *batch)#

检索与批次关联的环境。

Return value:

与批次关联的环境。返回值为NULL表示在检索环境时出现问题。

Arguments:
  • batch – 应该从中检索环境的批次。

Example:
GRBenv *env = GRBgetbatchenv(batch);
int GRBgetbatchintattr(GRBbatch *batch, const char *attrname, int *valueP)#

查询一个整数值的批量属性的值。

Return value:

非零返回值表示在查询属性时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 一个批次结构,通常由例程 GRBgetbatch创建。

  • attrname – 一个整数值的批量属性的名称。可用的属性在本文档的属性部分列出并描述。

  • valueP – 请求属性的当前值应放置的位置。

Example:
/* query the last error code */
error = GRBgetbatchintattr(batch, "BatchErrorCode", &errorCode);
if (error || !errorCode) goto QUIT;

请注意,所有批处理属性都在本地缓存,并且仅在您创建客户端批处理对象或显式更新此缓存时更新(通过调用适当的更新函数 - GRBupdatebatch 用于 Cupdate 用于 Python 等)。

int GRBgetbatchjsonsolution(GRBbatch *batch, char **jsonsolP)#

此函数从集群管理器中检索已完成批处理请求的解决方案。解决方案以JSON解决方案字符串的形式返回。为了使此调用成功,批处理请求的状态必须为COMPLETED。此外,请注意,存储在集群管理器端的结果文件必须经过gzip压缩,并且此批处理应仅关联一个结果文件;对于通过API以编程方式提交的批处理,这两者都将成立。请参阅批处理状态代码部分以获取更多详细信息。

Return value:

非零返回值表示在查询批处理解决方案时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 要查询的批次。

  • jsonsolP – 指向新创建的JSON字符串的指针应放置的位置。

重要

在Windows上,buffP中返回的字符串是在与调用程序不同的堆中分配的。您必须调用GRBfree来释放它。

Example:
/* print JSON solution into string */
error = GRBgetbatchjsonsolution(batch, &jsonsol);
if (error) goto QUIT;
printf("JSON solution: %s\n", jsonsol);
int GRBgetbatchstrattr(GRBbatch *batch, const char *attrname, char **valueP)#

查询字符串值批量属性的值。

Return value:

非零返回值表示在查询属性时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 一个批处理结构,通常由例程 GRBgetbatch创建。

  • attrname – 字符串值批处理属性的名称。可用的属性在本文档的属性部分列出并描述。

  • valueP – 请求属性的当前值应放置的位置。

Example:
/* query the last error message */
error = GRBgetbatchstrattr(batch, "BatchErrorMessage", &errorMsg);
if (error) goto QUIT;

请注意,所有返回字符串值属性的接口例程都是返回指向内部Gurobi数据结构的指针。用户应在下一次调用Gurobi库例程之前将指针的内容复制到不同的数据结构中。用户还应小心,永远不要修改由返回的字符指针指向的数据。

请注意,所有批处理属性都在本地缓存,并且仅在您创建客户端批处理对象或显式更新此缓存时才会更新(通过调用适当的更新函数 - GRBupdatebatch 用于 Cupdate 用于 Python 等)。

int GRBoptimizebatch(GRBmodel *model, char *BatchID)#

向集群管理器提交一个新的批处理请求。返回BatchID(一个字符串),它唯一地标识集群管理器中的作业,并可用于查询此请求的状态(从此程序或任何其他程序)。一旦请求完成,BatchID也可以用于检索相关的解决方案。要提交批处理请求,您必须通过设置VTagCTagQCTag属性中的至少一个来标记模型的至少一个元素。有关批处理优化的更多详细信息,请参阅批处理优化部分。

请注意,此例程将处理所有待处理的模型修改。

Return value:

非零返回值表示在提交批量请求时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • model – 在批量模式下优化的模型。请注意,此例程仅报告批量请求是否遇到错误。

  • BatchID – 成功时,新创建的批处理请求的BatchID应存储的位置。指针必须指向长度为GRB_MAX_STRLEN+1或更长的字符串。

Example:
/* submit batch request to the Manager */
error = GRBoptimizebatch(model, BatchID);
if (error) goto QUIT;
int GRBretrybatch(GRBbatch *batch)#

此函数指示集群管理器重试优化失败或中止的批处理请求,将其状态更改为已提交。 请参阅批处理状态代码部分以获取更多详细信息。

Return value:

非零返回值表示在重试批次时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 要重试的批次。

Example:
/* retry the batch request */
error = GRBretrybatch(batch);
if (error) goto QUIT;
int GRBupdatebatch(GRBbatch *batch)#

所有批处理属性值都在本地缓存,因此查询返回的是上次与集群管理器通信时收到的值。此函数使用集群管理器中当前可用的值刷新所有属性的值(这涉及网络通信)。

Return value:

非零返回值表示在更新批处理请求时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 将要更新的批次。

Example:
/* update local attributes */
error = GRBupdatebatch(batch);
if (error) goto QUIT;
int GRBwritebatchjsonsolution(GRBbatch *batch, const char *filename)#

此函数返回从集群管理器获取的已完成批处理请求的存储解决方案。解决方案以gzip压缩的JSON文件形式返回。您提供的文件名必须以.json.gz扩展名结尾。JSON格式在JSON解决方案格式部分中描述。请注意,为了使此调用成功,批处理请求的状态必须为COMPLETED。进一步注意,存储在集群管理器端的结果文件必须是gzip压缩的,并且此批处理应仅关联一个结果文件;对于通过API以编程方式提交的批处理,这两者都将成立。请参阅批处理状态代码部分以获取更多详细信息。

Return value:

非零返回值表示在将JSON解决方案字符串写入给定文件名时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用GRBgeterrormsg来获取错误的详细信息。

Arguments:
  • batch – 从qhere查询其解决方案的批量请求。

  • filename – 存储JSON解决方案的文件名。 它必须是一个以.json.gz扩展名结尾的文件名。

Example:
/* save solution into a file */
error = GRBwritebatchjsonsolution(batch, "batch-sol.json.gz");
if (error) goto QUIT;