Skip to main content

Haiku - a Scala Combinator Toolkit for Semi-automated Composition of Metaheuristics

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9275))

Abstract

There is an emerging trend towards the automated design of metaheuristics at the software component level. In principle, metaheuristics have a relatively clean decomposition, where well-known frameworks such as ILS and EA are parametrised by variant components for acceptance, perturbation etc. Automated generation of these frameworks is not so simple in practice, since the coupling between components may be implementation specific. Compositionality is the ability to freely express a space of designs ‘bottom up’ in terms of elementary components: previous work in this area has used combinators, a modular and functional approach to componentisation arising from foundational Computer Science. In this article, we describe Haiku, a combinator tool-kit written in the Scala language, which builds upon previous work to further automate the process by automatically composing the external dependencies of components. We provide examples of use and give a case study in which a programatically-generated heuristic is applied to the Travelling Salesman Problem within an Evolutionary Strategies framework.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    for an introduction, see http://www.artima.com/scalazine/articles/steps.html.

  2. 2.

    We would like to consider Dec[A] to be a subtype of A. This is not expressible in Scala or any other mainstream language. Instead, we rely on Scala’s implicit conversions to ensure that

    figure p

    can be substituted for

    figure q

    .

  3. 3.

    the default implementation in the Apache Commons Math 3.3 library.

  4. 4.

    execution time: 117.7s, 162.7s, 80.8s, 57.8s and 59.4 s on an Intel Xeon 2.13 GHz with 4 GB RAM.

