Class Objective
Represents an objective function.
Inheritance
Inherited Members
Namespace: OPTANO.Modeling.Optimization
Assembly: Optimization.dll
Syntax
[Serializable]
public class Objective : IHaveName
Constructors
Objective(Expression, String, ObjectiveSense, Int32, Double, Nullable<Double>, Nullable<Double>)
Initializes a new instance of the Objective class.
Declaration
public Objective(Expression expression, string name = "", ObjectiveSense sense = ObjectiveSense.Minimize, int priorityLevel = 0, double weight = 1, double? relativeTolerance = default(double? ), double? absoluteTolerance = default(double? ))
Parameters
| Type | Name | Description |
|---|---|---|
| Expression | expression | The expression. |
| System.String | name | The name. |
| ObjectiveSense | sense | The sense. |
| System.Int32 | priorityLevel | The priority Level. The higher the level, the earlier this objective will be considered during hierarchical optimization. All objectives with the same level will be combined, using the |
| System.Double | weight | The weight for computing the |
| System.Nullable<System.Double> | relativeTolerance | The relative Tolerance. This tolerance is used during multi-objective optimization when the model becomes infeasible due to |
| System.Nullable<System.Double> | absoluteTolerance | The absolute Tolerance. This tolerance is used during multi-objective optimization when the model becomes infeasible due to |
Properties
AbsoluteTolerance
Gets or sets the absolute tolerance during hierarchical optimization.
Tolerance is used during multi-objective optimization when the model becomes infeasible due to numerical problems in the second (or later) priority stages.
The quality conservation constraint for this objective will be relaxed by AbsoluteTolerance in order to (hopefully) restore feasibility.
Declaration
public double? AbsoluteTolerance { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Double> | Can return NULL. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Requires |
Expression
Gets or sets the Expression of this objective.
Declaration
[DataMember]
public Expression Expression { get; set; }
Property Value
| Type | Description |
|---|---|
| Expression |
IsLinear
Returns true iff the Expression is not null and IsLinear.
Declaration
public bool IsLinear { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Name
Gets the unique name of this objective.
Declaration
[DataMember]
public string Name { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
PriorityLevel
Gets or sets the priority level for multiobjective optimization.
All Objectives with the same PriorityLevel are grouped together and combined, using the specified Weight.
During the solution process, the Objectives are ordered descending by PriorityLevel. In each iteration, the current Objective z (which can be a combination of several Objectives in a priority level) is optimized. Then, a Constraint is added to the Model which ensures that z >= z* for all further optimizations of Objectives in lower PriorityLevels.
Declaration
public int PriorityLevel { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
RelativeTolerance
Gets or sets the relative tolerance during hierarchical optimization.
Tolerance is used during multi-objective optimization when the model becomes infeasible due to numerical problems in the second (or later) priority stages.
The quality conservation constraint for this objective will be relaxed by RelativeTolerance * |optValue| in order to (hopefully) restore feasibility.
Declaration
public double? RelativeTolerance { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Double> | Can return NULL. |
Sense
Gets or sets the sense of this objective.
Declaration
[DataMember]
public ObjectiveSense Sense { get; set; }
Property Value
| Type | Description |
|---|---|
| ObjectiveSense |
Weight
Gets or sets the weight for this objective for multiobjective optimization.
During a multiobjective optimization, all Objectives in the same PriorityLevel are summed up with respect to their Weight.
I.e. z' = (w1 * z1 + w2 * z2 + ... wk * zk).
Declaration
public double Weight { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |