PIPS-NLP
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FilterIPMSolver Class Reference

#include <FilterIPMSolver.h>

Inheritance diagram for FilterIPMSolver:
Solver FilterIPMStochSolver

Public Member Functions

 FilterIPMSolver (ProblemFormulation *of, Data *prob)
 
 ~FilterIPMSolver ()
 
virtual int solve (Data *prob, Variables *iterate, Residuals *resid)
 
- Public Member Functions inherited from Solver
 Solver ()
 
virtual ~Solver ()
 
virtual void start (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 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 int doStatus (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 ()
 

Protected Member Functions

virtual void ChangeBounds (Data *prob_in, Residuals *resid_in)
 
virtual void defaultStart (ProblemFormulation *formulation, Variables *iterate, Data *prob, Residuals *resid, Variables *rhs)
 
virtual void _initialVar (Variables *iterate_in, Data *prob_in, Residuals *resid_in)
 
virtual void EvalErrScaling (Variables *iterate_in)
 
virtual void FilterInitializeAndPara (Data *prob_in, Variables *iterate_in, Residuals *resid_in)
 
virtual int updateBarrierParameter (Data *prob_in, Variables *iterate_in, Residuals *resid_in)
 
virtual void addDampingTermToKKT (Residuals *resid_in)
 
virtual double getAlphaMin (const double priAlaph_in)
 
virtual bool isTinyStep (Variables *vars_in, Residuals *resid_in, Variables *step_in)
 
virtual bool testStep (const double trialAlpha, const double trial_ConsNorm_in, const double trial_Obj_in, const double curr_ConsNorm_in, const double curr_Obj_in, const double curr_BarrGradTimesD_in, const double curr_ConsTimesD_in, FilterIPMOption *FilterIPMOpt)
 
virtual bool testSwitchingCondition (const double trialAlpha, const double curr_filter_ConsNorm_in, const double augmented_BarrGradTimesD, FilterIPMOption *FilterIPMOpt)
 
virtual bool testArmijo (const double trialAlpha, const double trial_Obj_in, const double curr_Obj_in, const double augmented_BarrGradTimesD, FilterIPMOption *FilterIPMOpt)
 
virtual bool testSufficientReductionCondition (const double trial_ConsNorm_in, const double trial_Obj_in, const double curr_ConsNorm_in, const double curr_Obj_in, FilterIPMOption *FilterIPMOpt)
 
virtual void accept_iterate (Data *data_in, Variables *vars_in, Residuals *resid_in, Variables *step_in)
 
virtual double get_xWx (Data *prob_in, Residuals *resid_in, Variables *step_in)
 
virtual void compute_step_WithRegularization (Data *data_in, Variables *vars_in, Residuals *resids_in, Variables *step_in, bool inSOC=false)
 
virtual double evalBarrObj (Data *prob_in, Variables *iterate_in, Residuals *resid_in, const int isTrialIter=0)
 
virtual double evalConOneNorm (Data *prob_in, Variables *iterate_in, Residuals *resid_in, const int isTrialIter=0)
 
virtual double computeSOCIter (Data *prob_in, Variables *iterate_in, Residuals *resid_in, const double AlphaStep)
 
virtual bool ifStepAccepted (Data *prob_in, Variables *vars_in, Residuals *resid_in, Variables *step_in, Variables *trial_iter_in, const double trialAlpha, const bool inSOC=false)
 
virtual void line_search_Filter (Data *prob_in, Variables *vars_in, Residuals *resid_in, Variables *step_in)
 
virtual int BackTrack (Data *prob_in, Variables *vars_in, Residuals *resid_in, Variables *step_in)
 
virtual void UpdateFilter ()
 
virtual void use_TinyStep (Variables *step_in)
 
virtual void defaultMonitor (Data *data, Variables *vars, Residuals *resids, double alpha, double sigma, int i, double mu, int status_code, int level)
 
virtual int defaultStatus (Data *data_in, Variables *, Residuals *resids_in, int iterate, double mu, int)
 
virtual double * computeQuantitiesForDualReg (Data *prob_in, Variables *iter_in, Residuals *resid_in, Variables *step_in, PDRegularization *RegInfo)
 

Protected Attributes

double * dualRegQuantities
 
double ALObj
 
double ALPCon
 
double xWx_0
 
double xWx_done
 
double thd_0
 
double thd_done
 
int printlevel
 
double rho
 
double mu
 
double oldmu
 
double scal_commerr
 
double scal_dualerr
 
double alp_pri
 
double alp_boundDual
 
double alp_pri_max
 
double alp_boundDual_max
 
double curr_ConNorm
 
double curr_BarrObj
 
double curr_BarrObjGradTimesD
 
double curr_ConTimesD
 
double test_ConNorm
 
double test_BarrObj
 
char * strPrt
 
char * strPrt_du
 
char strbuffer [8]
 
char strbuffer2 [8]
 
char dashes [6]
 
bool FirstTimeUpdateMu
 
Variablesmainstep
 
VariablesSOCstep
 
Variablest_step
 
Variablesn_step
 
Variablestrial_iter
 
VariablesKKT_sol
 
ResidualstrialIter_rhs_SOC
 
ResidualsKKT_Resid
 
double tau_j
 
double oldtau_j
 
double deltaRegular_pr
 
double deltaRegular_du
 
int NumBackCheck
 
bool DoFeasResto
 
bool SolfromSOC
 
bool IfTinyStep
 
bool DualStepIsTiny
 
bool LastIterRejectByFilter
 
int LastIterAcceptByCondition
 
int cumulative_small_step
 
int cumulative_reject_filter
 
int StepAcceptDueTo_SWC_AC
 
int StepAcceptDueTo_SRC_obj
 
int StepAcceptDueTo_SRC_con
 
int StepAcceptDueTo_SRC
 
char info_xWx_type
 
char info_PriAlpha_char
 
char info_PriAlpha_char_1st
 
Filter2DFilter
 
FilterIPMOptionFilterIPMOpt
 
PDRegularizationPD_Reg
 
ProblemFormulationfactory
 
double AugLagVaryPart
 
- Protected Attributes inherited from Solver
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
 

Additional Inherited Members

- Public Attributes inherited from Solver
int iter
 

Detailed Description

Derived class of Solver implementing filter line search algorithm.

Constructor & Destructor Documentation

FilterIPMSolver::FilterIPMSolver ( ProblemFormulation of,
Data prob 
)

Derived class of Solver implementing filter line search algorithm.

FilterIPMSolver::~FilterIPMSolver ( )

Member Function Documentation

void FilterIPMSolver::_initialVar ( Variables iterate_in,
Data prob_in,
Residuals resid_in 
)
protectedvirtual
void FilterIPMSolver::accept_iterate ( Data data_in,
Variables vars_in,
Residuals resid_in,
Variables step_in 
)
protectedvirtual
void FilterIPMSolver::addDampingTermToKKT ( Residuals resid_in)
protectedvirtual
int FilterIPMSolver::BackTrack ( Data prob_in,
Variables vars_in,
Residuals resid_in,
Variables step_in 
)
protectedvirtual
void FilterIPMSolver::ChangeBounds ( Data prob_in,
Residuals resid_in 
)
protectedvirtual
void FilterIPMSolver::compute_step_WithRegularization ( Data data_in,
Variables vars_in,
Residuals resids_in,
Variables step_in,
bool  inSOC = false 
)
protectedvirtual
double * FilterIPMSolver::computeQuantitiesForDualReg ( Data prob_in,
Variables iter_in,
Residuals resid_in,
Variables step_in,
PDRegularization RegInfo 
)
protectedvirtual
double FilterIPMSolver::computeSOCIter ( Data prob_in,
Variables iterate_in,
Residuals resid_in,
const double  AlphaStep 
)
protectedvirtual
void FilterIPMSolver::defaultMonitor ( Data data,
Variables vars,
Residuals resids,
double  alpha,
double  sigma,
int  i,
double  mu,
int  stop_code,
int  level 
)
protectedvirtual

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

Implements Solver.

void FilterIPMSolver::defaultStart ( ProblemFormulation formulation,
Variables iterate,
Data prob,
Residuals resid,
Variables step 
)
protectedvirtual

default starting point heuristic

Reimplemented from Solver.

int FilterIPMSolver::defaultStatus ( Data data,
Variables vars,
Residuals resids,
int  i,
double  mu,
int  level 
)
protectedvirtual

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

Reimplemented from Solver.

Reimplemented in FilterIPMStochSolver.

double FilterIPMSolver::evalBarrObj ( Data prob_in,
Variables iterate_in,
Residuals resid_in,
const int  isTrialIter = 0 
)
protectedvirtual
double FilterIPMSolver::evalConOneNorm ( Data prob_in,
Variables iterate_in,
Residuals resid_in,
const int  isTrialIter = 0 
)
protectedvirtual
void FilterIPMSolver::EvalErrScaling ( Variables iterate_in)
protectedvirtual
void FilterIPMSolver::FilterInitializeAndPara ( Data prob_in,
Variables iterate_in,
Residuals resid_in 
)
protectedvirtual
double FilterIPMSolver::get_xWx ( Data prob_in,
Residuals resid_in,
Variables step_in 
)
protectedvirtual
double FilterIPMSolver::getAlphaMin ( const double  priAlaph_in)
protectedvirtual
bool FilterIPMSolver::ifStepAccepted ( Data prob_in,
Variables vars_in,
Residuals resid_in,
Variables step_in,
Variables trial_iter_in,
const double  trialAlpha,
const bool  inSOC = false 
)
protectedvirtual
bool FilterIPMSolver::isTinyStep ( Variables vars_in,
Residuals resid_in,
Variables step_in 
)
protectedvirtual
void FilterIPMSolver::line_search_Filter ( Data prob_in,
Variables vars_in,
Residuals resid_in,
Variables step_in 
)
protectedvirtual
int FilterIPMSolver::solve ( Data prob,
Variables iterate,
Residuals resids 
)
virtual

implements the interior-point method for solving the QP

Implements Solver.

Reimplemented in FilterIPMStochSolver.

bool FilterIPMSolver::testArmijo ( const double  trialAlpha,
const double  trial_Obj_in,
const double  curr_Obj_in,
const double  augmented_BarrGradTimesD,
FilterIPMOption FilterIPMOpt 
)
protectedvirtual
bool FilterIPMSolver::testStep ( const double  trialAlpha,
const double  trial_ConsNorm_in,
const double  trial_Obj_in,
const double  curr_ConsNorm_in,
const double  curr_Obj_in,
const double  curr_BarrGradTimesD_in,
const double  curr_ConsTimesD_in,
FilterIPMOption FilterIPMOpt 
)
protectedvirtual
bool FilterIPMSolver::testSufficientReductionCondition ( const double  trial_ConsNorm_in,
const double  trial_Obj_in,
const double  curr_ConsNorm_in,
const double  curr_Obj_in,
FilterIPMOption FilterIPMOpt 
)
protectedvirtual
bool FilterIPMSolver::testSwitchingCondition ( const double  trialAlpha,
const double  curr_filter_ConsNorm_in,
const double  augmented_BarrGradTimesD,
FilterIPMOption FilterIPMOpt 
)
protectedvirtual
int FilterIPMSolver::updateBarrierParameter ( Data prob_in,
Variables iterate_in,
Residuals resid_in 
)
protectedvirtual
void FilterIPMSolver::UpdateFilter ( )
protectedvirtual
void FilterIPMSolver::use_TinyStep ( Variables step_in)
protectedvirtual

Member Data Documentation

double FilterIPMSolver::ALObj
protected
double FilterIPMSolver::alp_boundDual
protected
double FilterIPMSolver::alp_boundDual_max
protected
double FilterIPMSolver::alp_pri
protected
double FilterIPMSolver::alp_pri_max
protected
double FilterIPMSolver::ALPCon
protected
double FilterIPMSolver::AugLagVaryPart
protected
int FilterIPMSolver::cumulative_reject_filter
protected
int FilterIPMSolver::cumulative_small_step
protected
double FilterIPMSolver::curr_BarrObj
protected
double FilterIPMSolver::curr_BarrObjGradTimesD
protected
double FilterIPMSolver::curr_ConNorm
protected
double FilterIPMSolver::curr_ConTimesD
protected
char FilterIPMSolver::dashes[6]
protected
double FilterIPMSolver::deltaRegular_du
protected
double FilterIPMSolver::deltaRegular_pr
protected
bool FilterIPMSolver::DoFeasResto
protected
double* FilterIPMSolver::dualRegQuantities
protected
bool FilterIPMSolver::DualStepIsTiny
protected
ProblemFormulation* FilterIPMSolver::factory
protected
Filter2D* FilterIPMSolver::Filter
protected
FilterIPMOption* FilterIPMSolver::FilterIPMOpt
protected
bool FilterIPMSolver::FirstTimeUpdateMu
protected
bool FilterIPMSolver::IfTinyStep
protected
char FilterIPMSolver::info_PriAlpha_char
protected
char FilterIPMSolver::info_PriAlpha_char_1st
protected
char FilterIPMSolver::info_xWx_type
protected
Residuals* FilterIPMSolver::KKT_Resid
protected
Variables * FilterIPMSolver::KKT_sol
protected
int FilterIPMSolver::LastIterAcceptByCondition
protected
bool FilterIPMSolver::LastIterRejectByFilter
protected
Variables* FilterIPMSolver::mainstep
protected
double FilterIPMSolver::mu
protected
Variables * FilterIPMSolver::n_step
protected
int FilterIPMSolver::NumBackCheck
protected
double FilterIPMSolver::oldmu
protected
double FilterIPMSolver::oldtau_j
protected
PDRegularization* FilterIPMSolver::PD_Reg
protected
int FilterIPMSolver::printlevel
protected
double FilterIPMSolver::rho
protected
double FilterIPMSolver::scal_commerr
protected
double FilterIPMSolver::scal_dualerr
protected
Variables * FilterIPMSolver::SOCstep
protected
bool FilterIPMSolver::SolfromSOC
protected
int FilterIPMSolver::StepAcceptDueTo_SRC
protected
int FilterIPMSolver::StepAcceptDueTo_SRC_con
protected
int FilterIPMSolver::StepAcceptDueTo_SRC_obj
protected
int FilterIPMSolver::StepAcceptDueTo_SWC_AC
protected
char FilterIPMSolver::strbuffer[8]
protected
char FilterIPMSolver::strbuffer2[8]
protected
char* FilterIPMSolver::strPrt
protected
char* FilterIPMSolver::strPrt_du
protected
Variables * FilterIPMSolver::t_step
protected
double FilterIPMSolver::tau_j
protected
double FilterIPMSolver::test_BarrObj
protected
double FilterIPMSolver::test_ConNorm
protected
double FilterIPMSolver::thd_0
protected
double FilterIPMSolver::thd_done
protected
Variables* FilterIPMSolver::trial_iter
protected
Residuals* FilterIPMSolver::trialIter_rhs_SOC
protected
double FilterIPMSolver::xWx_0
protected
double FilterIPMSolver::xWx_done
protected

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