Program Mutation

Mutation provides a way to re-introduce variety into the population that may be lost during evolution.

Again, the program must first be duplicated.

A single mutation point is selected at random, and the sub-tree starting with the point is deleted. A new sub-tree is generated in the same way that programs were in the inital population creation, with the restriction that the operator data type must match the deleted mutation node.