Templar – A Framework for Template-Method Hyper-Heuristics

  • Jerry Swan
  • Nathan Burles
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9025)


In this work we introduce Templar, a software framework for customising algorithms via the generative technique of template-method hyper-heuristics. We first discuss the need for such an approach, presenting Quicksort as an example. We provide a functional definition of template-method hyper-heuristics, describe how this is implemented by Templar, and show how Templar may be invoked using simple client-code. Finally, we describe experiments using Templar to define a ‘hyper-quicksort’ with the aim of reducing power consumption—the results demonstrate that the generated algorithm has significantly improved performance on the test set.


Genetic programming Generative hyper-heuristics Template method Energy profiling Reduced power consumption Quicksort 


  1. 1.
    Arcuri, A., Briand, L.: A hitchhiker’s guide to statistical tests for assessing randomized algorithms in software engineering. Softw. Test. Verif. Reliab. 24(3), 219–250 (2014)CrossRefGoogle Scholar
  2. 2.
    Bekaroo, G., Bokhoree, C., Pattinson, C.: Power measurement of computers: analysis of the effectiveness of the software based approach. Int. J. Emerg. Technol. Adv. Eng. 4(5), 755–762 (2014)Google Scholar
  3. 3.
    Brooks, D., Tiwari, V., Martonosi, M.: Wattch: a framework for architectural-level power analysis and optimizations. In: 27th Annual International Symposium on Computer Architecture, ISCA 2000, pp. 83–94. ACM (2000)Google Scholar
  4. 4.
    Burke, E.K., Hyde, M.R., Kendall, G., Ochoa, G., Özcan, E., Woodward, J.R.: A classification of hyper-heuristic approaches. In: Gendreau, M., Potvin, J.Y. (eds.) Handbook of Metaheuristics. International Series in Operations Research and Management Science, vol. 146, pp. 449–468. Springer, New York (2010)CrossRefGoogle Scholar
  5. 5.
    Burke, E.K., Hyde, M.R., Kendall, G., Woodward, J.R.: Automating the packing heuristic design process with genetic programming. Evol. Comput. 20(1), 63–89 (2012)CrossRefGoogle Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)Google Scholar
  7. 7.
    Hoare, C.A.R.: Algorithm 64: Quicksort. Commun. ACM 4(7), 321 (1961)CrossRefGoogle Scholar
  8. 8.
    Hoos, H.H.: Computer-aided design of high-performance algorithms. Technical report TR-2008-16, University of British Columbia, Department of Computer Science (2008)Google Scholar
  9. 9.
    Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)zbMATHGoogle Scholar
  10. 10.
    López-Ibáñez, M., Dubois-Lacoste, J., Stützle, T., Birattari, M.: The irace package, iterated racing for automatic algorithm configuration. Technical report TR/IRIDIA/2011-004, IRIDIA, Université Libre de Bruxelles, Belgium (2011)Google Scholar
  11. 11.
    Lucas, S.: Exploiting reflection in object oriented genetic programming. In: Keijzer, M., O’Reilly, U.-M., Lucas, S., Costa, E., Soule, T. (eds.) EuroGP 2004. LNCS, vol. 3003, pp. 369–378. Springer, Heidelberg (2004) CrossRefGoogle Scholar
  12. 12.
    Luke, S.: The ECJ Owner’s Manual, zeroth edn., online version 0.2 edn., October 2010.
  13. 13.
    Mascia, F., López-Ibáñez, M., Dubois-Lacoste, J., Stützle, T.: Grammar-based generation of stochastic local search heuristics through automatic algorithm configuration tools. Comput. Oper. Res. 51, 190–199 (2014)CrossRefMathSciNetGoogle Scholar
  14. 14.
    McIlroy, M.D.: A killer adversary for quicksort. Softw. Pract. Exp. 29(4), 341–344 (1999)CrossRefGoogle Scholar
  15. 15.
    Musser, D.R.: Introspective sorting and selection algorithms. Softw. Pract. Exp. 27(8), 983–993 (1997)CrossRefGoogle Scholar
  16. 16.
    Noureddine, A., Bourdon, A., Rouvoy, R., Seinturier, L.: Runtime monitoring of software energy hotspots. In: 27th IEEE/ACM International Conference on Automated Software Engineering 2012, pp. 160–169. IEEE (2012)Google Scholar
  17. 17.
    Otero, F., Castle, T., Johnson, C.: EpochX: genetic programming in Java with statistics and event monitoring. In: GECCO 2012, pp. 93–100. ACM, New York (2012)Google Scholar
  18. 18.
    Rothlauf, F., Oetzel, M.: On the locality of grammatical evolution. In: Collet, P., Tomassini, M., Ebner, M., Gustafson, S., Ekárt, A. (eds.) EuroGP 2006. LNCS, vol. 3905, pp. 320–330. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  19. 19.
    Ryan, C., Collins, J.J., O’Neill, M.: Grammatical evolution: evolving programs for an arbitrary language. In: Banzhaf, W., Poli, R., Schoenauer, M., Fogarty, T.C. (eds.) EuroGP 1998. LNCS, vol. 1391, pp. 83–96. Springer, Heidelberg (1998) CrossRefGoogle Scholar
  20. 20.
    Spector, L., Harrington, K., Helmuth, T.: Tag-based modularity in tree-based genetic programming. In: GECCO 2012, pp. 815–822. ACM, New York (2012)Google Scholar
  21. 21.
    Spector, L., Klein, J., Keijzer, M.: The Push3 execution stack and the evolution of control. In: GECCO 2005, pp. 1689–1696. ACM, New York (2005)Google Scholar
  22. 22.
    Vargha, A., Delaney, H.D.: A critique and improvement of the CL common language effect size statistics of McGraw and Wong. J. Educ. Behav. Stat. 25(2), 101–132 (2000)Google Scholar
  23. 23.
    White, D.R.: Genetic programming for low-resource systems. Ph.D. thesis, University of York (2009)Google Scholar
  24. 24.
    Woodward, J.R., Swan, J.: Why classifying search algorithms is essential. In: International Conference on Progress in Informatics and Computing (2010)Google Scholar
  25. 25.
    Woodward, J.R., Swan, J.: Automatically designing selection heuristics. In: GECCO 2011, pp. 583–590. ACM, New York (2011)Google Scholar
  26. 26.
    Woodward, J.R., Swan, J.: The automatic generation of mutation operators for genetic algorithms. In: GECCO 2012, pp. 67–74. ACM, New York (2012)Google Scholar
  27. 27.
    Woodward, J.R., Swan, J.: Template method hyper-heuristics. In: GECCO 2014, pp. 1437–1438. ACM, New York (2014)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of YorkYorkUK

Personalised recommendations