Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

Solver Class Reference
[QpSolvers]

#include <Solver.h>

Inheritance diagram for Solver:

GondzioSolver MehrotraSolver List of all members.

Public Member Functions

virtual void start (ProblemFormulation *formulation, Variables *iterate, Data *prob, Residuals *resid, Variables *step)
virtual void defaultStart (ProblemFormulation *formulation, Variables *iterate, Data *prob, Residuals *resid, Variables *step)
virtual void stevestart (ProblemFormulation *formulation, Variables *iterate, Data *prob, Residuals *resid, Variables *step)
virtual void dumbstart (ProblemFormulation *formulation, Variables *iterate, Data *prob, Residuals *resid, Variables *step)
virtual int solve (Data *prob, Variables *iterate, Residuals *resids)=0
virtual double finalStepLength (Variables *iterate, Variables *step)
virtual void doMonitor (Data *data, Variables *vars, Residuals *resids, double alpha, double sigma, int i, double mu, int stop_code, int level)
virtual void defaultMonitor (Data *data, Variables *vars, Residuals *resids, double alpha, double sigma, int i, double mu, int stop_code, int level)=0
virtual int doStatus (Data *data, Variables *vars, Residuals *resids, int i, double mu, int level)
virtual int defaultStatus (Data *data, Variables *vars, Residuals *resids, int i, double mu, int level)
void addMonitor (OoqpMonitor *)
void useStatus (Status *s)
void useStartStrategy (OoqpStartStrategy *s)
void monitorSelf ()
void setMuTol (double m)
double getMuTol ()
void setArTol (double ar)
double getArTol ()
double dataNorm ()
LinearSystemgetLinearSystem ()

Public Attributes

int iter

Protected Attributes

OoqpMonitoritsMonitors
Statusstatus
OoqpStartStrategy * startStrategy
double dnorm
double mutol
double artol
double gamma_f
double gamma_a
double phi
int maxit
double * mu_history
double * rnorm_history
double * phi_history
double * phi_min_history
LinearSystemsys

Detailed Description

Abstract base class for QP solvers.


Member Function Documentation

void Solver::addMonitor OoqpMonitor  ) 
 

method to add user-defined monitors to the monitor operations performed at each iteration

virtual void Solver::defaultMonitor Data data,
Variables vars,
Residuals resids,
double  alpha,
double  sigma,
int  i,
double  mu,
int  stop_code,
int  level
[pure virtual]
 

default monitor: prints out one line of information on each interior-point iteration

Implemented in GondzioSolver, and MehrotraSolver.

virtual void Solver::defaultStart ProblemFormulation formulation,
Variables iterate,
Data prob,
Residuals resid,
Variables step
[virtual]
 

default starting point heuristic

virtual int Solver::defaultStatus Data data,
Variables vars,
Residuals resids,
int  i,
double  mu,
int  level
[virtual]
 

default method for checking status. May be replaced by a user-defined method

virtual void Solver::doMonitor Data data,
Variables vars,
Residuals resids,
double  alpha,
double  sigma,
int  i,
double  mu,
int  stop_code,
int  level
[virtual]
 

perform monitor operation at each interior-point iteration

virtual int Solver::doStatus Data data,
Variables vars,
Residuals resids,
int  i,
double  mu,
int  level
[virtual]
 

this method called to test for convergence status at the end of each interior-point iteration

virtual void Solver::dumbstart ProblemFormulation formulation,
Variables iterate,
Data prob,
Residuals resid,
Variables step
[virtual]
 

alternative starting point heuristic: sets the "complementary" variables to a large positive value (based on the norm of the problem data) and the remaining variables to zero

virtual double Solver::finalStepLength Variables iterate,
Variables step
[virtual]
 

Mehrotra's heuristic to calculate the final step length

LinearSystem* Solver::getLinearSystem  )  [inline]
 

returns a pointed to the linear system object stored in this class

void Solver::monitorSelf  ) 
 

enables defaultMonitor as one of the monitors

virtual int Solver::solve Data prob,
Variables iterate,
Residuals resids
[pure virtual]
 

implements the interior-point method for solving the QP

Implemented in GondzioSolver, and MehrotraSolver.

virtual void Solver::start ProblemFormulation formulation,
Variables iterate,
Data prob,
Residuals resid,
Variables step
[virtual]
 

starting point heuristic

virtual void Solver::stevestart ProblemFormulation formulation,
Variables iterate,
Data prob,
Residuals resid,
Variables step
[virtual]
 

alternative starting point heuristic

void Solver::useStartStrategy OoqpStartStrategy *  s  )  [inline]
 

method to replace the defaultStatus method with a user-defined status checking method

void Solver::useStatus Status s  )  [inline]
 

method to replace the defaultStatus method with a user-defined status checking method


Member Data Documentation

double Solver::artol [protected]
 

termination parameters

double Solver::dnorm [protected]
 

norm of problem data

double Solver::gamma_a [protected]
 

parameters associated with the step length heuristic

double Solver::gamma_f [protected]
 

parameters associated with the step length heuristic

int Solver::iter
 

iteration counter

int Solver::maxit [protected]
 

maximum number of iterations allowed

double* Solver::mu_history [protected]
 

history of values of mu obtained on all iterations to date

double Solver::mutol [protected]
 

termination parameters

double Solver::phi [protected]
 

merit function, defined as the sum of the complementarity gap the residual norms, divided by (1+norm of problem data)

double* Solver::phi_history [protected]
 

history of values of phi obtained on all iterations to date

double* Solver::phi_min_history [protected]
 

the i-th entry of this array contains the minimum value of phi encountered by the algorithm on or before iteration i

double* Solver::rnorm_history [protected]
 

history of values of residual norm obtained on all iterations to date


The documentation for this class was generated from the following file:
Generated on Wed Mar 22 13:58:35 2006 for OOQP by doxygen 1.3.5