Genetic programming: on the programming of computers by means of natural selection
Genetic programming: on the programming of computers by means of natural selection
Genetic programming II: automatic discovery of reusable programs
Genetic programming II: automatic discovery of reusable programs
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
A comparative analysis of genetic programming
Advances in genetic programming
Discovery of subroutines in genetic programming
Advances in genetic programming
A historical perspective on the evolution of executable structures
Fundamenta Informaticae
Analysis of single-node (building) blocks in genetic programming
Advances in genetic programming
Genetic Algorithms in Search, Optimization and Machine Learning
Genetic Algorithms in Search, Optimization and Machine Learning
Coevolving functions in genetic programming
Journal of Systems Architecture: the EUROMICRO Journal - Special issue on evolutionary computing
Genetic Programming III: Darwinian Invention & Problem Solving
Genetic Programming III: Darwinian Invention & Problem Solving
Algorithmics: The Spirit of Computing
Algorithmics: The Spirit of Computing
IEEE Expert: Intelligent Systems and Their Applications
Generality and Difficulty in Genetic Programming: Evolving a Sort
Proceedings of the 5th International Conference on Genetic Algorithms
Fitness Distance Correlation as a Measure of Problem Difficulty for Genetic Algorithms
Proceedings of the 6th International Conference on Genetic Algorithms
Fitness Distance Correlation And Problem Difficulty For Genetic Programming
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
A Metric for Genetic Programs and Fitness Sharing
Proceedings of the European Conference on Genetic Programming
Evolving Modules in Genetic Programming by Subtree Encapsulation
EuroGP '01 Proceedings of the 4th European Conference on Genetic Programming
Maintaining the Diversity of Genetic Programs
EuroGP '02 Proceedings of the 5th European Conference on Genetic Programming
Shorter Fitness Preserving Genetic Programs
AE '99 Selected Papers from the 4th European Conference on Artificial Evolution
A Subquadratic Sequence Alignment Algorithm for Unrestricted Scoring Matrices
SIAM Journal on Computing
The Push3 execution stack and the evolution of control
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
A survey on tree edit distance and related problems
Theoretical Computer Science
Alignment of metabolic pathways
Bioinformatics
Algebraic simplification of GP programs during evolution
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Semantic clustering: Identifying topics in source code
Information and Software Technology
The Current State and Future of Search Based Software Engineering
FOSE '07 2007 Future of Software Engineering
Improving the human readability of features constructed by genetic programming
Proceedings of the 9th annual conference on Genetic and evolutionary computation
A phenotypic analysis of GP-evolved team behaviours
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Comparison and Evaluation of Clone Detection Tools
IEEE Transactions on Software Engineering
Strongly typed genetic programming
Evolutionary Computation
Effects of code growth and parsimony pressure on populations in genetic programming
Evolutionary Computation
Scalable detection of semantic clones
Proceedings of the 30th international conference on Software engineering
Accelerating genetic programming by frequent subtree mining
Proceedings of the 10th annual conference on Genetic and evolutionary computation
Proceedings of the 10th annual conference on Genetic and evolutionary computation
Repeated patterns in genetic programming
Natural Computing: an international journal
An improved representation for evolving programs
Genetic Programming and Evolvable Machines
Using Numerical Simplification to Control Bloat in Genetic Programming
SEAL '08 Proceedings of the 7th International Conference on Simulated Evolution and Learning
A genetic programming approach to automated software repair
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
How online simplification affects building blocks in genetic programming
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Towards identifying salient patterns in genetic programming individuals
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Empirical analysis of GP tree-fragments
EuroGP'07 Proceedings of the 10th European conference on Genetic programming
Evolving modular recursive sorting algorithms
EuroGP'07 Proceedings of the 10th European conference on Genetic programming
Semantic building blocks in genetic programming
EuroGP'08 Proceedings of the 11th European conference on Genetic programming
A Field Guide to Genetic Programming
A Field Guide to Genetic Programming
Evolving efficient list search algorithms
EA'09 Proceedings of the 9th international conference on Artificial evolution
Linear Genetic Programming
Diversity in genetic programming: an analysis of measures and correlation with fitness
IEEE Transactions on Evolutionary Computation
Seeded tree alignment and planar tanglegram layout
WABI'07 Proceedings of the 7th international conference on Algorithms in Bioinformatics
Introducing graphical models to analyze genetic programming dynamics
Proceedings of the twelfth workshop on Foundations of genetic algorithms XII
Hi-index | 0.00 |
This paper focuses on two issues, first perusing the idea of algorithmic design through genetic programming (GP), and, second, introducing a novel approach for analyzing and understanding the evolved solution trees. Considering the problem of list search, we evolve iterative algorithms for searching for a given key in an array of integers, showing that both correct linear-time and far more efficient logarithmic-time algorithms can be repeatedly designed by Darwinian means. Next, we turn to the (evolved) dish of spaghetti (code) served by GP. Faced with the all-too-familiar conundrum of understanding convoluted--and usually bloated--GP-evolved trees, we present a novel analysis approach, based on ideas borrowed from the field of bioinformatics. Our system, dubbed G-PEA (GP Post-Evolutionary Analysis), consists of two parts: (1) Defining a functionality-based similarity score between expressions, G-PEA uses this score to find subtrees that carry out similar semantic tasks; (2) Clustering similar sub-expressions from a number of independently evolved fit solutions, thus identifying important semantic building blocks ensconced within the hard-to-read GP trees. These blocks help identify the important parts of the evolved solutions and are a crucial step in understanding how they work. Other related GP aspects, such as code simplification, bloat control, and building-block preserving crossover, may be extended by applying the concepts we present.