com.opttek.optquest
Class COptQuestMultipleObjective

java.lang.Object
  extended by com.opttek.optquest.COptQuestObjective
      extended by com.opttek.optquest.COptQuestMultipleObjective

public class COptQuestMultipleObjective
extends COptQuestObjective

The COptQuestMultipleObjective allows the user to combine multiple objectives and treat them as a single objective for the optimization. The multiple objective is defined by adding COptQuestObjective objects to the COptQuestMultipleObjective and assigning a coefficient to each objective. The COptQuestMultipleObjective is evaluated as minimizing or maximizing the expression coeff1*objective1 + coeff2*objective2 etc. Only the COptQuestMultipleObjective object is added to the COptQuestOptimization class.


Constructor Summary
COptQuestMultipleObjective()
          Default constructor
COptQuestMultipleObjective(java.lang.String name)
          Constructor that assigns a name to the objective
 
Method Summary
 void AddObjective(COptQuestObjective obj)
          Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient of 1 to the sub-objective.
 void AddObjective(COptQuestObjective obj, double coefficient)
          Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient to the sub-objective.
 void AddObjective(COptQuestObjective obj, double coefficient, double goal)
          Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient to the objective and a value representing the goal of the objective.
 void AddObjective(COptQuestObjective obj, double coefficient, double minObj, double maxObj)
          Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient to the objective and values representing the range of the objective.
 void ChangeObjectiveCoefficient(COptQuestObjective obj, double coefficient)
          Assigns a new coefficient to the input objective.
 void ChangeObjectiveGoal(COptQuestObjective obj, double minObj, double maxObj)
          Assigns a new objective range for a particular objective.
 double GetCoefficientAt(int index)
          Returns the coefficient at the specified index
 COptQuestObjective GetObjectiveAt(int index)
          Returns the objective at the specified index.
 int GetObjectiveCount()
          Returns the number of objectives that have been added to the multi objective.
 java.lang.String GetOptimizationName()
          Returns the optimization name.
 COptQuestRequirement GetRequirementAt(int index)
          Returns the requirement at the specified index.
 void SetDominance()
          Sets the multi-objective search to use a measure of dominance search to find the points on the frontier.
 void SetGoal()
          Sets the multi-objective search to use a measure of distance from the goal provided to find the best solution given that goal.
 void SetGoalRange()
          Sets the multi-objective search to use a measure of distance from the goal provided to find the best solution given that goal and the range of objective values.
 void SetPareto()
          Sets the multi-objective search to use a measure of pareto optimality search to find the points on the frontier.
 void SetPatternFrontier()
          Sets the multi-objective search to use a pattern frontier search to find the points on the frontier.
 void SetWeighted()
          Sets the multi-objective search to use a weighted measure of the objectives search to find the best solution given those weights.
 
Methods inherited from class com.opttek.optquest.COptQuestObjective
GetBestFeasible, GetBestValue, GetCurrentFeasible, GetCurrentFeasible, GetCurrentValue, GetCurrentValue, GetName, GetNthBestFeasible, GetNthBestValue, GetReplicationConfidenceLevel, GetReplicationConfidencePercent, GetReplicationConfidenceType, IsLinear, IsMaximize, IsMinimize, SetCurrentValue, SetCurrentValue, SetMaximize, SetMinimize, SetName, SetReplicationConfidence
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

COptQuestMultipleObjective

public COptQuestMultipleObjective()
Default constructor


COptQuestMultipleObjective

public COptQuestMultipleObjective(java.lang.String name)
Constructor that assigns a name to the objective

Parameters:
name -
Method Detail

AddObjective

public void AddObjective(COptQuestObjective obj)
Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient of 1 to the sub-objective.

Parameters:
coefficient -

AddObjective

public void AddObjective(COptQuestObjective obj,
                         double coefficient)
Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient to the sub-objective.

Parameters:
obj -
coefficient -

AddObjective

public void AddObjective(COptQuestObjective obj,
                         double coefficient,
                         double goal)
Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient to the objective and a value representing the goal of the objective.

Parameters:
obj -
coefficient -
goal -

AddObjective

public void AddObjective(COptQuestObjective obj,
                         double coefficient,
                         double minObj,
                         double maxObj)
Adds the input sub-objective to the COptQuestMultipleObjective and assigns a coefficient to the objective and values representing the range of the objective.

Parameters:
obj -
coefficient -
minObj -
maxObj -

SetPatternFrontier

public void SetPatternFrontier()
Sets the multi-objective search to use a pattern frontier search to find the points on the frontier.


SetDominance

public void SetDominance()
Sets the multi-objective search to use a measure of dominance search to find the points on the frontier.


SetPareto

public void SetPareto()
Sets the multi-objective search to use a measure of pareto optimality search to find the points on the frontier.


SetWeighted

public void SetWeighted()
Sets the multi-objective search to use a weighted measure of the objectives search to find the best solution given those weights.


SetGoal

public void SetGoal()
Sets the multi-objective search to use a measure of distance from the goal provided to find the best solution given that goal.


SetGoalRange

public void SetGoalRange()
Sets the multi-objective search to use a measure of distance from the goal provided to find the best solution given that goal and the range of objective values.


ChangeObjectiveCoefficient

public void ChangeObjectiveCoefficient(COptQuestObjective obj,
                                       double coefficient)
                                throws COptQuestException
Assigns a new coefficient to the input objective. The objective value for all evaluated solutions is rechecked and a different solution may become the new best solution. You should call COptQuestOptimization.OptimizeAdditional() after changing the coefficients.

Parameters:
obj -
coefficient -
Throws:
COptQuestException

ChangeObjectiveGoal

public void ChangeObjectiveGoal(COptQuestObjective obj,
                                double minObj,
                                double maxObj)
Assigns a new objective range for a particular objective.

Parameters:
obj -
minObj -
maxObj -

GetObjectiveCount

public int GetObjectiveCount()
Returns the number of objectives that have been added to the multi objective.

Returns:
the number of sub-objectives addes to the multiple objective

GetObjectiveAt

public COptQuestObjective GetObjectiveAt(int index)
                                  throws COptQuestException
Returns the objective at the specified index.

Parameters:
index -
Returns:
the objective at the specified index
Throws:
COptQuestException

GetRequirementAt

public COptQuestRequirement GetRequirementAt(int index)
                                      throws COptQuestException
Returns the requirement at the specified index.

Parameters:
index -
Returns:
the requirement at the specified index
Throws:
COptQuestException

GetCoefficientAt

public double GetCoefficientAt(int index)
                        throws COptQuestException
Returns the coefficient at the specified index

Parameters:
index -
Returns:
the coefficient at the specified index
Throws:
COptQuestException

GetOptimizationName

public java.lang.String GetOptimizationName()
Returns the optimization name.

Returns: