Evolving a Program[complete]
In the previous section we turned this AND program:
BVBbc*BVBdd->C BVBda->D BVBc_->Einto these logical expressions:
Given the equivalence of these expressions, we can use the more compact DNF form to represent the program: So why not just use compact DNF for the language? This becomes clearer when we consider the second goal of the language: to explore how the structure of the language can facilitate evolution.
Details
TODO: Move this to technical
There are two key constraints on the mutation operator. First, any mutation must result in a valid AND program. Second, the use of stimulus, response, and memory elements must be consistent.
A primary consideration is that the mutation operator should always produce a valid AND program. Additional constraints can further facilitate the evolutionary process. A valid program also requires a register architecture that defines the range and type of valid stimuli, memories, and responses.