Function PGASetReferenceDirections

Function Documentation

void PGASetReferenceDirections(PGAContext *ctx, size_t ndirs, void *dirs, int npart, double scale)

Set reference directions for NSGA-III.

Description

A direction is a point in objective space and can be seen as a vector from the origin to that point. During optimization the reference directions are mapped to the reference hyperplane and a scaled Das/Dennis hyperplane is constructed around that point. Each direction consists of dimension double variables.

Example

Asume 3 dimensions, i.e. 3 evaluation functions

PGAContext *ctx;
double dirs [][3] = {{1, 2, 3}, {4, 5, 6}};
...
int dim = PGAGetNumAuxEval (ctx) - PGAGetNumConstraint (ctx) + 1;

...
PGASetReferenceDirections (ctx, 2, dirs, 5, 0.1);

Parameters
  • ctx – context variable

  • ndirs – Number of directions

  • dirs – Pointer to directions

  • npart – Number of Das / Dennis partitions

  • scale – Scale factor for constructed Das / Dennis points, must be 0 < scale <= 1 but will typically be < 0.5

Returns

None