About Designing an Observer Pattern-Based Architecture for a Multi-objective Metaheuristic Optimization Framework - Benítez-Hidalgo, Antonio; Nebro-Urbaneja, Antonio Jesús; Durillo, Juan J.; García-Nieto, José Manuel; López-Camacho, Esteban; Barba-González, Cristóbal; Aldana-Montes, José Francisco (My University, 2018)
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.
Keywords: Informática; Multi-objective optimization; Metaheuristics; Software framework; Software architecture; Observer pattern