Evolving sqrt into 1/x via software data maintenance

While most software automation research concentrates on programs' code, we have started investigating if Genetic Improvement (GI) of data can assist developers by automating aspects of the maintenance of parameters embedded in source code. We extend recent GI work on optimising compile time constants to give new functionality and describe the transformation of a GNU C library square root function into the double precision reciprocal function, drcp. Multiplying by 1/x (drcp) allows division free division without requiring the hardware to support division. The evolution (6 seconds) and indeed the GI dp division (7.14 ± 0.012 nS) are both surprisingly fast.

[1]  Mark Harman,et al.  Deploying Search Based Software Engineering with Sapienz at Facebook , 2018, SSBSE.

[2]  Mark Harman,et al.  Automated software transplantation , 2015, ISSTA.

[3]  Westley Weimer,et al.  Repairing COTS Router Firmware without Access to Source Code or Test Suites: A Case Study in Evolutionary Software Repair , 2015, GECCO.

[4]  Mark Harman,et al.  Inferring Automatic Test Oracles , 2017, 2017 IEEE/ACM 10th International Workshop on Search-Based Software Testing (SBST).

[5]  Justyna Petke,et al.  Deep Parameter Optimisation for Face Detection Using the Viola-Jones Algorithm in OpenCV , 2016, SSBSE.

[6]  Mark Harman,et al.  Automated Transplantation of Call Graph and Layout Features into Kate , 2015, SSBSE.

[7]  Westley Weimer,et al.  Post-compiler software optimization for reducing energy , 2014, ASPLOS.

[8]  Mark Harman,et al.  Babel Pidgin: SBSE Can Grow and Graft Entirely New Functionality into a Real World System , 2014, SSBSE.

[9]  John A. Clark,et al.  Evolutionary Improvement of Programs , 2011, IEEE Transactions on Evolutionary Computation.

[10]  David R. White GI in no time , 2017, GECCO.

[11]  Mark Harman,et al.  Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class , 2014, EuroGP.

[12]  Peter F. Stadler,et al.  ViennaRNA Package 2.0 , 2011, Algorithms for Molecular Biology.

[13]  John R. Woodward,et al.  Fixing bugs in your sleep: how genetic improvement became an overnight success , 2017, GECCO.

[14]  William B. Langdon,et al.  Evolving Better Software Parameters , 2018, SSBSE.

[15]  Jerffeson Teixeira de Souza,et al.  Ten Years of Search Based Software Engineering: A Bibliometric Analysis , 2011, SSBSE.

[16]  James S. Collofello,et al.  Software Quality Assurance for Maintenance , 1987, IEEE Software.

[17]  Wilma M. Osborne,et al.  Guidance on software maintenance , 1983 .

[18]  W. B. Langdon,et al.  Genetic improvement of data gives double precision invsqrt , 2019, GECCO.

[19]  Jerry Swan,et al.  Deep Parameter Tuning of Concurrent Divide and Conquer Algorithms in Akka , 2017, EvoApplications.

[20]  Tanja E. J. Vos,et al.  Using genetic programming to evolve action selection rules in traversal-based automated software testing: results obtained with the TESTAR tool , 2018, Memetic Comput..

[21]  Des Greer,et al.  A survey of search-based refactoring for software maintenance , 2018, Journal of Software Engineering Research and Development.

[22]  Westley Weimer,et al.  Automated program repair through the evolution of assembly code , 2010, ASE.

[23]  Günther Ruhe,et al.  Search Based Software Engineering , 2013, Lecture Notes in Computer Science.

[24]  Justyna Petke,et al.  Genetic improvement of data gives binary logarithm from sqrt , 2019, GECCO.

[25]  Nikolaus Hansen,et al.  Completely Derandomized Self-Adaptation in Evolution Strategies , 2001, Evolutionary Computation.

[26]  John R. Koza,et al.  What's AI Done for Me Lately? Genetic Programming's Human-Competitive Results , 2003, IEEE Intell. Syst..

[27]  Mark Harman,et al.  The Oracle Problem in Software Testing: A Survey , 2015, IEEE Transactions on Software Engineering.

[28]  Lukás Sekanina,et al.  Evolutionary Approximation of Software for Embedded Systems: Median Function , 2015, GECCO.

[29]  Mark Harman,et al.  Test oracle assessment and improvement , 2016, ISSTA.

[30]  Mark Harman,et al.  Genetic Improvement of Software: A Comprehensive Survey , 2018, IEEE Transactions on Evolutionary Computation.

[31]  Mark Harman,et al.  Evolving a CUDA kernel from an nVidia template , 2010, IEEE Congress on Evolutionary Computation.

