Skip to main content

ModelCenter Custom Optimization Algorithm SDK 2026 R1

MOUC1 Class

Last update: 19.06.2026

Namespace: Phoenix.Optimization.AlgorithmTests.Evaluators

Overview

Implementation of Un-constrained Multi-objective Optimization problem 6 from CEC'09.

Inheritance

MOUC1

Declaration

class MOUC1

Description

Implementation of Un-constrained Multi-objective Optimization problem 6 from CEC'09.

Source: http://www.ntu.edu.sg/home/EPNSugan/

Number of variables: 30 variables. Definition: f(x) = Search domain: 0<= x1 <=1; -1<= xi <=1, i=2 to 30;

Public Member Functions

Type Name Description
override void addDesignVariables () Adds design variables.
override void addObjectives () Adds objectives.
override ModelEvaluation EvaluateModel (object[] designVariables) Evaluates function.
override double getIGD (List< double[]> bestDesignObjectives, string filePath) Calculates and returns the IGD value [Implemented only by Multi Objective Evaluators]
override bool IsDesignAcceptable (object[] design, AreDesignsEqual areDesignsEqual) Determines whether specified design is a local or global optima.
MOUC1 () Default constructor, uses the default goal of minimize
MOUC1 (Goal goal) Constructor to use custom goal
ModelEvaluation EvaluateModel (object[] designVariables) Evaluates the model at the given design point.
bool IsDesignAcceptable (object[] design, AreDesignsEqual areDesignsEqual) Determines whether design is an acceptable design.
void SetStartPoint (object[] startValues) Sets the starting design for the evaluator.

Public Member Functions inherited from ModelEvaluator

Type Name Description
void addConstraint (string name, double lowerBound, double upperBound) Method used to add a constraint
virtual void addConstraints () Method called to specifiy the constraints for the evaluator (by default, not constraints are specified)
void addDesignVariable (string name, object startValue) Method used to add design variable
void addDesignVariable (string name, object startValue, DataTable selectedAlphabet) Method used to add design variable
void addDesignVariable (string name, object startValue, double lowerBound, double upperBound) Method used to add design variable
void addDesignVariable (string name, object startValue, double lowerBound, double upperBound, DataTable selectedAlphabet) Method used to add a design variable
abstract void addDesignVariables () Method called to added design variables
void addObjective (string name, double solveForValue) Method used to add an objective (assumes solve for objective)
void addObjective (string name, double solveForValue, double weight) Method used to add an objective (assumes solve for objective)
void addObjective (string name, Goal goal) Method used to add an objective
void addObjective (string name, Goal goal, double weight, double solveForValue) Method used to add an objective
abstract void addObjectives () Method called to specifiy the objectives for the evaluator
void Dispose () Called to dispose the object.
abstract ModelEvaluation EvaluateModel (object[] designVariables) Evaluates the model at the given design point
virtual double getIGD (List< double[]> bestDesignObjectives, string filePath) Calculates the IGD value for multi-objective problem [The IGD formula is slightly modified to get the nearest possible value to actual IGD] [The actual formula accounts for equal no of optimal & obtained set of objectives, while, we calculate based on the number of objectives obtained]
abstract bool IsDesignAcceptable (object[] design, AreDesignsEqual areDesignsEqual) Determines whether design is an acceptable design.
void SetStartPoint (object[] startValues) Sets the starting design for the evaluator

Properties

Type Name Description
override object[,] GlobalBestDesigns [get] List of the globally best designs for the evaluator.
override bool HasFailedRuns [get] Evaluator does not have failed runs.
override bool HasNonSmoothResponses [get] Evaluator has smooth responses.
override string Name [get] Name of the evaluator.
override bool UsesConstraints [get] Evaluator does not use constraints.
override bool UsesDiscreteVariables [get] Evaluator does not use multiple discrete variables.
override bool UsesMinMax [get] Evaluator does uses minimize/maximize objectives.
override bool UsesMultipleObjectives [get] Evaluator does not use multiple objectives.
override bool UsesSolveFor [get] Evaluator does not use the solve for objective.

Properties inherited from ModelEvaluator

