标记变量或约束

标记变量或约束

批量优化将模型的建立过程与模型的求解过程分离开来。例如,您可以在一台机器上构建模型,提交批处理请求,然后使用结果BatchID在完全不同的机器上检索解决方案。

当然,将模型与其解决方案断开连接会引入一个映射问题:检索解决方案的过程需要知道如何将解决方案的元素映射回模型的相应元素。这是通过标签.在构建模型时,用户将唯一字符串与模型中感兴趣的变量和约束关联起来。然后将解决方案值与这些字符串关联。如果用户没有为模型元素提供标记,则不会为该元素存储或返回解决方案信息。

可以标记变量(使用VTag属性),线性约束(使用CTag属性)和二次约束(使用QCTag属性)。需要指出的是,混合整数模型的解不包含任何约束信息,因此约束标签对这种模型没有影响。

有关解决方案在不同情况下可提供的信息的详细信息,请参阅JSON解决方案格式部分。

下面是一个简单的例子,它标记了一个模型中的前10个变量:

为一些变量定义标签,以便在count中访问它们的值,在enumerate(model.getVars()): v. vtag = "Variable{}".format(count) if count >= 10: break