DistributedDesignOptimizer: A Modular Python Framework for Setup, Execution and Processing Distributed Design Optimization

  • Ellmaier, Sebastian (Leiden University and BMW Group)
  • de Wit, Albert Jan (Royal Netherlands Aerospace Centre (NLR))
  • Vogt, Marc-Eric (BMW Group)
  • Bäck, Thomas (Leiden University)
  • Kononova, Anna (Leiden University)

Please login to view abstract download link

Multidisciplinary Design Optimization aims to enable the application of optimization algorithms to complex engineered systems, ranging from aerospace and automotive to robotics and microelectronics. Such multi-component systems typically consist of coupled subsystems, each characterised by its own design variables, constraints and objectives. Without adequate coordination of these couplings, subsystems may be optimal in isolation while the overall system remains suboptimal or even infeasible. Popular monolithic approaches (e.g. Individual Feasible and Multidisciplinary Feasible) are implemented in sophisticated software frameworks such as openMDAO or GEMSEO. However, these approaches are only applicable to problems where the analysis of a design choice is distributed among coupled components. Crucially, the decision making (i.e. choosing the value of design variables) is centralized in a single optimization algorithm. Truly distributed optimization algorithms address this limitation by allowing subsystems to retain control over their local design variables. Promising approaches include Primal-Dual methods and a recent Sensitivity-based Distributed Programming method. However, no general-purpose software framework currently exists that supports intuitive distributed problem definition, provides a range of suitable distributed algorithms, is modular and extensible, and enables both execution and post-processing in local or cluster-based environments. This work introduces DistributedDesignOptimizer, an open-source, modular Python framework designed to fill this gap. It provides features to setup, execute and process primal-dual distributed optimization algorithms. Its object-oriented programming structure allows developers to implement and test their novel approaches on a set of standardized benchmark problems. Engineers can easily define their distributed optimization problem, select from a set of already implemented algorithms and execute the distributed optimization algorithm. Furthermore, the framework allows to process and analyze the algorithm's behavior in a graphical user interface, helping both developers and engineers gain insights.