ABSTRACT
Emergent software systems take a step towards tackling the ever-increasing complexity of modern software, by having systems self-assemble from a library of building blocks, and then continually re-assemble themselves from alternative building blocks to learn which compositions of behaviour work best in each deployment environment. One of the key challenges in emergent systems is populating the library of building blocks, and particularly a set of alternative implementations of particular building blocks, which form the runtime search space of optimal behaviour. We present initial work in using a fusion of genetic improvement and genetic synthesis to automatically populate a divergent set of implementations of the same functionality, allowing emergent systems to explore new behavioural alternatives without human input. Our early results indicate this approach is able to successfully yield useful divergent implementations of building blocks which are more suited than any existing alternative for particular operating conditions.
- B. Porter, M. Grieves, R. Rodrigues Filho, and D. Leslie, "RE<sup>X</sup>: A development platform and online learning approach for runtime emergent software systems," in Symposium on Operating Systems Design and Implementation. USENIX, November 2016, pp. 333--348. Google ScholarDigital Library
- R. Rodrigues Filho and B. Porter, "Defining emergent software using continuous self-assembly, perception, and learning," Transactions on Autonomous and Adaptive Systems, vol. 12, no. 3, pp. 1--25, September 2017. Google ScholarDigital Library
- Source code from this paper with instructions: http://research.projectdana.com/gi2018mcgowan.Google Scholar
- J. Petke, S. Haraldsson, M. Harman, william Langdon, D. White, and J. Woodward, "Genetic Improvement of Software: a Comprehensive Survey," IEEE Transactions on Evolutionary Computation, no. c, pp. 1--1, 2017.Google Scholar
- S. Forrest, T. Nguyen, W. Weimer, and C. Le Goues, "A genetic programming approach to automated software repair," in Proceedings of the 11th Annual Conference on Genetic and Evolutionary Computation, ser. GECCO '09. New York, NY, USA: ACM, 2009, pp. 947--954. Google ScholarDigital Library
- A. Arcuri and X. Yao, "A novel co-evolutionary approach to automatic software bug fixing," 2008 IEEE Congress on Evolutionary Computation, CEC 2008, pp. 162--168, 2008.Google Scholar
- S. Sidiroglou-Douskos, E. Lahtinen, F. Long, and M. Rinard, "Automatic error elimination by horizontal code transfer across multiple applications," Pldi, pp. 43--54, 2015. Google ScholarDigital Library
- V. Mrazek, Z. Vasicek, and L. Sekanina, "Evolutionary Approximation of Software for Embedded Systems: Median Function," Genetic Improvement 2015 Workshop, no. 1, pp. 795--801, 2015. Google ScholarDigital Library
- W. B. Langdon and M. Harman, "Optimizing existing software with genetic programming," IEEE Transactions on Evolutionary Computation, vol. 19, no. 1, pp. 118--135, Feb 2015.Google ScholarDigital Library
- J. Landsborough, S. Harding, and S. Fugate, "Removing the Kitchen Sink from Software," Proceedings of the Companion Publication of the 2015 on Genetic and Evolutionary Computation Conference - GECCO Companion '15, pp. 833--838, 2015. Google ScholarDigital Library
- B. Cody-kenny, E. Galván-lópez, and S. Barrett, "locoGP : Improving Performance by Genetic Programming Java Source Code," Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, pp. 811--818, 2015. Google ScholarDigital Library
- S. O. Haraldsson and J. R. Woodward, "Automated Design of Algorithms and Genetic Improvement: Contrast and Commonalities," Proceedings of the 2014 Conference Companion on Genetic and Evolutionary Computation Companion, pp. 1373--1380, 2014. Google ScholarDigital Library
- E. T. Barr, Y. Brun, P. Devanbu, M. Harman, and F. Sarro, "The plastic surgery hypothesis," Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2014, pp. 306--317, 2014. Google ScholarDigital Library
- M. Orlov, "Evolving Software Building Blocks with {FINCH}," Gi-2017, 2017. Google ScholarDigital Library
- E. Schulte, J. DiLorenzo, W. Weimer, and S. Forrest, "Automated repair of binary and assembly programs for cooperating embedded devices," in Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ser. ASPLOS '13. New York, NY, USA: ACM, 2013, pp. 317--328. Google ScholarDigital Library
- S. O. Haraldsson, J. R. Woodward, A. E. I. Brownlee, A. V. Smith, and V. Gudnason, "Genetic improvement of runtime and its fitness landscape in a bioinformatics application," in Proceedings of the Genetic and Evolutionary Computation Conference Companion, ser. GECCO '17. New York, NY, USA: ACM, 2017, pp. 1521--1528. Google ScholarDigital Library
- L. Chen and A. Avizienis, "N-version programming: A fault-tolerance approach to reliablilty of software operation," in 25th International Symposium on Fault-Tolerant Computing, 1995, Highlights from Twenty-Five Years., Jun 1995, p. 113.Google Scholar
- J. Petke, "New operators for non-functional genetic improvement," in Proceedings of the Genetic and Evolutionary Computation Conference Companion, ser. GECCO '17. New York, NY, USA: ACM, 2017, pp. 1541--1542. Google ScholarDigital Library
- S. Gulwani, W. R. Harris, and R. Singh, "Spreadsheet data manipulation using examples," Communications of the ACM, vol. 55, no. 8, p. 97, 2012. Google ScholarDigital Library
- M. Orlov and M. Sipper, "Flight of the FINCH through the java wilderness," IEEE Transactions on Evolutionary Computation, vol. 15, no. 2, pp. 166--182, 2011. Google ScholarDigital Library
- J. Swan and N. Burles, Templar - A Framework for Template-Method Hyper-Heuristics. Cham: Springer International Publishing, 2015, pp. 205--216.Google Scholar
- Dana language: http://www.projectdana.com.Google Scholar
- B. Porter, "Runtime modularity in complex structures: A component model for fine grained runtime adaptation," in Component-Based Software Engineering. ACM, June 2014, pp. 26--32. Google ScholarDigital Library
- M. Mitchell, An Introduction to Genetic Algorithms. Cambridge, MA, USA: MIT Press, 1998. Google ScholarDigital Library
Recommendations
How online simplification affects building blocks in genetic programming
GECCO '09: Proceedings of the 11th Annual conference on Genetic and evolutionary computationThis paper investigates the effect on building blocks during evolution of two online program simplification methods in genetic programming. The two simplification methods considered are algebraic simplification and numerical simplification. The building ...
Code and Data Synthesis for Genetic Improvement in Emergent Software Systems
Emergent software systems are assembled from a collection of small code blocks, where some of those blocks have alternative implementation variants; they optimise at run-time by learning which compositions of alternative blocks best suit each deployment ...
Evolvability tradeoffs in emergent digital replicators
The role of historical contingency in the origin of life is one of the great unknowns in modern science. Only one example of life exists-one that proceeded from a single self-replicating organism or a set of replicating hypercycles to the vast ...
Comments