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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
for an introduction, see http://www.artima.com/scalazine/articles/steps.html.
- 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
can be substituted for
.
- 3.
the default implementation in the Apache Commons Math 3.3 library.
- 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
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)
Beyer, H.G., Schwefel, H.P.: Evolution strategies - a comprehensive introduction. Nat. Comput. 1(1), 3–52 (2002)
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)
Burke, E.K., Bykov, Y.: A late acceptance strategy in hill-climbing for examination timetabling problems. In: Proceedings PATAT (2008)
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)
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)
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
Desouter, B.: Modular search heuristics in Scala. Master’s thesis, Ghent University, Belgium (2012). http://bdsouter.github.io/thesis/thesis.pdf
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)
Dueck, G.: New optimization heuristics: the great deluge algorithm and the record-to-record travel. J. Comput. Phys. 104, 86–92 (1993)
Durillo, J.J., Nebro, A.J.: jMetal: a Java framework for multi-objective optimization. Adv. Eng. Softw. 42, 760–771 (2011)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)
Glover, F., Laguna, M.: Tabu Search. Kluwer Academic, Norwell (1997)
Hutton, G., Meijer, E.: Monadic parsing in haskell. J. Funct. Program. 8(4), 437–444 (1998)
Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. Sci. 220(4598), 671–680 (1983)
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)
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)
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)
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)
Luke, S.: The ECJ Owner’s Manual (Oct 2010)
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)
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
McGillicuddy, D., Parkes, A.J., Nilsson, H.: An investigation into the use of Haskell for dynamic programming. Proceedings of the PATAT (2014)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)
Moscato, P.: Memetic algorithms: a short introduction. In: New Ideas in Optimization, pp. 219–234. McGraw-Hill Ltd., Maidenhead (1999)
Nguyen, T.T., Yao, X.: Continuous dynamic constrained optimization: the challenges. IEEE T Evol. Comput. 16(6), 769–786 (2012)
O’Sullivan, B., Goerzen, J., Stewart, D.: Real World Haskell. O’Reilly, North Sebastopol (2008)
Özcan, E., Bilgin, B., Korkmaz, E.E.: A comprehensive analysis of hyper-heuristics. Intell. Data Anal. 12(1), 3–23 (2008)
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)
Reinelt, G.: TSPLIB - A T.S.P. library. Technical reports 250, Universität Augsburg, Institut für Mathematik, Augsburg (1990)
Samulowitz, H., Sabharwal, A., Schrijvers, T., Tack, G., Stuckey, P.: Automated design of search with composability (2013), 27th AAAI Conference on Artificial Intelligence
Schrijvers, T., Stuckey, P., Wadler, P.: Monadic constraint programming. J. Funct. Program. 19, 663–697 (2009)
Schrijvers, T., Tack, G., Wuille, P., Samulowitz, H., Stuckey, P.: Search combinators. Constraints 18(2), 269–305 (2013)
Senington, R., Duke, D.: Decomposing metaheuristic operations. In: Hinze, R. (ed.) IFL 2012. LNCS, vol. 8241, pp. 224–239. Springer, Heidelberg (2013)
Senington, R.J.: Hybrid meta-heuristic frameworks: a functional approach. Ph.D. thesis, University of Leeds (2013)
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)
Tang, K., Peng, F., Chen, G., Yao, X.: Population-based algorithm portfolios with automated constituent algorithms selection. Inform. Sci. 279, 94–104 (2014)
Van Hentenryck, P., Michel, L.: Constraint-Based Local Search. MIT Press, Cambridge (2005)
Van Hentenryck, P., Michel, L.: Nondeterministic control for hybrid search. Constraints 11(4), 353–373 (2006)
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)
Wan, Z.: Functional Reactive Programming for Real-Time Reactive Systems. Ph.D. thesis, Department of Computer Science, Yale University, December 2002
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)
Woodward, J.R., Swan, J.: Template method hyper-heuristics. In: Proceedings of the GECCO Companion, pp. 1437–1438. ACM (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)