整数规划解池功能

在使用分支定界法求解整数规划问题过程中,求解器会找到多个可行解,COPT提供整数规划解池(Solution Pool)功能,可以获取解池中的解和对应目标函数值。支持的问题类型包括:MILP,MISOCP,MIQ(C)P。

COPT提供相关函数,通过指定以下参数,获取解池中第 iSol 个解中指定变量的取值,也可以获取第 iSol 个解对应目标函数的值。

  • iSol:解池中解的索引,即解池中第 iSol 个解(从0开始);

  • vars:指定的变量。

在不同编程接口中实现方式如 表 45 所示:

表 45 获取解池中解和目标函数值的函数

编程接口

获取解

获取目标函数值

C

COPT_GetSolution

COPT_GetPoolObjVal

C++

Model::GetPoolSolution()

Model.GetPoolSolution()

C#

Model.GetPoolSolution()

Model.GetPoolSolution()

Java

Model.getPoolSolution()

Model.getPoolObjVal()

Python

Model.getPoolSolution()

Model.getPoolObjVal()

注意: 关于解池的相关操作,在不同编程接口中的函数名称、调用方式,以及 参数名称略有不同 ,但是实现的功能和参数含义是一致的;

解池相关属性

  • PoolSols

    整数属性。

    解池中的解的数目。