The SolverCapability2 enumeration describes another set of flags with possible solver capabilities.
enum SolverCapability2 { CAPAB2_NEW_OSI = 0x00000001, CAPAB2_INDICATOR = 0x00000002, CAPAB2_DIF_MIP_GAP = 0x00000004, CAPAB2_PARALLEL = 0x00000008, CAPAB2_RELOAD_QP = 0x00000010, CAPAB2_NO_ASYNCHR = 0x00000020, CAPAB2_PRESLV_INFO = 0x00000040, CAPAB2_LAZY_ROWS = 0x00000080, CAPAB2_CUT_POOL = 0x00000100, CAPAB2_FILTERS = 0x00000200, CAPAB2_EMPTY_FILE = 0x00000400, CAPAB2_TUNING = 0x00000800, CAPAB2_SOLVE_MPS = 0x00001000, CAPAB2_CALC_SUBGR = 0x00002000, CAPAB2_BRANCH_CB = 0x00004000, CAPAB2_RELOAD_MM = 0x00008000, CAPAB2_SEP_SPEC_ROW = 0x00010000, CAPAB2_PASS_THROUGH = 0x00020000, CAPAB2_CALLBACK_LAZY = 0x00040000, CAPAB2_RUN_SEP_THR = 0x00080000, CAPAB2_CP_FLOAT_EXP = 0x00100000, CAPAB2_CP_ACTIVITY = 0x00200000, CAPAB2_CP_FORB_ASNG = 0x00400000, CAPAB2_CON_VAR_PRIO = 0x00800000, CAPAB2_QP_AS_MIQP = 0x01000000, CAPAB2_CALLBACK_TIME = 0x02000000, CAPAB2_OBJ_CONSTANT = 0x04000000 };
Members |
Description |
CAPAB2_NEW_OSI = 0x00000001 |
If 1, the AIMMS-solver interface uses this new AIMMS-OSI interface standard. |
CAPAB2_INDICATOR = 0x00000002 |
Can handle indicator constraints (MIP only). |
CAPAB2_DIF_MIP_GAP = 0x00000004 |
Solver calculates the MIP gap by using the best bound (instead of the best integer) as the divider (MIP only). |
CAPAB2_PARALLEL = 0x00000008 |
Solver has a parallel optimizer. |
CAPAB2_RELOAD_QP = 0x00000010 |
Not really a capability but it indicates that the solver has to reload a quadratic model if updates are done. |
CAPAB2_NO_ASYNCHR = 0x00000020 |
Not really a capability but it indicates that the solver cannot do an asynchronous solve. |
CAPAB2_PRESLV_INFO = 0x00000040 |
Solver can provide presolve status information for columns and rows. |
CAPAB2_LAZY_ROWS = 0x00000080 |
Can handle lazy constraints (MIP only). |
CAPAB2_CUT_POOL = 0x00000100 |
Can handle cut pool constraints (MIP only). |
CAPAB2_FILTERS = 0x00000200 |
Can handle solution pool filters. |
CAPAB2_EMPTY_FILE = 0x00000400 |
Solver empties its status/output file before every solve. |
CAPAB2_TUNING = 0x00000800 |
Solver can tune a model. |
CAPAB2_SOLVE_MPS = 0x00001000 |
Solver can solve MPS or LP file. |
CAPAB2_CALC_SUBGR = 0x00002000 |
Solver can calculate the subgradient, i.e., solve the system By = x for a given vector x, where B is the basis matrix of a linear program. |
CAPAB2_BRANCH_CB = 0x00004000 |
Solver supports branch callback (MIP only). |
CAPAB2_RELOAD_MM = 0x00008000 |
Not really a capability but it indicates that the solver has to reload the model if one of following matrix updates took place: change direction, change model type or add column. |
CAPAB2_SEP_SPEC_ROW = 0x00010000 |
Indicates that lazy constraints and cut pool constraints should be passed to the AIMMS-solver interface separately from the other constraints. |
CAPAB2_PASS_THROUGH = 0x00020000 |
Solver is a pass-through solver. |
CAPAB2_CALLBACK_LAZY = 0x00040000 |
Solver supports callback for adding lazy constraints (MIP only). |
CAPAB2_RUN_SEP_THR = 0x00080000 |
Not really a capability but it indicates that the solver should always run in separated thread. |
CAPAB2_CP_FLOAT_EXP = 0x00100000 |
Solver can handle floating expressions (CP only). |
CAPAB2_CP_ACTIVITY = 0x00200000 |
Solver can handle activities and resources (CP only). |
CAPAB2_CP_FORB_ASNG = 0x00400000 |
Solver can handle forbidden assignments (CP only). |
CAPAB2_CON_VAR_PRIO = 0x00800000 |
Solver supports priorities for continuous variables. |
CAPAB2_QP_AS_MIQP = 0x01000000 |
Solver can solve a non-convex QP problem to global optimality by reformulating it as a MIQP problem (QP only). |
CAPAB2_CALLBACK_TIME = 0x02000000 |
Solver supports time (i.e., progress) callback. |
CAPAB2_OBJ_CONSTANT = 0x04000000 |
Can handle objective constant (a.k.a. |
The solver capabilities are specified as flags in the IntegerSolverInfo::IINFO_CAPAB2_FLAGS parameter in the info_int argument of the GetInitialInfo method.
The SolverCapability enumeration shows the first set of solver capability flags. These are specified as flags in the IntegerSolverInfo::IINFO_CAPAB_FLAGS parameter.