Welcome to modopt documentation!
ModOpt is a modular development environment and library for optimization algorithms written fully in Python. ModOpt is primarily developed for easy and fast development of gradient-based optimization algorithms through modular construction of algorithms, and testing with built-in problems and interfaced test-suites. Since modOpt breaks down algorithms into self-contained components such as line-searches and Hessian approximations, students can develop new or modified versions of existing algorithms by replacing or modifying these components. It also enables students to perform comparative studies of their versions with a standard algorithm.
Modopt as a library of optimization algorithms
Modopt allows optimization practitioners to define the computational models that provide the objective, constraints, and the derivatives for their optimization problems using one of the following three options:
the built-in
Problem()
class,Computational System Design Language (CSDL), or
OpenMDAO modeling framework
Once the model is defined, it needs to be optimized. The users can pick an optimizer of their choice from the library of optimization algorithms available in modOpt.
Modopt as a development environment for optimization algorithms
There are a number of transparent modules available within the package
which users can leverage to develop new or modified optimization algorithms.
Custom optimization algorithms can be developed in a modular fashion
using the Optimizer()
class in modOpt.
Benchmarking against built-in standard algorithms or interfaced external optimizers
are also possible.