优化模型

优化模型

现在模型已经建立,下一步是对其进行优化:


/*优化模型*/错误=GRB优化(模型);如果(错误)转到退出;

此例程执行优化并填充几个内部模型属性,包括优化状态、解决方案等。函数返回后,我们可以查询这些属性的值。特别是,我们可以通过检索地位属性


/*捕获解决方案信息*/error=GRBgetintattr(模型、GRB\u INT\u属性状态和优化状态);如果(错误)转到退出;

优化状态有许多可能的值。可能已找到模型的最优解,或已确定模型不可行或无界,或可能已中断求解过程。可以在中找到可能状态的列表古罗比参考手册. 对于我们的示例,我们知道模型是可行的,并且我们没有修改任何可能导致优化提前停止的参数(例如,时间限制),因此状态将为GRB_最优.

另一个重要的模型属性是计算出的解的目标函数的值。这是通过此调用访问的:


错误=GRBgetdblattr(模型、GRB_DBL_ATTR_OBJVAL和OBJVAL);如果(错误)转到退出;

请注意,如果找不到此模型的解决方案,此调用将返回非零错误结果。

一旦我们知道模型已经解决,我们就可以提取X模型的属性,其中包含计算解决方案中每个变量的值:


错误=GRBgetdblattrarray(模型,GRB_DBL_ATTR_X,0,3,sol);如果(错误)转到退出;

此例程检索数组值属性的值。第三个和第四个参数分别指示要检索的第一个数组元素的索引和要检索的元素数。在本例中,我们检索条目0到条目2(即所有三个条目)