Show / Hide Table of Contents

    Class ModelScope

    Wraps configuration settings that are required during the execution of the OPTANO.Modeling library so that internal classes have access to the same model scope.

    Inheritance
    System.Object
    ModelScope
    Inherited Members
    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
    Assembly: Optimization.dll
    Syntax
    public sealed class ModelScope : IDisposable

    Constructors

    ModelScope(Configuration)

    Initializes a new instance of the ModelScope class.

    Declaration
    public ModelScope(Configuration settings = null)
    Parameters
    Type Name Description
    Configuration settings

    The setting to create the scope from. E.g. . Note: is null, if the appropiate config section in app.config / web.config is not set! If parameter and are null, default paramters are used.

    Exceptions
    Type Condition
    System.AccessViolationException

    Exception is thrown if another ModelScope exists at the same time.

    Properties

    AbsOperatorReplacement

    Gets the Abs operator replacement. The User can define an override for the AbsOperatorReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public AbsOperatorReplacement? AbsOperatorReplacement { get; }
    Property Value
    Type Description
    System.Nullable<AbsOperatorReplacement>

    BlockedShortNames

    Gets all currently blocked short names. See also AddInvalidShortName(String, Boolean) and RemoveInvalidShortName(String, Boolean).

    Declaration
    public IEnumerable<string> BlockedShortNames { get; }
    Property Value
    Type Description
    System.Collections.Generic.IEnumerable<System.String>

    CeilOperatorReplacement

    Gets the Ceil operator replacement. The User can define an override for the CeilOperatorReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public CeilOperatorReplacement? CeilOperatorReplacement { get; }
    Property Value
    Type Description
    System.Nullable<CeilOperatorReplacement>

    ComputeRemovedVariables

    Gets or sets a value indicating whether the set of removed variables should be computed by solvers that support this operation. Prior to the optimization of the model, an explicit presolve is executed in order to determine the set of variables that are removed by the solver during the preprocessing. Refer to the Model Feature section that is described in the OPTANO.Modeling User Documentation for further information.

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

    CopySolutionToModel

    Gets or sets a value indicating whether the variable values of a feasible Solution should be set automatically in the respective Variables of a Model

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

    Current

    Gets the current ModelScope.

    Declaration
    public static ModelScope Current { get; }
    Property Value
    Type Description
    ModelScope

    DefaultIndexValidationStyle

    Gets the index validation style that is used as default for new VariableCollections.

    Declaration
    public IndexValidationStyle DefaultIndexValidationStyle { get; }
    Property Value
    Type Description
    IndexValidationStyle

    DeterministicModelGeneration

    Gets or sets a value indicating whether to generate the optimization model in a deterministic fashion.

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

    EPSILON

    Gets the tolerance for float/double comparisons. Example: Instead of a == b, use System.Math.Abs(System.Double)(a - b) < EPSILON. Default value: 1e-6.

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

    FloorOperatorReplacement

    Gets the Floor operator replacement. The User can define an override for the FloorOperatorReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public FloorOperatorReplacement? FloorOperatorReplacement { get; }
    Property Value
    Type Description
    System.Nullable<FloorOperatorReplacement>

    ImplicationConstraintReplacement

    Gets the constraint replacement. The User can define an override for the ImplicationConstraintReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public ImplicationConstraintReplacement? ImplicationConstraintReplacement { get; }
    Property Value
    Type Description
    System.Nullable<ImplicationConstraintReplacement>

    MaximumNameLength

    Gets the maximum length for generated variable and constraint names. null: Unlimited.

    Declaration
    public int? MaximumNameLength { get; }
    Property Value
    Type Description
    System.Nullable<System.Int32>

    MaxOperatorReplacement

    Gets the Max operator replacement. The User can define an override for the MaxOperatorReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public MaxOperatorReplacement? MaxOperatorReplacement { get; }
    Property Value
    Type Description
    System.Nullable<MaxOperatorReplacement>

    MinOperatorReplacement

    Gets the Min operator replacement. The User can define an override for the MinOperatorReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public MinOperatorReplacement? MinOperatorReplacement { get; }
    Property Value
    Type Description
    System.Nullable<MinOperatorReplacement>

    ModelBehavior

    Gets or sets the behavior of the model. Available options are Auto and Manual In automatic mode, the model takes care of adding variables when constraints and objectives get added. In manual mode you need to take care of this yourself.

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

    ModelBuildTime

    Gets the model build time. The model is fully transformed and passed to the solver. Value is set by SolverBase. I.e. the duration of the call to BuildSolverModelAdapterSpecific(Int32). Note that this parameter will also be set/updated during Rebuilds, where no actual work might be performed.

    Declaration
    public TimeSpan ModelBuildTime { get; }
    Property Value
    Type Description
    System.TimeSpan

    ModelMemoryDelta

    Gets the memory delta in bytes that is allocated during the building of the model in the solver specific API. The model is fully transformed and passed to the solver. Value is set by SolverBase. I.e. The increase of System.GC.GetTotalMemory(System.Boolean)(true) during the call of BuildSolverModelAdapterSpecific(Int32). Note that this parameter will also be set/updated during Rebuilds, where no actual work might be performed.

    Declaration
    public long ModelMemoryDelta { get; }
    Property Value
    Type Description
    System.Int64

    NameHandling

    Gets a value indicating whether the full names should be used for Variables and Constraints. A full name consists of the evalueation of the VariableCollection.DebugNameGenerator for a given index, followed by a unique base64 index for each Variable.

    Declaration
    public NameHandlingStyle NameHandling { get; }
    Property Value
    Type Description
    NameHandlingStyle

    NativeMultiObjectiveSupport

    Gets the method to override the multi objective support with. The User can define an override for the OrConstraintReplacement. If the value is less demanding (e.g. Unsupported for a SolverBase that offers a native support), the specified method is used in the Solve(Model, Dictionary<Variable, Double>) call.

    Declaration
    public NativeMultiObjectiveSupport? NativeMultiObjectiveSupport { get; }
    Property Value
    Type Description
    System.Nullable<NativeMultiObjectiveSupport>

    NormalizingBehavior

    Gets or sets the behavior of the normalizing submodule. Available options are Auto and Manual In automatic mode, the model takes care of normalizing all constraints and objects. In manual mode you need to take care of this yourself.

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

    NotConstraintReplacement

    Gets the Not constraint replacement. The User can define an override for the NotConstraintReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public NotConstraintReplacement? NotConstraintReplacement { get; }
    Property Value
    Type Description
    System.Nullable<NotConstraintReplacement>

    OrConstraintReplacement

    Gets the Or constraint replacement. The User can define an override for the OrConstraintReplacement. If the value differs from DoNotReplace, the specified method is used in the ModelTransformation.

    Declaration
    public OrConstraintReplacement? OrConstraintReplacement { get; }
    Property Value
    Type Description
    System.Nullable<OrConstraintReplacement>

    RestoreUserModelAfterSolve

    Gets a value indicating whether the user model after solve. This means that all steps that were performed in the ModelTransformation process are reversed. E.g., all helper variables and constraints will be remvoed from the model.

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

    Sos1HandlingOverride

    Gets the S1 handling method. If the User specifies a SOSHandling other than Native, that method will be used during the transformation that is performed by ModelTransformation.

    Declaration
    public SOSHandling? Sos1HandlingOverride { get; }
    Property Value
    Type Description
    System.Nullable<SOSHandling>

    Sos2HandlingOverride

    Gets the S2 handling method. If the User specifies a SOSHandling other than Native, that method will be used during the transformation that is performed by ModelTransformation.

    Declaration
    public SOSHandling? Sos2HandlingOverride { get; }
    Property Value
    Type Description
    System.Nullable<SOSHandling>

    Sos3HandlingOverride

    Gets the S3 handling method. If the User specifies a SOSHandling other than Native, that method will be used during the transformation that is performed by ModelTransformation.

    Declaration
    public SOSHandling? Sos3HandlingOverride { get; }
    Property Value
    Type Description
    System.Nullable<SOSHandling>

    Methods

    AddInvalidShortName(String, Boolean)

    Optionally: Specify additional short names that should not be generated as base64 indices. See also BlockedShortNames.

    Declaration
    public void AddInvalidShortName(string name, bool exactCasing = false)
    Parameters
    Type Name Description
    System.String name

    The name to block.

    System.Boolean exactCasing

    true:Block only the given casing. false:: Block all casings. (E.g. "foo", "foO", "fOo", ... for input "foo". Default: false

    Dispose()

    Releases the object from the Current property.

    Declaration
    public void Dispose()
    Implements
    System.IDisposable.Dispose()

    RemoveInvalidShortName(String, Boolean)

    Optionally: (Re-)allow short names that were in the list of blocked base 64 indices. See also BlockedShortNames.

    Declaration
    public void RemoveInvalidShortName(string name, bool exactCasing = false)
    Parameters
    Type Name Description
    System.String name

    The name to unblock.

    System.Boolean exactCasing

    true:Unblock only the given casing. false:: Unblock all casings. (E.g. "foo", "foO", "fOo", ... for input "foo". Default: false

    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