Class CplexSolverConfiguration
Configuration for a Cplex solver instance
Inherited Members
Namespace: OPTANO.Modeling.Optimization.Solver.Cplex11
Assembly: Optimization.Solver.Cplex11.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 |
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 |
LogOutput
Gets or sets the output textwriter. By setting this property you are able to redirect the solver's output. By default, the output is logged to the console. If you set this property, you will no longer receive a console log output.
Declaration
public TextWriter LogOutput { get; set; }
Property Value
| Type | Description |
|---|---|
| System.IO.TextWriter | The output. |
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 (or less) 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 int MipHeuristicFrequency { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
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 |
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 |
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 int RinsHeuristicFrequency { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
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 |
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 |