90 likes | 201 Vues
This document provides an overview of the recent fitness refinement updates to genetic programming, focusing on the implications of context in order of operations and the role of local variables. It discusses current challenges in generating trees based on unique condition satisfaction and highlights the need for enhancements in grammar definitions. Key topics include the handling of local variables, the intricacies of crossover and mutation processes, and the necessity for context-dependent fitness functions. Future steps involve code cleanup and further exploration of sub-tree management techniques.
E N D
Context January 29th, 2014 Erik Fredericks
Overview • Fitness refinement update • Context discussion • Paper overview
Fitness Refinement Update • Grammar updated on website • Can generate trees on a condition-by-condition bases • Essentially, still working on refactoring • When looking for unique condition satisfaction, resulting tree generates appropriately • E.g., target module invocation • However, non-unique condition satisfaction tends to produce random results
Context Discussion • Context implies notion of location and/or action • Location: order of operations • Action: values must be sorted • Currently, roles are context-independent • INT, FLOAT, VOID-ARRAY, etc. • The same INT role could be used to satisfy a pre- or post-condition • How can we impart the notion of context to be used by the grammar and/or fitness functions?
Context Possibilities • Extra definition to grammar • May increase complexity • More difficult for evolution to find a good solution • Could be automated • Attribute information to terminal variables • Each variable would require specific tagging • Consideration: • Still interested purely in structure, not behavior • i.e., avoid predicate logic defining exact output of module
Paper Overview • Genetic Programming with Statically Scoped Local Variables [Kirshenbaum, GECCO 2000] • Local variables in GP • Considering how to take transformations at the root level and carry them over into other portions of the tree Composition Target_module(xform1) xform1
GP with Local Variables • Issue with defining local variables is that they must be scoped locally (invariant) • Implies that they should be crossover- and mutation-safe • Furthermore, require special handling to still facilitate exploration • Paper uses LET definition from LISP • ((LET ((R0 (+ X (* Y Y)))) (* 4 (* R0 R0))) • Computes 4(x+y2)2
GP with Local Variables • Given that these sub-trees contain the type definition, evolutionary operators may require extension • Crossover: • Must preserve invariant • Child sub-tree takes information from father’s tree as needed • Essentially extends mother’s tree with information from father’s as needed • Mutation: • Can be used as-is from GP definitions, as long as they still preserve the invariant status
Next Steps • Following meeting, I will clean up code and update repository with current state • Review fitness function implementation • Look into holding sub-trees constant • May be a viable approach for fostering better end results • However, may need to extend framework as I could not find any reference in documentation or forums on this topic