Show / Hide Table of Contents

    Class GurobiSolver

    A wrapper class to access Gurobi as a solver

    Inheritance
    System.Object
    SolverBase
    GenericSolverBase<GurobiSolverConfiguration>
    GurobiSolver
    Inherited Members
    GenericSolverBase<GurobiSolverConfiguration>.Configuration
    SolverBase._busyLock
    SolverBase.CurrentModel
    SolverBase.TriviallyFeasibleConstraintHandling
    SolverBase.Transformation
    SolverBase._model
    SolverBase.IsMultiHierachicalModel
    SolverBase.SetMultiHierarchicalInterruptionCallback(SolverBase.InterruptMultiHierarchicalOptimization)
    SolverBase.Solve(Model, Dictionary<Variable, Double>)
    SolverBase.CachedMergedObjectives
    SolverBase.GetMergedObjectiveForPriorityLevel(Int32, Boolean)
    SolverBase.GetRelevantObjectivesForPrioLevel(Int32)
    SolverBase.RestoreModel(Solution)
    SolverBase.TransformModel()
    SolverBase.CanExportFile(FileInfo, ExportTime, Boolean)
    SolverBase.SetBranchingDirectionAdapterSpecific()
    SolverBase.SetTimelimitAndGapForCurrentStage(Int32, TimeSpan, Double)
    SolverBase.Dispose()
    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.Gurobi605
    Assembly: Optimization.Solver.Gurobi605.dll
    Syntax
    public class GurobiSolver : GenericSolverBase<GurobiSolverConfiguration>, ISolver, ICanSolve<Model, Solution>, IAbortable, ICanManipulateANativeSolver, IDisposable, IStatus<StatusInfo>

    Constructors

    GurobiSolver(GurobiSolverConfiguration)

    Initializes a new instance of the GurobiSolver class. Tries to acquire a Gurobi License. If this fails, a Gurobi.GRBException is thrown. In order to use the GurobiSolver in your project, make sure to reference the GurobiXX.NET.dll from your gurobi installation folder ('..\gurobiXX\win64\bin\GurobiXX.NET.dll')

    Declaration
    public GurobiSolver(GurobiSolverConfiguration configuration = null)
    Parameters
    Type Name Description
    GurobiSolverConfiguration configuration

    The configuration.

    Methods

    Abort()

    If this solver instance , abort the run as soon as possible, or do nothing if this solver instance is not busy.

    Declaration
    public override void Abort()
    Overrides
    SolverBase.Abort()
    Exceptions
    Type Condition
    System.NotSupportedException

    If this solver instance does not support aborting.

    AddConstraint(Constraint)

    The add constraint.

    Declaration
    protected void AddConstraint(Constraint constraint)
    Parameters
    Type Name Description
    Constraint constraint

    The constraint.

    Exceptions
    Type Condition
    System.ArgumentException

    Thrown if constraint contains a quadratic expression.

    AddObjective(Objective)

    Replaces the current objective with objective.

    Declaration
    protected override void AddObjective(Objective objective)
    Parameters
    Type Name Description
    Objective objective

    The objective.

    Overrides
    SolverBase.AddObjective(Objective)

    BuildSolverModelAdapterSpecific(Int32)

    Solves the specified CurrentModel. If specified in CopySolutionToModel, the results of a solved Model will automatically be written in the OPTANO.Modeling's Variables.

    Declaration
    protected override void BuildSolverModelAdapterSpecific(int prioLevel = 0)
    Parameters
    Type Name Description
    System.Int32 prioLevel

    The priority level to solve for.

    Overrides
    SolverBase.BuildSolverModelAdapterSpecific(Int32)

    ChangeConstraintLowerBound(String, Double)

    Changes the constraint's lower bound.

    Declaration
    public void ChangeConstraintLowerBound(string name, double lowerbound)
    Parameters
    Type Name Description
    System.String name

    The name of the Constraint that should be altered.

    System.Double lowerbound

    The lowerbound.

    ChangeConstraintUpperBound(String, Double)

    Changes the constraint's upper bound.

    Declaration
    public void ChangeConstraintUpperBound(string name, double upperbound)
    Parameters
    Type Name Description
    System.String name

    The name of the Constraint that should be altered.

    System.Double upperbound

    The upperbound.

    ClearLastModel()

    Deletes the internal datastructures of this SolverBase instance.

    Declaration
    public override void ClearLastModel()
    Overrides
    SolverBase.ClearLastModel()
    Exceptions
    Type Condition
    System.InvalidOperationException

    If this SolverBase instance .

    Dispose(Boolean)

    Disposes this instance of the GurobiSolver. Frees the Gurobi License.

    Declaration
    protected void Dispose(bool freeManagedObjectsAlso)
    Parameters
    Type Name Description
    System.Boolean freeManagedObjectsAlso

    True, if managed objects such as the Gurobi.GRBEnv should be disposed as well.

    DisposeCustom()

    Disposes this instance of . Frees the Gurobi License

    Declaration
    protected override void DisposeCustom()
    Overrides
    SolverBase.DisposeCustom()

    ExportFileSolverSpecific(FileInfo)

    Export the model solver specific.

    Declaration
    protected override void ExportFileSolverSpecific(FileInfo filteredFileToWrite)
    Parameters
    Type Name Description
    System.IO.FileInfo filteredFileToWrite
    Overrides
    SolverBase.ExportFileSolverSpecific(FileInfo)

    Finalize()

    Finalizes an instance of the GurobiSolver class. Frees the Gurobi License

    Declaration
    protected void Finalize()

    GetSubOptimalSolution(Int32)

    The get sub optimal solution.

    Declaration
    public Dictionary<string, double> GetSubOptimalSolution(int n)
    Parameters
    Type Name Description
    System.Int32 n

    The index of the solution that is queried.

    Returns
    Type Description
    System.Collections.Generic.Dictionary<System.String, System.Double>

    The solution values, identified by Name.

    Exceptions
    Type Condition
    System.ArgumentException

    Thrown, if there are less than n suboptimal solutions.

    RebuildSolverModelAdapterSpecific(Int32)

    Empty rebuild method, as Gurobi Solver can handle resolves.

    Declaration
    protected override void RebuildSolverModelAdapterSpecific(int prioLevel = 0)
    Parameters
    Type Name Description
    System.Int32 prioLevel
    Overrides
    SolverBase.RebuildSolverModelAdapterSpecific(Int32)

    RemoveConstraint(String)

    Removes the Constraint with Name == name.

    Declaration
    protected override void RemoveConstraint(string name)
    Parameters
    Type Name Description
    System.String name

    The name of the Constraint to remove.

    Overrides
    SolverBase.RemoveConstraint(String)

    ResolveAdapterSpecific(Int32, IDictionary<Variable, Double>)

    Performs a Gurobi specific resolve for the CurrentModel. Make sure that this method is only called, in case of an actual resolve. Otherwise, the internal Gurobi.GRBModel will throw an Gurobi.GRBException.

    Declaration
    protected override Solution ResolveAdapterSpecific(int prioLevel = 0, IDictionary<Variable, double> variableValues = null)
    Parameters
    Type Name Description
    System.Int32 prioLevel

    The priority level to solve for.

    System.Collections.Generic.IDictionary<Variable, System.Double> variableValues

    The start values.

    Returns
    Type Description
    Solution

    The Solution.

    Overrides
    SolverBase.ResolveAdapterSpecific(Int32, IDictionary<Variable, Double>)

    SetBranchingPriorityAdapterSpecific()

    Set the BranchingPriority for all variables. Expects Gurobi.GRBModel to be up to date. Updates the Gurobi.GRBModel afterwards.

    Declaration
    protected override void SetBranchingPriorityAdapterSpecific()
    Overrides
    SolverBase.SetBranchingPriorityAdapterSpecific()

    SetConfigurationAdapterSpecific()

    Sets the solver configuration. This includes all values specified in GurobiSolverConfiguration and the following values: The values for MIPGap, MIPGapAbs, and TimeLimit are taken from the base SolverConfiguration and set every time when this method is executed. Before, the values only were set when the user specifically specified any value other than 0.

    Declaration
    protected override void SetConfigurationAdapterSpecific()
    Overrides
    SolverBase.SetConfigurationAdapterSpecific()

    SolveAdapterSpecific(Int32, IDictionary<Variable, Double>)

    Solves the specified CurrentModel. If specified in CopySolutionToModel, the results of a solved Model will automatically be written in the OPTANO.Modeling's Variables.

    Declaration
    protected override Solution SolveAdapterSpecific(int prioLevel = 0, IDictionary<Variable, double> variableValues = null)
    Parameters
    Type Name Description
    System.Int32 prioLevel

    The priority level to solve for.

    System.Collections.Generic.IDictionary<Variable, System.Double> variableValues

    The starting values to pass as initial solution.

    Returns
    Type Description
    Solution

    The Solution. Before accessing the VariableValues, make sure that the Model is Feasible and the Solution is Feasible or Optimal.

    Overrides
    SolverBase.SolveAdapterSpecific(Int32, IDictionary<Variable, Double>)

    Events

    Status

    The status callback during the solution process.

    Declaration
    public event Action<StatusInfo> Status
    Event Type
    Type Description
    System.Action<StatusInfo>
    Implements
    IStatus<T>.Status

    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