Skip to main content
FRAMES NO FRAMES

Enumeration IntParam

Definition file: ilcp/cp.h
Integer parameter for IloCP.

An enumeration for the class IloCP.

Integer parameters.

Fields

DefaultInferenceLevel = 1

This parameter specifies the general inference level for constraints whose particular inference level is IloCP::Default. Possible values for this parameter (in increasing order of inference strength) are IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Basic.

AllDiffInferenceLevel = 2

This parameter specifies the inference level for every constraint IloAllDiff extracted to the invoking IloCP instance.

Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloAllDiff constraints to be controlled via IloCP::DefaultInferenceLevel.

DistributeInferenceLevel = 3

This parameter specifies the inference level for every constraint IloDistribute extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloDistribute constraints to be controlled via IloCP::DefaultInferenceLevel.

CountInferenceLevel = 4

This parameter specifies the inference level for every constraint IloCount extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloCount constraints to be controlled via IloCP::DefaultInferenceLevel.

SequenceInferenceLevel = 5

This parameter specifies the inference level for every constraint IloSequence extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloSequence constraints to be controlled via IloCP::DefaultInferenceLevel.

AllMinDistanceInferenceLevel = 6

This parameter specifies the inference level for every constraint IloAllMinDistance extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloAllMinDistance constraints to be controlled via IloCP::DefaultInferenceLevel.

ElementInferenceLevel = 7

This parameter specifies the inference level for every element constraint (created from IloIntVarArray::operator[]) extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all element constraints to be controlled via IloCP::DefaultInferenceLevel.

FailLimit = 9

This parameter limits the number of failures that can occur before terminating the search. The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

ChoicePointLimit = 10

This parameter limits the number of choice points that are created before terminating a search. The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

LogVerbosity = 11

This parameter determines the verbosity of the search log. The possible values are IloCP::Quiet, IloCP::Terse, IloCP::Normal, and IloCP::Verbose. Mode IloCP::Quiet does not display any information, the other modes display progressively more information. The default value is IloCP::Normal.

Note
The CP Optimizer search log is meant for visual inspection only, not for mechanized parsing. In particular, the log may change from version to version of CP Optimizer in order to improve the quality of information displayed in the log. Any code based on the log output for correct functioning may have to be updated when a new version of CP Optimizer is released.
LogPeriod = 12

The CP Optimizer search log includes information that is displayed periodically. This parameter controls how often that information is displayed. By setting this parameter to a value of k, the log is displayed every k branches (search decisions).

SearchType = 13

Integer control parameter. This parameter determines the type of search that is applied when solving a problem. When set to IloCP::DepthFirst, a regular depth-first search is applied. When set to IloCP::Restart, a depth-first search that restarts from time to time is applied. When set to IloCP::IterativeDiving on scheduling problems (ones with at least one interval variable), a more aggressive diving technique is applied in order to find solutions to large problems more quickly. When set to IloCP::MultiPoint, a method that combines a set of - possibly partial - solutions is applied. When set to IloCP::Auto, CP Optimizer uses a blend of the above search types which it believes appropriate for the problem being solved, taking into account other parameter settings. The default value is IloCP::Auto.

RandomSeed = 14

The search uses some randomization in some strategies. This parameter sets the seed of the random generator used by these strategies Possible values range from 0 to IloIntMax. The default value is 0.

RestartFailLimit = 15

When IloCP::SearchType is set to IloCP::Restart, a depth-first search is restarted after a certain number of failures. This parameter controls the number of failures that must occur before restarting search. Possible values range from 0 to IloIntMax. The default value is 100. This value can increase after each restart: see the parameter RestartGrowthFactor.

MultiPointNumberOfSearchPoints = 16

This parameter controls the number of (possibly partial) solutions manipulated by the multi-point search algorithm. The default value is 30. A larger value will diversify the search, with possible improvement in solution quality at the expense of a longer run time. A smaller value will intensify the search, resulting in faster convergence at the expense of solution quality. Note that memory consumption increases proportionally to this parameter, for each search point must store each decision variable domain.

Workers = 25

This parameter sets the number of workers to run in parallel to solve your model. If the number of workers is set to n (with n greater than one), the CP optimizer will create n workers, each in their own thread, that will work together to solve the problem. The emphasis of these workers is more to find better feasible solutions and then to speed up the proof of optimality.

The default value is Auto. This amounts to using as many workers as there are CPU cores available on the machine.

Note that the memory required by CP Optimizer grows roughly linearly as the number of workers is increased. If you are solving a very large model on a multi-core processor and memory usage is an issue, it is advisable to specify a reduced number of workers, or even one worker, rather than use the default value.

BranchLimit = 28

