ArrayAlign | ArrayAlignHierarchy | ArrayAlign_ConstantRange | ArrayAlign_Equal | ArrayAlign_Multiply | ArrayAlign_PermutationCycle | ArrayAlign_Power | AudivolvNetwork | AudivolvSummary | Brainwaves | CodeSimian | CodeTree | Func | FuncPurpose_MeasureOtherFunc | FuncPurpose_SoundColorMouse | FuncPurpose_Unknown | HardCoded_CodeTree_BreedFunction | HeapQueue | HighStandards | Hypercube | Javassist | LongTermGoalsOfAudivolvDesign | MindReadingHelmet | MovementScore | NeatVsScruffy | NoSpying | Node | NormedCodeTree | PermutationCompilerAndInterpreter | Plugin | ShortTermGoalsOfAudivolvDesign | SoundCardPart | Template | TuringTests_per_second | flo | int | ob
Audivolv - HardCoded_CodeTree_BreedFunction
HardCoded_CodeTree_BreedFunction will be replaced by evolved CodeTrees that operate on CodeTree.
My strategy in Audivolv is to hard-code things first then make them evolvable later.
In the end, only the window, file access, low-level internet connections, and similar things will be hard-coded.
All the AI will be evolved.
After breeding, part of the hard-coded things is the MovementScore.
Breed 2 JavaCodes X and Y
X and Y are a linear sequence of child JavaCodes. Start with X's childs.
Audivolv version 0.1.6 has a hard-coded CodeTree breed function that does approximately this:
Pick 2 equal-size random ranges of childs, in X and Y.
Overwrite X's childs with Y's childs.
Cut X between 2 childs, and swap the 2 ranges. Ignore Y.
Randomly reorder X's childs. Ignore Y.
Pick random childs to remove.
Quantity to remove is random^2 fraction of the childs.
Keeps code size down because new childs are only added if vars are missing.
Fix the mutated code:
This increases evolved code size. Score higher for shorter code.
Each var must be Lvalue and Rvalue at least once.
Pick a random child in Y. Lvalue var names are child.floVars(".*L.*")
Pick an Lvalue (or Rvalue) thats missing in the mutated code.
If child does not have that var as Lvalue, rename some var in child.
Add the new child in a random place.
AUDIVOLV WEBSITES: http://audivolv.com | http://audivolv.sourceforge.net | http://audioevolve.com | http://instrumentsplaythemusicians.com