# Namespace OPTANO.Modeling.Optimization

### Classes

#### ConflictingSet

Represents the irreducible infeasible set (IIS).

#### ConstantExpression

A ConstantExpression only holds a double value but can be used as part of an expression

#### Constraint

Represents a constraint in a mathematical model formulation.

#### Expression

An expression essentially is a tree which stores operators on subtrees which can either be Expressions or Terms themselves

#### ExpressionNormalizer

This is a helper class to normalize Expressions.

#### ExtensionMethods

Some ExtensionsMethods that extend the Model and its fields.

#### GenericSolverBase<T>

Represents a SolverBase instance for mathematical programming problems.

#### GenericVariableCollectionBase<TGenericCollection>

The base class for all generic VariableCollection classes

#### GenericVariableCollectionIndex<T0>

All index elements of a GenericVariableCollectionBase<TGenericCollection> combined in a single poco.

#### GenericVariableCollectionIndex<T0, T1>

#### GenericVariableCollectionIndex<T0, T1, T2>

#### GenericVariableCollectionIndex<T0, T1, T2, T3>

#### GenericVariableCollectionIndex<T0, T1, T2, T3, T4>

#### GenericVariableCollectionIndex<T0, T1, T2, T3, T4, T5>

#### GenericVariableCollectionIndex<T0, T1, T2, T3, T4, T5, T6>

#### GenericVariableCollectionIndex<T0, T1, T2, T3, T4, T5, T6, T7>

#### GenericVariableCollectionIndexBase

All index elements of a GenericVariableCollectionBase<TGenericCollection> combined in a single poco.

#### Model

Represents a mathematical model

#### 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.

#### ModelTransformation

This class offers functionality to transform a model that contains special OperatorExpressions or OperatorConstraints as, e.g.,

Min, Max, Ceil, Floor, Abs, Not, Or, Implicationinto a form where these expressions vanish in the sense that they are modelled through new Variables and Constraints. This transformation may re-establish linearity of the model.

#### Objective

Represents an objective function.

#### PriorityLevelMipGapDefinition

#### PriorityLevelQualityDegradationDefinition

Controls the maximum degradation of objectives during multi-hierarchical optimization. Works just as http://www.gurobi.com/documentation/8.1/refman/objnreltol.html.

#### PriorityLevelTimeLimitDefinition

This class stores priority level specific time limts for solving multi-hierarchical optimization models.

#### Solution

Represents a solution of a Model.

#### SolverBase

The solver base class. This class provides functionality for the ModelTransformation that needs to be supported by all solver adapters.

#### SolverConfiguration

Defines common parameters for ISolver instances.

#### SumExpressionBuilder

This is a helper class to support efficiently building Expressions from a collection of Terms

#### Term

A term represents a variable and a coefficient which belongs to this variable (e.g. `2*x`

).
Note that Terms are immutable.

#### Variable

Represents a variable in an OPTANO.Modeling.Optimization.Interfaces.IModel.

#### VariableCollection

This is essentially a helper class that allows you to model your Variables more intuitively.
It groups Variables with the same meaning.
In a mathematical model a VariableCollection is represented by a single symbol (like `x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

BranchingPriorityGenerator

#### VariableCollection<T>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

It groups variable with the same meaning.
In a mathematical model a VariableCollection is represented by a single symbol (like `x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

It groups variable with the same meaning.
In a mathematical model a VariableCollection is represented by a single symbol (like `x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2, T3>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

It groups variable with the same meaning.
In a mathematical model a VariableCollection is represented by a single symbol (like `x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2, T3, T4>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

`x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2, T3, T4, T5>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

`x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2, T3, T4, T5, T6>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

`x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2, T3, T4, T5, T6, T7>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

`x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

#### VariableCollection<T, T2, T3, T4, T5, T6, T7, T8>

This is a `strongly typed`

helper class that allows you to model your Variables more intuitively

`x`

); a variable by a symbol with indices (like `x_{i,j}`

).
Some (optional) generators are used to calculate parameters for each of the VariableCollection's variable:

DebugNameGenerator

LowerBoundGenerator

UpperBoundGenerator

VariableTypeGenerator

BranchingPriorityGenerator

### Delegates

#### SolverBase.InterruptMultiHierarchicalOptimization

Defines a delegate for a callback with which the user can specify whether a multi hierarchical optimization should be interrupted.

#### VariableCollection.BoundGenerator

A delegate which takes an array of objects (making up the index) and returns a bound to be used for a variable

#### VariableCollection.BranchingDirectionGenerator

A delegate which takes an array of objects (making up the index) and returns the branching direction to be used for a variable.

#### VariableCollection.BranchingPriorityGenerator

A delegate which takes an array of objects (making up the index) and returns the branching priority to be used for a variable.
`Lower`

numbers indicate `higher`

Priority.

#### VariableCollection.DebugNameGenerator

A delegate which takes an array of objects (making up the index) and returns a string which holds a unique id for this index.
The System.String will only be evaluated and stored if NameHandling is set to `true`

. Otherwise, a unique `base64`

index is generated for every Variable in order to save memory.

#### VariableCollection.VariableTypeGeneratorDelegate

A delegate which takes an array of objects (making up the index) and returns the Type to be used for a variable.