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.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.Gurobi752
    Assembly: Optimization.Solver.Gurobi752.dll
    Syntax
    public class GurobiSolver : GenericSolverBase<GurobiSolverConfiguration>, ISolver, ICanSolve<Model, Solution>, IAbortable, ICanManipulateANativeSolver, IDisposable, ICanHandleUserSolution, IStatus<StatusInfo>

    Constructors

    GurobiSolver(GurobiSolverConfiguration)

    Initializes a new instance of the GurobiSolver class. This solver utilizes the native multiobjective optimization of Gurobi 7.52. 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
    [Obsolete("Consider using batch method AddConstraints.", false)]
    protected void AddConstraint(Constraint constraint)
    Parameters
    Type Name Description
    Constraint constraint

    The constraint.

    AddConstraints(IEnumerable<Constraint>)

    Declaration
    protected void AddConstraints(IEnumerable<Constraint> constraintsEnumerable)
    Parameters
    Type Name Description
    System.Collections.Generic.IEnumerable<Constraint> constraintsEnumerable

    AddObjective(Objective)

    The add single objective method is not supported for GurobiSolver 7.0

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

    The objective.

    Overrides
    SolverBase.AddObjective(Objective)
    Exceptions
    Type Condition
    System.ArgumentNullException

    objective mustn't be null.

    System.NotSupportedException

    This operation is not supported.

    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)

    CanExportFile(FileInfo, ExportTime, Boolean)

    True, if ModelOutputFile is not null and has any extension.

    Declaration
    protected override bool CanExportFile(FileInfo outputFile, ExportTime exportTime, bool printHints = false)
    Parameters
    Type Name Description
    System.IO.FileInfo outputFile

    The file to check.

    ExportTime exportTime

    Export before or after solve.

    System.Boolean printHints

    Indicates whether to print hints.

    Returns
    Type Description
    System.Boolean

    The System.Boolean.

    Overrides
    SolverBase.CanExportFile(FileInfo, ExportTime, Boolean)

    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 outputFile)
    Parameters
    Type Name Description
    System.IO.FileInfo outputFile
    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

    Not used for native multi objective solver.

    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

    This parameter is ignored for solvers that have a native support for multiple objectives.

    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

    Explicit Interface Implementations

    ICanHandleUserSolution.ClearPendingUserSolutions()

    Declaration
    void ICanHandleUserSolution.ClearPendingUserSolutions()
    Implements
    ICanHandleUserSolution.ClearPendingUserSolutions()

    ICanHandleUserSolution.EnqueueUserSolution(Dictionary<String, Double>)

    Declaration
    void ICanHandleUserSolution.EnqueueUserSolution(Dictionary<string, double> userSolution)
    Parameters
    Type Name Description
    System.Collections.Generic.Dictionary<System.String, System.Double> userSolution
    Implements
    ICanHandleUserSolution.EnqueueUserSolution(Dictionary<String, Double>)

    ICanHandleUserSolution.PendingUserSolutionCount

    Declaration
    int ICanHandleUserSolution.PendingUserSolutionCount { get; }
    Returns
    Type Description
    System.Int32
    Implements
    ICanHandleUserSolution.PendingUserSolutionCount

    ICanHandleUserSolution.ReplaceAllPendingSolutions(Dictionary<String, Double>)

    Declaration
    void ICanHandleUserSolution.ReplaceAllPendingSolutions(Dictionary<string, double> userSolution)
    Parameters
    Type Name Description
    System.Collections.Generic.Dictionary<System.String, System.Double> userSolution
    Implements
    ICanHandleUserSolution.ReplaceAllPendingSolutions(Dictionary<String, Double>)

    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