Namespace: ILOG.OPL
Assembly: oplall (in oplall.dll)

Syntax

C#
public abstract class LazyConstraintCallback : Cplex..::..ControlCallback

Remarks

This is an advanced method.

Important:

Advanced methods typically demand a profound understanding of the algorithms used by ILOG Cplex. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, ILOG encourages you to consider carefully whether you can accomplish the same task by means of other methods instead.

This is the lazy constraint callback class. Extensions of this class implement user-written lazy constraint callbacks. These allow you to add lazy constraint to the problem while the problem is being solved with branch-and-cut search. These lazy constraints may contribute to the model formulation and restrict the feasible region of the problem. By contrast, if a constraint to be added during branch-and-cut search does not change the feasible region of the active model but only strengthens the formulation, it is referred to as a user cut. Such constraints should better be added through a Cplex.UserCutCallback because this allows IloCplex to potentially perform more presolve reductions. It is an error, however, to add lazy constraints using a user cut callback.

The idea behind lazy constraints is that the LPs that are solved when solving the MIP can be kept smaller when these constraints are not included. Cplex will, however, include a lazy constraint in the LP as soon as it becomes violated. In other words, the solution computed by Cplex makes sure that all the lazy constraints that have been added are satisfied.

The Cplex.ControlCallback is just another name for the Cplex.LazyConstraintCallback class.

Inheritance Hierarchy

System..::..Object
  ILOG.OPL..::..Cplex..::..Callback
    ILOG.OPL..::..Cplex..::..MIPInfoCallback
      ILOG.OPL..::..Cplex..::..MIPCallback
        ILOG.OPL..::..Cplex..::..ControlCallback
          ILOG.OPL..::..Cplex..::..LazyConstraintCallback

See Also

[!:IloCplex.ControlCallback]
[!:IloCplex.CutCallback]
[!:IloCplex.UserCutCallback]