Type Name Description
List< OptConstraint > Constraints [get] Method to get the list of constraints
int DesignVariableCount [get] Number of design variables specificed by the evaluator
List< DesignVariable > DesignVariables [get] Method to get the list of design variables
abstract object[,] GlobalBestDesigns [get] The global best design for the evaluator (a.k.a. "The right answers")
abstract bool HasFailedRuns [get] Does the evalutor have failed runs?
abstract bool HasNonSmoothResponses [get] Does the evaluator have non-smooth responses
abstract string Name [get] Name of the evaluator
int NumberOfObjectives [get] Number of objectives specified
List< Objective > Objectives [get] Method to get the list of objectives
abstract bool UsesConstraints [get] Does the evaluator use constraints?
abstract bool UsesDiscreteVariables [get] Does the evaluator use discrete variables?
abstract bool UsesMinMax [get] Does the evaluator use a Minimize/Maximize objective?
abstract bool UsesMultipleObjectives [get] Does the evaluator specify multiple objectives?
abstract bool UsesSolveFor [get] Does the evaluator use the solve for objective?

Properties inherited from IEvaluator

Type Name Description
List< OptConstraint > Constraints [get] List of constraints defined by the evaluator.
int DesignVariableCount [get] Number of design variables specificed by the evaluator.
List< DesignVariable > DesignVariables [get] List of design variables defined by the evaluator.
object[,] GlobalBestDesigns [get] The global best designs for the evaluator.
bool HasFailedRuns [get] Does the evalutor have failed runs?
bool HasNonSmoothResponses [get] Does the evaluator have non-smooth responses.
string Name [get] Name of the evaluator.
int NumberOfObjectives [get] Number of objectives specified.
List< Objective > Objectives [get] List of objectives defined by the evaluator.
bool UsesConstraints [get] Does the evaluator use constraints?
bool UsesDiscreteVariables [get] Does the evaluator use discrete variables?
bool UsesMinMax [get] Does the evaluator use a Minimize/Maximize objective?
bool UsesMultipleObjectives [get] Does the evaluator specify multiple objectives?
bool UsesSolveFor [get] Does the evaluator use the solve for objective?

Protected Member Functions inherited from ModelEvaluator

Type Name Description
virtual void Dispose (bool disposing) Standard disposal.

Constructor & Destructor Documentation

MOUC1()

MOUC1 ( )

Default constructor, uses the default goal of minimize

MOUC1()

MOUC1 ( Goal goal)

Constructor to use custom goal Matyas does not support the solve for goal.

Parameters:

  • goal - Specifies the goal of the optimization.

Member Function Documentation

addDesignVariables

override void `addDesignVariables` ( )

Adds design variables.

Implements ModelEvaluator.

addObjectives

override void `addObjectives` ( )

Adds objectives.

Implements ModelEvaluator.

EvaluateModel

override ModelEvaluation `EvaluateModel` ( object[] designVariables)

Evaluates function.

Parameters:

  • designVariables - Design used to evaluate function.

Returns:

  • Design results

Implements ModelEvaluator.

getIGD

override double getIGD ( List< double[]> `bestDesignObjectives`, string `filePath` )

Calculates and returns the IGD value [Implemented only by Multi Objective Evaluators] Reimplemented from ModelEvaluator.

Parameters:

  • bestDesigns - array of best design objective values

IsDesignAcceptable

override bool `IsDesignAcceptable` ( object[] design, AreDesignsEqual areDesignsEqual )

Determines whether specified design is a local or global optima.

Parameters:

  • design - Design to be tested.
  • areDesignsEqual - Function delegate to be be used to determine whether two designs are equal.

Returns:

  • Returns true if the design is a local or global optima; false otherwise.

Implements ModelEvaluator.

Property Documentation

GlobalBestDesigns

override object [,] GlobalBestDesigns

List of the globally best designs for the evaluator.

Implements IEvaluator.

HasFailedRuns

override bool HasFailedRuns

Evaluator does not have failed runs.

Implements IEvaluator.

HasNonSmoothResponses

override bool HasNonSmoothResponses

Evaluator has smooth responses.

Implements IEvaluator.

Name

override string Name

Name of the evaluator.

Implements IEvaluator.

UsesConstraints

override bool UsesConstraints

Evaluator does not use constraints.

Implements IEvaluator.

UsesDiscreteVariables

override bool UsesDiscreteVariables

Evaluator does not use multiple discrete variables.

Implements IEvaluator.

UsesMinMax

override bool UsesMinMax

Evaluator does uses minimize/maximize objectives.

Implements IEvaluator.

UsesMultipleObjectives

override bool UsesMultipleObjectives

Evaluator does not use multiple objectives.

Implements IEvaluator.

UsesSolveFor

override bool UsesSolveFor

Evaluator does not use the solve for objective.

Implements IEvaluator.

Connect with Ansys