M. Eisenberg, H.P. Pichler, A. Garmendia, M. Wimmer: Searching for Models with Hybrid AI Techniques, 3rd International Workshop on Conceptual Modeling Meets Artificial Intelligence (CMAI 2021), co-Located with the 40th International Conference on Conceptual Modeling (ER 2021), 18-21 October 2021, St. Johns, Canada, virtual. talk
The Model-Driven Engineering (MDE) [3] paradigm advocates for the use of models as an abstraction layer to represent complex systems. Model transformations are a central technique within MDE [10]. They either modify existing models or create new ones from scratch. Generally, these models should represent an optimal state of the system that has to be found within a large space of possible solutions. Model-driven optimization [1, 2, 4–6, 9] is a research area within MDE that proposes to automatically find optimal solutions which are constructed by a set of transformation rules given certain objectives. In order to search into large solution spaces, model-driven optimization approaches combine the expressiveness of models and domain-specific modeling languages, with the computational effectiveness of Artificial Intelligence (AI) methods to find the best model for a particular scenario. In this talk, we will present the framework Marrying Optimization and Model Transformations (MOMoT) which formulates the quest of finding the best models as an optimization problem [2, 8]. By this, MOMoT provides a general bridge between MDE and AI in which users may apply different AI techniques for the model search without requiring problem-specific encodings. MOMoT is built atop of the Eclipse Modeling Framework (EMF) using Henshin as a model transformation tool and MOEA for providing different evolutionary algorithms for performing the search process. In a recent work, we extended MOMoT with reinforcement learning approaches for performing the search process [7]. We will present some case studies that show the applicability of MOMoT to several scenarios such as the class responsibility assignment, software modularization, and object-oriented refactoring. In addition, we compare the outcome and performance of different AI techniques and also show some interesting combinations of the different techniques. Based on this evaluation, we will present some research lines and lessons learned that we found of interest for the community.