API-Constrained Genetic Improvement

  • William B. LangdonEmail author
  • David R. White
  • Mark Harman
  • Yue Jia
  • Justyna Petke
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9962)


ACGI respects the Application Programming Interface whilst using genetic programming to optimise the implementation of the API. It reduces the scope for improvement but it may smooth the path to GI acceptance because the programmer’s code remains unaffected; only library code is modified. We applied ACGI to C++ software for the state-of-the-art OpenCV SEEDS superPixels image segmentation algorithm, obtaining a speed-up of up to 13.2 % (\(\pm 1.3\,\%\)) to the $50 K Challenge winner announced at CVPR 2015.



We would like to thank Bobby R. Bruce. This work is part supported by the GGGP and DAASE [4] projects.


  1. 1.
    Bruce, B.R., Petke, J., Harman, M.: Reducing energy consumption using genetic improvement. In: GECCO, pp. 1327–1334 (2015).
  2. 2.
    Cruse, P., Foord, R.: A five-year prospective study of 23,649 surgical wounds. Arch. Surg. 107(2), 206–210 (1973)CrossRefGoogle Scholar
  3. 3.
    Fry, Z.P., Landau, B., Weimer, W.: A human study of patch maintainability. In: ISSTA, pp. 177–187 (2012).
  4. 4.
    Harman, M., Burke, E., Clark, J.A., Yao, X.: Dynamic adaptive search based software engineering (keynote paper). In: ESEM, pp. 1–8 (2012)Google Scholar
  5. 5.
    Harman, M., Jia, Y., Langdon, W.B.: Babel pidgin: SBSE can grow and graft entirely new functionality into a real world system. In: Le Goues, C., Yoo, S. (eds.) SSBSE 2014. LNCS, vol. 8636, pp. 247–252. Springer, Heidelberg (2014). Google Scholar
  6. 6.
    Harman, M., Langdon, W.B., Jia, Y., White, D.R., Arcuri, A., Clark, J.A.: The GISMOE challenge: constructing the Pareto program surface using genetic programming to find better programs (keynote paper). In: ASE, pp. 1–14 (2012).
  7. 7.
    Kiczales, G.: Aspect oriented programming. ACM SIGPLAN Not. 32(10), 162 (1997). Table of contents includes this invited talkCrossRefGoogle Scholar
  8. 8.
    Langdon, W.B.: Genetically improved software. In: Gandomi, A.H., et al. (eds.) Handbook of Genetic Programming Applications, pp. 181–220. Springer, Switzerland (2015). CrossRefGoogle Scholar
  9. 9.
    Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE TEVC 19(1), 118–135 (2015). Google Scholar
  10. 10.
    Le Goues, C., Forrest, S., Weimer, W.: Current challenges in automatic software repair. Softw. Qual. J. 21(3), 421–443 (2013). CrossRefGoogle Scholar
  11. 11.
    Orlov, M., Sipper, M.: Flight of the FINCH through the Java wilderness. IEEE TEVC 15(2), 166–182 (2011). Google Scholar
  12. 12.
    Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement & code transplants to specialise a C++ program to a problem class. In: Nicolau, M., Krawiec, K., Heywood, M.I., Castelli, M., García-Sánchez, P., Merelo, J.J., Rivas Santos, V.M., Sim, K. (eds.) Genetic Programming. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014). Google Scholar
  13. 13.
    Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming (2008).
  14. 14.
    Schulte, E., Dorn, J., Harding, S., Forrest, S., Weimer, W.: Post-compiler software optimization for reducing energy. In: ASPLOS, pp. 639–652 (2014).
  15. 15.
    Sitthi-amorn, P., Modly, N., Weimer, W., Lawrence, J.: Genetic programming for shader simplification. ACM TOG 30(6), 152:1–152:11 (2011). CrossRefGoogle Scholar
  16. 16.
    Souza, J., Maia, C.L., de Freitas, F.G., Coutinho, D.P.: The human competitiveness of search based software engineering. IEEE SSBSE, 143–152 (2010).
  17. 17.
    Swan, J., et al.: Gen-O-Fix: An embeddable framework for dynamic adaptive genetic improvement programming. Technical report CSM-195, University of Stirling (2014)Google Scholar
  18. 18.
    Van den Bergh, M., Boix, X., Roig, G., de Capitani, B., Van Gool, L.: SEEDS: superpixels extracted via energy-driven sampling. In: Fitzgibbon, A., Lazebnik, S., Perona, P., Sato, Y., Schmid, C. (eds.) ECCV 2012, Part VII. LNCS, vol. 7578, pp. 13–26. Springer, Heidelberg (2012). CrossRefGoogle Scholar
  19. 19.
    White, D.R., Arcuri, A., Clark, J.A.: Evolutionary improvement of programs. IEEE TEVC 15(4), 515–538 (2011). Google Scholar
  20. 20.
    Wu, F., Harman, M., Jia, Y., Krinke, J., Weimer, W.: Deep parameter optimisation. In: GECCO, pp. 1375–1382 (2015).

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • William B. Langdon
    • 1
    Email author
  • David R. White
    • 1
  • Mark Harman
    • 1
  • Yue Jia
    • 1
  • Justyna Petke
    • 1
  1. 1.CRESTUniversity College LondonLondonUK

Personalised recommendations