PIPS-NLP
Public Member Functions | Public Attributes | Protected Attributes | List of all members
Solver Class Referenceabstract

#include <Solver.h>

Inheritance diagram for Solver:
FilterIPMSolver FilterIPMStochSolver

Public Member Functions

 Solver ()
 
virtual ~Solver ()
 
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 ()
 
LinearSystem * getLinearSystem ()
 

Public Attributes

int iter
 

Protected Attributes

OoqpMonitor * itsMonitors
 
Status * status
 
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
 
LinearSystem * sys
 

Detailed Description

Abstract base class for QP solvers.

Constructor & Destructor Documentation

Solver::Solver ( )
Solver::~Solver ( )
virtual

Member Function Documentation

void Solver::addMonitor ( OoqpMonitor *  m)

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

double Solver::dataNorm ( )
inline
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 FilterIPMSolver.

void Solver::defaultStart ( ProblemFormulation *  formulation,
Variables *  iterate,
Data *  prob,
Residuals *  resid,
Variables *  step 
)
virtual

default starting point heuristic

Reimplemented in FilterIPMSolver.

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

Reimplemented in FilterIPMSolver, and FilterIPMStochSolver.

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

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

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

double Solver::finalStepLength ( Variables *  iterate,
Variables *  step 
)
virtual

Mehrotra's heuristic to calculate the final step length

double Solver::getArTol ( )
inline
LinearSystem* Solver::getLinearSystem ( )
inline

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

double Solver::getMuTol ( )
inline
void Solver::monitorSelf ( )

enables defaultMonitor as one of the monitors

void Solver::setArTol ( double  ar)
inline
void Solver::setMuTol ( double  m)
inline
virtual int Solver::solve ( Data *  prob,
Variables *  iterate,
Residuals *  resids 
)
pure virtual

implements the interior-point method for solving the QP

Implemented in FilterIPMSolver, and FilterIPMStochSolver.

void Solver::start ( ProblemFormulation *  formulation,
Variables *  iterate,
Data *  prob,
Residuals *  resid,
Variables *  step 
)
virtual

starting point heuristic

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
double Solver::dnorm
protected

norm of problem data

double Solver::gamma_a
protected
double Solver::gamma_f
protected

parameters associated with the step length heuristic

int Solver::iter

iteration counter

OoqpMonitor* Solver::itsMonitors
protected
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 tand the residual norms, divided by (1+norm of problem data) as (rnorm + gap) / dnorm

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

OoqpStartStrategy* Solver::startStrategy
protected
Status* Solver::status
protected
LinearSystem* Solver::sys
protected

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