About Designing an Observer Pattern-Based Architecture for a Multi-objective Metaheuristic Optimization Framework
- 322 Downloads
Multi-objective optimization with metaheuristics is an active and popular research field which is supported by the availability of software frameworks providing algorithms, benchmark problems, quality indicators and other related components. Most of these tools follow a monolithic architecture that frequently leads to a lack of flexibility when a user intends to add new features to the included algorithms. In this paper, we explore a different approach by designing a component-based architecture for a multi-objective optimization framework based on the observer pattern. In this architecture, most of the algorithmic components are observable entities that naturally allows to register a number of observers. This way, a metaheuristic is composed of a set of observable and observer elements, which can be easily extended without requiring to modify the algorithm. We have developed a prototype of this architecture and implemented the NSGA-II evolutionary algorithm on top of it as a case study. Our analysis confirms the improvement of flexibility using this architecture, pointing out the requirements it imposes and how performance is affected when adopting it.
KeywordsMulti-objective optimization Metaheuristics Software framework Software architecture Observer pattern
This work was partially funded by Grants, TIN2017-86049-R, TIN2014-58304 (Spanish Ministry of Education and Science) and P12-TIC-1519 (Plan Andaluz de Investigación, Desarrollo e Innovación). Cristóbal Barba-González was supported by Grant BES-2015-072209 (Spanish Ministry of Economy and Competitiveness). José García-Nieto is the recipient of a Post-Doctoral fellowship of “Captación de Talento para la Investigación” Plan Propio at Universidad de Málaga.
- 1.Bleuler, S., Laumanns, M., Thiele, L., Zitzler, E.: PISA – a platform and programming language independent interface for search algorithms. In: Fonseca, C.M., Fleming, P.J., Zitzler, E., Deb, K., Thiele, L. (eds.) Evolutionary Multi-Criterion Optimization (EMO 2003). Lecture Notes in Computer Science, pp. 494–508. Springer, Heidelberg (2003)CrossRefGoogle Scholar
- 7.Emmerich, M., Beume, N., Naujoks, B.: An EMO algorithm using the hypervolume measure as selection criterion. In: Coello, C.A., Hernández, A., Zitler, E. (eds.) Third International Conference on Evolutionary MultiCriterion Optimization, EMO 2005. LNCS, vol. 3410, pp. 62–76. Springer (2005)Google Scholar
- 8.Gamma, E., Helm, R., Johnson, R., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software, 1st edn. Addison-Wesley Professional, Reading (1994)Google Scholar
- 9.Garrett, A.: Inspyred. http://aarongarrett.github.io/inspyred/. Accessed 02 May 2018
- 10.Hadka, D.: MOEAFramework. http://moeaframework.org/. Accessed 02 May 2018
- 11.Hadka, D.: Platypus. http://platypus.readthedocs.io/en/latest/. Accessed 02 May 2018
- 14.Nebro, A.J., Durillo, J.J., Vergne, M.: Redesigning the jMetal multi-objective optimization framework. In: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO Companion 2015, pp. 1093–1100. ACM, New York (2015)Google Scholar