Show / Hide Table of Contents

    Class GurobiSolverConfiguration

    Allows to configure parameters for the Gurobi solver.

    Inheritance
    System.Object
    SolverConfiguration
    GurobiSolverConfiguration
    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.Gurobi501
    Assembly: Optimization.Solver.Gurobi501.dll
    Syntax
    public class GurobiSolverConfiguration : SolverConfiguration

    Properties

    AggFill

    Controls the amount of fill allowed during presolve aggregation.Larger values generally lead to presolved models with fewer rows andcolumns, but with more constraint matrix non-zeros. The default value chooses automatically, and usually works well.

    Declaration
    [Display(Name = "Allowed fill during presolve aggregation", ShortName = "AggFill", Description = "Controls the amount of fill allowed during presolve aggregation.Larger values generally lead to presolved models with fewer rows andcolumns, but with more constraint matrix non-zeros. The default value chooses automatically, and usually works well. ")]
    public int? AggFill { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Aggregate

    Enables or disables aggregation in presolve. In rare instances,aggregation can lead to an accumulation of numerical errors. Turningit off can sometimes improve solution accuracy.

    Declaration
    [Display(Name = "Presolve aggregation control", ShortName = "Aggregate", Description = "Enables or disables aggregation in presolve. In rare instances,aggregation can lead to an accumulation of numerical errors.  Turningit off can sometimes improve solution accuracy. ")]
    public bool? Aggregate { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    ApplicationName

    In case you are using a Gurobi application license, use this property to set your application name

    Declaration
    public string ApplicationName { get; set; }
    Property Value
    Type Description
    System.String

    BarConvTol

    The barrier solver terminates when the relative difference between theprimal and dual objective values is less than the specified tolerance(with a GRB_OPTIMAL status). Tightening this tolerance oftenproduces a more accurate solution, which can sometimes reduce the timespent in crossover. Loosening it causes the barrier algorithm toterminate with a less accurate solution, which can be useful whenbarrier is making very slow progress in later iterations. Note: Barrier only

    Declaration
    [Display(Name = "Barrier convergence tolerance", ShortName = "BarConvTol", Description = "The barrier solver terminates when the relative difference between theprimal and dual objective values is less than the specified tolerance(with a GRB_OPTIMAL status).  Tightening this tolerance oftenproduces a more accurate solution, which can sometimes reduce the timespent in crossover.  Loosening it causes the barrier algorithm toterminate with a less accurate solution, which can be useful whenbarrier is making very slow progress in later iterations. Note: Barrier only ")]
    public double? BarConvTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    BarCorrectors

    Limits the number of central corrections performed in each barrieriteration. The default value chooses automatically, depending onproblem characteristics. The automatic strategy generally works well,although it is often possible to obtain higher performance on aspecific model by selecting a value manually. Note: Barrier only

    Declaration
    [Display(Name = "Central correction limit", ShortName = "BarCorrectors", Description = "Limits the number of central corrections performed in each barrieriteration.  The default value chooses automatically, depending onproblem characteristics.  The automatic strategy generally works well,although it is often possible to obtain higher performance on aspecific model by selecting a value manually. Note: Barrier only ")]
    public int? BarCorrectors { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    BarHomogeneous

    Determines whether to use the homogeneous barrier algorithm. At thedefault setting (-1), it is only used when barrier solves a noderelaxation for a MIP model. Setting the parameter to 0 turns it off,and setting it to 1 forces it on. The homogeneous algorithm is usefulfor recognizing infeasibility or unboundedness. It is a bit slowerthan the default algorithm. Note: Barrier only

    Declaration
    [Display(Name = "Barrier homogeneous algorithm", ShortName = "BarHomogeneous", Description = "Determines whether to use the homogeneous barrier algorithm.  At thedefault setting (-1), it is only used when barrier solves a noderelaxation for a MIP model.  Setting the parameter to 0 turns it off,and setting it to 1 forces it on.  The homogeneous algorithm is usefulfor recognizing infeasibility or unboundedness.  It is a bit slowerthan the default algorithm. Note: Barrier only ")]
    public int? BarHomogeneous { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    BarIterLimit

    Limits the number of barrier iterations performed. This parameter israrely used. If you would like barrier to terminate early, it isalmost always better to use theBarConvTol parameter instead. Optimization returns with an ITERATION_LIMIT status if thelimit is exceeded (see the Status Codesection for further details). Note: Barrier only

    Declaration
    [Display(Name = "Barrier iteration limit", ShortName = "BarIterLimit", Description = "Limits the number of barrier iterations performed.  This parameter israrely used.  If you would like barrier to terminate early, it isalmost always better to use theBarConvTol parameter instead. Optimization returns with an ITERATION_LIMIT status if thelimit is exceeded (see the Status Codesection for further details). Note: Barrier only ")]
    public int? BarIterLimit { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    BarOrder

    Chooses the barrier sparse matrix fill-reducing algorithm. A value of0 chooses Approximate Minimum Degree ordering, while a value of 1chooses Nested Dissection ordering. The default value of -1 choosesautomatically. You should only modify this parameter if you noticethat the barrier ordering phase is consuming a significant fraction ofthe overall barrier runtime. Note: Barrier only

    Declaration
    [Display(Name = "Barrier ordering algorithm", ShortName = "BarOrder", Description = "Chooses the barrier sparse matrix fill-reducing algorithm.  A value of0 chooses Approximate Minimum Degree ordering, while a value of 1chooses Nested Dissection ordering.  The default value of -1 choosesautomatically.  You should only modify this parameter if you noticethat the barrier ordering phase is consuming a significant fraction ofthe overall barrier runtime. Note: Barrier only ")]
    public int? BarOrder { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    BarQCPConvTol

    When solving a QCP model, the barrier solver terminates when therelative difference between the primal and dual objective values isless than the specified tolerance (with a GRB_OPTIMALstatus). Tightening this tolerance may lead to a more accuratesolution, but it may also lead to a failure to converge. Note: Barrier only

    Declaration
    [Display(Name = "Barrier QCP convergence tolerance", ShortName = "BarQCPConvTol", Description = "When solving a QCP model, the barrier solver terminates when therelative difference between the primal and dual objective values isless than the specified tolerance (with a GRB_OPTIMALstatus).  Tightening this tolerance may lead to a more accuratesolution, but it may also lead to a failure to converge. Note: Barrier only ")]
    public double? BarQCPConvTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    BranchDir

    Determines which child node is explored first in the branch-and-cutsearch. The default value chooses automatically. A value of -1 willalways explore the down branch first, while a value of 1 will alwaysexplore the up branch first. Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Branch direction preference", ShortName = "BranchDir", Description = "Determines which child node is explored first in the branch-and-cutsearch.  The default value chooses automatically.  A value of -1 willalways explore the down branch first, while a value of 1 will alwaysexplore the up branch first. Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models ")]
    public int? BranchDir { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    CliqueCuts

    Controls clique cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation. Thedefault -1 value choose automatically. Overrides theCuts parameter. We have observed that setting this parameter to its aggressive settingcan produce a significant benefit for some large set partitioningmodels. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Clique cut generation", ShortName = "CliqueCuts", Description = "Controls clique cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation.  Thedefault -1 value choose automatically.  Overrides theCuts parameter. We have observed that setting this parameter to its aggressive settingcan produce a significant benefit for some large set partitioningmodels. Note: Only affects mixed integer programming (MIP) models ")]
    public int? CliqueCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ComputeIIS

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

    Declaration
    [Display(Name = "Compute IIS", ShortName = "Compute IIS", Description = "Specifies whether the IIS should be computed or not - you will find the IIS in the returned solution ")]
    public bool ComputeIIS { get; set; }
    Property Value
    Type Description
    System.Boolean

    CoverCuts

    Controls cover cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation. Thedefault -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Cover cut generation", ShortName = "CoverCuts", Description = "Controls cover cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation.  Thedefault -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? CoverCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Crossover

    Determines the crossover strategy used to transform the interiorsolution produced by barrier into a basic solution (note thatcrossover is not available for QP or QCP models). Crossover consistsof three phases: (i) a primal push phase, where primalvariables are pushed to bounds, (ii) a dual push phase, wheredual variables are pushed to bounds, and (iii) a cleanupphase, where simplex is used to remove any primal or dualinfeasibilities that remain after the push phases are complete. Theorder of the first two phases and the algorithm used for the thirdphase are both controlled by the Crossover parameter: Parameter valueFirst pushSecond pushCleanup1DualPrimalPrimal2DualPrimalDual3PrimalDualPrimal4PrimalDualDual The default value of -1 chooses the strategy automatically. Use value0 to disable crossover; this setting returns the interior solutioncomputed by barrier. Note: Barrier only

    Declaration
    [Display(Name = "Barrier crossover strategy", ShortName = "Crossover", Description = "Determines the crossover strategy used to transform the interiorsolution produced by barrier into a basic solution (note thatcrossover is not available for QP or QCP models).  Crossover consistsof three phases: (i) a primal push phase, where primalvariables are pushed to bounds, (ii) a dual push phase, wheredual variables are pushed to bounds, and (iii) a cleanupphase, where simplex is used to remove any primal or dualinfeasibilities that remain after the push phases are complete.  Theorder of the first two phases and the algorithm used for the thirdphase are both controlled by the Crossover parameter: Parameter valueFirst pushSecond pushCleanup1DualPrimalPrimal2DualPrimalDual3PrimalDualPrimal4PrimalDualDual The default value of -1 chooses the strategy automatically.  Use value0 to disable crossover; this setting returns the interior solutioncomputed by barrier. Note: Barrier only ")]
    public int? Crossover { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    CrossoverBasis

    Determines the initial basis construction strategy for crossover. Thedefault value (0) chooses an initial basis quickly. A value of 1 cantake much longer, but often produces a more numerically stable startbasis. Note: Barrier only

    Declaration
    [Display(Name = "Crossover initial basis construction strategy", ShortName = "CrossoverBasis", Description = "Determines the initial basis construction strategy for crossover.  Thedefault value (0) chooses an initial basis quickly.  A value of 1 cantake much longer, but often produces a more numerically stable startbasis. Note: Barrier only ")]
    public bool? CrossoverBasis { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    CutAggPasses

    A non-negative value indicates the maximum number of constraintaggregation passes performed during cut generation. Overridesthe Cuts parameter. Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Constraint aggregation passes performed during cut generation", ShortName = "CutAggPasses", Description = "A non-negative value indicates the maximum number of constraintaggregation passes performed during cut generation. Overridesthe Cuts parameter. Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models ")]
    public int? CutAggPasses { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Cutoff

    Indicates that you aren't interested in solutions whose objectivevalues are worse than the specified value. If the objective value forthe optimal solution is better than the specified cutoff, the solverwill return the optimal solution. Otherwise, it will terminate with aCUTOFF status (see theStatus Code section for further details).

    Declaration
    [Display(Name = "Objective cutoff", ShortName = "Cutoff", Description = "Indicates that you aren't interested in solutions whose objectivevalues are worse than the specified value.  If the objective value forthe optimal solution is better than the specified cutoff, the solverwill return the optimal solution.  Otherwise, it will terminate with aCUTOFF status (see theStatus Code section for further details). ")]
    public double? Cutoff { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    CutPasses

    A non-negative value indicates the maximum number of cutting planepasses performed during root cut generation. The default valuechooses the number of cut passes automatically. You should experiment with different values of this parameter if younotice the MIP solver spending significant time on root cut passesthat have little impact on the objective bound. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Root cutting plane pass limit", ShortName = "CutPasses", Description = "A non-negative value indicates the maximum number of cutting planepasses performed during root cut generation.  The default valuechooses the number of cut passes automatically. You should experiment with different values of this parameter if younotice the MIP solver spending significant time on root cut passesthat have little impact on the objective bound. Note: Only affects mixed integer programming (MIP) models ")]
    public int? CutPasses { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Cuts

    Global cut aggressiveness setting. Use value 0 to shut off cuts, 1for moderate cut generation, 2 for aggressive cut generation,and 3 for very aggressive cut generation. This parameter isoverridden by the parameters that control individual cut types(e.g., CliqueCuts). Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Global cut generation control", ShortName = "Cuts", Description = "Global cut aggressiveness setting.  Use value 0 to shut off cuts, 1for moderate cut generation, 2 for aggressive cut generation,and 3 for very aggressive cut generation.  This parameter isoverridden by the parameters that control individual cut types(e.g., CliqueCuts). Note: Only affects mixed integer programming (MIP) models ")]
    public int? Cuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    DisplayInterval

    Determines the frequency at which log lines are printed (in seconds).

    Declaration
    [Display(Name = "Frequency at which log lines are printed", ShortName = "DisplayInterval", Description = "Determines the frequency at which log lines are printed (in seconds). ")]
    public int? DisplayInterval { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    DualReductions

    Determines whether dual reductions are performed in presolve. Youshould disable these reductions if you receivedan optimization status of INF_OR_UNBD and would like a moredefinitive conclusion.

    Declaration
    [Display(Name = "Disables dual reductions in presolve", ShortName = "DualReductions", Description = "Determines whether dual reductions are performed in presolve.  Youshould disable these reductions if you receivedan optimization status of INF_OR_UNBD and would like a moredefinitive conclusion. ")]
    public bool? DualReductions { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    FeasibilityTol

    All constraints must be satisfied to a tolerance ofFeasibilityTol. Tightening this tolerance can produce smallerconstraint violations, but for numerically challenging models it cansometimes lead to much larger iteration counts.

    Declaration
    [Display(Name = "Primal feasibility tolerance", ShortName = "FeasibilityTol", Description = "All constraints must be satisfied to a tolerance ofFeasibilityTol.  Tightening this tolerance can produce smallerconstraint violations, but for numerically challenging models it cansometimes lead to much larger iteration counts. ")]
    public double? FeasibilityTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    FeasRelaxBigM

    When relaxing a constraint in a feasibility relaxation, it issometimes necessary to introduce a big-M value. This parameterdetermines the default magnitude of that value.

    Declaration
    [Display(Name = "Big-M value for feasibility relaxations", ShortName = "FeasRelaxBigM", Description = "When relaxing a constraint in a feasibility relaxation, it issometimes necessary to introduce a big-M value.  This parameterdetermines the default magnitude of that value. ")]
    public double? FeasRelaxBigM { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    FlowCoverCuts

    Controls flow cover cut generation. Use 0 to disable these cuts,1 for moderate cut generation, or 2 for aggressivecut generation. The default -1 value chooses automatically.Overrides the Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Flow cover cut generation", ShortName = "FlowCoverCuts", Description = "Controls flow cover cut generation. Use 0 to disable these cuts,1 for moderate cut generation, or 2 for aggressivecut generation.  The default -1 value chooses automatically.Overrides the Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? FlowCoverCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    FlowPathCuts

    Controls flow path cut generation. Use 0 to disable these cuts,1 for moderate cut generation, or 2 for aggressivecut generation. The default -1 value chooses automatically.Overrides the Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Flow path cut generation", ShortName = "FlowPathCuts", Description = "Controls flow path cut generation. Use 0 to disable these cuts,1 for moderate cut generation, or 2 for aggressivecut generation.  The default -1 value chooses automatically.Overrides the Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? FlowPathCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    GomoryPasses

    A non-negative value indicates the maximum number of Gomory cut passesperformed. Overrides the Cutsparameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Root Gomory cut pass limit", ShortName = "GomoryPasses", Description = "A non-negative value indicates the maximum number of Gomory cut passesperformed. Overrides the Cutsparameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? GomoryPasses { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    GUBCoverCuts

    Controls GUB cover cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation. Thedefault -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "GUB cover cut generation", ShortName = "GUBCoverCuts", Description = "Controls GUB cover cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation.  Thedefault -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? GUBCoverCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Heuristics

    Determines the amount of time spent in MIP heuristics. You can thinkof the value as the desired fraction of total MIP runtime devoted toheuristics (so by default, we aim to spend 5% of runtime onheuristics). Larger values produce more and better feasiblesolutions, at a cost of slower progress in the best bound. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Turn MIP heuristics up or down", ShortName = "Heuristics", Description = "Determines the amount of time spent in MIP heuristics.  You can thinkof the value as the desired fraction of total MIP runtime devoted toheuristics (so by default, we aim to spend 5% of runtime onheuristics).  Larger values produce more and better feasiblesolutions, at a cost of slower progress in the best bound. Note: Only affects mixed integer programming (MIP) models ")]
    public double? Heuristics { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    IISMethod

    Chooses the IIS method to use. Method 0 is often faster, while method1 can produce a smaller IIS. The default value of -1 choosesautomatically.

    Declaration
    [Display(Name = "IIS method", ShortName = "IISMethod", Description = "Chooses the IIS method to use.  Method 0 is often faster, while method1 can produce a smaller IIS.  The default value of -1 choosesautomatically. ")]
    public int? IISMethod { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ImpliedCuts

    Controls implied bound cut generation. Use 0 to disable these cuts, 1for moderate cut generation, or 2 for aggressive cut generation. Thedefault -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Implied bound cut generation", ShortName = "ImpliedCuts", Description = "Controls implied bound cut generation. Use 0 to disable these cuts, 1for moderate cut generation, or 2 for aggressive cut generation.  Thedefault -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? ImpliedCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ImproveStartGap

    The MIP solver can change parameter settings in the middle of thesearch in order to adopt a strategy that gives up on moving the bestbound and instead devotes all of its effort towards finding betterfeasible solutions. This parameter allows you to specify anoptimality gap at which the MIP solver switches to a solutionimprovement strategy. For example, setting this parameter to 0.1 willcause the MIP solver to switch strategies once the relative optimalitygap is smaller than 0.1. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Trigger solution improvement", ShortName = "ImproveStartGap", Description = "The MIP solver can change parameter settings in the middle of thesearch in order to adopt a strategy that gives up on moving the bestbound and instead devotes all of its effort towards finding betterfeasible solutions.  This parameter allows you to specify anoptimality gap at which the MIP solver switches to a solutionimprovement strategy. For example, setting this parameter to 0.1 willcause the MIP solver to switch strategies once the relative optimalitygap is smaller than 0.1. Note: Only affects mixed integer programming (MIP) models ")]
    public double? ImproveStartGap { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    ImproveStartTime

    The MIP solver can change parameter settings in the middle of thesearch in order to adopt a strategy that gives up on moving the bestbound and instead devotes all of its effort towards finding betterfeasible solutions. This parameter allows you to specify the timewhen the MIP solver switches to a solution improvement strategy. Forexample, setting this parameter to 10 will cause the MIP solver toswitch strategies 10 seconds after starting the optimization. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Trigger solution improvement", ShortName = "ImproveStartTime", Description = "The MIP solver can change parameter settings in the middle of thesearch in order to adopt a strategy that gives up on moving the bestbound and instead devotes all of its effort towards finding betterfeasible solutions.  This parameter allows you to specify the timewhen the MIP solver switches to a solution improvement strategy. Forexample, setting this parameter to 10 will cause the MIP solver toswitch strategies 10 seconds after starting the optimization. Note: Only affects mixed integer programming (MIP) models ")]
    public double? ImproveStartTime { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    InfUnbdInfo

    Determines whether simplex (and crossover) will compute additionalinformation when a model is determined to be infeasible or unbounded.Set this parameter if you want to query the unbounded ray forunbounded models (through theUnbdRayattribute), or theinfeasibility proof for infeasible models (through theFarkasDualandFarkasProofattributes). Note: LP only

    Declaration
    [Display(Name = "Generate additional info for infeasible/unbounded models", ShortName = "InfUnbdInfo", Description = "Determines whether simplex (and crossover) will compute additionalinformation when a model is determined to be infeasible or unbounded.Set this parameter if you want to query the unbounded ray forunbounded models (through theUnbdRayattribute), or theinfeasibility proof for infeasible models (through theFarkasDualandFarkasProofattributes). Note: LP only ")]
    public bool? InfUnbdInfo { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    IntFeasTol

    An integrality restriction on a variable is considered satisfied whenthe variable's value is less than IntFeasTol from the nearestinteger value. Tightening this tolerance can produce smallerintegrality violations, but very tight tolerances may significantlyincrease runtime. Loosening this tolerance rarely reduces runtime. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Integer feasibility tolerance", ShortName = "IntFeasTol", Description = "An integrality restriction on a variable is considered satisfied whenthe variable's value is less than IntFeasTol from the nearestinteger value.  Tightening this tolerance can produce smallerintegrality violations, but very tight tolerances may significantlyincrease runtime.  Loosening this tolerance rarely reduces runtime. Note: Only affects mixed integer programming (MIP) models ")]
    public double? IntFeasTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    IsvName

    In case you are using a Gurobi application license, use this property to set your Independent Software Vendor name

    Declaration
    public string IsvName { get; set; }
    Property Value
    Type Description
    System.String

    IterationLimit

    Limits the number of simplex iterations performed. The limit appliesto MIP, barrier crossover, and simplex. Optimization returns with anITERATION_LIMIT status if the limit is exceeded (see theStatus Code section for furtherdetails).

    Declaration
    [Display(Name = "Simplex iteration limit", ShortName = "IterationLimit", Description = "Limits the number of simplex iterations performed.  The limit appliesto MIP, barrier crossover, and simplex.  Optimization returns with anITERATION_LIMIT status if the limit is exceeded (see theStatus Code section for furtherdetails). ")]
    public double? IterationLimit { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    LogToConsole

    Enables or disables console logging. UseOutputFlagto shut off all logging.

    Declaration
    [Display(Name = "Console logging", ShortName = "LogToConsole", Description = "Enables or disables console logging.  UseOutputFlagto shut off all logging. ")]
    public bool? LogToConsole { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    MarkowitzTol

    The Markowitz tolerance is used to limit numerical error in thesimplex algorithm. Specifically, larger values reduce the errorintroduced in the simplex basis factorization. A larger value mayavoid numerical problems in rare situations, but it will also harmperformance.

    Declaration
    [Display(Name = "Threshold pivoting tolerance", ShortName = "MarkowitzTol", Description = "The Markowitz tolerance is used to limit numerical error in thesimplex algorithm.  Specifically, larger values reduce the errorintroduced in the simplex basis factorization.  A larger value mayavoid numerical problems in rare situations, but it will also harmperformance. ")]
    public double? MarkowitzTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    Method

    Algorithm used to solve continuous models or the root node of a MIPmodel. Options are: -1=automatic, 0=primal simplex, 1=dual simplex,2=barrier, 3=concurrent, 4=deterministic concurrent. In the current release, the default Automatic (-1) setting willtypically choose non-deterministic concurrent (Method=3) for an LP,barrier (Method=2) for a QP or QCP, and dual (Method=1) for the MIProot node. Only the simplex and barrier algorithms are available forcontinuous QP models. Only primal and dual simplex are available forsolving the root of an MIQP model. Only barrier is available forcontinuous QCP models. Concurrent optimizers run multiple solvers on multiple threadssimultaneously, and choose the one that finishes first. Deterministicconcurrent (Method=4) gives the exact same result each time, whileMethod=3 is often faster but can produce different optimal bases whenrun multiple times. The default setting is rarely significantly slower than the bestpossible setting, so you generally won't see a big gain from changingthis parameter. There are classes of models where one particularalgorithm is consistently fastest, though, so you may want toexperiment with different options when confronted with a particularlydifficult model. Note that if memory is tight on an LP model, you should consider usingthe dual simplex method (Method=1). The concurrent optimizer,which is typically chosen when using the default setting, consumes alot more memory than dual simplex alone.

    Declaration
    [Display(Name = "Algorithm used to solve continuous models", ShortName = "Method", Description = "Algorithm used to solve continuous models or the root node of a MIPmodel.  Options are: -1=automatic, 0=primal simplex, 1=dual simplex,2=barrier, 3=concurrent, 4=deterministic concurrent. In the current release, the default Automatic (-1) setting willtypically choose non-deterministic concurrent (Method=3) for an LP,barrier (Method=2) for a QP or QCP, and dual (Method=1) for the MIProot node.  Only the simplex and barrier algorithms are available forcontinuous QP models.  Only primal and dual simplex are available forsolving the root of an MIQP model.  Only barrier is available forcontinuous QCP models. Concurrent optimizers run multiple solvers on multiple threadssimultaneously, and choose the one that finishes first.  Deterministicconcurrent (Method=4) gives the exact same result each time, whileMethod=3 is often faster but can produce different optimal bases whenrun multiple times. The default setting is rarely significantly slower than the bestpossible setting, so you generally won't see a big gain from changingthis parameter.  There are classes of models where one particularalgorithm is consistently fastest, though, so you may want toexperiment with different options when confronted with a particularlydifficult model. Note that if memory is tight on an LP model, you should consider usingthe dual simplex method (Method=1).  The concurrent optimizer,which is typically chosen when using the default setting, consumes alot more memory than dual simplex alone. ")]
    public int? Method { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    MinRelNodes

    Number of nodes to explore in the minimum relaxation heuristic. Notethat this heuristic is only applied at the end of the MIP root, andonly when no other root heuristic finds a feasible solution. This heuristic is quite expensive, and generally produces poor qualitysolutions. You should generally only use it if other means, includingexploration of the tree with default settings, fail to produce afeasible solution. The default value automatically chooses whether to apply theheuristic. It will only rarely choose to do so. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Minimum relaxation heuristic control", ShortName = "MinRelNodes", Description = "Number of nodes to explore in the minimum relaxation heuristic.  Notethat this heuristic is only applied at the end of the MIP root, andonly when no other root heuristic finds a feasible solution. This heuristic is quite expensive, and generally produces poor qualitysolutions.  You should generally only use it if other means, includingexploration of the tree with default settings, fail to produce afeasible solution. The default value automatically chooses whether to apply theheuristic.  It will only rarely choose to do so. Note: Only affects mixed integer programming (MIP) models ")]
    public int? MinRelNodes { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    MIPFocus

    The MIPFocus parameter allows you to modify your high-levelsolution strategy, depending on your goals. By default, the GurobiMIP solver strikes a balance between finding new feasible solutionsand proving that the current solution is optimal. If you are moreinterested in finding feasible solutions quickly, you can selectMIPFocus=1. If you believe the solver is having no troublefinding good quality solutions, and wish to focus more attention onproving optimality, select MIPFocus=2. If the best objectivebound is moving very slowly (or not at all), you may want to tryMIPFocus=3 to focus on the bound. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Set the focus of the MIP solver", ShortName = "MIPFocus", Description = "The MIPFocus parameter allows you to modify your high-levelsolution strategy, depending on your goals.  By default, the GurobiMIP solver strikes a balance between finding new feasible solutionsand proving that the current solution is optimal.  If you are moreinterested in finding feasible solutions quickly, you can selectMIPFocus=1.  If you believe the solver is having no troublefinding good quality solutions, and wish to focus more attention onproving optimality, select MIPFocus=2.  If the best objectivebound is moving very slowly (or not at all), you may want to tryMIPFocus=3 to focus on the bound. Note: Only affects mixed integer programming (MIP) models ")]
    public int? MIPFocus { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    MIPSepCuts

    Controls MIP separation cut generation. Use 0 to disable these cuts, 1for moderate cut generation, or 2 for aggressive cut generation. Thedefault -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "MIP separation cut generation", ShortName = "MIPSepCuts", Description = "Controls MIP separation cut generation. Use 0 to disable these cuts, 1for moderate cut generation, or 2 for aggressive cut generation.  Thedefault -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? MIPSepCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    MIQCPMethod

    Controls the method used to solve MIQCP models. Value 1 uses alinearized, outer-approximation approach, while value 0 solvescontinuous QCP relaxations at each node. The default setting (-1)chooses automatically. Note: MIQCP only

    Declaration
    [Display(Name = "Method used to solve MIQCP models", ShortName = "MIQCPMethod", Description = "Controls the method used to solve MIQCP models.  Value 1 uses alinearized, outer-approximation approach, while value 0 solvescontinuous QCP relaxations at each node.  The default setting (-1)chooses automatically. Note: MIQCP only ")]
    public int? MIQCPMethod { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    MIRCuts

    Controls Mixed Integer Rounding (MIR) cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration. The default -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "MIR cut generation", ShortName = "MIRCuts", Description = "Controls Mixed Integer Rounding (MIR) cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration.  The default -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? MIRCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ModKCuts

    Controls mod-k cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration. The default -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Mod-k cut generation", ShortName = "ModKCuts", Description = "Controls mod-k cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration.  The default -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? ModKCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    NetworkCuts

    Controls network cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration. The default -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Network cut generation", ShortName = "NetworkCuts", Description = "Controls network cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration.  The default -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? NetworkCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    NodefileDir

    Determines the directory into which nodes are written when node memoryusage exceeds the specifiedNodefileStartvalue. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Directory for MIP node files", ShortName = "NodefileDir", Description = "Determines the directory into which nodes are written when node memoryusage exceeds the specifiedNodefileStartvalue. Note: Only affects mixed integer programming (MIP) models ")]
    public string NodefileDir { get; set; }
    Property Value
    Type Description
    System.String

    NodefileStart

    If you find that the Gurobi optimizer exhausts memory when solving aMIP, you should modify the NodefileStart parameter. When theamount of memory used to store nodes (measured in GBytes) exceeds thespecified parameter value, nodes are written to disk. We recommend asetting of 0.5, but you may wish to choose a different value,depending on the memory available in your machine. By default, nodesare written to the current working directory. TheNodefileDirparameter can be used to choose a different location. If you still exhaust memory after setting the NodefileStartparameter to a small value, you should try limiting the thread count.Each thread in parallel MIP requires a copy of the model, as well asseveral other large data structures. Reducing theThreadsparameter can sometimes significantly reduce memory usage. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Memory threshold for writing MIP tree nodes to disk", ShortName = "NodefileStart", Description = "If you find that the Gurobi optimizer exhausts memory when solving aMIP, you should modify the NodefileStart parameter.  When theamount of memory used to store nodes (measured in GBytes) exceeds thespecified parameter value, nodes are written to disk.  We recommend asetting of 0.5, but you may wish to choose a different value,depending on the memory available in your machine.  By default, nodesare written to the current working directory.  TheNodefileDirparameter can be used to choose a different location. If you still exhaust memory after setting the NodefileStartparameter to a small value, you should try limiting the thread count.Each thread in parallel MIP requires a copy of the model, as well asseveral other large data structures.  Reducing theThreadsparameter can sometimes significantly reduce memory usage. Note: Only affects mixed integer programming (MIP) models ")]
    public double? NodefileStart { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    NodeLimit

    Limits the number of MIP nodes explored. Optimization returns with anNODE_LIMIT status if the limit is exceeded (see theStatus Code section for furtherdetails). Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "MIP node limit", ShortName = "NodeLimit", Description = "Limits the number of MIP nodes explored.  Optimization returns with anNODE_LIMIT status if the limit is exceeded (see theStatus Code section for furtherdetails). Note: Only affects mixed integer programming (MIP) models ")]
    public double? NodeLimit { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    NodeMethod

    Algorithm used for MIP node relaxations (0=primal simplex, 1=dualsimplex, 2=barrier). Note that barrier is not an option for MIQP noderelaxations. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Method used to solve MIP node relaxations", ShortName = "NodeMethod", Description = "Algorithm used for MIP node relaxations (0=primal simplex, 1=dualsimplex, 2=barrier).  Note that barrier is not an option for MIQP noderelaxations. Note: Only affects mixed integer programming (MIP) models ")]
    public int? NodeMethod { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    NormAdjust

    Chooses from among multiple pricing norm variants. The details of howthis parameter affects the simplex pricing algorithm are subtle anddifficult to describe, so we've simply labeled the options 0 through3. The default value of -1 chooses automatically. Changing the value of this parameter rarely produces a significantbenefit.

    Declaration
    [Display(Name = "Simplex pricing norm", ShortName = "NormAdjust", Description = "Chooses from among multiple pricing norm variants.  The details of howthis parameter affects the simplex pricing algorithm are subtle anddifficult to describe, so we've simply labeled the options 0 through3.  The default value of -1 chooses automatically. Changing the value of this parameter rarely produces a significantbenefit. ")]
    public int? NormAdjust { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ObjScale

    Divides the model objective by the specified value to avoid numericalerrors that may result from very large objective coefficients. Thedefault value of 0 decides on the scaling automatically. A value lessthan zero uses the maximum coefficient to the specified power as thescaling (so ObjScale=-0.5 would scale by the square root ofthe largest objective coefficient). Objective scaling can be useful when the objective contains extremelylarge values, but it can also lead to large dual violations, so itshould be used sparingly.

    Declaration
    [Display(Name = "Objective scaling", ShortName = "ObjScale", Description = "Divides the model objective by the specified value to avoid numericalerrors that may result from very large objective coefficients.  Thedefault value of 0 decides on the scaling automatically.  A value lessthan zero uses the maximum coefficient to the specified power as thescaling (so ObjScale=-0.5 would scale by the square root ofthe largest objective coefficient). Objective scaling can be useful when the objective contains extremelylarge values, but it can also lead to large dual violations, so itshould be used sparingly. ")]
    public double? ObjScale { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    OptimalityTol

    Reduced costs must all be smaller than OptimalityTol in theimproving direction in order for a model to be declared optimal.

    Declaration
    [Display(Name = "Dual feasibility tolerance", ShortName = "OptimalityTol", Description = "Reduced costs must all be smaller than OptimalityTol in theimproving direction in order for a model to be declared optimal. ")]
    public double? OptimalityTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    OutputFlag

    Enables or disables solver output. UseLogFile andLogToConsolefor finer-grain control. Setting OutputFlag to 0is equivalent to settingLogFileto ""andLogToConsoleto 0.

    Declaration
    [Display(Name = "Solver output control", ShortName = "OutputFlag", Description = "Enables or disables solver output. UseLogFile andLogToConsolefor finer-grain control.  Setting OutputFlag to 0is equivalent to settingLogFileto \"\"andLogToConsoleto 0. ")]
    public bool? OutputFlag { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    PerturbValue

    Magnitude of the simplex perturbation. Note that perturbation is onlyapplied when progress has stalled, so the parameter will often have noeffect.

    Declaration
    [Display(Name = "Simplex perturbation magnitude", ShortName = "PerturbValue", Description = "Magnitude of the simplex perturbation.  Note that perturbation is onlyapplied when progress has stalled, so the parameter will often have noeffect. ")]
    public double? PerturbValue { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    PreCrush

    Allows presolve to translate constraints on the original model toequivalent constraints on the presolved model. You must turn thisparameter on when you are using callbacks to add your own cuts.

    Declaration
    [Display(Name = "Allows presolve to translate constraints on the original model to equivalent constraints on the presolved model", ShortName = "PreCrush", Description = "Allows presolve to translate constraints on the original model toequivalent constraints on the presolved model. You must turn thisparameter on when you are using callbacks to add your own cuts. ")]
    public bool? PreCrush { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    PreDepRow

    Controls the presolve dependent row reduction, which eliminateslinearly dependent constraints from the constraint matrix. Thedefault setting (-1) applies the reduction to continuous models butnot to MIP models. Setting 0 turns the reduction off for all models.Setting 1 turns it on for all models.

    Declaration
    [Display(Name = "Presolve dependent row reduction", ShortName = "PreDepRow", Description = "Controls the presolve dependent row reduction, which eliminateslinearly dependent constraints from the constraint matrix.  Thedefault setting (-1) applies the reduction to continuous models butnot to MIP models.  Setting 0 turns the reduction off for all models.Setting 1 turns it on for all models. ")]
    public int? PreDepRow { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    PreDual

    Controls whether presolve forms the dual of a continuousmodel. Depending on the structure of the model, solving the dual canreduce overall solution time. The default setting uses a heuristic todecide. Setting 0 forbids presolve from forming the dual, whilesetting 1 forces it to take the dual. Setting 2 employs a moreexpensive heuristic that forms both the presolved primal and dualmodels (on two threads), and heuristically chooses one of them. Note: LP only

    Declaration
    [Display(Name = "Presolve dualization", ShortName = "PreDual", Description = "Controls whether presolve forms the dual of a continuousmodel. Depending on the structure of the model, solving the dual canreduce overall solution time.  The default setting uses a heuristic todecide.  Setting 0 forbids presolve from forming the dual, whilesetting 1 forces it to take the dual.  Setting 2 employs a moreexpensive heuristic that forms both the presolved primal and dualmodels (on two threads), and heuristically chooses one of them. Note: LP only ")]
    public int? PreDual { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    PrePasses

    Limits the number of passes performed by presolve. The defaultsetting (-1) chooses the number of passes automatically. Youshould experiment with this parameter when you find thatpresolve is consuming a large fraction of total solve time.

    Declaration
    [Display(Name = "Presolve pass limit", ShortName = "PrePasses", Description = "Limits the number of passes performed by presolve.  The defaultsetting (-1) chooses the number of passes automatically.  Youshould experiment with this parameter when you find thatpresolve is consuming a large fraction of total solve time. ")]
    public int? PrePasses { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    PreQLinearize

    Controls presolve Q matrix linearization. Option 1 attempts tolinearize quadratic constraints or a quadratic objective, potentiallytransforming an MIQP or MIQCP into an MILP. Option 0 shuts off thetransformation. The default setting (-1) choose automatically. Theautomatic setting works well, but there are cases where forcing Qlinearization can be beneficial.

    Declaration
    [Display(Name = "Presolve Q matrix linearization", ShortName = "PreQLinearize", Description = "Controls presolve Q matrix linearization.  Option 1 attempts tolinearize quadratic constraints or a quadratic objective, potentiallytransforming an MIQP or MIQCP into an MILP.  Option 0 shuts off thetransformation.  The default setting (-1) choose automatically.  Theautomatic setting works well, but there are cases where forcing Qlinearization can be beneficial. ")]
    public int? PreQLinearize { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Presolve

    Controls the presolve level. A value of -1 corresponds to an automaticsetting. Other options are off (0), conservative (1), or aggressive(2). More aggressive application of presolve takes more time,but can sometimes lead to a significantly tighter model.

    Declaration
    [Display(Name = "Presolve level", ShortName = "Presolve", Description = "Controls the presolve level. A value of -1 corresponds to an automaticsetting.  Other options are off (0), conservative (1), or aggressive(2).  More aggressive application of presolve takes more time,but can sometimes lead to a significantly tighter model. ")]
    public int? Presolve { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    PreSparsify

    Controls the presolve sparsify reduction. This reduction can sometimessignificantly reduce the number of nonzero values in the presolvedmodel. Value 0 shuts off the reduction, while value 1 forces it on.The default value of -1 chooses automatically. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Presolve sparsify reduction", ShortName = "PreSparsify", Description = "Controls the presolve sparsify reduction. This reduction can sometimessignificantly reduce the number of nonzero values in the presolvedmodel.  Value 0 shuts off the reduction, while value 1 forces it on.The default value of -1 chooses automatically. Note: Only affects mixed integer programming (MIP) models ")]
    public int? PreSparsify { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    PSDTol

    Sets a limit on the amount of diagonal perturbation that the optimizeris allowed to perform on a Q matrix in order to correct minor PSDviolations. If a larger perturbation is required, the optimizer willterminate with a GRB_ERROR_Q_NOT_PSD error. Note: QP/QCP/MIQP/MIQCP only

    Declaration
    [Display(Name = "Positive semi-definite tolerance", ShortName = "PSDTol", Description = "Sets a limit on the amount of diagonal perturbation that the optimizeris allowed to perform on a Q matrix in order to correct minor PSDviolations.  If a larger perturbation is required, the optimizer willterminate with a GRB_ERROR_Q_NOT_PSD error. Note: QP/QCP/MIQP/MIQCP only ")]
    public double? PSDTol { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Double>

    PumpPasses

    Number of passes of the feasibility pump heuristic. Note that thisheuristic is only applied at the end of the MIP root, and only when noother root heuristic finds a feasible solution. This heuristic is quite expensive, and generally produces poor qualitysolutions. You should generally only use it if other means, includingexploration of the tree with default settings, fail to produce afeasible solution. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Feasibility pump heuristic control", ShortName = "PumpPasses", Description = "Number of passes of the feasibility pump heuristic.  Note that thisheuristic is only applied at the end of the MIP root, and only when noother root heuristic finds a feasible solution. This heuristic is quite expensive, and generally produces poor qualitysolutions.  You should generally only use it if other means, includingexploration of the tree with default settings, fail to produce afeasible solution. Note: Only affects mixed integer programming (MIP) models ")]
    public int? PumpPasses { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    QCPDual

    Determines whether dual variable values are computed for QCP models.Computing them can add significant time to the optimization, so youshould only set this parameter to 1 if you need them.

    Declaration
    [Display(Name = "Compute dual variables for QCP models", ShortName = "QCPDual", Description = "Determines whether dual variable values are computed for QCP models.Computing them can add significant time to the optimization, so youshould only set this parameter to 1 if you need them. ")]
    public bool? QCPDual { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    Quad

    Enables or disables quad precision computation in simplex. The -1default setting allows the algorithm to decide. Quad precision cansometimes help solve numerically challenging models, but it can alsosignificantly increase runtime.

    Declaration
    [Display(Name = "Quad precision computation in simplex", ShortName = "Quad", Description = "Enables or disables quad precision computation in simplex.  The -1default setting allows the algorithm to decide.  Quad precision cansometimes help solve numerically challenging models, but it can alsosignificantly increase runtime. ")]
    public int? Quad { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ResultFile

    Specifies the name of the result file to be written upon completion ofoptimization. The type of the result file is determined by the filesuffix. Possible suffixes are .sol (the solution vector),.bas (the simplex basis), or .mst (the solution vector onthe integer variables). More information on the file formats can befound in the File Format section.

    Declaration
    [Display(Name = "Result file written upon completion of optimization", ShortName = "ResultFile", Description = "Specifies the name of the result file to be written upon completion ofoptimization.  The type of the result file is determined by the filesuffix. Possible suffixes are .sol (the solution vector),.bas (the simplex basis), or .mst (the solution vector onthe integer variables).  More information on the file formats can befound in the File Format section. ")]
    public string ResultFile { get; set; }
    Property Value
    Type Description
    System.String

    RINS

    Frequency of the RINS heuristic. Default value (-1) choosesautomatically. A value of 0 shuts off RINS. A positive valuen applies RINS at every n-th node of the MIP searchtree. Increasing the frequency of the RINS heuristic shifts the focusof the MIP search away from proving optimality, and towardsfinding good feasible solutions. We recommend that youtryMIPFocus,ImproveStartGap, orImproveStartTimebefore experimenting with this parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "RINS heuristic", ShortName = "RINS", Description = "Frequency of the RINS heuristic.  Default value (-1) choosesautomatically.  A value of 0 shuts off RINS.  A positive valuen applies RINS at every n-th node of the MIP searchtree. Increasing the frequency of the RINS heuristic shifts the focusof the MIP search away from proving optimality, and towardsfinding good feasible solutions.  We recommend that youtryMIPFocus,ImproveStartGap, orImproveStartTimebefore experimenting with this parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? RINS { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ScaleFlag

    Enables or disables model scaling. Scaling usually improves thenumerical properties of the model, which typically leads to reducedsolution times, but it may sometimes lead to larger constraintviolations in the original, unscaled model.

    Declaration
    [Display(Name = "Model scaling", ShortName = "ScaleFlag", Description = "Enables or disables model scaling.  Scaling usually improves thenumerical properties of the model, which typically leads to reducedsolution times, but it may sometimes lead to larger constraintviolations in the original, unscaled model. ")]
    public bool? ScaleFlag { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Boolean>

    Sifting

    Enables or disables sifting within dual simplex. Sifting can beuseful for LP models where the number of variables is many timeslarger than the number of constraints (we typically only seesignificant benefits when the ratio is 100 or more). Options areAutomatic (-1), Off (0), Moderate (1), and Aggressive (2). With aModerate setting, sifting will be applied to LP models and to the rootnode for MIP models. With an Aggressive setting, sifting will beapplied any time dual simplex is used, including at the nodes of aMIP. Note that this parameter has no effect if you aren't using dualsimplex. Note also that Gurobi will ignore this parameter in caseswhere sifting is obviously a worse choice than dual simplex.

    Declaration
    [Display(Name = "Sifting within dual simplex", ShortName = "Sifting", Description = "Enables or disables sifting within dual simplex.  Sifting can beuseful for LP models where the number of variables is many timeslarger than the number of constraints (we typically only seesignificant benefits when the ratio is 100 or more).  Options areAutomatic (-1), Off (0), Moderate (1), and Aggressive (2).  With aModerate setting, sifting will be applied to LP models and to the rootnode for MIP models.  With an Aggressive setting, sifting will beapplied any time dual simplex is used, including at the nodes of aMIP.  Note that this parameter has no effect if you aren't using dualsimplex.  Note also that Gurobi will ignore this parameter in caseswhere sifting is obviously a worse choice than dual simplex. ")]
    public int? Sifting { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    SiftMethod

    LP method used to solve sifting sub-problems. Options are Automatic(-1), Primal Simplex (0), Dual Simplex (1), and Barrier (2). Notethat this parameter only has an effect when you are using dual simplexand sifting has been selected (either automatically by dual simplex,or through the Sifting parameter). Changing the value of this parameter rarely produces a significantbenefit.

    Declaration
    [Display(Name = "LP method used to solve sifting sub-problems", ShortName = "SiftMethod", Description = "LP method used to solve sifting sub-problems.  Options are Automatic(-1), Primal Simplex (0), Dual Simplex (1), and Barrier (2).  Notethat this parameter only has an effect when you are using dual simplexand sifting has been selected (either automatically by dual simplex,or through the Sifting parameter). Changing the value of this parameter rarely produces a significantbenefit. ")]
    public int? SiftMethod { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    SimplexPricing

    Determines the simplex variable pricing strategy. Available optionsare Automatic (-1), Partial Pricing (0), Steepest Edge (1), Devex (2),and Quick-Start Steepest Edge (3). Changing the value of this parameter rarely produces a significantbenefit.

    Declaration
    [Display(Name = "Simplex variable pricing strategy", ShortName = "SimplexPricing", Description = "Determines the simplex variable pricing strategy.  Available optionsare Automatic (-1), Partial Pricing (0), Steepest Edge (1), Devex (2),and Quick-Start Steepest Edge (3). Changing the value of this parameter rarely produces a significantbenefit. ")]
    public int? SimplexPricing { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    SolutionLimit

    Limits the number of feasible MIP solutions found. Optimizationreturns with a SOLUTION_LIMIT status once the limit has beenreached (see the Status Code sectionfor further details). Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "MIP feasible solution limit", ShortName = "SolutionLimit", Description = "Limits the number of feasible MIP solutions found.  Optimizationreturns with a SOLUTION_LIMIT status once the limit has beenreached (see the Status Code sectionfor further details). Note: Only affects mixed integer programming (MIP) models ")]
    public int? SolutionLimit { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    SolutionNumber

    When querying attributeXn to retrieve an alternate MIPsolution, this parameter determines which alternate solution isretrieved. The value of this parameter should be less than the valueof the SolCountattribute. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Sub-optimal MIP solution retrieval", ShortName = "SolutionNumber", Description = "When querying attributeXn to retrieve an alternate MIPsolution, this parameter determines which alternate solution isretrieved.  The value of this parameter should be less than the valueof the SolCountattribute. Note: Only affects mixed integer programming (MIP) models ")]
    public int? SolutionNumber { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    SubMIPCuts

    Controls sub-MIP cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration. The default -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Sub-MIP cut generation", ShortName = "SubMIPCuts", Description = "Controls sub-MIP cut generation. Use 0 to disablethese cuts, 1 for moderate cut generation, or 2 for aggressive cutgeneration.  The default -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? SubMIPCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    SubMIPNodes

    Limits the number of nodes explored by the RINS heuristic. Exploringmore nodes can produce better solutions, but it generally takeslonger. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Nodes explored by sub-MIP heuristics", ShortName = "SubMIPNodes", Description = "Limits the number of nodes explored by the RINS heuristic. Exploringmore nodes can produce better solutions, but it generally takeslonger. Note: Only affects mixed integer programming (MIP) models ")]
    public int? SubMIPNodes { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Symmetry

    Controls MIP symmetry detection. A value of -1 corresponds to anautomatic setting. Other options are off (0), conservative (1), oraggressive (2). Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "MIP symmetry detection", ShortName = "Symmetry", Description = "Controls MIP symmetry detection. A value of -1 corresponds to anautomatic setting.  Other options are off (0), conservative (1), oraggressive (2). Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models ")]
    public int? Symmetry { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    Threads

    Controls the number of threads to apply to parallel barrier orparallel MIP. The default value of 0 is an automatic setting.It will generally use all of the cores in the machine, butit may choose to use fewer. While you will generally get the best performance by using allavailable cores in your machine, there are a few exceptions. One isof course when you are sharing a machine with other jobs. In thiscase, you should select a thread count that doesn't oversubscribe themachine. We have also found that certain classes of MIP models benefit fromreducing the thread count, often all the way down to one thread.Starting multiple threads introduces contention for machine resources.For classes of models where the first solution found by the MIP solveris almost always optimal, and that solution isn't found at the root,it is often better to allow a single thread to explore the search treeuncontended. Another situation where reducing the thread count can be helpful iswhen memory is tight. Each thread can consume a significant amount ofmemory.

    Declaration
    [Display(Name = "Number of parallel threads to use", ShortName = "Threads", Description = "Controls the number of threads to apply to parallel barrier orparallel MIP.  The default value of 0 is an automatic setting.It will generally use all of the cores in the machine, butit may choose to use fewer. While you will generally get the best performance by using allavailable cores in your machine, there are a few exceptions.  One isof course when you are sharing a machine with other jobs.  In thiscase, you should select a thread count that doesn't oversubscribe themachine. We have also found that certain classes of MIP models benefit fromreducing the thread count, often all the way down to one thread.Starting multiple threads introduces contention for machine resources.For classes of models where the first solution found by the MIP solveris almost always optimal, and that solution isn't found at the root,it is often better to allow a single thread to explore the search treeuncontended. Another situation where reducing the thread count can be helpful iswhen memory is tight.  Each thread can consume a significant amount ofmemory. ")]
    public int? Threads { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    VarBranch

    Controls the branch variable selection strategy. The default -1setting makes an automatic choice, depending on problemcharacteristics. Available alternatives are Pseudo Reduced CostBranching (0), Pseudo Shadow Price Branching (1), MaximumInfeasibility Branching (2), and Strong Branching (3). Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Branch variable selection strategy", ShortName = "VarBranch", Description = "Controls the branch variable selection strategy. The default -1setting makes an automatic choice, depending on problemcharacteristics.  Available alternatives are Pseudo Reduced CostBranching (0), Pseudo Shadow Price Branching (1), MaximumInfeasibility Branching (2), and Strong Branching (3). Changing the value of this parameter rarely produces a significantbenefit. Note: Only affects mixed integer programming (MIP) models ")]
    public int? VarBranch { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ZeroHalfCuts

    Controls zero-half cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation. Thedefault -1 value chooses automatically. Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Zero-half cut generation", ShortName = "ZeroHalfCuts", Description = "Controls zero-half cut generation. Use 0 to disable these cuts, 1 formoderate cut generation, or 2 for aggressive cut generation.  Thedefault -1 value chooses automatically.  Overridesthe Cuts parameter. Note: Only affects mixed integer programming (MIP) models ")]
    public int? ZeroHalfCuts { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    ZeroObjNodes

    Number of nodes to explore in the zero objective heuristic. Note thatthis heuristic is only applied at the end of the MIP root, and onlywhen no other root heuristic finds a feasible solution. This heuristic is quite expensive, and generally produces poor qualitysolutions. You should generally only use it if other means, includingexploration of the tree with default settings, fail to produce afeasible solution. Note: Only affects mixed integer programming (MIP) models

    Declaration
    [Display(Name = "Zero objective heuristic control", ShortName = "ZeroObjNodes", Description = "Number of nodes to explore in the zero objective heuristic.  Note thatthis heuristic is only applied at the end of the MIP root, and onlywhen no other root heuristic finds a feasible solution. This heuristic is quite expensive, and generally produces poor qualitysolutions.  You should generally only use it if other means, includingexploration of the tree with default settings, fail to produce afeasible solution. Note: Only affects mixed integer programming (MIP) models ")]
    public int? ZeroObjNodes { get; set; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    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