3.2.6 Explicitly defined introns
In natural living systems not all DNA has a phenotypic effect. This non-coding DNA,
sometimes referred to as junk DNA, is prevalent in virtually all eukaryotic genomes.
In GP, so-called introns
are areas of code that do not affect survival and reproduction
(usually this can be replaced with “do not affect fitness”). In the context of tree-based
GP the term “areas of code” applies to subtrees.
Introns occur naturally in GP, provided that the function and terminal sets allow
for it. As bloat progresses, the number of nodes that are part of introns tends to
increase. Luke  distinguished two types of subtrees that are sometimes referred
to as introns in the literature:
• Unoptimized code: Areas of code that can be trivially simplified without modifying
the individual’s functionality, but not replaced with just anything.
• Inviable code: Subtrees that cannot be replaced by anything that can possibly
change the individual’s functionality.
Luke focused on inviable introns and we will do the same because unoptimized
code seems to cast too wide a net and wander too far from the original meaning of
the term “intron” in biology. We also make another distinction between two types of
• Live-code introns: Subtrees that cannot be replaced by anything that can possibly
change the individual’s functionality, but may still generate code that will run
at some point.
• Dead-code introns: Subtrees whose code is never run.