Skip to main content
FRAMES NO FRAMES

Group optim.cpoptimizer.extensions

The CP Optimizer Extensions API in C++.
Class Summary
IlcConstraint The handle class for user-defined constraints.
IlcConstraintArray The array class for the class IlcConstraint.
IlcConstraintI The implementation class for user-defined constraints.
IlcCumulElementVar The class for representing constrained cumul element functions.
IlcCumulElementVarArray The array class for the class IlcCumulElementVar.
IlcCustomInferencer The handle class for a custom inferencer.
IlcCustomInferencerI The class for representing custom inferencers.
IlcDemon A handle class used for propagating constraints.
IlcDemonI An implementation class used for propagating constraints.
IlcFloatArray The array class for the basic floating-point class.
IlcFloatExp The class for representing constrained floating-point expressions.
IlcFloatVar The class for representing constrained floating-point variables.
IlcFloatVarArray The array class for the class IlcFloatVar.
IlcGoal The handle class for the building blocks of custom search algorithms.
IlcGoalI The implementation class for the building blocks of custom search algorithms.
IlcIntArray The array class for the basic integer class.
IlcIntExp The class for representing integer expressions.
IlcIntExpIterator The iterator class for the domains of integer expressions.
IlcIntPredicate The handle class for integer predicates.
IlcIntPredicateI The implementation class for integer predicates.
IlcIntSelect The handle class for value selectors.
IlcIntSelectEvalI An implementation class for a value selector.
IlcIntSelectI The implementation class for value selectors.
IlcIntSet The handle class for sets of integers.
IlcIntSetArray The array class for the class IlcIntSet.
IlcIntSetIterator The iterator class for sets of integers.
IlcIntTupleSet The class representing a set of integer tuples.
IlcIntVar The class for representing constrained integer variables.
IlcIntVarArray The array class for the class IlcIntVar.
IlcIntVarDeltaIterator The iterator class for delta-domain of integer variables.
IlcIntervalSequenceVar The class of interval sequence variables.
IlcIntervalSequenceVarArray The array class for the class IlcIntervalSequenceVar.
IlcIntervalSequenceVar::Iterator The class of iterator for the Head-Tail graph of a sequence.
IlcIntervalVar The class for representing interval variables.
IlcIntervalVarArray The array class for the class IlcIntervalVar.
IlcRevAny The reversible class for IlcAny values.
IlcRevBool The reversible class for Boolean values.
IlcRevFloat The reversible class for floating-point values.
IlcRevInt The reversible class for integer values.
IlcSearchLimit The handle class for a search limit.
IlcSearchLimitI The implementation class for a search limit.
IloCPConstraintI A class for wrapping a user-defined constraint.
IloGoal A handle class that represents a goal in a model.
IloGoalI An implementation class that represents a goal in a model.
IloPropagatorI A class for creating a custom constraint.
Typedef Summary
IlcAny Type for objects values.
IlcChooseIntIndex A pointer to a function that takes an IlcIntVarArray and returns an integer.
IlcEvalInt Returns a function to use in a value selector.
IlcFloat Type for floating-point values.
IlcInt Type for integer values.
Macro Summary
IlcChooseIndex1 Macro to define a new variable choice function.
IlcChooseIndex2 Macro to define a new variable choice function.
ILCCTDEMON0 Macro for creating a new demon class.
ILCGOAL0 Macro for creating a new goal class.
IlcInfinity Constant to represent infinity.
IlcIntBottom Constant to represent the smallest integer.
ILCINTPREDICATE0 Macro to define an integer predicate class.
IlcIntTop Constant to represent the largest integer.
ILOCPCONSTRAINTWRAPPER0 Macro for wrapping a new constraint class.
ILOCPGOALWRAPPER0 Macro for wrapping a new goal class.
Enumeration Summary
IlcFilterLevel Values to control amount of propagation.
IlcIntervalSequenceVar::Filter Filter for the subsets of a Head-Tail graph of an instance of IlcIntervalSequenceVar.
Function Summary
IlcAbs Returns an absolute value expression.
IlcAllDiff Returns an all-different constraint.
IlcAllMinDistance Creates and returns a minimum distance constraint.
IlcAnd Returns a goal that is a conjunction of goals.
IlcBestGenerate A goal to assign values to the variables in an array.
IlcBestInstantiate A goal to assign a value to a variable.
IlcBestInstantiate A goal to assign a value to a variable.
IlcBranchLimit Returns a goal to limit the search.
IlcChooseFirstNonFixedInt A variable chooser.
IlcChooseMaxMaxInt A variable chooser.
IlcChooseMaxMinInt A variable chooser.
IlcChooseMaxRegretMax A variable chooser.
IlcChooseMaxRegretMin A variable chooser.
IlcChooseMaxSizeInt A variable chooser.
IlcChooseMinMaxInt A variable chooser.
IlcChooseMinMinInt A variable chooser.
IlcChooseMinRegretMax A variable chooser.
IlcChooseMinRegretMin A variable chooser.
IlcChooseMinSizeInt A variable chooser.
IlcCountDifferent Returns a ``count different'' expression.
IlcCustomConstraint Creates a constraint from a propagator.
IlcDichotomize A goal to assign a value to a variable.
IlcDistribute Returns a distribution constraint.
IlcElementEq Returns a form of an element constraint.
IlcElementEq Returns a form of an element constraint.
IlcElementNEq Returns an inequality form of an element constraint.
IlcElementNEq Returns an inequality form of an element constraint.
IlcEndAtEnd End at end precedence between interval variables.
IlcEndAtStart End at start precedence between interval variables.
IlcEndBeforeEnd End before end precedence between interval variables.
IlcEndBeforeStart End before start precedence between interval variables.
IlcExponent Returns a constrained exponent expression.
IlcFailLimit Returns a goal to limit the search.
IlcGenerate A goal to assign values to the variables in an array.
IlcIfThen Returns an implication constraint.
IlcInstantiate A goal to assign a value to a variable.
IlcInstantiate A goal to assign a value to a variable.
IlcInverse Returns an inverse relation constraint.
IlcLeOffset Returns a less-than-or-equal offset constraint.
IlcLexicographic Returns a lexicographic constraint.
IlcLimitSearch Returns a goal to limit the search.
IlcLog Returns a constrained natural logarithm expression.
IlcMax Returns the maximum of its argument or arguments.
IlcMember Returns a member constraint.
IlcMin Returns the minimum of its argument or arguments.
IlcMinDistance Creates and returns a minimum distance constraint.
IlcNotMember Returns a 'not member' constraint.
IlcOr Returns a goal that is a choice point.
IlcOrLimit Returns a goal to limit the search.
IlcPack Returns a packing constraint.
IlcPack Returns a packing constraint.
IlcPiecewiseLinear Returns a piecewise linear function.
ilcpo_fail_stop_here A function useful in debugging.
IlcPower Returns a constrained power expression.
IlcPresenceDifferent Exclusive disjunction between interval variables presence.
IlcPresenceEqual Conjunction between interval variables presence.
IlcPresenceImply Implication between the presence of interval variables.
IlcPresenceImplyNot Exclusion between interval variables presence.
IlcPresenceOr Disjunction between interval variables presence.
IlcRemoveValue A search goal for removing a value from the domain of a variable.
IlcScalProd Returns an expression that is the scalar product of the arguments.
IlcScalProd Returns a constrained scalar product expression.
IlcSequence Creates and returns a constraint that works on sequences.
IlcSetMax Returns a goal that sets the maximum of a variable.
IlcSetMin Returns a goal that sets the minimum of a variable.
IlcSetValue A search goal for fixing a variable to a value.
IlcSimpleCompletionGoal This function creates a goal which instantiates all decision variables.
IlcSplit A goal to assign values to an array of variables.
IlcSquare Returns an expression that is the square of the argument.
IlcStartAtEnd Start At end precedence between interval variables.
IlcStartAtStart Start at start precedence between interval variables.
IlcStartBeforeEnd Start before end precedence between interval variables.
IlcStartBeforeStart Start before start precedence between interval variables.
IlcSum Returns an expression that is the sum of the argument(s).
IlcSum Returns a constrained sum expression.
IlcTableConstraint Returns a table constraint.
IlcTimeLimit Returns a goal to limit the search.
IloCustomConstraint Creates a modeling constraint from a propagator.
IloGenerate A modeling goal to assign values to variables in an array.
IloGoalFail Returns a goal that always fails.
IloGoalTrue Returns a goal that always succeeds.
operator new Overloaded C++ operator.
operator! Overloaded C++ operator.
operator!= Overloaded C++ operator.
operator!= Overloaded C++ operator.
operator&& Overloaded C++ operator.
operator&& Overloaded C++ operator.
operator* Overloaded C++ operator.
operator* Overloaded C++ operator.
operator+ Overloaded C++ operator.
operator+ Overloaded C++ operator.
operator- Overloaded C++ operator.
operator- Overloaded C++ operator.
operator- Overloaded C++ operator.
operator/ Overloaded C++ operator.
operator/ Overloaded C++ operator.
operator< Overloaded C++ operator.
operator<< Overloaded C++ operator.
operator<= Overloaded C++ operator.
operator== Overloaded C++ operator.
operator== Overloaded C++ operator.
operator> Overloaded C++ operator.
operator>= Overloaded C++ operator.
operator|| Overloaded C++ operator.
operator|| Overloaded C++ operator.
Variable Summary
ILC_NO_MEMORY_MANAGER OS environment variable controls CP Optimizer memory manager.
IlcBool Type for Boolean values.
IlcFloatMax Constant to represent the highest floating-point number.
IlcFloatMin Constant to represent the lowest floating-point number.
IlcIntMax
IlcIntMin

