Abstract
Many problems that we face nowadays can be expressed as optimization problems. Finding the best solution for real-world instances of such problems is hard or even infeasible. Metaheuristic algorithms have been used for decades to guide the search for satisfactory solutions in hard optimization problems at an affordable cost. However, despite its many benefits, the application of metaheuristics requires overcoming numerous obstacles. First, the implementation of efficient metaheuristic programs is a complex and error-prone process. Second, since there is no analytical method to choose a suitable metaheuristic program for a given problem, experiments must be performed. Besides this, experiments are usually performed ad-hoc, with generic tools and no clear guidelines, introducing threats to validity, and making them hard to automate and reproduce. Our aim is to reduce the cost of applying metaheuristics for solving optimization problems. To that purpose, a set of tools to support the selection, configuration and evaluation of metaheuristic-based applications is presented.
Keywords
Introduction
Solving optimization problems is an important task which appears in virtually all areas of human activity [3]. Metaheuristics are reusable algorithm schemes that can be tailored for each problem. Metaheuristics have proven to be a handy tool to solve hard optimization problems, providing a balance between the quality of solutions found and the execution time required by the optimization process. Some metaheuristics proposed in literature are

Metaheuristic problem solving life-cycle. (Colors are visible in the online version of the article;
The quality of the solutions provided by a MPS application depends on the an appropriate decision making in the stages of selection, tailoring and tuning. However, current theoretical development does not provide analytical methods to make those decisions in general [2]. Therefore, we follow an empirical approach [1,2].
The effort required for running the MPS life-cycle depends strongly on tooling support. In the context of metaheuristic optimization experiments those tools are mainly statistical analysis packages and design of experiment systems. In order to reduce the implementation burden, an extensive number of software frameworks, denoted as Metaheuristic Optimization Frameworks (MOFs), have been created. However, the support provided for the different metaheuristic algorithms is uneven, and its use involves overcoming a steep learning curve. Choosing the appropriate MOF is an important decision for which not much aid has been provided.
We focus on supporting the process of optimization problem solving with metaheuristics when experimentation is required and MOFs are used. Additionally, we aim at enabling the creation of automatically reproducible and easy to replicate experiments with high internal validity.
The main contribution is a set of support tools to reduce the cost of using metaheuristics to solve optimization problems. Such contribution comprises of:
A
Two
A set of
A
A Metaheuristic Optimization Software EcoSystem (MOSES) that provides the design of a global architecture for supporting the automation of the experimentation process in the context of metaheuristic optimization. This architecture is defined in terms of service contracts, and software components that act as providers and consumers of those contracts.
A detailed description of the contributions can be found in [4].
Validation
Those contributions were validated by developing MPS-based applications for solving two relevant software engineering problems: (i)
Footnotes
Acknowledgements
This work was partially supported by the EU Commission (FEDER), the Spanish and Andalusian R&D&I grants SETI (TIN2009-07366), TAPAS (TIN2012-32273), COPAS (P12-TIC-1867) and THEOS (TIC-5906).
