  In this contribution, we discuss the basic concepts of genotypes and
phenotypes in tree-based GP (TGP), and then analyze their behavior using five
benchmark datasets. We show that TGP exhibits the same behavior that we can
observe in other GP representations: At the genotypic level trees show
frequently unchecked growth with seemingly ineffective code, but on the
phenotypic level, much smaller trees can be observed. To generate phenotypes,
we provide a unique technique for removing semantically ineffective code from
GP trees. The approach extracts considerably simpler phenotypes while not being
limited to local operations in the genotype. We generalize this transformation
based on a problem-independent parameter that enables a further simplification
of the exact phenotype by coarse-graining to produce approximate phenotypes.
The concept of these phenotypes (exact and approximate) allows us to clarify
what evolved solutions truly predict, making GP models considered at the
phenotypic level much better interpretable.
