Abstract
We use continuous optimisation and manual code changes to evolve up to 1024 Newton-Raphson numerical values embedded in an open source GNU C library glibc square root sqrt to implement a double precision cube root routine cbrt, binary logarithm log2 and reciprocal square root function for C in seconds. The GI inverted square root x -1/2 is far more accurate than Quake’s InvSqrt, Quare root. GI shows potential for automatically creating mobile or low resource mote smart dust bespoke custom mathematical libraries with new functionality.
- B. J. Alexander and M. J. Gratton. 2009. Constructing an optimisation phase using grammatical evolution. In 2009 IEEE Congress on Evolutionary Computation, Andy Tyrrell (Ed.). IEEE Computational Intelligence Society, IEEE Press, Trondheim, Norway, 1209–1216. http://dx.doi.org/10.1109/CEC.2009.4983083 Google ScholarCross Ref
- Saswat Anand, Edmund K. Burke, Tsong Yueh Chen, John A. Clark, Myra B. Cohen, Wolfgang Grieskamp, Mark Harman, Mary Jean Harrold, and Phil McMinn. 2013. An orchestrated survey of methodologies for automated software test case generation. Journal of Systems and Software 86, 8 (Aug. 2013), 1978–2001. http://dx.doi.org/10.1016/j.jss.2013.02.061 Google ScholarDigital Library
- Mirela Andronescu, Anne Condon, Holger H. Hoos, David H. Mathews, and Kevin P. Murphy. 2007. Efficient parameter estimation for RNA secondary structure prediction. Bioinformatics 23, 13 (2007), i19–i28. http://dx.doi.org/10.1093/bioinformatics/btm223 Google ScholarDigital Library
- Earl T. Barr, Mark Harman, Yue Jia, Alexandru Marginean, and Justyna Petke. 2015. Automated software transplantation. In International Symposium on Software Testing and Analysis, ISSTA 2015, Tao Xie and Michal Young (Eds.). ACM, Baltimore, MD, 257–269. http://dx.doi.org/10.1145/2771783.2771796 Google ScholarDigital Library
- Mahmoud A. Bokhari, Bobby R. Bruce, Brad Alexander, and Markus Wagner. 2017. Deep parameter optimisation on Android smartphones for energy minimisation—A tale of woe and a proof-of-concept. In GI-2017, Justyna Petke, David R. White, W. B. Langdon, and Westley Weimer (Eds.). ACM, Berlin, Germany, 1501–1508. http://dx.doi.org/10.1145/3067695.3082519 Google ScholarDigital Library
- Bobby R. Bruce. 2015. Energy optimisation via genetic improvement a SBSE technique for a new era in software development. In Genetic Improvement 2015 Workshop, William B. Langdon, Justyna Petke, and David R. White (Eds.). ACM, Madrid, Spain, 819–820. http://dx.doi.org/10.1145/2739482.2768420 Google ScholarDigital Library
- Bobby R. Bruce. 2018. The Blind Software Engineer: Improving the Non-Functional Properties of Software by Means of Genetic Improvement. Ph.D. Dissertation. Computer Science, University College, London, UK. http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/bruce_bobby_r_thesis.pdfGoogle Scholar
- Bobby R. Bruce, Jonathan M. Aitken, and Justyna Petke. 2016. Deep parameter optimisation for face detection using the Viola-Jones algorithm in OpenCV. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 9962. Springer, 238–243. http://dx.doi.org/10.1007/978-3-319-47106-8_18.Google ScholarCross Ref
- Nathan Burles, Edward Bowles, Alexander E. I. Brownlee, Zoltan A. Kocsis, Jerry Swan, and Nadarajen Veerapen. 2015. Object-oriented genetic improvement for improved energy consumption in Google Guava. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol 9275. Springer, 255–261. http://dx.doi.org/10.1007/978-3-319-22183-0_20Google ScholarCross Ref
- Simon Butler. 2015. Analysing Java Identifier Names. Ph.D. Dissertation. Open University, UK. http://oro.open.ac.uk/46653/Google Scholar
- L. Cao, H. Sihler, U. Platt, and E. Gutheil. 2014. Numerical analysis of the chemical kinetic mechanisms of ozone depletion and halogen release in the polar troposphere. Atmospheric Chemistry and Physics 14, 7 (2014), 3771–3787. http://dx.doi.org/10.5194/acp-14-3771-2014Google ScholarCross Ref
- Milan Ceska, Jiri Matyas, Vojtech Mrazek, Lukas Sekanina, Zdenek Vasicek, and Tomas Vojnar. 2017. Approximating complex arithmetic circuits with formal error guarantees: 32-bit multipliers accomplished. In Proceedings of the 36th IEEE/ACM International Conference on Computer Aided Design (ICCAD), Iris Bahar and Sri Parameswaran (Eds.). Institute of Electrical and Electronics Engineers, Irvine, CA, 416–423. http://dx.doi.org/10.1109/ICCAD.2017.8203807 Google ScholarDigital Library
- David Peter Alfred Corney. 2002. Intelligent Analysis of Small Data Sets for Food Design. Ph.D. Dissertation. University College, London. https://discovery.ucl.ac.uk/id/eprint/10099629.Google Scholar
- Fabricio Gomes de Freitas and Jerffeson Teixeira de Souza. 2011. Ten years of search based software engineering: A bibliometric analysis. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 6956. Springer, 18–32. http://dx.doi.org/10.1007/978-3-642-23716-4_5 Google ScholarCross Ref
- Sayed Mehdi Hejazi Dehaghani and Nafiseh Hajrahimi. 2013. Which factors affect software projects maintenance cost more?Acta Informatica Medica 21, 1 (March 2013), 63–66. http://dx.doi.org/10.5455/AIM.2012.21.63-66Google ScholarCross Ref
- E. W. Dijkstra. 1969. Testing shows the presence, not the absence of bugs. In Software Engineering Techniques: Report of a Conference Sponsored by the NATO Science Committee, Robert M. McClure (Ed.). Scientific Affairs Division, NATO, Brussels, Belgium, 16. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1969.PDF.Google Scholar
- Nikolaus Hansen and Andreas Ostermeier. 2001. Completely derandomized self-adaptation in evolution strategies. Evolutionary Computation 9, 2 (Summer 2001), 159–195. http://dx.doi.org/10.1162/106365601750190398 Google ScholarDigital Library
- Mark Harman, Yue Jia, and William B. Langdon. 2014. Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 8636. Springer, 247–252. http://dx.doi.org/10.1007/978-3-319-09940-8_20Winner SSBSE 2014 Challange Track.Google ScholarCross Ref
- Mark Harman and Bryan F. Jones. 2001. Search based software engineering. Information and Software Technology 43, 14 (Dec. 2001), 833–839. http://dx.doi.org/10.1016/S0950-5849(01)00189-6Google ScholarCross Ref
- Yue Jia, Mark Harman, William B. Langdon, and Alexandru Marginean. 2015. Grow and serve: Growing Django citation services using SBSE. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 9275. Springer, 269–275. http://dx.doi.org/10.1007/978-3-319-22183-0_22Google ScholarCross Ref
- John R. Koza, Forrest H. Bennett III, Jason Lohn, Frank Dunlap, Martin A. Keane, and David Andre. 1997. Automated synthesis of computational circuits using genetic programming. In Proceedings of the 1997 IEEE International Conference on Evolutionary Computation. IEEE, Los Alamitos, CA, 447–452. http://dx.doi.org/10.1109/ICEC.1997.592353Google ScholarCross Ref
- Oliver Krauss and W. B. Langdon. 2020. Automatically evolving lookup tables for function approximation. In Genetic Programming. Lecture Notes in Computer Science, Vol. 12101. Springer, 84–100. http://dx.doi.org/10.1007/978-3-030-44094-7_6Google ScholarDigital Library
- W. B. Langdon. 2012. Genetic improvement of programs. In 18th International Conference on Soft Computing, MENDEL 2012 (2nd ed.), Radomil Matousek (Ed.). Brno University of Technology, Brno, Czech Republic. http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/Langdon_2012_mendel.pdf.Google Scholar
- William B. Langdon. 2014. Genetic improvement of programs. In 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC’14), Franz Winkler, Viorel Negru, Tetsuo Ida, Tudor Jebelean, Dana Petcu, Stephen Watt, and Daniela Zaharie (Eds.). IEEE, Timisoara, Romania, 14–19. http://dx.doi.org/10.1109/SYNASC.2014.10Google ScholarCross Ref
- W. B. Langdon. 2015. Genetic improvement of software for multiple objectives. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 9275. Springer, 12–28. http://dx.doi.org/10.1007/978-3-319-22183-0_2Google ScholarCross Ref
- William B. Langdon. 2015. Genetically improved software. In Handbook of Genetic Programming Applications, Amir H. Gandomi, Amir H. Alavi, and Conor Ryan (Eds.). Springer, 181–220. http://dx.doi.org/10.1007/978-3-319-20883-1_8Google ScholarCross Ref
- W. B. Langdon. 2018. Evolving Square Root into Binary Logarithm. Technical Report RN/18/05. University College, London, London, UK. http://www.cs.ucl.ac.uk/fileadmin/UCL-CS/research/Research_Notes/RN_18_05.pdf.Google Scholar
- W. B. Langdon. 2019. Genetic improvement of data gives double precision invsqrt. In 7th edition of GI @ GECCO 2019, Brad Alexander, Saemundur O. Haraldsson, Markus Wagner, and John R. Woodward (Eds.). ACM, Prague, Czech Republic, 1709–1714. http://dx.doi.org/10.1145/3319619.3326800 Google ScholarDigital Library
- W. B. Langdon and M. Harman. 2010. Evolving a CUDA kernel from an nVidia template. In 2010 IEEE World Congress on Computational Intelligence, Pilar Sobrevilla (Ed.). IEEE, Barcelona, Spain, 2376–2383. http://dx.doi.org/10.1109/CEC.2010.5585922Google ScholarCross Ref
- William B. Langdon and Mark Harman. 2015. Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. In Genetic Improvement 2015 Workshop, William B. Langdon, Justyna Petke, and David R. White (Eds.). ACM, Madrid, Spain, 805–810. http://dx.doi.org/10.1145/2739482.2768418 Google ScholarDigital Library
- William B. Langdon and Mark Harman. 2015. Optimising existing software with genetic programming. IEEE Transactions on Evolutionary Computation 19, 1 (Feb. 2015), 118–135. http://dx.doi.org/10.1109/TEVC.2013.2281544Google ScholarDigital Library
- William B. Langdon and Oliver Krauss. 2020. Evolving sqrt into 1/x via software data maintenance. In 9th edition of GI @ GECCO 2020, Brad Alexander, Alexander (Sandy) Brownlee, Saemundur O. Haraldsson, Markus Wagner, and John R. Woodward (Eds.). ACM, New York, NY, 1928–1936. http://dx.doi.org/10.1145/3377929.3398110Google ScholarDigital Library
- William B. Langdon, Brian Yee Hong Lam, Marc Modat, Justyna Petke, and Mark Harman. 2017. Genetic improvement of GPU software. Genetic Programming and Evolvable Machines 18, 1 (March 2017), 5–44. http://dx.doi.org/10.1007/s10710-016-9273-9 Google ScholarDigital Library
- William B. Langdon and Justyna Petke. 2015. Software is not fragile. In Complex Systems Digital Campus E-Conference, CS-DC’15 (Proceedings in Complexity), Pierre Parrend, Paul Bourgine, and Pierre Collet (Eds.). Springer, 203–211. http://dx.doi.org/10.1007/978-3-319-45901-1_24Google ScholarCross Ref
- William B. Langdon and Justyna Petke. 2018. Evolving better software parameters. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 11036. Springer, 363–369. http://dx.doi.org/10.1007/978-3-319-99241-9_22Google ScholarCross Ref
- W. B. Langdon and Justyna Petke. 2019. Genetic improvement of data gives binary logarithm from sqrt. In GECCO’19: Proceedings of the Genetic and Evolutionary Computation Conference Companion, Richard Allmendinger et al. (Eds.). ACM, Prague, Czech Republic, 413–414. http://dx.doi.org/10.1145/3319619.3321954 Google ScholarDigital Library
- William B. Langdon, Justyna Petke, and Bobby R. Bruce. 2016. Optimising quantisation noise in energy measurement. In Parallel Problem Solving from Nature. Lecture Notes in Computer Science, Vol. 9921. Springer, 249–259. http://dx.doi.org/10.1007/978-3-319-45823-6_23Google ScholarCross Ref
- William B. Langdon, Justyna Petke, and Ronny Lorenz. 2018. Evolving better RNAfold structure prediction. In Genetic Programming. Lecture Notes in Computer Science, Vol. 10781. Springer, 220–236. 7 http://dx.doi.org/10.1007/978-3-319-77553-1_14Google ScholarCross Ref
- Ronny Lorenz, Stephan H. Bernhart, Christian Höner zu Siederdissen, Hakim Tafer, Christoph Flamm, Peter F. Stadler, and Ivo L. Hofacker. 2011. ViennaRNA Package 2.0. Algorithms for Molecular Biology 6, 1 (2011), Article 26. http://dx.doi.org/10.1186/1748-7188-6-26Google ScholarCross Ref
- Jie Lu, Hongyang Jia, Naveen Verma, and Niraj K. Jha. 2018. Genetic programming for energy-efficient and energy-scalable approximate feature computation in embedded inference systems. IEEE Transactions on Computers 67, 2 (Feb. 2018), 222–236. http://dx.doi.org/10.1109/TC.2017.2738642Google ScholarCross Ref
- Yanxin Lu, Swarat Chaudhuri, Chris Jermaine, and David Melski. 2018. Program splicing. In 40th International Conference on Software Engineering, Marsha Chechik and Mark Harman (Eds.). ACM, Gothenburg, Sweden, 338–349. http://dx.doi.org/10.1145/3180155.3180190 Google ScholarDigital Library
- Alexandru Marginean, Earl T. Barr, Mark Harman, and Yue Jia. 2015. Automated transplantation of call graph and layout features into Kate. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 9275. Springer, 262–268. http://dx.doi.org/10.1007/978-3-319-22183-0_21Google ScholarCross Ref
- P. W. Markstein. 1990. Computation of elementary functions on the IBM RISC System/6000 processor. IBM Journal of Research and Development 34, 1 (Jan. 1990), 111–119. http://dx.doi.org/10.1147/rd.341.0111 Google ScholarDigital Library
- Petr Marounek. 2012. Simplified approach to effort estimation in software maintenance. Journal of Systems Integration 3, 3 (2012), 51–63.Google Scholar
- Roger J. Martin and Wilma M. Osborne. 1983. Guidance on Software Maintenance. NBS Special Publication 500-106. National Bureau of Standards, Department of Commerce, Washington DC. http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nbsspecialpublication500-106.pdf.Google Scholar
- Michael Mohan and Des Greer. 2018. A survey of search-based refactoring for software maintenance. Journal of Software Engineering Research and Development 6, 3 (7 Feb. 2018), Article 3. http://dx.doi.org/10.1186/s40411-018-0046-4Google ScholarCross Ref
- Michael Orlov and Moshe Sipper. 2011. Flight of the FINCH through the Java Wilderness. IEEE Transactions on Evolutionary Computation 15, 2 (April 2011), 166–182. http://dx.doi.org/10.1109/TEVC.2010.2052622 Google ScholarDigital Library
- Justyna Petke. 2015. Constraints: The future of combinatorial interaction testing. In Proceedings of the 2015 IEEE/ACM 8th International Workshop on Search-Based Software Testing. 17–18. http://dx.doi.org/doi:10.1109/SBST.2015.11 Google ScholarDigital Library
- Justyna Petke. 2017. Preface to the special issue on genetic improvement. Genetic Programming and Evolvable Machines 18, 1 (March 2017), 3–4. http://dx.doi.org/10.1007/s10710-016-9280-x Google ScholarDigital Library
- Justyna Petke, Saemundur O. Haraldsson, Mark Harman, William B. Langdon, David R. White, and John R. Woodward. 2018. Genetic improvement of software: A comprehensive survey. IEEE Transactions on Evolutionary Computation 22, 3 (June 2018), 415–432. http://dx.doi.org/doi:10.1109/TEVC.2017.2693219Google ScholarCross Ref
- Justyna Petke, Mark Harman, William B. Langdon, and Westley Weimer. 2014. Using genetic improvement and code transplants to specialise a C++ program to a problem class. In Genetic Programming. Lecture Notes in Computer Science, Vol. 8599. Springer, 137–149. http://dx.doi.org/10.1007/978-3-662-44303-3_12 Google ScholarDigital Library
- Eric Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, and Westley Weimer. 2014. Post-compiler software optimization for reducing energy. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14). ACM, New York, NY, 639–652. http://dx.doi.org/10.1145/2541940.2541980 Google ScholarDigital Library
- Eric Schulte, Stephanie Forrest, and Westley Weimer. 2010. Automated program repair through the evolution of assembly code. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. ACM, New York, NY, 313–316. http://dx.doi.org/10.1145/1858996.1859059 Google ScholarDigital Library
- Eric Schulte, Westley Weimer, and Stephanie Forrest. 2015. Repairing COTS router firmware without access to source code or test suites: A case study in evolutionary software repair. In Genetic Improvement 2015 Workshop, William B. Langdon, Justyna Petke, and David R. White (Eds.). ACM, Madrid, Spain, 847–854. http://dx.doi.org/10.1145/2739482.2768427 Google ScholarDigital Library
- Madura A. Shelton, Niels Samwel, Lejla Batina, Francesco Regazzoni, Markus Wagner, and Yuval Yarom. 2019. Rosita: Towards automatic elimination of power-analysis leakage in ciphers. arXiv:1912.05183.Google Scholar
- Jeongju Sohn, Seongmin Lee, and Shin Yoo. 2016. Amortised deep parameter optimisation of GPGPU work group size for OpenCV. In Search Based Software Engineering. Lecture Notes in Computer Science, Vol. 9962. Springer, 211–217. http://dx.doi.org/10.1007/978-3-319-47106-8_14Google ScholarCross Ref
- Hideyuki Takagi. 2001. Interactive evolutionary computation: Fusion of the capabilities of EC optimization and human evaluation. Proceedings of the IEEE 89, 9 (Sept. 2001), 1275–1296. http://dx.doi.org/10.1109/5.949485Google ScholarCross Ref
- Roberto Tiella and Mariano Ceccato. 2017. Automatic generation of opaque constants based on the K-clique problem for resilient data obfuscation. In Proceedings of the 2017 IEEE 24th International Conference on Software Analysis, Evolution, and Reengineering (SANER’17). IEEE, Los Alamitos, CA, 182–192. http://dx.doi.org/10.1109/SANER.2017.7884620Google ScholarCross Ref
- Zdenek Vasicek and Vojtech Mrazek. 2017. Trading between quality and non-functional properties of median filter in embedded systems. Genetic Programming and Evolvable Machines 18, 1 (March 2017), 45–82. http://dx.doi.org/10.1007/s10710-016-9275-7 Google ScholarDigital Library
- David R. White. 2017. GI in no time. In GI-2017, Justyna Petke, David R. White, W. B. Langdon, and Westley Weimer (Eds.). ACM, Berlin, Germany, 1549–1550. http://dx.doi.org/doi:10.1145/3067695.3082515 Google ScholarDigital Library
- David R. White, Andrea Arcuri, and John A. Clark. 2011. Evolutionary improvement of programs. IEEE Transactions on Evolutionary Computation 15, 4 (Aug. 2011), 515–538. http://dx.doi.org/10.1109/TEVC.2010.2083669 Google ScholarDigital Library
- David R. White, John Clark, Jeremy Jacob, and Simon M. Poulding. 2008. Searching for resource-efficient programs: Low-power pseudorandom number generators. In GECCO’08: Proceedings of the 10th Annual Conference on Genetic and Evolutionary Computation, Maarten Keijzer et al. (Eds.). ACM, Atlanta, GA, 1775–1782. http://dx.doi.org/10.1145/1389095.1389437 Google ScholarDigital Library
- David R. White, Leonid Joffe, Edward Bowles, and Jerry Swan. 2017. Deep parameter tuning of concurrent divide and conquer algorithms in Akka. In Applications of Evolutionary Computation. Lecture Notes in Computer Science, Vol. 10200. Springer, 35–48. http://dx.doi.org/10.1007/978-3-319-55792-2_3Google ScholarCross Ref
- Michal Wiglasz and Lukas Sekanina. 2018. Cooperative coevolutionary approximation in HOG-based human detection embedded system. In Proceedings of the 2018 IEEE Symposium Series on Computational Intelligence (SSCI’18). IEEE, Los Alamitos, CA, 1313–1320. http://dx.doi.org/10.1109/SSCI.2018.8628910Google ScholarCross Ref
- John R. Woodward, Colin G. Johnson, and Alexander E. I. Brownlee. 2016. Connecting automatic parameter tuning, genetic programming as a hyper-heuristic, and genetic improvement programming. In GECCO’16 Companion: Proceedings of the Companion Publication of the 2016 Annual Conference on Genetic and Evolutionary Computation. ACM, Denver, CO, 1357–1358. http://dx.doi.org/10.1145/2908961.2931728 Google ScholarDigital Library
- Fan Wu. 2017. Mutation-Based Genetic Improvement of Software. Ph.D. Dissertation. Department of Computer Science, University College, London, UK. http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/Thesis_Fan_v2.1.pdf.Google Scholar
- Fan Wu, Westley Weimer, Mark Harman, Yue Jia, and Jens Krinke. 2015. Deep parameter optimisation. In GECCO’15: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, Sara Silva et al. (Eds.). ACM, Madrid, Spain, 1375–1382. http://dx.doi.org/10.1145/2739480.2754648 Google ScholarDigital Library
Index Terms
Genetic Improvement of Data for Maths Functions
Recommendations
Genetic improvement of data for maths functions
GECCO '21: Proceedings of the Genetic and Evolutionary Computation Conference CompanionGenetic Improvement (GI) can be used to give better quality software and to create new functionality.
We show that GI can evolve the PowerPC open source GNU C runtime library square root function into cube root, binary logarithm log2 and reciprocal ...
Genetic improvement of data gives double precision invsqrt
GECCO '19: Proceedings of the Genetic and Evolutionary Computation Conference CompanionCMA-ES plus manual code changes rapidly transforms 512 Newton-Raphson start points from a GNU C library table driven version of sqrt into a double precision reciprocal square root function. The GI x-1/2 is far more accurate than Quake's InvSqrt, Quare ...
Genetic improvement of data gives binary logarithm from sqrt
GECCO '19: Proceedings of the Genetic and Evolutionary Computation Conference CompanionAutomated search in the form of the Covariance Matrix Adaptation Evolution Strategy (CMA-ES), plus manual code changes, transforms 512 Newton-Raphson floating point start numbers from an open source GNU C library, glibc, table driven square root ...
Comments