Class CplexSolverConfiguration
Configuration for a Cplex solver instance
Inherited Members
Namespace: OPTANO.Modeling.Optimization.Solver.Cplex126
Assembly: Optimization.Solver.Cplex126.dll
Syntax
public class CplexSolverConfiguration : SolverConfiguration
Constructors
CplexSolverConfiguration()
Initializes a new instance of the CplexSolverConfiguration class.
Declaration
public CplexSolverConfiguration()
Properties
BarrierAlgorithm
Gets or sets the barrier algorithm.
Declaration
public BarrierAlgorithm BarrierAlgorithm { get; set; }
Property Value
Type | Description |
---|---|
BarrierAlgorithm |
CliequeCutStrategy
Gets or sets the clieque cut strategy.
Declaration
public CliequeCutStrategy CliequeCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
CliequeCutStrategy |
CoefficientReductionStrategy
Gets or sets the coefficient reduction strategy.
Declaration
public CoefficientReductionStrategy CoefficientReductionStrategy { get; set; }
Property Value
Type | Description |
---|---|
CoefficientReductionStrategy |
ComputeIIS
Gets or sets the value, whether the irreducable infeasable set shall be computed, if the model is infeasable.
Declaration
public bool ComputeIIS { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
ConstraintAggregationLimitForCutGeneration
Gets or sets the constraint aggregation limit for cut generation.
Limits the number of constraints that can be aggregated for generating flow cover and mixed integer rounding (MIR) cuts.
Default: 3
.
Value
must be >= 0.
Declaration
public int? ConstraintAggregationLimitForCutGeneration { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Int32> |
CoverCutStrategy
Gets or sets the cover cut strategy.
Declaration
public CoverCutStrategy CoverCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
CoverCutStrategy |
CutRowFactor
Gets or sets the cut row factor.
Limits the number of cuts that can be added. The number of rows in the problem with cuts added is limited to CutsFactor times the original number of rows. If the problem is presolved, the original number of rows is that from the presolved problem.
A CutsFactor of 1.0
or less means that no cuts will be generated.
Default: 4.0
Declaration
public double? CutRowFactor { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Double> |
DisjunctiveCutStrategy
Gets or sets the disjunctive cut strategy.
Declaration
public DisjunctiveCutStrategy DisjunctiveCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
DisjunctiveCutStrategy |
DualSimplexPricingStrategy
Gets or sets the dual simplex pricing strategy.
Declaration
public DualSimplexPricingStrategy DualSimplexPricingStrategy { get; set; }
Property Value
Type | Description |
---|---|
DualSimplexPricingStrategy |
FeasibilityPumpStrategy
Gets or sets the feasibility pump strategy.
Declaration
public FeasibilityPumpStrategy FeasibilityPumpStrategy { get; set; }
Property Value
Type | Description |
---|---|
FeasibilityPumpStrategy |
FlowCoverCutStrategy
Gets or sets the flow cover cut strategy.
Declaration
public FlowCoverCutStrategy FlowCoverCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
FlowCoverCutStrategy |
FlowPathCutStrategy
Gets or sets the flow path cut strategy.
Declaration
public FlowPathCutStrategy FlowPathCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
FlowPathCutStrategy |
ForcePerturbation
Gets or sets a value indicating whether force perturbation.
If ForcePerturbation is set to default
), Cplex will decide dynamically.
Declaration
public bool ForcePerturbation { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
GomoryFractionalCutCandidateLimit
Gets or sets the gomory fractional cut candidate limit.
Limits the number of candidate variables for generating Gomory fractional cuts.
Default: 200
[Will be used for all values <= 0
].
Declaration
public int? GomoryFractionalCutCandidateLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Int32> |
GomoryFractionalCutPassLimit
Gets or sets the gomory fractional cut pass limit.
Limits the number of passes for generating Gomory fractional cuts. At the default setting of 0 (zero), CPLEX decides the number of passes to make. The parameter is ignored if GomoryFractionalCutStrategy is set to a value different to Automatic.
Declaration
public int GomoryFractionalCutPassLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
GomoryFractionalCutStrategy
Gets or sets the gomory fractional cut strategy.
Declaration
public GomoryFractionalCutStrategy GomoryFractionalCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
GomoryFractionalCutStrategy |
GubCoverCutStrategy
Gets or sets the generalized upper bound cover cut strategy.
Declaration
public GubCoverCutStrategy GubCoverCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
GubCoverCutStrategy |
LocalBranchingHeuristic
Gets or sets a value indicating whether local branching heuristic should be applied to try to improve new incumbents found during a MIP search. By default, this parameter is off. If you turn it on, CPLEX will invoke a local branching heuristic only when it finds a new incumbent. If CPLEX finds multiple incumbents at a single node, the local branching heuristic will be applied only to the last one found.
Declaration
public bool LocalBranchingHeuristic { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
LogToConsole
Gets or sets a value indicating whether output is (additionally to LogFile) logged in Console.Out.
Declaration
public bool LogToConsole { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
MipDiveStrategy
Gets or sets the mip dive strategy.
Declaration
public MipDiveStrategy MipDiveStrategy { get; set; }
Property Value
Type | Description |
---|---|
MipDiveStrategy |
MipEmphasisSwitch
Gets or sets the MIP emphasis switch. Controls trade-offs between speed, feasibility, optimality, and moving bounds in MIP.
Declaration
public MipEmphasisSwitch MipEmphasisSwitch { get; set; }
Property Value
Type | Description |
---|---|
MipEmphasisSwitch |
MipHeuristicFrequency
Gets or sets the mip heuristic frequency.
Decides how often to apply the periodic heuristic. Setting the value to -1
turns off the periodic heuristic. Setting the value to 0
(default
) applies the periodic heuristic at an interval chosen automatically. Setting the value to a positive number applies the heuristic at the requested node interval. For example, setting this parameter to 20
dictates that the heuristic be called at node 0, 20, 40, 60, etc.
.
Declaration
public long MipHeuristicFrequency { get; set; }
Property Value
Type | Description |
---|---|
System.Int64 |
MipLogDisplayInformation
Gets or sets the mip log display information.
Declaration
public MipLogDisplayInformation MipLogDisplayInformation { get; set; }
Property Value
Type | Description |
---|---|
MipLogDisplayInformation |
MipNodeLogInterval
Gets or sets the MIP node log interval. Controls the frequency of node logging when the MipLogDisplayInformation parameter is set higher than NoDisplayUntilSolution (int: 1).
When the value is a positive
integer n, CPLEX displays new incumbents, plus it displays a new line in the log every n nodes.
When the value is a negative
integer n, CPLEX displays new incumbents, and the negative
value determines how much processing CPLEX does before it displays a new line in the node log. A negative
value close to zero means that CPLEX displays new lines in the log frequently. A negative
value far from zero means that CPLEX displays new lines in the log less frequently. In other words, a negative
value of this parameter contracts or dilates the interval at which CPLEX displays information in the node log.
Declaration
public int MipNodeLogInterval { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
MipNodeSelectionStrategy
Gets or sets the mip node selection strategy. Default: BestBound.
Declaration
public MipNodeSelectionStrategy MipNodeSelectionStrategy { get; set; }
Property Value
Type | Description |
---|---|
MipNodeSelectionStrategy |
MipProbingLevel
Gets or sets the MIP probing level.
Sets the amount of probing on variables to be performed before MIP branching. Higher settings perform more probing. Probing can be very powerful but very time-consuming at the start. Setting the parameter to values above the default (Automatic can result in dramatic reductions or dramatic increases in solution time, depending on the model.
Declaration
public MipProbingLevel MipProbingLevel { get; set; }
Property Value
Type | Description |
---|---|
MipProbingLevel |
MipStartRepairAttempts
Gets or sets the mip start repair attempts.
Limits the attempts to repair an infeasible MIP start. This parameter lets you tell CPLEX whether and how many times it should try to repair an infeasible MIP start that you supplied. The parameter has no effect if the MIP start you supplied is feasible. It has no effect if no MIP start was supplied. -1: Do not repair. 0: Let CPLEX choose. Also used for invalid values. n > 0: Number of attempts.
Declaration
public int MipStartRepairAttempts { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
MipStrategyKappaStats
Gets or sets the ILOG.CPLEX.Cplex.Param.MIP.Strategy.KappaStats value.
Declaration
public MipStrategyKappaStats MipStrategyKappaStats { get; set; }
Property Value
Type | Description |
---|---|
MipStrategyKappaStats |
MipSubproblemAlgorithm
Gets or sets the mip subproblem algorithm.
For MILP (integer constraints and otherwise continuous variable), all settings are permitted. For MIQP (integer constraints and positive semi-definite quadratic terms in objective), setting 3 (Network) is not permitted, and setting 5 (Sifting) reverts to 0 (Automatic). For MIQCP (integer constraints and positive semi-definite quadratic terms among the constraints), only the Barrier optimizer is implemented, and therefore no settings other than 0 (Automatic) and 4 (Barrier) are permitted.
Declaration
public MipSubproblemAlgorithm MipSubproblemAlgorithm { get; set; }
Property Value
Type | Description |
---|---|
MipSubproblemAlgorithm |
MipVariableSelectionStrategy
Gets or sets the mip variable selection strategy.
Declaration
public MipVariableSelectionStrategy MipVariableSelectionStrategy { get; set; }
Property Value
Type | Description |
---|---|
MipVariableSelectionStrategy |
MixedIntegerRoundingCutStrategy
Gets or sets the mixed integer rounding cut strategy.
Declaration
public MixedIntegerRoundingCutStrategy MixedIntegerRoundingCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
MixedIntegerRoundingCutStrategy |
MultiCommodityFlowCutStrategy
Gets or sets the multi commodity flow cut strategy.
CPLEX is able to recognize the structure of a network as represented in many real-world models. When it recognizes such a network structure, CPLEX is able to generate cutting planes that usually help solve such problems. In this case, the cuts that CPLEX generates state that the capacities installed on arcs pointing into a component of the network must be at least as large as the total flow demand of the component that cannot be satisfied by flow sources within the component.
Declaration
public MultiCommodityFlowCutStrategy MultiCommodityFlowCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
MultiCommodityFlowCutStrategy |
NodePresolveStrategy
Gets or sets the node presolve strategy. Decides whether node presolve should be performed at the nodes of a mixed integer programming (MIP) solution.
Declaration
public NodePresolveStrategy NodePresolveStrategy { get; set; }
Property Value
Type | Description |
---|---|
NodePresolveStrategy |
PerturbationConstant
Gets or sets the amount by which CPLEX perturbs the upper and lower bounds or objective coefficients on the variables when a problem is perturbed in the simplex algorithm. This parameter can be set to a smaller value if the default value creates too large a change in the problem.
Default: 1e-6
.
Value must be >= 1e-8.
Declaration
public double PerturbationConstant { get; set; }
Property Value
Type | Description |
---|---|
System.Double |
PresolveModel
Gets or sets a value indicating whether a presolve should be applied to the model.
Default:
Declaration
public bool PresolveModel { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
RinsHeuristicFrequency
Gets or sets the rins heuristic frequency.
Decides how often to apply the relaxation induced neighborhood search (RINS) heuristic. This heuristic attempts to improve upon the best solution found so far. It will not be applied until CPLEX has found at least one incumbent solution.
Setting the value to -1
(or less) turns off the RINS heuristic. Setting the value to 0
(default) applies the RINS heuristic at an interval chosen automatically by CPLEX. Setting the value to a positive number applies the RINS heuristic at the requested node interval. For example, setting RinsHeuristicFrequency to 20
dictates that the RINS heuristic be called at node 0, 20, 40, 60, etc.
.
Declaration
public long RinsHeuristicFrequency { get; set; }
Property Value
Type | Description |
---|---|
System.Int64 |
ScalingStrategy
Gets or sets the matrix scaling strategy.
Declaration
public ScalingStrategy ScalingStrategy { get; set; }
Property Value
Type | Description |
---|---|
ScalingStrategy |
SiftingSubproblemAlgorithm
Gets or sets the sifting subproblem algorithm.
Declaration
public SiftingSubproblemAlgorithm SiftingSubproblemAlgorithm { get; set; }
Property Value
Type | Description |
---|---|
SiftingSubproblemAlgorithm |
SimplexPerturbationLimit
Gets or sets the number of degenerate iterations before perturbation is performed.
Default: 0. I.e.: Let Cplex choose.
Value
must be >= 0
.
Declaration
public int SimplexPerturbationLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
StrongBranchingCandidateListLimit
Gets or sets the strong branching candidate list limit. Only used if MipVariableSelectionStrategy is set to StrongBranching.
Default: 10.
Value
must be positive.
Declaration
public int? StrongBranchingCandidateListLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Int32> |
StrongBranchingIterationLimit
Gets or sets the strong branching iteration limit. Only used if MipVariableSelectionStrategy is set to StrongBranching.
Default: 0 (Automatic).
Value
must be >= 0.
Declaration
public int StrongBranchingIterationLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
SymmetryBreakingEffort
Gets or sets the symmetry breaking effort. Default: Automatic.
Declaration
public SymmetryBreakingEffort SymmetryBreakingEffort { get; set; }
Property Value
Type | Description |
---|---|
SymmetryBreakingEffort |
Threads
Gets or sets the number of threads to use. Default: 0. (By default, CPLEX will use up to 32 Threads, if a sufficient number of cores is available.)
Declaration
public int Threads { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
Exceptions
Type | Condition |
---|---|
System.ArgumentOutOfRangeException |
TimeSpentProbing
Gets or sets the limit for time spent probing. Default: 1e+75. Value needs to be > 0.
Declaration
public double? TimeSpentProbing { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Double> |
TreeMemoryLimit
Gets or sets an absolute upper bound on the size in megabytes
uncompressed of the branch and cut tree.
If this limit is exceeded Cplex terminates optimization.
Declaration
public double TreeMemoryLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Double |
TypeOfCutLimit
Gets or sets the limit of cuts for each cut type. By default, no limit is applied.
Declaration
public int? TypeOfCutLimit { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Int32> |
ZeroHalfCutStrategy
Gets or sets the zero-half cut strategy.
Declaration
public ZeroHalfCutStrategy ZeroHalfCutStrategy { get; set; }
Property Value
Type | Description |
---|---|
ZeroHalfCutStrategy |