This parameter limits the number of branches that are made before terminating a search. A branch is a decision made at a choice point in the search, a typical node being made up of two branches, for example: x == value and x != value. A branch is only counted at the moment a decision is executed, not when the two branches of the choice point are decided. A branch is counted even if the decision leads to an inconsistency (failure). The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

AutomaticReplay = 29Deprecated: Since V12.8.0.

This parameter has no effect and is present for compatibility reasons. Its use has been deprecated since V12.8.0.

DynamicProbing = 32

This parameter controls probing carried out during search. Probing can be useful on some problems as it can make stronger inferences on combinations of constraints. Possible values for this parameter are IloCP::On (dynamic probing is activated with a constant strength), IloCP::Auto (dynamic probing is activated and its strength is adjusted adaptively) and IloCP::Off (dynamic probing is deactivated). The strength of probing can be defined by parameter DynamicProbingStrength. Dynamic probing only has an effect when using the "Restart" (IloCP::Restart) search type, on problems without interval variables. The default value of this parameter is IloCP::Auto.

SolutionLimit = 35

This parameter limits the number of feasible solutions that are found before terminating a search. The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

PrecedenceInferenceLevel = 38

This parameter specifies the inference level for precedence constraints between interval variables extracted to the invoking IloCP instance.

Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength for precedence constraints between interval variables to be controlled via IloCP::DefaultInferenceLevel.

IntervalSequenceInferenceLevel = 39

This parameter specifies the inference level for the maintenance of the domain of every interval sequence variable IloIntervalSequenceVar extracted to the invoking IloCP instance.

Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloIntervalSequenceVar to be controlled via IloCP::DefaultInferenceLevel.

For more information on interval sequence variables see the concept Interval variable sequencing in CP Optimizer.

NoOverlapInferenceLevel = 40

This parameter specifies the inference level for every constraint IloNoOverlap extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloNoOverlap constraints to be controlled via IloCP::DefaultInferenceLevel.

For more information on no-overlap constraints see the concept Interval variable sequencing in CP Optimizer.

CumulFunctionInferenceLevel = 41

This parameter specifies the inference level for constraints on expressions IloCumulFunctionExpr extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all constraints on IloCumulFunctionExpr to be controlled via IloCP::DefaultInferenceLevel.

For more information on cumul function expressions, see the concept Cumul functions in CP Optimizer.

StateFunctionInferenceLevel = 42

This parameter specifies the inference level for constraints on state functions IloStateFunction extracted to the invoked IloCP instance. Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all constraints on state functions IloStateFunction to be controlled via IloCP::DefaultInferenceLevel.

For more information on state functions, see the concept State functions in CP Optimizer.

TimeMode = 43

This parameter defines how time is measured in CP Optimizer, the two legal values being IloCP::ElapsedTime and IloCP::CPUTime. CP Optimizer uses time for both display purposes and for limiting the search via IloCP::TimeLimit. Note that when multiple processors are available and the number of workers (IloCP::Workers) is greater than one, then the CPU time can be greater than the elapsed time by a factor up to the number of workers. The default value is IloCP::ElapsedTime.

TemporalRelaxation = 44

This advanced parameter can be used to control the usage of a temporal relaxation internal to the invoking IloCP engine. This parameter can take values IloCP::On or IloCP::Off, with IloCP::On being the default, meaning the relaxation is used in the engine when needed. For some models, using the relaxation becomes inefficient, and you may deactivate the use of the temporal relaxation using value IloCP::Off.

Presolve = 60

This parameter controls the presolve of the model to produce more compact formulations and to achieve more domain reduction. Possible values for this parameter are IloCP::On (presolve is activated) and IloCP::Off (presolve is deactivated). The default value is IloCP::On.

ConflictRefinerIterationLimit = 61

This parameter limits the number of iterations that are made before terminating the conflict refiner. The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

ConflictRefinerBranchLimit = 62

This parameter limits the total number of branches that are made before terminating the conflict refiner. The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

ConflictRefinerFailLimit = 63

This parameter limits the total number of failures that can occur before terminating the conflict refiner. The possible values of this parameter range from 0 to IloIntMax. A value of IloIntMax does not set any limit. The value IloIntMax is the default value.

ConflictRefinerOnVariables = 64

This parameter specifies whether the conflict refiner should refine variables domains. Possible values for this parameter are IloCP::On (conflict refiner will refine both constraints and variables domains) and IloCP::Off (conflict refiner will only refine constraints). The default value is IloCP::Off.

ModelAnonymizer = 77

This parameter controls anonymization of a model dumped via IloCP::dumpModel. The legal values of this parameter are IloCP::Off and IloCP::On. The default is IloCP::Off. When the anonymizer is off, then names of variables and constraints in the model may be found in the output file. When the anonymizer is on, names given to variables or constraints in the model will not be reflected in the output file and standard anonymized names will be used.

FailureDirectedSearch = 78

This parameter controls usage of failure-directed search. Failure-directed search assumes that there is no (better) solution or that such a solution is very hard to find. Therefore it focuses on a systematic exploration of the search space, first eliminating assignments that are most likely to fail.

Failure-directed search is used only for scheduling problems (i.e. models containing interval variables) and only when the parameter SearchType is set to IloCP::Restart or IloCP::Auto.

Legal values for the IloCP::FailureDirectedSearch parameter are IloCP::On (the default) and IloCP::Off. When the value is IloCP::On then CP Optimizer starts failure-directed search when other search strategies are (no longer) successful and when the memory necessary for the search does not exceed the value set by the FailureDirectedSearchMaxMemory parameter. Setting the parameter to IloCP::Off disables the feature.

FailureDirectedSearchMaxMemory = 79

This parameter controls the maximum amount of memory (in bytes) available to failure-directed search (see FailureDirectedSearchMaxMemory). The default value is 104,857,600 (100MB).

Failure-directed search can sometimes consume a lot of memory, especially when end times of interval variables are not bounded. Therefore it is usually not started immediately, but only when the effective horizon (time period over which CP Optimizer must reason) becomes small enough for failure-directed search to operate inside the memory limit specified by this parameter. For many types of scheduling problems, the effective horizon tends to reduce when CP Optimizer finds a better solution (often most significantly when the initial solution is found). Therefore, when each new solution is found, CP Optimizer decides whether or not to turn on failure-directed search.

Note that this parameter does not influence the effectiveness of failure-directed search, once started. Its purpose is only to control the point at which failure-directed search will begin to function.

WarningLevel = 90

This parameter controls the level of warnings issued by CP Optimizer when a solve is launched. Specifically, all warnings of level higher than this parameter are masked. Since CP Optimizer warning levels run from 1 to 3, setting this parameter to 0 turns off all warnings. Warnings issued may indicate potential errors or inefficiencies in your model. The default value of this parameter is 2.

See also PrintModelDetailsInMessages.

UseFileLocations = 100

This parameter controls whether CP Optimizer processes file locations. With each constraint, variable or expression it is possible to associate a source file location (file name and line number). CP Optimizer can use locations later for reporting errors and conflicts. Locations are also included in exported/dumped models (#line directives).

Source file locations can be provided to CP Optimizer in the following ways:

  • In the C++ API using macros ILOADD and ILOSETLOCATION.
  • In the CPO file format using #line directives.
  • In Java, locations are assigned automatically by functions IloCP.add, IloCP.intVar, IloCP.intervalVar, IloCP.intervalSequenceVar, and IloCP.stateFunction unless this parameter is Off. The calling class must be compiled with debug information about line numbers and source files.
  • Currently there is no way to assign locations in C#.

Legal values for this parameter are IloCP::On (the default) and IloCP::Off. When the value is IloCP::Off then CP Optimizer ignores locations in the input model and also does not export them in CPO file format (functions IloCP::dumpModel and IloCP::exportModel).

CountDifferentInferenceLevel = 104

This parameter specifies the inference level for every constraint IloCountDifferent extracted to the invoking IloCP instance.

Possible values for this parameter are IloCP::Default, IloCP::Low, IloCP::Basic, IloCP::Medium, and IloCP::Extended. The default value is IloCP::Default, which allows the inference strength of all IloCountDifferent constraints to be controlled via IloCP::DefaultInferenceLevel.

LogSearchTags = 107

This parameter controls the log activation. When set to IloCP::On, the engine will display failure tags (indices) in the engine log when solving the model. To specify the failures to explain, the member functions IloCP::explainFailure(IloInt failureTag) or IloCP::explainFailure(IloIntArray tagArray) needs to be called with the failure tags as the parameter. Several failures tags can be added. The member function IloCP::clearExplanations() is used to clear the set of failure tags to be explained. To be able to see failure tags and explanations, the parameter IloCP::SearchType must be set to IloCP::DepthFirst and the parameter IloCP::Workers to 1. The default value of this parameter is IloCP::Off.

PrintModelDetailsInMessages = 109

Whenever CP Optimizer prints an error or warning message, it can also print the relevant part of the input model (in the CPO file format). This parameter controls printing of this additional information. Possible values are IloCP::On and IloCP::Off, the default value is IloCP::On.

See also WarningLevel.

KPIDisplay = 145

This parameter determines how KPIs are displayed during the search. The default value is IloCP::SingleLine: all KPIs are displayed on a single line. The alternative value is IloCP::MultipleLines: each KPI is displayed on its own line.