IHR3 Class Reference

multi-objective problem IHR3. More...

#include <MultiObjectiveFunctions.h>

Inheritance diagram for IHR3:

ObjectiveFunctionVS< double > ObjectiveFunctionT< T * > ObjectiveFunction

List of all members.

Public Member Functions

 IHR3 (unsigned d=10)
 Constructor.
 ~IHR3 ()
 Destructor.
unsigned int objectives () const
 return the number of objectives to optimize
void result (double *const &point, std::vector< double > &value)
bool ProposeStartingPoint (double *&point) const
bool utopianFitness (std::vector< double > &value) const
 If possible, this method returns (a bound on) the best possible fitness.
bool nadirFitness (std::vector< double > &value) const
 If possible, this method returns (a bound on) the worst possible fitness.
void initRandomRotation ()
 Create a random orthogonal transformation.

Protected Member Functions

void transform (const double *in, std::vector< double > &out) const
 transform in, resulting in out
double h (double x, double n)
double hf (double x, double y0, double ymax)
double hg (double x)

Protected Attributes

Matrix m_Transformation
 transformation matrix


Detailed Description

multi-objective problem IHR3.

The rotated variant of the ZDT3 problem:

\[ f_{1}(x)= |y_1| \]

\[ f_{2}(x)=g(y)h_f( 1 - \sqrt{\frac{y_1}{ g(y) }} - \frac{h(y_1)}{g(y)}sin(10 \pi y_1)) \]

\[ g(y)=1+\frac{9 \sum_{i=2}^{n}h_g(y_i)}{(n-1)} \]

with auxiliary functions:

\[ h: \mathbf{R} \rightarrow [0,1], x \rightarrow (1+exp(\frac{-x}{ \sqrt{n} }))^{-1} \]

\[ h_f: \mathbf{R} \rightarrow \mathbf{R}, x \rightarrow \left\{\begin{array}{ll} x, & \mbox{if } |y_1|\leq y_{max} \\ 1+|y_1|, & \mbox{ otherwise} \end{array}\right. \]

\[ h_g: \mathbf{R} \rightarrow \mathbf{R}_{\leq 0}, x \rightarrow \frac{x^2}{|x|+0.1} \]

where $ x\in [0,1]^n $ , y is defined by $ y= Ox $ where O is an arbitrary orthogonal rotation matrix and $ y_{max} = 1/max_j (|o_{1j}|)$ and usually $ n=10 $

Definition at line 592 of file MultiObjectiveFunctions.h.


Constructor & Destructor Documentation

IHR3::IHR3 ( unsigned  d = 10  ) 

Constructor.

Definition at line 875 of file MultiObjectiveFunctions.cpp.

References initRandomRotation(), and ObjectiveFunction::m_name.

IHR3::~IHR3 (  ) 

Destructor.

Definition at line 881 of file MultiObjectiveFunctions.cpp.

References ObjectiveFunctionT< T * >::constrainthandler.


Member Function Documentation

double IHR3::h ( double  x,
double  n 
) [protected]

Definition at line 984 of file MultiObjectiveFunctions.cpp.

Referenced by result().

double IHR3::hf ( double  x,
double  y0,
double  ymax 
) [protected]

Definition at line 989 of file MultiObjectiveFunctions.cpp.

Referenced by result().

double IHR3::hg ( double  x  )  [protected]

Definition at line 996 of file MultiObjectiveFunctions.cpp.

Referenced by result().

void IHR3::initRandomRotation (  ) 

Create a random orthogonal transformation.

Definition at line 942 of file MultiObjectiveFunctions.cpp.

References ObjectiveFunctionVS< double >::m_dimension, and m_Transformation.

Referenced by IHR3().

bool IHR3::nadirFitness ( std::vector< double > &  value  )  const [virtual]

If possible, this method returns (a bound on) the worst possible fitness.

For single objective optimization this information is rarely of any use, while for multi objective optimization a so-called nadir point is important for the computation of standard quality indicators like the hypervolume.

Parameters:
fitness component wise worst fitness
Returns:
true if a nadir point is known, false otherwise

Reimplemented from ObjectiveFunctionVS< double >.

Definition at line 934 of file MultiObjectiveFunctions.cpp.

unsigned int IHR3::objectives (  )  const [virtual]

return the number of objectives to optimize

Implements ObjectiveFunction.

Definition at line 888 of file MultiObjectiveFunctions.cpp.

bool IHR3::ProposeStartingPoint ( double *&  point  )  const

void IHR3::result ( double *const &  point,
std::vector< double > &  value 
)

void IHR3::transform ( const double *  in,
std::vector< double > &  out 
) const [protected]

transform in, resulting in out

Definition at line 972 of file MultiObjectiveFunctions.cpp.

References ObjectiveFunctionVS< double >::m_dimension, and m_Transformation.

Referenced by result().

bool IHR3::utopianFitness ( std::vector< double > &  value  )  const [virtual]

If possible, this method returns (a bound on) the best possible fitness.

For the single objective case the function should return the fitness in the global optimum. For the multi objective case this function should return a utopian point.

Parameters:
fitness component wise utopian fitness
Returns:
true if an utopian point is known, false otherwise

Reimplemented from ObjectiveFunctionVS< double >.

Definition at line 929 of file MultiObjectiveFunctions.cpp.


Member Data Documentation

Matrix IHR3::m_Transformation [protected]

transformation matrix

Definition at line 617 of file MultiObjectiveFunctions.h.

Referenced by initRandomRotation(), result(), and transform().


The documentation for this class was generated from the following files: