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 |