CP Optimizer Extensions

This classes and functions in this group in the reference manual make up the "extensions" API of CP Optimizer. This API is a low-level API to certain advanced aspects CP Optimizer that are not available through IBM® ILOG® Concert Technology or the class IloCP. The extensions API can be used for the following:

  1. To exactly program the search for solutions and exact branching decisions made by CP Optimizer (see IlcGoal, IlcGoalI, IlcAnd, and IlcOr).
  2. To write a *custom constraint* to gain efficiency for a particular problem structure, or to support a constraint for which there is no Concert Technology equivalent (see IlcConstraintI, IlcConstraint, ILOCPCONSTRAINTWRAPPER0)
  3. To create portions of the model---variables (see IlcIntVar) and constraints (see IlcConstraint)---during the search process itself. To do this, you must also take full control of the search process as in 1 above.

The recommended development path is to use IBM ILOG Concert Technology for modeling, together with the CP Optimizer search engine (tuned via parameters or search phases). In this way, you benefit from all future improvements to the CP Optimizer propagation and search engines.

However, For certain challenging optimization problems where there is good structural understanding of the problem, or good well-known solution construction methods, precisely controlling the search can be necessary. In this case, CP Optimizer extensions can be invaluable. Nevertheless, you should bear in mind that a decision to use CP Optimizer extensions is a pivotal choice in your application design which will reduce its ability to benefit from performance improvements in new product versions. It is recommended that whenever possible, you first try to solve your problem without the use of CP Optimizer extensions.