Like the SA algorithm, a GA does not use derivative information, it just needs to be supplied with a fitness value for each member of each population. Thus, the evaluation of the problem functions is essentially a ``black box'' operation as far as the GA is concerned. Obviously, in the interests of overall computational efficiency, the problem function evaluations should be performed efficiently. Depending on the nature of the system equations advice on accelerating these calculations may be found in other chapters within this project.

The guidelines for constraint handling in a GA are basically identical to those outlined in Section 4.1.2 for the SA algorithm. As long as there are no equality constraints and the feasible space is not disjoint, then infeasible solutions can simply be ``rejected''. In a GA this means ensuring that those particular solutions are not selected as parents in the next generation, e.g. by allocating them a zero survival probability.

If these conditions on the constraints are not met, then a penalty function method be used. A suitable form for a GA is:

where is a vector of
nonnegative weighting coefficients, the vector quantifies the
magnitudes of any constraint violations, **M** is the number of the
current generation and **k** is a suitable exponent. The dependence of
the penalty on generation number biases the search increasingly
heavily towards feasible space as it progresses. Consult section
for more details on the penalty function method.