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

Public Attributes

int iter
 

Protected Attributes

OoqpMonitoritsMonitors
 
Statusstatus
 
OoqpStartStrategystartStrategy
 
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.

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: