Show / Hide Table of Contents

    Class FicoXpressSolverConfiguration

    The xpress solver configuration.

    Inheritance
    System.Object
    SolverConfiguration
    FicoXpressSolverConfiguration
    Inherited Members
    SolverConfiguration.LibraryPaths
    SolverConfiguration.CalculateDuals
    SolverConfiguration.MIPGap
    SolverConfiguration.MIPGapAbs
    SolverConfiguration.OptimalityTolerance
    SolverConfiguration.TimeLimit
    SolverConfiguration.RetryMultiObjectiveWithTolerance
    SolverConfiguration.ModelOutputFile
    SolverConfiguration.OutputFilesBeforeSolve
    SolverConfiguration.OutputFilesAfterSolve
    SolverConfiguration.LogFile
    SolverConfiguration.PriorityLevelTimeLimitDefinition
    SolverConfiguration.PriorityLevelMipGapDefinition
    SolverConfiguration.PriorityLevelQualityDegradationDefinition
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: OPTANO.Modeling.Optimization.Solver.FicoXpress843
    Assembly: Optimization.Solver.FicoXpress843.dll
    Syntax
    public class FicoXpressSolverConfiguration : SolverConfiguration

    Constructors

    FicoXpressSolverConfiguration()

    Initializes a new instance of the FicoXpressSolverConfiguration class. All parameters will be set to the default values specified at http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/optimizeridx.html

    Declaration
    public FicoXpressSolverConfiguration()

    Properties

    BarThreads

    Gets or sets the number of BARTHREADS.

    If set to a positive integer it determines the number of threads implemented to run the Newton-barrier algorithm. If the value is set to the default value (-1), the Threads control will determine the number of threads used.

    Default: -1 (Value will be determined by the Threads control).

    Note: There is a practical upper limit of 50 on the number of parallel threads the optimizer will create.

    Declaration
    public int BarThreads { get; set; }
    Property Value
    Type Description
    System.Int32

    BranchDisjunctions

    Gets or sets the strategy for branching on split disjunctions. Default: Automatic

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/BRANCHDISJ.html

    Declaration
    public BranchDisjunctions BranchDisjunctions { get; set; }
    Property Value
    Type Description
    BranchDisjunctions

    ComputeIIS

    Specifies whether the IIS should be computed or not. You will find the IIS in the returned solution.

    Declaration
    public bool ComputeIIS { get; set; }
    Property Value
    Type Description
    System.Boolean

    ConcurrentThreads

    Gets or sets the number of threads used by the concurrent solver.

    Default: -1

    Values: -1: Determined automatically.

    0:Number of threads to use.

    Note:The concurrent solve is activated either by passing multiple algorithm flags to XPRSlpoptimize (e.g. "pb" for running primal and the barrier) or by setting CONCURRENTTHREADS to a positive number. The order in which threads are allocated to the algorithms is not affected by the order of the flags provided.

    Declaration
    public int ConcurrentThreads { get; set; }
    Property Value
    Type Description
    System.Int32

    ConflictCuts

    Gets or sets the intensity with which the solver searches for and applies conflict cuts. Default: Automatic.

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/CONFLICTCUTS.html

    Declaration
    public ConflictCuts ConflictCuts { get; set; }
    Property Value
    Type Description
    ConflictCuts

    CoverCuts

    Gets or sets the number of cover cuts to perfrom at the root node. Auto: -1.

    Branch and Bound: The number of rounds of lifted cover inequalities at the top node. A lifted cover inequality is an additional constraint that can be particularly effective at reducing the size of the feasible region without removing potential integral solutions. The process of generating these can be carried out a number of times, further reducing the feasible region, albeit incurring a time penalty. There is usually a good payoff from generating these at the top node, since these inequalities then apply to every subsequent node in the tree search.

    Declaration
    public int CoverCuts { get; set; }
    Property Value
    Type Description
    System.Int32

    CutDepth

    Gets or sets the depth until which cuts will be generated in the tree. Auto: -1

    Branch and Bound: Sets the maximum depth in the tree search at which cuts will be generated. Generating cuts can take a lot of time, and is often less important at deeper levels of the tree since tighter bounds on the variables have already reduced the feasible region. A value of 0 signifies that no cuts will be generated.

    Declaration
    public int CutDepth { get; set; }
    Property Value
    Type Description
    System.Int32

    CutFactor

    Gets or sets the cut factor. Limit on the number of cuts and cut coefficients the optimizer is allowed to add to the matrix during global search. The cuts and cut coefficients are limited by CutFactor * (#rows + #coefficients in the initial matrix).

    Declaration
    public double CutFactor { get; set; }
    Property Value
    Type Description
    System.Double

    CutFrequency

    Gets or sets the cut ferquency in the tree search. If the depth of the node modulo CutFrequency is zero, then cuts will be generated. Auto: -1. Negative values are allowed.

    Declaration
    public int CutFrequency { get; set; }
    Property Value
    Type Description
    System.Int32

    CutSelectFlags

    Gets or sets a flags enum providing detailed control of the cuts created for the root node of a global solve. Use to control cuts during the tree search.

    Usage examples:

    Enable only CliqueCuts and FlowpathCuts: CutSelectFlags = FlowpathCuts | CliqueCuts | ... ;

    Enable all except FlowpathCuts: CutSelectFlags = All & ~FlowpathCuts;

    Declaration
    public CutSelects CutSelectFlags { get; set; }
    Property Value
    Type Description
    CutSelects

    CutStrategy

    Gets or sets the cut strategy. Branch and Bound: This specifies the cut strategy. A more aggressive cut strategy, generating a greater number of cuts, will result in fewer nodes to be explored, but with an associated time cost in generating the cuts. The fewer cuts generated, the less time taken, but the greater subsequent number of nodes to be explored. Default: Automatic

    Declaration
    public CutStrategy CutStrategy { get; set; }
    Property Value
    Type Description
    CutStrategy

    DualGradientPrcing

    Gets or sets the dual simplex pricing strategy. Defualt: Automatic.

    Declaration
    public DualGradientPrcing DualGradientPrcing { get; set; }
    Property Value
    Type Description
    DualGradientPrcing

    GomCuts

    Gets or sets the number of Gomory cuts to perfrom at the root node. Auto: -1.

    Branch and Bound: The number of rounds of Gomory cuts at the top node. These can always be generated if the current node does not yield an integral solution. However, Gomory cuts are not usually as effective as lifted cover inequalities in reducing the size of the feasible region.

    Declaration
    public int GomCuts { get; set; }
    Property Value
    Type Description
    System.Int32

    HeuristicDiveSpeedUp

    Gets or sets the heuristic dive strategy. Changes the emphasis of the diving heuristic from solution quality to diving speed. Default: AutomaticBiasSpeed.

    Declaration
    public HeuristicDiveSpeedUp HeuristicDiveSpeedUp { get; set; }
    Property Value
    Type Description
    HeuristicDiveSpeedUp

    HeuristicDiveStrategy

    Gets or sets the heuristic dive strategy. Automatic selection: -1. Disable diving heuristic: 0. Preset Strategies: 0-10.

    FICO Documentation does not explicitly state how the preset strategies work in detail. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURDIVESTRATEGY.html

    Declaration
    public int HeuristicDiveStrategy { get; set; }
    Property Value
    Type Description
    System.Int32

    HeuristicFrequency

    Gets or sets the heuristic frequency. This specifies the frequency at which heuristics are used in the tree search. Heuristics will only be used at a node if the depth of the node is a multiple of HeuristicFrequency. Default: -1

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURFREQ.html

    Declaration
    public int HeuristicFrequency { get; set; }
    Property Value
    Type Description
    System.Int32

    HeuristicSearchEffort

    Gets or sets a value to adjust the overall level of the local search heuristics. Default: 1.0

    HeuristicSearchEffort is used as a multiplier on the default amount of work the local search heuristics should do. A higher value means the local search heuristics will be run more often and that they are allowed to search larger neighborhoods. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURSEARCHEFFORT.html

    Declaration
    public double HeuristicSearchEffort { get; set; }
    Property Value
    Type Description
    System.Double

    HeuristicSearchFrequency

    Gets or sets the hueristic search frequency. Default: -1.

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURSEARCHFREQ.html

    Declaration
    public int HeuristicSearchFrequency { get; set; }
    Property Value
    Type Description
    System.Int32

    HeuristicSearchRootSelectionFlags

    Gets or sets the heuristic search strategies on the root node. Default: LargeNeighborhood | SearchUserAddedSolutions (= 17).

    The local search heuristics will benefit from having an existing incumbent solution, but it is not required. An initial solution can also be provided by the user through either XPRSloadmipsol or XPRSreadbinsol. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURSEARCHROOTSELECT.html

    Declaration
    public HeuristicSearchRootSelections HeuristicSearchRootSelectionFlags { get; set; }
    Property Value
    Type Description
    HeuristicSearchRootSelections

    HeuristicSearchTreeSelectionFlags

    Gets or sets the heuristic search strategies to apply on nodes during the tree search. Default: SmallNeighborhoodContinuous (= 1).

    The local search heuristics will benefit from having an existing incumbent solution, but it is not required. An initial solution can also be provided by the user through either XPRSloadmipsol or XPRSreadbinsol. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURSEARCHTREESELECT.html

    Declaration
    public HeuristicSearchTreeSelections HeuristicSearchTreeSelectionFlags { get; set; }
    Property Value
    Type Description
    HeuristicSearchTreeSelections

    HeuristicStrategy

    Gets or sets the heuristic strategy. Default: Automatic

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HEURSTRATEGY.html

    Declaration
    public HeuristicStrategy HeuristicStrategy { get; set; }
    Property Value
    Type Description
    HeuristicStrategy

    HistoryCosts

    Gets or sets the history cost. Controls how to update the pseudo cost for a global entity when a strong branch or a regular branch is applied. Default: Automatic

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/HISTORYCOSTS.html

    Declaration
    public HistoryCosts HistoryCosts { get; set; }
    Property Value
    Type Description
    HistoryCosts

    LnPBest

    Gets or sets the number of infeasible global entities to create lift-and-project cuts for during each round of GomCuts at the top node. Default: 50.

    Declaration
    public int LnPBest { get; set; }
    Property Value
    Type Description
    System.Int32

    LnPIterLimit

    Gets or sets the number of iterations to perform in improving each lift-and-project cut. By setting the number to zero a Gomory cut will be created instead. Default: 10.

    Declaration
    public int LnPIterLimit { get; set; }
    Property Value
    Type Description
    System.Int32

    LocalChoiceDiving

    Gets or sets the selection strategy for diving heuristics. Default: NeverBacktrack.

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/LOCALCHOICE.html

    Declaration
    public LocalChoice LocalChoiceDiving { get; set; }
    Property Value
    Type Description
    LocalChoice

    MipFractionReduce

    Gets or sets the fractional integer variable reduction strategy. Default: Automatic.

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/MIPFRACREDUCE.html

    Declaration
    public MipFractionReduce MipFractionReduce { get; set; }
    Property Value
    Type Description
    MipFractionReduce

    MipPresolveFlags

    Gets or sets the MIP presolve flags. Default: All. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/MIPPRESOLVE.html

    Declaration
    public MipPresolves MipPresolveFlags { get; set; }
    Property Value
    Type Description
    MipPresolves

    MipThreads

    Gets or sets the number of MIPTHREADS.

    If set to a positive integer it determines the number of threads implemented to run the parallel MIP code. If MipThreads is set to the default value (-1), the Threads control will determine the number of threads used.

    Default: -1 (Value will be determined by the Threads control).

    Declaration
    public int MipThreads { get; set; }
    Property Value
    Type Description
    System.Int32

    Perturb

    Gets or sets the factor by which the problem will be perturbed prior to optimization. A value of 0.0 results in no perturbation prior to optimization. Note that the problem may be automatically perturbed if degeneracy is detected and AUTOPERTURB is set to 1. Default: 0

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/PERTURB.html

    Declaration
    public double Perturb { get; set; }
    Property Value
    Type Description
    System.Double

    PreProbing

    Gets or sets the pre-probing level on binary variables during presolve. This is done by fixing a binary to each of its values in turn and analyzing the implications. Default: Automatic.

    Declaration
    public PreProbing PreProbing { get; set; }
    Property Value
    Type Description
    PreProbing

    PresolveCoefficientElimination

    Gets or sets the coeffiecient elimination mode during presolve. Specifies whether the optimizer should attempt to recombine constraints in order to reduce the number of non zero coefficients when presolving a mixed integer problem. Default: Cautious.

    Declaration
    public PreCoefElim PresolveCoefficientElimination { get; set; }
    Property Value
    Type Description
    PreCoefElim

    PresolveMode

    Gets or sets the presolve mode. This control determines whether presolving should be performed prior to starting the main algorithm. Presolve attempts to simplify the problem by detecting and removing redundant constraints, tightening variable bounds, etc. In some cases, infeasibility may even be determined at this stage, or the optimal solution found. Default: DefaultPresolve.

    Declaration
    public PresolveMode PresolveMode { get; set; }
    Property Value
    Type Description
    PresolveMode

    RootPresolve

    Gets or sets a value to en- or disable a repeated presolve on the root node after the global search/presolve is finished.

    Declaration
    public RootPresolve RootPresolve { get; set; }
    Property Value
    Type Description
    RootPresolve

    ScalingFlags

    Gets or sets the Scalings flags. This determines how the Optimizer will rescale a model internally before optimization. Default = RowScaling | ColumnScaling | ToggleGeometricMeanOrMaximumElement | ObjectiveFunctionScaling (= 163), Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SCALING.html

    Declaration
    public Scalings ScalingFlags { get; set; }
    Property Value
    Type Description
    Scalings

    StrongBranchingBEST

    Gets or sets the number of infeasible global entities to initialize pseudo costs for on each node. Default: -1 (Auto) Disable Strong Branching: 0

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SBBEST.html

    Declaration
    public int StrongBranchingBEST { get; set; }
    Property Value
    Type Description
    System.Int32

    StrongBranchingEffort

    Gets or sets the overall amount of effort when using strong branching to select an infeasible global entity to branch on. Default: 1.0

    StrongBranchingEffort is used as a multiplier on other strong branching related controls, and affects the values used for SBBEST, SBSELECT and SBITERLIMIT when those are set to automatic. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SBEFFORT.html

    Declaration
    public double StrongBranchingEffort { get; set; }
    Property Value
    Type Description
    System.Double

    StrongBranchingEstimate

    Gets or sets the strong branching estimation mode. Default: -1

    Select how to calculate pseudo costs from the local node when selecting an infeasible global entity to branch on. These pseudo costs are used in combination with local strong branching and history costs to select the branch candidate. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SBESTIMATE.html

    Declaration
    public int StrongBranchingEstimate { get; set; }
    Property Value
    Type Description
    System.Int32

    StrongBranchingIterationLimit

    Gets or sets the strong branching iteration limit. Default: -1.

    This control can be useful to increase or decrease the amount of effort (and thus time) spent performing strong branching at each node. Setting SBITERLIMIT=0 will disable dual strong branch iterations. Instead, the entity at the head of the candidate list will be selected for branching. Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SBITERLIMIT.html

    Declaration
    public int StrongBranchingIterationLimit { get; set; }
    Property Value
    Type Description
    System.Int32

    SymmetryDetection

    Gets or sets the effort for symmetry detection. Default: Conservative.

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SYMMETRY.html

    Declaration
    public SymmetryDetection SymmetryDetection { get; set; }
    Property Value
    Type Description
    SymmetryDetection

    SymmetrySelection

    Gets or sets the symmetry selection mode. Default: -1.

    CAUTION: USE WITH CARE!

    This parameter appears to be wrongly documented by FICO. The FICO-Tuner used values such as 0, 1, 2, 3, whereas the API Documentation only lists 2 values (0 and 1). However, according to the API-Doc the default value should be -1, which presumely means 'Automatic', but is not described further in the documentation.

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/SYMSELECT.html

    We will not check/validate any input values. Only change this parameter if you know what you're doing.

    Declaration
    public int SymmetrySelection { get; set; }
    Property Value
    Type Description
    System.Int32

    Threads

    Gets or sets the default number of THREADS used during optimization.

    Default: -1

    Values: -1: Determined automatically based on hardware configuration

    0:Number of threads to use.

    Note:The value may be changed for specific parts of the optimization by the ConcurrentThreads, MipThreads and BarThreads controls.

    Declaration
    public int Threads { get; set; }
    Property Value
    Type Description
    System.Int32

    TreeCoverCuts

    Gets or sets the number of rounds of lifted cover inequalities generated at nodes other than the top node in the tree. Compare with the description for CoverCuts. Auto: -1.

    Declaration
    public int TreeCoverCuts { get; set; }
    Property Value
    Type Description
    System.Int32

    TreeCutSelect

    Declaration
    public int TreeCutSelect { get; set; }
    Property Value
    Type Description
    System.Int32

    TreeGomoryCuts

    Gets or sets The number of rounds of Gomory cuts generated at nodes other than the first node in the tree. Compare with the description for GomCuts. Auto: -1.

    Declaration
    public int TreeGomoryCuts { get; set; }
    Property Value
    Type Description
    System.Int32

    VariableSelection

    Gets or sets the variable selection strategy. This determines the formula used to calculate the estimate of each integer variable, and thus which integer variable is selected to be branched on at a given node. The variable selected to be branched on is the one with the maximum estimate. Default: Automatic

    Refers to: http://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/optimizer/HTML/VARSELECTION.html

    Declaration
    public VarSelection VariableSelection { get; set; }
    Property Value
    Type Description
    VarSelection

    Extension Methods

    ReflectionHelper.GetFieldValue(Object, String)
    ReflectionHelper.SetFieldValue(Object, String, Object)
    ExtensionMethods.Clone<T>(T)
    ExtensionMethods.ThrowIfArgumentIsNull<T>(T, String)
    Back to top Copyright © OPTANO GmbH generated with DocFX
    Privacy Policy | Impressum – Legal Notice