Pattern: Task Parallelism 217
gramming evolutionary algorithm [34]. The components of the algorithm are:
• The objective function, which takes a candidate solution as input and
produces a numerical measure of the quality, or fitness, of the solution
applied to the objective function.
• A candidate selection algorithm that takes knowledge of those tried so
far and attempts to build better candidates to evaluate.
• A method to turn encoded individuals represented by a chromosome
of characters into a form that can be evaluated, such as an arithmetic
expression.
• A set of operators that are used to generate new populations from old
ones based on the fitnesses of the old individuals.
To parallelize this, we can replicate the objective function (which can