# TOMLAB  
# REGISTER (TOMLAB)
# LOGIN  
# myTOMLAB
TOMLAB LOGO

« Previous « Start » Next »

D  The Matlab Interface Routines - Callback Routines

D.1  cpxcb_BARRIER

CPLEX Barrier callback.

Called from TOMLAB /CPLEX when solving linear problems using the barrier algorithm.

This callback is enabled by setting callback(5)=1 in the call to cplex.m, or Prob.MIP.callback(5)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_BARRIER, 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.

D.2  cpxcb_DISJCUT

CPLEX Disjunctive cut callback.

Called from TOMLAB /CPLEX during disjunctive cuts processing.

This callback is enabled by setting callback(10)=1 in the call to cplex.m, or Prob.MIP.callback(10)=1 if using tomRun('cplex',...).

cpxcb_DISJCUT 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 parallel thread making this call (always 0)
 23 USER_THREADS     - total number of parallel threads currently running (always 1)

By returning a nonzero value from cpxcb_DISJCUT, 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.

D.3  cpxcb_DUAL

CPLEX Dual simplex callback.

Called from TOMLAB /CPLEX when solving linear problems using the dual simplex algorithm.

This callback is enabled by setting callback(2)=1 in the call to cplex.m, or Prob.MIP.callback(2)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_DUAL, 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.

D.4  cpxcb_DUALCROSS

CPLEX Dual crossover callback.

Called from TOMLAB /CPLEX during the dual crossover algorithm.

This callback is enabled by setting callback(4)=1 in the call to cplex.m, or Prob.MIP.callback(4)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_DUALCROSS, 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.

D.5  cpxcb_FLOWMIR

CPLEX Mixed integer rounding cut callback.

Called from TOMLAB /CPLEX during Mixed integer rounding cuts processing.

This callback is enabled by setting callback(11)=1 in the call to cplex.m, or Prob.MIP.callback(11)=1 if using tomRun('cplex',...).

cpxcb_FLOWMIR 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 parallel thread making this call (always 0)
 23 USER_THREADS     - total number of parallel threads currently running (always 1)

By returning a nonzero value from cpxcb_FLOWMIR, 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.

D.6  cpxcb_FRACCUT

CPLEX Gomory fractional cut callback.

Called from TOMLAB /CPLEX during Gomory fractional cuts processing

This callback is enabled by setting callback(9)=1 in the call to cplex.m, or Prob.MIP.callback(9)=1 if using tomRun('cplex',...).

cpxcb_FRACCUT 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 parallel thread making this call (always 0)
 23 USER_THREADS     - total number of parallel threads currently running (always 1)

By returning a nonzero value from cpxcb_FRACCUT, 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.

D.7  cpxcb_MIP

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 Prob.MIP.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 parallel thread 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.

D.8  cpxcb_MIPPROBE

CPLEX MIP Probe and Clique Merging callback.

Called from TOMLAB /CPLEX during MIP Probing and Clique Merging.

This callback is enabled by setting callback(8)=1 in the call to cplex.m, or Prob.MIP.callback(8)=1 if using tomRun('cplex',...).

cpxcb_MIPPROBE 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 parallel thread making this call (always 0)
 23 USER_THREADS     - total number of parallel threads currently running (always 1)

By returning a nonzero value from cpxcb_MIPPROBE, 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.

D.9  cpxcb_PRESOLVE

CPLEX Presolve callback.

Called at regular intervals from TOMLAB /CPLEX during presolve.

This callback is enabled by setting callback(6)=1 in the call to cplex.m, or Prob.MIP.callback(6)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo variable:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRESOLVE_ROWSGONE - number of rows eliminated
  2  PRESOLVE_COLSGONE - number of columns eliminated
  3  PRESOLVE_AGGSUBST - number of aggregator substitutions
  4  PRESOLVE_COEFFS   - number of modified coefficients

By returning a nonzero value from cpxcb_PRESOLVE, 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.

D.10  cpxcb_PRIM

CPLEX Primal simplex callback

Called from TOMLAB /CPLEX when solving linear problems using the primal simplex algorithm.

This callback is enabled by setting callback(1)=1 in the call to cplex.m, or Prob.MIP.callback(1)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_PRIM, 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.

D.11  cpxcb_PRIMCROSS

CPLEX Primal crossover callback

Called from TOMLAB /CPLEX during the primal crossover algorithm.

This callback is enabled by setting callback(3)=1 in the call to cplex.m, or Prob.MIP.callback(3)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_PRIMCROSS, 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.

D.12  cpxcb_QPBARRIER

CPLEX Quadratic Barrier callback.

Called from TOMLAB /CPLEX when solving quadratic problems using the barrier algorithm.

This callback is enabled by setting callback(12)=1 in the call to cplex.m, or Prob.MIP.callback(12)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_QPBARRIER, 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.

D.13  cpxcb_QPSIMPLEX

CPLEX Quadratic Simplex callback.

Called from TOMLAB /CPLEX when solving quadratic problems using the simplex algorithm.

This callback is enabled by setting callback(13)=1 in the call to cplex.m, or Prob.MIP.callback(13)=1 if using tomRun('cplex',...).

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

Contents of cpxCBInfo vector:

  i  cpxCBInfo(i)    - Value
  -------------------------------------------------------------
  1  PRIMAL_OBJ      - primal objective value
  2  DUAL_OBJ        - dual objective value
  3  PRIMAL_INFMEAS  - measure of primal infeasibility
  4  DUAL_INFMEAS    - measure of dual infeasibility
  5  PRIMAL_FEAS     - 1 if primal feasible, 0 if not
  6  DUAL_FEAS       - 1 if dual feasible, 0 if not
  7  ITCOUNT         - iteration count
  8  CROSSOVER_PPUSH - primal push crossover itn. count
  9  CROSSOVER_PEXCH - primal exchange crossover itn. count
 10  CROSSOVER_DPUSH - dual push crossover itn. count
 11  CROSSOVER_DEXCH - dual exchange crossover itn. count

By returning a nonzero value from cpxcb_QPSIMPLEX, 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.

D.14  cpxcb_NET

Further details to be added.

« Previous « Start » Next »