Function PGAEvaluate
Defined in File parallel.c
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 adouble
(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 functionEnergy
.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