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:

  1. the built-in Problem() class,

  2. Computational System Design Language (CSDL), or

  3. 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_lib

Modopt as a library

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.

modopt_lib

Modopt as a development environment