Python framework enables coordinated optimization of complex systems

DistributedDesignOptimizer: A modular Python framework for Setup, Execution and Processing of Distributed Design Optimization

Mathematical Software

Summary

Optimizing complex engineered systems is hard because different parts have their own goals that might conflict. The authors studied how to safely coordinate such parts so the whole system works better, not just each part. They created DistributedDesignOptimizer, a Python tool that helps define, run, and analyze these coordinated optimization tasks in a modular and flexible way. This tool supports running calculations for different parts in separate locations and makes it easier to try advanced coordination methods.

What this means in practice

  • For aerospace engineers: Coordinate optimization tasks across multiple subsystems in aircraft design, allowing each team to keep control of its variables while improving overall system performance.
  • For robotics developers: Manage and optimize coupled design problems for robots that have many interacting components using a flexible and extensible Python platform.

Authors

Sebastian Ellmaier, Albert J. de Wit, Akilesh Raveendran, Marc-Eric Vogt, Thomas Bäck, Anna V. Kononova

Abstract

Multidisciplinary Design Optimization (MDO) enables 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 characterized 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. Distributed design optimization coordinates coupled subsystem optimization problems while allowing them to retain control over their local design variables. Although promising coordination methods exist, their application is hindered by the lack of a comprehensive software framework which supports intuitive problem definition, provides suitable distributed coordination algorithms, is modular and extensible, enables interactive (post-)processing, and supports the distributed computation of subsystem executions. This work derives requirements for such software, assesses existing frameworks against them, and introduces DistributedDesignOptimizer, an open-source Python framework to fill this gap.