ROL
ROL Documentation (Development Version)
rol.png
Rapid Optimization Library

Introduction

ROL, the Rapid Optimization Library, is a Trilinos package for matrix-free optimization.

Overview

Current release of ROL includes the following features:

Quick Start

The Rosenbrock example (rol/example/rosenbrock/example_01.cpp) demonstrates the use of ROL. It amounts to sixsteps:

Step 1: Implement linear algebra / vector interface.

— or try one of the provided implementations, such as ROL::StdVector in rol/vector.

Step 2: Implement objective function interface.

— or try one of the provided functions, such as ROL::Objective_Rosenbrock in rol/zoo.

Step 3: Choose optimization step.

— with ParameterList settings in the variable parlist.

Step 4: Set status test.

— with gradient tolerance {gtol}, step tolerance {stol} and the maximum number of iterations {maxit}.

ROL::StatusTest<RealT> status(gtol, stol, maxit);

Step 5: Define an algorithm.

— based on the status test and the step.

ROL::DefaultAlgorithm<RealT> algo(step,status);

Step 6: Run algorithm.

— starting from the initial iterate {x}, applied to objective function {obj}.

algo.run(x, obj);

Done!

Development Plans

Constrained optimization, optimization under uncertainty, etc.