Conference Proceeding

Haiku - a Scala combinator toolkit for semi-automated composition of metaheuristics



Attila Kocsis Z, Brownlee A, 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: 7th International Symposium, SSBSE 2015, Bergamo, Italy, September 5-7, 2015, Proceedings. Lecture Notes in Computer Science, 9275. 7th International Symposium, SSBSE 2015, Bergamo, Italy, 05.09.2015-07.09.2015. Cham, Switzerland: Springer, pp. 125-140.

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 describeHaiku, 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.

Title of seriesLecture Notes in Computer Science
Number in series9275
Publication date31/12/2015
Publication date online30/09/2015
Place of publicationCham, Switzerland
ISSN of series0302-9743
Conference7th International Symposium, SSBSE 2015
Conference locationBergamo, Italy

People (1)


Dr Sandy Brownlee

Dr Sandy Brownlee

Senior Lecturer in Computing Science, Computing Science and Mathematics - Division