# sc::Optimize Class Reference

The Optimize class is an abstract base class for classes that find the extreme points of Function's. More...

`#include <opt.h>`

Inheritance diagram for sc::Optimize:

List of all members.

## Public Member Functions
| Optimize (StateIn &)
| Restore the state of a Function object.
| Optimize (const Ref< KeyVal > &)
| The KeyVal constructor reads the following information:
void | save_data_state (StateOut &)
| Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
virtual int | optimize ()
| Do the optimization.
void | set_checkpoint ()
| Set up for checkpointing.
void | set_checkpoint_file (const char *)
void | set_function (const Ref< Function > &)
| Set the function to be optimized.
void | set_max_iterations (int)
| Set the iteration limit.
virtual void | init ()
| Initialize the optimizer.
virtual int | update ()=0
| Take a step.
virtual void | apply_transform (const Ref< NonlinearTransform > &)
Ref< Function > | function () const
| Returns information about the Function being optimized.
Ref< SCMatrixKit > | matrixkit () const
RefSCDimension | dimension () const
## Protected Attributes
int | max_iterations_
int | n_iterations_
int | ckpt_
int | print_timings_
double | max_stepsize_
char * | ckpt_file
Ref< Function > | function_
Ref< Convergence > | conv_

## Detailed Description

The Optimize class is an abstract base class for classes that find the extreme points of Function's.

## Constructor & Destructor Documentation

sc::Optimize::Optimize | ( | const Ref< KeyVal > & |  | ) |

The KeyVal constructor reads the following information:

`checkpoint`

  If true, the optimization will be checkpointed. The default is false.

`checkpoint_file`

  The name of the checkpoint file. The name defaults to opt_ckpt.dat.

`max_iterations`

  The maximum number of interations. The default is 10.

`max_stepsize`

  The maximum stepsize. The default is 0.6.

`function`

  A Function object. There is no default.

`convergence`

  This can be either a floating point number or a Convergence object. If it is a floating point number then it is the convergence criterion. See the description Convergence class for the default.

## Member Function Documentation

virtual int sc::Optimize::optimize | ( |  | ) | `[virtual]`

Do the optimization.

Returns nonzero if the optimization is complete.

void sc::Optimize::save_data_state | ( | StateOut & |  | ) | `[virtual]`

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.

Reimplemented in sc::EFCOpt, sc::GDIISOpt, sc::NewtonOpt, sc::LineOpt, sc::QNewtonOpt, and sc::SteepestDescentOpt.

virtual int sc::Optimize::update | ( |  | ) | `[pure virtual]`

Take a step.

Returns 1 if the optimization has converged, otherwise 0.

Implemented in sc::EFCOpt, sc::GDIISOpt, sc::MCSearch, sc::NewtonOpt, sc::Backtrack, sc::QNewtonOpt, and sc::SteepestDescentOpt.

The documentation for this class was generated from the following file:

- opt.h