CPLEX cpxcb MIP

From TomWiki
Jump to navigationJump to search

Notice.png

This page is part of the CPLEX Manual. See CPLEX.

CPLEX MIP callback.

Called from TOMLAB /CPLEX during mixed integer optimization.

This callback is enabled by setting callback(7) = 1 in the call to cplex.m, or P rob.M I P.callback(7) = 1 if using tomRun('cplex',...).

cpxcb_MIP is called with one argument, the cpxCBInfo progress information vector.

Contents of cpxCBInfo variable:

i cpxCBInfo(i)		- Value
-------------------------------------------------------------
1 BEST_INTEGER		- obj. value of best integer solution
2 BEST_REMAINING	- obj. value of best remaining node
3 NODE_COUNT		- total number of nodes solved
4 NODES_LEFT		- number of remaining nodes
5 MIP_ITERATIONS	- total number of  MIP iterations
6 MIP_FEAS		- returns 1 if feasible solution exists; otherwise, 0
7 CUTOFF		- updated cutoff value
8 CLIQUE_COUNT		- number of clique cuts added
9 COVER_COUNT		- number of cover  cuts added
10 DISJCUT_COUNT	- number of disjunctive cuts added
11 FLOWCOVER_COUNT	- number of flow cover cuts added
12 FLOWPATH_COUNT	- number of flow path cuts added
13 FRACCUT_COUNT	- number of Gomory fractional cuts added
14 GUBCOVER_COUNT	- number of GUB cover cuts added
15 IMPLBD_COUNT		- number of implied bound cuts added
16 MIRCUT_COUNT		- number of mixed integer rounding  cuts  added
17 PROBE_PHASE		- current phase of probing (0-3)
18 PROBE_PROGRESS	- fraction of probing  phase completed (0.0-1.0)
19 FRACCUT_PROGRESS  	- fraction of Gomory cut generation for the  pass completed (0.0 - 1.0)
20 DISJCUT_PROGRESS 	- fraction of disjunctive cut generation for the pass completed (0.0 - 1.0)
21 FLOWMIR_PROGRESS 	- fraction of flow cover and MIR cut generation for the pass completed (0.0 - 1.0)
22 MY_THREAD_NUM	- identifier of the parallelthread making this call (always 0)
23 USER_THREADS		- total number of parallel threads currently running (always 1)

By returning a nonzero value from cpxcb_MIP, the user can terminate the optimization.

If modifying this file, it is recommended to make a copy of it which is placed before the original file in the MATLAB path.