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

Solver Class Reference
[QpSolvers]

#include <Solver.h>

Inheritance diagram for Solver:

GondzioSolver MehrotraSolver List of all members.

Public Methods

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 ()
LinearSystemgetLinearSystem ()

Public Attributes

int iter

Protected Attributes

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

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 Mon May 24 17:40:46 2004 for OOQP by doxygen1.2.18