You are here

pyOpt: a Python-Based Object-Oriented Framework for Nonlinear Constrained Optimization

TitlepyOpt: a Python-Based Object-Oriented Framework for Nonlinear Constrained Optimization
Publication TypeJournal Articles
Year of Publication2012
AuthorsPerez, RE, Jansen, PW, Martins, JRRA
JournalStructural and Multidisciplinary Optimization
Keywordsaeroelastic tailoring, aerostructural optimization, constrainted optimization, Optimization algorithms, Python
We present pyOpt, an object-oriented framework for formulating and solving nonlinear constrained timization optimization problems in an efficient, reusable and portable manner. The framework uses object-oriented concepts, such as class inheritance and operator overloading, to maintain a distinct separation between the problem formulation and the optimization approach used to solve the problem. This creates a common interface in a flexible environment where both practitioners and developers alike can solve their optimization problems or develop and benchmark their own optimization algorithms. The framework is developed in the Python programming language, which allows for easy integration of optimization software that is programmed in Fortran, C, C++, and other languages. A variety of optimization algorithms are integrated in pyOpt and are accessible through the common interface. We solve a number of problems of increasing complexity to demonstrate how a given problem is formulated using this framework, and how the framework can be used to benchmark the various optimization algorithms.

pyOpt has been superseeded by pyOptSparse (available on GitHub). This paper is still the one to cite when using pyOptSparse.

Citation KeyPerez:2011:A