90 likes | 195 Views
Context. January 29 th , 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
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