References

  1. Applegate, D.L., Bixby, R.E., Chvatal, V., Cook, W.J.: The Traveling Salesman Problem: A Computational Study (Princeton Series in Applied Mathematics). Princeton University Press, Princeton (2007)

    Google Scholar 

  2. Beyer, H.G., Schwefel, H.P.: Evolution strategies - a comprehensive introduction. Nat. Comput. 1(1), 3–52 (2002)

    Article  MathSciNet  Google Scholar 

  3. Burke, E.K., Gendreau, M., et al.: Hyper-heuristics: a survey of the state of the art. J. Oper. Res. Soc. 64, 1695–1724 (2013)

    Article  Google Scholar 

  4. Burke, E.K., Bykov, Y.: A late acceptance strategy in hill-climbing for examination timetabling problems. In: Proceedings PATAT (2008)

    Google Scholar 

  5. Burke, E.K., Hyde, M.R., Kendall, G., Ochoa, G., Ozcan, E., Woodward, J.R.: Exploring hyper-heuristic methodologies with genetic programming. In: Mumford, C.L., Jain, L.C. (eds.) Computational Intelligence. ISRL, vol. 1, pp. 177–201. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  6. Cambazard, H., Hebrard, E., OŚullivan, B., Papadopoulos, A.: Local search and constraint programming for the post enrolment-based course timetabling problem. Ann. Oper. Res. 194, 111–135 (2012)

    Article  MATH  Google Scholar 

  7. Choi, C.W., Henz, M., Ng, K.B.: A compositional framework for search. In: Pontelli, E. (ed.) Proceeding CICLOPS: Colloquium on Implementation of Constraint and LOgic Programming Systems, appeared as Technical report TR-CS-003/2001, New Mexico State University. Paphos, November 2001

    Google Scholar 

  8. Desouter, B.: Modular search heuristics in Scala. Master’s thesis, Ghent University, Belgium (2012). http://bdsouter.github.io/thesis/thesis.pdf

  9. Gaspero, L., Schaerf, A.: Easylocal++: an object-oriented framework for the flexible design of local-search algorithms. Softw. Pract. Exp. 33(8), 733–765 (2003)

    Article  Google Scholar 

  10. Dueck, G.: New optimization heuristics: the great deluge algorithm and the record-to-record travel. J. Comput. Phys. 104, 86–92 (1993)

    Article  MATH  Google Scholar 

  11. Durillo, J.J., Nebro, A.J.: jMetal: a Java framework for multi-objective optimization. Adv. Eng. Softw. 42, 760–771 (2011)

    Article  Google Scholar 

  12. Fink, A., Voß, S.: Hotframe: a heuristic optimization framework. In: Voß, S., Woodruff, D. (eds.) Optimization Software Class Libraries, pp. 81–154. OR/CS Interfaces Series, Kluwer Academic, Boston (2002)

    Google Scholar 

  13. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)

    Google Scholar 

  14. Glover, F., Laguna, M.: Tabu Search. Kluwer Academic, Norwell (1997)

    Book  MATH  Google Scholar 

  15. Hutton, G., Meijer, E.: Monadic parsing in haskell. J. Funct. Program. 8(4), 437–444 (1998)

    Article  MATH  Google Scholar 

  16. Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. Sci. 220(4598), 671–680 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  17. Leijen, D., Meijer, E.: Parsec: direct style monadic parser combinators for the real world. Technical reports UU-CS-2001-27, Dep. of Comp. Sc., Univ. Utrecht (2001)

    Google Scholar 

  18. Liu, S., Bryant, B., Mernik, M., Črepinšek, M., Zubair, M.: PPCea: A Domain-Specific Language for Programmable Parameter Control in Evolutionary Algorithms. INTECH Open Access (2011)

    Google Scholar 

  19. López-Ibáñez, M., Dubois-Lacoste, J., Stützle, T., Birattari, M.: The irace package, Iterated Race for Automatic Algorithm Configuration. Technical report TR/IRIDIA/2011-004, IRIDIA, Université Libre de Bruxelles, Belgium (2011)

    Google Scholar 

  20. Lukasiewycz, M., Glaß, M., Reimann, F., Teich, J.: Opt4J - A Modular Framework for Meta-heuristic Optimization. In: Proceedings of the GECCO, pp. 1723–1730. Dublin (2011)

    Google Scholar 

  21. Luke, S.: The ECJ Owner’s Manual (Oct 2010)

    Google Scholar 

  22. Marmion, M.-E., Mascia, F., López-Ibáñez, M., Stützle, T.: Automatic design of hybrid stochastic local search algorithms. In: Blesa, M.J., Blum, C., Festa, P., Roli, A., Sampels, M. (eds.) HM 2013. LNCS, vol. 7919, pp. 144–158. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  23. Marmion, M.É., Mascia, F., López-Ibáñez, M., Stützle, T.: Towards the automatic design of metaheuristics. In: Lau, H.C., Raidl, G., Hentenryck, P.V. (eds.) MIC 2013, Singapore, Aug 2013

    Google Scholar 

  24. McGillicuddy, D., Parkes, A.J., Nilsson, H.: An investigation into the use of Haskell for dynamic programming. Proceedings of the PATAT (2014)

    Google Scholar 

  25. Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)

    Article  Google Scholar 

  26. Moscato, P.: Memetic algorithms: a short introduction. In: New Ideas in Optimization, pp. 219–234. McGraw-Hill Ltd., Maidenhead (1999)

    Google Scholar 

  27. Nguyen, T.T., Yao, X.: Continuous dynamic constrained optimization: the challenges. IEEE T Evol. Comput. 16(6), 769–786 (2012)

    Article  MATH  Google Scholar 

  28. O’Sullivan, B., Goerzen, J., Stewart, D.: Real World Haskell. O’Reilly, North Sebastopol (2008)

    Google Scholar 

  29. Özcan, E., Bilgin, B., Korkmaz, E.E.: A comprehensive analysis of hyper-heuristics. Intell. Data Anal. 12(1), 3–23 (2008)

    Google Scholar 

  30. Perron, L.: Search procedures and parallelism in constraint programming. In: Jaffar, J. (ed.) Principles and Practice of Constraint Programming. LNCS, vol. 1713, pp. 346–360. Springer, Berlin Heidelberg (1999)

    Google Scholar 

  31. Reinelt, G.: TSPLIB - A T.S.P. library. Technical reports 250, Universität Augsburg, Institut für Mathematik, Augsburg (1990)

    Google Scholar 

  32. Samulowitz, H., Sabharwal, A., Schrijvers, T., Tack, G., Stuckey, P.: Automated design of search with composability (2013), 27th AAAI Conference on Artificial Intelligence

    Google Scholar 

  33. Schrijvers, T., Stuckey, P., Wadler, P.: Monadic constraint programming. J. Funct. Program. 19, 663–697 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  34. Schrijvers, T., Tack, G., Wuille, P., Samulowitz, H., Stuckey, P.: Search combinators. Constraints 18(2), 269–305 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  35. Senington, R., Duke, D.: Decomposing metaheuristic operations. In: Hinze, R. (ed.) IFL 2012. LNCS, vol. 8241, pp. 224–239. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  36. Senington, R.J.: Hybrid meta-heuristic frameworks: a functional approach. Ph.D. thesis, University of Leeds (2013)

    Google Scholar 

  37. Soria-Alcaraz, J.A., Ochoa, G., Swan, J., Carpio, M., Puga, H., Burke, E.K.: Effective learning hyper-heuristics for the course timetabling problem. Euro. J. Oper. Res. 238(1), 77–86 (2014)

    Article  MathSciNet  Google Scholar 

  38. Tang, K., Peng, F., Chen, G., Yao, X.: Population-based algorithm portfolios with automated constituent algorithms selection. Inform. Sci. 279, 94–104 (2014)

    Article  Google Scholar 

  39. Van Hentenryck, P., Michel, L.: Constraint-Based Local Search. MIT Press, Cambridge (2005)

    Google Scholar 

  40. Van Hentenryck, P., Michel, L.: Nondeterministic control for hybrid search. Constraints 11(4), 353–373 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  41. Wagner, S., Kronberger, G.: Algorithm and experiment design with heuristic lab: an open source optimization environment for research and education. In: Proceeding GECCO Companion, pp. 1287–1316. ACM, New York (2012)

    Google Scholar 

  42. Wan, Z.: Functional Reactive Programming for Real-Time Reactive Systems. Ph.D. thesis, Department of Computer Science, Yale University, December 2002

    Google Scholar 

  43. Woodward, J., Swan, J., Martin, S.: The ‘Composite’ design pattern in metaheuristics. In: Proceedings of the GECCO Companion pp. 1439–1444. ACM, New York (2014)

    Google Scholar 

  44. Woodward, J.R., Swan, J.: Template method hyper-heuristics. In: Proceedings of the GECCO Companion, pp. 1437–1438. ACM (2014)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zoltan A. Kocsis .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Kocsis, Z.A., Brownlee, A.E.I., Swan, J., Senington, R. (2015). Haiku - a Scala Combinator Toolkit for Semi-automated Composition of Metaheuristics. In: Barros, M., Labiche, Y. (eds) Search-Based Software Engineering. SSBSE 2015. Lecture Notes in Computer Science(), vol 9275. Springer, Cham. https://doi.org/10.1007/978-3-319-22183-0_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-22183-0_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-22182-3

  • Online ISBN: 978-3-319-22183-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics