ILOG CPLEX .NET Reference Manual

Cplex.UserCutCallback Class

This is the callback class to use to add user-written cuts during the branch-and-cut search.

For a list of all members of this type, see Cplex.UserCutCallback Members.

System.Object
   ILOG.CPLEX.Cplex.Callback
      ILOG.CPLEX.Cplex.MIPCallback
         ILOG.CPLEX.Cplex.ControlCallback
            ILOG.CPLEX.Cplex.UserCutCallback

public abstract class Cplex.UserCutCallback : ControlCallback

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

This is an advanced class.

Important:

Advanced classes 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 classes instead.

This is the user cut callback class. Extensions of this class implement user-written user cut callbacks. They allow you to add user cuts to the problem while the problem is being solved with branch-and-cut search. User cuts may not contribute to the model formulation; user cuts must not restrict the feasible region of the problem, but only strengthen the formulation. If constraints that do restrict the feasible region of the problem are to be added during the optimization, an instance of Cplex.LazyConstraintCallback must be used instead. Cuts are added from this callback by a call to the method add. The added cuts must be globally valid because they are not removed automatically during backtracking.

The constructor and methods of this class are protected to make sure that they are used only to derive a user-written callback class or to implement the main method in it.

When you use UserCutCallback, you effectively promise CPLEX that you are not adding cuts that reduce the solution space by the callback, in contrast to LazyConstraintCallback. By using UserCutCallback, you allow CPLEX to pursue presolve more aggressively. In the case of LazyConstraintCallback, you are free to add cuts that may chop off solutions that are otherwise feasible with respect to the the model.

Requirements

Namespace: ILOG.CPLEX

Assembly: ILOG.CPLEX (in ILOG.CPLEX.dll)

See Also

Cplex.UserCutCallback Members | ILOG.CPLEX Namespace