NOTE: For the format of the configuration file, see Population's Constraints
The purpose of the Constraints is to provide the transformation function from genotype to phenotype. Their implementation in the form of a class that reads an external description makes the tool versatile. The fact that constraints are specified externally is indeed one of the main strengths of µGP.
Constraints are composed of so-called macros, each of which can include zero or more parameters. These are referenced inside the Constrained Tagged Graph (CTG) by some of the tags associated with every element of the graph. This indeed is what makes the tagged graph constrained: every parameter in every macro has a legal set of values, which can be less than the whole value set for the base type.
Every vertex of a CTG is an instance of a macro in the constraints, and part of its tags materialize the content of the macro's parameters, containing the actual values.
Wiki: Constrained Tagged Graph
Wiki: Core
Wiki: Population Constraints