[32]  Claire Le Goues,et al.  Automated program repair , 2019, Commun. ACM.

[33]  Justyna Petke,et al.  Constraints: The Future of Combinatorial Interaction Testing , 2015, 2015 IEEE/ACM 8th International Workshop on Search-Based Software Testing.

[34]  Nadia Alshahwan Industrial Experience of Genetic Improvement in Facebook , 2019, 2019 IEEE/ACM International Workshop on Genetic Improvement (GI).

[35]  Ralf Lämmel,et al.  WES: Agent-based User Interaction Simulation on Real Infrastructure , 2020, ICSE.

[36]  Peter W. Markstein Computation of Elementary Functions on the IBM RISC System/6000 Processors , 1990, IBM J. Res. Dev..

[37]  Zdenek Vasícek,et al.  Trading between quality and non-functional properties of median filter in embedded systems , 2017, Genetic Programming and Evolvable Machines.

[38]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .

[39]  Cheng Zhang,et al.  Automated Test Oracles: A Survey , 2015, Adv. Comput..

[40]  Moshe Sipper,et al.  Flight of the FINCH Through the Java Wilderness , 2011, IEEE Transactions on Evolutionary Computation.

[41]  Markus Wagner,et al.  Gin: genetic improvement research made easy , 2019, GECCO.

[42]  William B. Langdon,et al.  Automatically Evolving Lookup Tables for Function Approximation , 2020, EuroGP.

[43]  William B. Langdon,et al.  Genetic Improvement of Software for Multiple Objectives , 2015, SSBSE.

[44]  P. Parrend,et al.  Software is Not Fragile , 2016 .

[45]  Keith C. Clarke,et al.  Geocomputation's future at the extremes: high performance computing and nanoclients , 2003, Parallel Comput..

[46]  Claire Le Goues,et al.  The case for software evolution , 2010, FoSER '10.

[47]  Nafiseh Hajrahimi,et al.  Which Factors Affect Software Projects Maintenance Cost More? , 2013, Acta informatica medica : AIM : journal of the Society for Medical Informatics of Bosnia & Herzegovina : casopis Drustva za medicinsku informatiku BiH.

[48]  W. B. Langdon,et al.  Genetically improved BarraCUDA , 2015, BioData Mining.

[49]  Paulo Augusto Nardi,et al.  A Survey on Test Oracles , 2015 .

[50]  Fan Wu,et al.  Deep Parameter Optimisation , 2015, GECCO.

[51]  Alexander E. I. Brownlee,et al.  Object-Oriented Genetic Improvement for Improved Energy Consumption in Google Guava , 2015, SSBSE.

[52]  Gordon Fraser,et al.  EvoSuite: automatic test suite generation for object-oriented software , 2011, ESEC/FSE '11.

[53]  Mark Harman,et al.  Grow and Serve: Growing Django Citation Services Using SBSE , 2015, SSBSE.

[54]  Miryung Kim,et al.  Automated Transplantation and Differential Testing for Clones , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[55]  Daeyeon Kim,et al.  A Low-Voltage Processor for Sensing Applications With Picowatt Standby Mode , 2009, IEEE Journal of Solid-State Circuits.

[56]  Bobby R. Bruce Energy Optimisation via Genetic Improvement: A SBSE technique for a new era in Software Development , 2015, GECCO.

[57]  Mark Harman,et al.  Specialising Software for Different Downstream Applications Using Genetic Improvement and Code Transplantation , 2018, IEEE Transactions on Software Engineering.

[58]  William B. Langdon,et al.  Evolving Better RNAfold Structure Prediction , 2018, EuroGP.

[59]  G.E. Moore,et al.  Cramming More Components Onto Integrated Circuits , 1998, Proceedings of the IEEE.

[60]  Mark Harman,et al.  Grow and Graft a Better CUDA pknotsRG for RNA Pseudoknot Free Energy Calculation , 2015, GECCO.

[61]  Shin Yoo,et al.  Amortised Deep Parameter Optimisation of GPGPU Work Group Size for OpenCV , 2016, SSBSE.

[62]  Justyna Petke,et al.  PyGGI 2.0: language independent genetic improvement framework , 2019, ESEC/SIGSOFT FSE.

[63]  John A. Clark,et al.  The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper) , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[64]  William B. Langdon,et al.  Improving SSE parallel code with grow and graft genetic programming , 2017, GECCO.

[65]  Mark Harman,et al.  SapFix: Automated End-to-End Repair at Scale , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP).

[66]  Feng Tian,et al.  Critical analysis of vendor lock-in and its impact on cloud computing migration: a business perspective , 2016, Journal of Cloud Computing.