Advertisement

Visualising the Search Landscape of the Triangle Program

  • William B. Langdon
  • Nadarajen Veerapen
  • Gabriela Ochoa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10196)

Abstract

High order mutation analysis of a software engineering benchmark, including schema and local optima networks, suggests program improvements may not be as hard to find as is often assumed. (1) Bit-wise genetic building blocks are not deceptive and can lead to all global optima. (2) There are many neutral networks, plateaux and local optima, nevertheless in most cases near the human written C source code there are hill climbing routes including neutral moves to solutions.

Keywords

Genetic improvement Genetic algorithms Genetic programming Software engineering Heuristic methods Test equivalent higher order mutants Fitness landscape Local search 

References

  1. 1.
    Langdon, W.B.: Genetically improved software. In: Gandomi, A.H., et al. (eds.) Handbook of Genetic Programming Applications, pp. 181–220. Springer, New York (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2015_hbgpa.html
  2. 2.
    Langdon, W.B.: Genetic improvement of software for multiple objectives. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 12–28. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-22183-0_2. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Langdon_2015_SSBSE.html
  3. 3.
    Petke, J.: Preface to the special issue on genetic improvement. Genet. Program. Evolvable Mach. (2017). Editorial Note, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Petke_2016_GPEM.html
  4. 4.
    Harman, M., Jones, B.F.: Search based software engineering. Inf. Softw. Technol. 43(14), 833–839 (2001). http://dx.doi.org/10.1016/S0950-5849(01)00189-6 CrossRefGoogle Scholar
  5. 5.
    Koza, J.R.: Genetic Programming: On the Programming of Computers by Natural Selection. MIT Press, Cambridge (1992). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/koza_book.html
  6. 6.
    Banzhaf, W., Nordin, P., Keller, R.E., Francone, F.D.: Genetic Programming: An Introduction On the Automatic Evolution of Computer Programs and its Applications. Morgan Kaufmann, San Francisco (1998). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/banzhaf_1997_book.html
  7. 7.
    Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk (2008). (With contributions by Koza, J.R.), http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/poli08_fieldguide.html
  8. 8.
    Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: Wang, J. (ed.) 2008 IEEE World Congress on Computational Intelligence, Hong Kong, pp. 162–168. IEEE (2008). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Arcuri_2008_cec.html
  9. 9.
    Weimer, W., Nguyen, T., Le Goues, C., Forrest, S.: Automatically finding patches using genetic programming. In: Fickas, S. (ed.) 2009 International Conference on Software Engineering (ICSE), Vancouver, pp. 364–374 (2009). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Weimer_2009_ICES.html
  10. 10.
    Forrest, S., Nguyen, T., Weimer, W., Le Goues, C.: A genetic programming approach to automated software repair. In: Raidl, G., et al. (eds.) GECCO, Montreal, pp. 947–954. ACM (2009). Best paper, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/DBLP_conf_gecco_ForrestNWG09.html
  11. 11.
    Weimer, W., Forrest, S., Le Goues, C., Nguyen, T.: Automatic program repair with evolutionary computation. Commun. ACM. 53(5), 109–116 (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Weimer_2010_ACM.html
  12. 12.
    Le Goues, C., Dewey-Vogt, M., Forrest, S., Weimer, W.: A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each. In: Glinz, M. (ed.) 34th International Conference on Software Engineering (ICSE 2012), Zurich, pp. 3–13 (2012). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/LeGoues_2012_ICSE.html
  13. 13.
    Le Goues, C., Nguyen, T., Forrest, S., Weimer, W.: GenProg: a generic method for automatic software repair. IEEE Trans. Softw. Eng. 38(1), 54–72 (2012). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/DBLP_journals_tse_GouesNFW12.html
  14. 14.
    Le Goues, C., Forrest, S., Weimer, W.: Current challenges in automatic software repair. Softw. Qual. J. 21, 421–443 (2013). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/legouesWFSQJO2013.html
  15. 15.
    Ke, Y., Stolee, K.T., Le Goues, C., Brun, Y.: Repairing programs with semantic code search. In: Grunske, L., Whalen, M. (eds.) 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), Lincoln, Nebraska, USA (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Ke_2015_ASE.html
  16. 16.
    Kocsis, Z.A., Drake, J.H., Carson, D., Swan, J.: Automatic improvement of Apache Spark queries using semantics-preserving program reduction. In: Petke, J., et al. (eds.) 2016 Workshop on Genetic Improvement, Denver, pp. 1141–1146. ACM (2016). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Kocsis_2016_GI.html
  17. 17.
    Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement and 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.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014). doi: 10.1007/978-3-662-44303-3_12. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Petke_2014_EuroGP.html
  18. 18.
    Marginean, A., Barr, E.T., Harman, M., Jia, Y.: Automated transplantation of call graph and layout features into kate. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 262–268. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-22183-0_21. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Marginean_2015_SSBSE.html
  19. 19.
    Barr, E.T., Harman, M., Jia, Y., Marginean, A., Petke, J.: Automated software transplantation. In: Xie, T., Young, M. (eds.) International Symposium on Software Testing and Analysis, ISSTA 2015, Baltimore, Maryland, USA, pp. 257–269. ACM (2015). ACM SIGSOFT Distinguished Paper Award, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Barr_2015_ISSTA.html
  20. 20.
    Harman, M., Jia, Y., Langdon, W.B.: Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system. In: Goues, C., Yoo, S. (eds.) SSBSE 2014. LNCS, vol. 8636, pp. 247–252. Springer, Heidelberg (2014). doi: 10.1007/978-3-319-09940-8_20. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Harman_2014_Babel.html
  21. 21.
    Jia, Y., Harman, M., Langdon, W.B., Marginean, A.: Grow and serve: growing django citation services using SBSE. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 269–275. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-22183-0_22. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/jia_2015_gsgp.html
  22. 22.
    Langdon, W.B., White, D.R., Harman, M., Jia, Y., Petke, J.: API-constrained genetic improvement. In: Sarro, F., Deb, K. (eds.) SSBSE 2016. LNCS, vol. 9962, pp. 224–230. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-47106-8_16. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Langdon_2016_SSBSE.html
  23. 23.
    Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Trans. Evol. Comput. 19(1), 118–135 (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Langdon_2013_ieeeTEC.html
  24. 24.
    Langdon, W.B., Lam, B.Y.H., Modat, M., Petke, J., Harman, M.: Genetic improvement of GPU software. Genet. Program. Evolvable Mach. (2017). Online first, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Langdon_2016_GPEM.html
  25. 25.
    White, D.R., Arcuri, A., Clark, J.A.: Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15(4), 515–538 (2011). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/White_2011_ieeeTEC.html
  26. 26.
    Bruce, B.R., Petke, J., Harman, M.: Reducing energy consumption using genetic improvement. In: Silva, S., et al. (eds.) GECCO, Madrid, Spain, ACM, pp. 1327–1334 ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/bruce2015reducing.html
  27. 27.
    Bruce, B.R.: Energy optimisation via genetic improvement a SBSE technique for a new era in software development. In: Langdon, W.B., et al. (eds.) 2015 Workshop on Genetic Improvement, Madrid, pp. 819–820. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Bruce_2015_gi.html
  28. 28.
    Burles, N., Bowles, E., Brownlee, A.E.I., Kocsis, Z.A., Swan, J., Veerapen, N.: Object-oriented genetic improvement for improved energy consumption in Google Guava. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 255–261. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-22183-0_20. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Burles_2015_SSBSE.html
  29. 29.
    Burles, N., Bowles, E., Bruce, B.R., Srivisut, K.: Specialising Guava’s cache to reduce energy consumption. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 276–281. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-22183-0_23. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Burles_2015_SSBSEa.html
  30. 30.
    Bokhari, M., Wagner, M.: Optimising energy consumption heuristically on android mobile phones. In: Petke, J., et al. (eds.) Genetic Improvement 2016 Workshop, Denver, pp. 1139–1140. ACM (2016). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Bokhari_2016_GI.html
  31. 31.
    Haraldsson, S.O., Woodward, J.R.: Genetic improvement of energy usage is only as reliable as the measurements are accurate. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 831–832. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Haraldsson_2015_gi.html
  32. 32.
    Langdon, W.B., Petke, J., Bruce, B.R.: Optimising quantisation noise in energy measurement. In: Handl, J., Hart, E., Lewis, P.R., López-Ibáñez, M., Ochoa, G., Paechter, B. (eds.) PPSN 2016. LNCS, vol. 9921, pp. 249–259. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-45823-6_23. http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Langdon_2016_PPSN.html
  33. 33.
    Schulte, E., Dorn, J., Harding, S., Forrest, S., Weimer, W.: Post-compiler software optimization for reducing energy. In: Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2014, Salt Lake City, Utah, USA, pp. 639–652. ACM (2014). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/schulte2014optimization.html
  34. 34.
    Wagner, M.: Speeding up the proof strategy in formal software verification. In: Petke, J., et al. (eds.) Genetic Improvement 2016 Workshop, Denver, pp. 1137–1138 ACM (2016). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Wagner_2016_GI.html
  35. 35.
    Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: Silva, S., et al. (eds.) GECCO, Madrid, pp. 1375–1382. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Wu_2015_GECCO.html
  36. 36.
    Walsh, P., Ryan, C.: Automatic conversion of programs from serial to parallel using genetic programming - the paragen system. In: D’Hollander, E.H., et al. (eds.) Proceedings of ParCo 1995, Volume 11 of Advances in Parallel Computing, Gent, Belgium, pp. 415–422. Elsevier (1995). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/ryan_1995_paragen.html
  37. 37.
    Williams, K.P.: Evolutionary algorithms for automatic parallelization. Ph.D. thesis, Department of Computer Science, University of Reading, Whiteknights Campus, Reading (1998). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/williams98.html
  38. 38.
    Williams, K.P., Williams, S.A.: Genetic compilers: a new technique for automatic parallelisation. In: 2nd European School of Parallel Programming Environments (ESPPE 1996), L’Alpe d’Hoez, France, pp. 27–30 (1996). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.49.3499
  39. 39.
    Langdon, W.B., Harman, M.: Evolving a CUDA kernel from an nVidia template. In: Sobrevilla, P., (ed.) 2010 IEEE World Congress on Computational Intelligence, Barcelona, pp. 2376–2383. IEEE (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2010_cigpu.html
  40. 40.
    White, D.R., Clark, J., Jacob, J., Poulding, S.M.: Searching for resource-efficient programs: low-power pseudorandom number generators. In: Keijzer, M. et al., (eds.) GECCO, Atlanta, GA, USA, pp. 1775–1782. ACM (2008). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/White2_2008_gecco.html
  41. 41.
    White, D.R.: Genetic programming for low-resource systems. Ph.D. thesis, Department of Computer Science, University of York, UK (2009). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/White_thesis.html
  42. 42.
    Yeboah-Antwi, K., Baudry, B.: Embedding adaptivity in software systems using the ECSELR framework. In: Langdon, W.B., et al. (eds.): Genetic Improvement 2015 Workshop, Madrid, pp. 839–844. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Yeboah-Antwi_2015_gi.html
  43. 43.
    Mrazek, V., Vasicek, Z., Sekanina, L.: Evolutionary approximation of software for embedded systems: median function. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 795–801. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Mrazek_2015_gi.html
  44. 44.
    Burles, N., Swan, J., Bowles, E., Brownlee, A.E.I., Kocsis, Z.A., Veerapen, N.: Embedded dynamic improvement. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 831–832. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Swan_2015_gi.html
  45. 45.
    Vasicek, Z., Mrazek, V.: Trading between quality and non-functional properties of median filter in embedded systems. Genet. Program. Evolvable Mach. (2017). Online first, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Vasicek_2016_GPEMa.html
  46. 46.
    Petke, J.: Genetic improvement for code obfuscation. In: Petke, J., et al. (eds.) Genetic Improvement 2016 Workshop, Denver, pp. 1135–1136. ACM (2016). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Petke_2016_GI.html
  47. 47.
    Harman, M., Jia, Y., Langdon, W.B., Petke, J., Moghadam, I.H., Yoo, S., Wu, F.: Genetic improvement for adaptive software engineering. In: Engels, G. (ed.) 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2014), Hyderabad, India, pp. 1–4. ACM (2014). Keynote, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Harman_2014_seams.html
  48. 48.
    Landsborough, J., Harding, S., Fugate, S.: Removing the kitchen sink from software. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 833–838. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Landsborough_2015_gi.html
  49. 49.
    Harman, M., Jia, Y., Krinke, J., Langdon, W.B., Petke, J., Zhang, Y.: Search based software engineering for software product line engineering: a survey and directions for future work. In: 18th International Software Product Line, SPLC 2014, Florence, Italy, pp. 5–18 (2014). Invited keynote, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Harman_2014_SPLC.html
  50. 50.
    Lopez-Herrejon, R.E., Linsbauer, L., Assuncao, W.K.G., Fischer, S., Vergilio, S.R., Egyed, A.: Genetic improvement for software product lines: an overview and a roadmap. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 823–830. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Lopez-Herrejon_2015_gi.html
  51. 51.
    Langdon, W.B., Petke, J., White, D.R.: Genetic improvement 2015 chairs’ welcome. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 791–792. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2015_gi.html
  52. 52.
    Langdon, W.B., Harman, M.: Fitness landscape of the triangle program. In: Veerapen, N., Ochoa, G. (eds.) PPSN-2016 Workshop on Landscape-Aware Heuristic Search, Edinburgh (2016). Also available as UCL RN/16/05, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2016_PPSNlandscape.html
  53. 53.
    Langdon, W.B., Petke, J.: Software is not fragile. In: Parrend, P., et al. (eds.) CS-DC 2015, pp. 203–211. Springer, Cham (2015). Invited talk, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2015_csdc.html
  54. 54.
    Jia, Y., Harman, M.: An analysis and survey of the development of mutation testing. IEEE Trans. Softw. Eng. 37(5), 649–678 (2011)CrossRefGoogle Scholar
  55. 55.
    Langdon, W.B., Harman, M., Jia, Y.: Efficient multi-objective higher order mutation testing with genetic programming. J. Syst. Softw. 83(12), 2416–2430 (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2010_jss.html
  56. 56.
    Cody-Kenny, B., Lopez, E.G., Barrett, S.: locoGP: improving performance by genetic programming Java source code. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 811–818. ACM (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Cody-Kenny_2015_gi.html
  57. 57.
    Orlov, M., Sipper, M.: Flight of the FINCH through the Java wilderness. IEEE Trans. Evol. Comput. 15(2), 166–182 (2011). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Orlov_2011_ieeeTEC.html
  58. 58.
    Schulte, E., Forrest, S., Weimer, W.: Automated program repair through the evolution of assembly code. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, Antwerp, pp. 13–316. ACM (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/schulte10__autom_progr_repair_evolut_assem_code.html
  59. 59.
    Schulte, E., Fry, Z.P., Fast, E., Weimer, W., Forrest, S.: Software mutational robustness. Genet. Program. Evolvable Mach. 15(3), 281–312 (2014). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Schulte_2014_GPEM.html
  60. 60.
    Schulte, E., Weimer, W., Forrest, S.: Repairing COTS router firmware without access to source code or test suites: a case study in evolutionary software repair. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, Madrid, pp. 847–854. ACM (2015). Best Paper, http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Schulte_2015_gi.html
  61. 61.
    Wright, S.: The roles of mutation, inbreeding, crossbreeding and selection in evolution. In: Proceedings of the Sixth Annual Congress of Genetics, pp. 356–366 (1932). http://www.blackwellpublishing.com/ridley/classictexts/wright.pdf
  62. 62.
    Reidys, C.M., Stadler, P.F.: Combinatorial landscapes. SIAM Rev. 44(1), 3–54 (2002). http://dx.doi.org/10.1137/S0036144501395952 MathSciNetCrossRefMATHGoogle Scholar
  63. 63.
    Holland, J.H.: Genetic algorithms and the optimal allocation of trials. SIAM J. Comput. 2, 88–105 (1973). http://dx.doi.org/10.1137/0202009 MathSciNetCrossRefMATHGoogle Scholar
  64. 64.
    Goldberg, D.E.: Genetic Algorithms in Search Optimization and Machine Learning. Addison-Wesley, Boston (1989)MATHGoogle Scholar
  65. 65.
    Daolio, F., Tomassini, M., Verel, S., Ochoa, G.: Communities of minima in local optima networks of combinatorial spaces. Phys. A: Stat. Mech. Appl. 390(9), 1684–1694 (2011). http://dx.doi.org/10.1016/j.physa.2011.01.005 CrossRefGoogle Scholar
  66. 66.
    Ochoa, G., Verel, S., Daolio, F., Tomassini, M.: Local optima networks: a new model of combinatorial fitness landscapes. In: Richter, H., Engelbrecht, A. (eds.) Recent Advances in the Theory and Application of Fitness Landscapes, pp. 233–262. Springer, Berlin (2014). http://dx.doi.org/10.1007/978-3-642-41888-4_9 CrossRefGoogle Scholar
  67. 67.
    Ochoa, G., Veerapen, N.: Additional dimensions to the study of funnels in combinatorial landscapes. In: GECCO, pp. 373–380. ACM (2016) http://dx.doi.org/10.1145/2908812.2908820

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • William B. Langdon
    • 1
  • Nadarajen Veerapen
    • 2
  • Gabriela Ochoa
    • 2
  1. 1.CREST, Computer ScienceUCLLondonUK
  2. 2.Computing Science and MathematicsUniversity of StirlingStirlingUK

Personalised recommendations