Function PGAEvaluate

Function Documentation

void PGAEvaluate(PGAContext *ctx, int pop, double (*evaluate)(PGAContext*, int, int, double*), MPI_Comm comm)

Call a user-specified function to return an evaluation of each string in the population.

Description

The user-specified function is only called if the string has been changed (e.g., by crossover or mutation) or the user has explicitly signaled the string’s evaluation is out-of-date by a call to PGASetEvaluationUpToDateFlag().

The user-specified function will be called once for each string in population pop that requires evaluation. This function must return a double (the evaluation function value) and must fit the prototype:

double evaluate (PGAContext *c, int p, int pop, double *aux);

Example

Evaluate all strings in population PGA_NEWPOP using the user-defined evaluation function Energy.

double Energy (PGAContext *ctx, int p, int pop, double *aux) {
    ...
};

PGAContext *ctx;

...
PGAEvaluate (ctx, PGA_NEWPOP, Energy, MPI_COMM_WORLD);

Parameters
  • ctx – context variable

  • pop – symbolic constant of the population to be evaluated

  • evaluate – a pointer to a function to evaluate a string.

  • comm – an MPI communicator

Returns

Evaluates the population via side effect