Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::StandardScalingBase Class Referenceabstract

This is a base class for many standard scaling techniques. More...

#include <IpNLPScaling.hpp>

+ Inheritance diagram for Ipopt::StandardScalingBase:

Public Member Functions

virtual void DetermineScaling (const SmartPtr< const VectorSpace > x_space, const SmartPtr< const VectorSpace > c_space, const SmartPtr< const VectorSpace > d_space, const SmartPtr< const MatrixSpace > jac_c_space, const SmartPtr< const MatrixSpace > jac_d_space, const SmartPtr< const SymMatrixSpace > h_space, SmartPtr< const MatrixSpace > &new_jac_c_space, SmartPtr< const MatrixSpace > &new_jac_d_space, SmartPtr< const SymMatrixSpace > &new_h_space, const Matrix &Px_L, const Vector &x_L, const Matrix &Px_U, const Vector &x_U)
 This method is called by the IpoptNLP's at a convenient time to compute and/or read scaling factors.
 
Constructors / Destructor
 StandardScalingBase ()
 
virtual ~StandardScalingBase ()
 Destructor.
 
virtual Number apply_obj_scaling (const Number &f)
 Methods to map scaled and unscaled matrices.
 
virtual Number unapply_obj_scaling (const Number &f)
 Returns an obj-unscaled version of the given scalar.
 
virtual SmartPtr< Vectorapply_vector_scaling_x_NonConst (const SmartPtr< const Vector > &v)
 Returns an x-scaled version of the given vector.
 
virtual SmartPtr< const Vectorapply_vector_scaling_x (const SmartPtr< const Vector > &v)
 Returns an x-scaled version of the given vector.
 
virtual SmartPtr< Vectorunapply_vector_scaling_x_NonConst (const SmartPtr< const Vector > &v)
 Returns an x-unscaled version of the given vector.
 
virtual SmartPtr< const Vectorunapply_vector_scaling_x (const SmartPtr< const Vector > &v)
 Returns an x-unscaled version of the given vector.
 
virtual SmartPtr< const Vectorapply_vector_scaling_c (const SmartPtr< const Vector > &v)
 Returns an c-scaled version of the given vector.
 
virtual SmartPtr< const Vectorunapply_vector_scaling_c (const SmartPtr< const Vector > &v)
 Returns an c-unscaled version of the given vector.
 
virtual SmartPtr< Vectorapply_vector_scaling_c_NonConst (const SmartPtr< const Vector > &v)
 Returns an c-scaled version of the given vector.
 
virtual SmartPtr< Vectorunapply_vector_scaling_c_NonConst (const SmartPtr< const Vector > &v)
 Returns an c-unscaled version of the given vector.
 
virtual SmartPtr< const Vectorapply_vector_scaling_d (const SmartPtr< const Vector > &v)
 Returns an d-scaled version of the given vector.
 
virtual SmartPtr< const Vectorunapply_vector_scaling_d (const SmartPtr< const Vector > &v)
 Returns an d-unscaled version of the given vector.
 
virtual SmartPtr< Vectorapply_vector_scaling_d_NonConst (const SmartPtr< const Vector > &v)
 Returns an d-scaled version of the given vector.
 
virtual SmartPtr< Vectorunapply_vector_scaling_d_NonConst (const SmartPtr< const Vector > &v)
 Returns an d-unscaled version of the given vector.
 
virtual SmartPtr< const Matrixapply_jac_c_scaling (SmartPtr< const Matrix > matrix)
 Returns a scaled version of the Jacobian for c.
 
virtual SmartPtr< const Matrixapply_jac_d_scaling (SmartPtr< const Matrix > matrix)
 Returns a scaled version of the Jacobian for d.
 
virtual SmartPtr< const SymMatrixapply_hessian_scaling (SmartPtr< const SymMatrix > matrix)
 Returns a scaled version of the Hessian of the Lagrangian.
 
Methods for determining whether scaling for entities is done
virtual bool have_x_scaling ()
 Returns true if the primal x variables are scaled.
 
virtual bool have_c_scaling ()
 Returns true if the equality constraints are scaled.
 
virtual bool have_d_scaling ()
 Returns true if the inequality constraints are scaled.
 
- Public Member Functions inherited from Ipopt::NLPScalingObject
bool Initialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Method to initialize the options.
 
 NLPScalingObject ()
 
virtual ~NLPScalingObject ()
 Destructor.
 
SmartPtr< Vectorapply_vector_scaling_x_LU_NonConst (const Matrix &Px_LU, const SmartPtr< const Vector > &lu, const VectorSpace &x_space)
 Methods for scaling bounds - these wrap those above.
 
SmartPtr< const Vectorapply_vector_scaling_x_LU (const Matrix &Px_LU, const SmartPtr< const Vector > &lu, const VectorSpace &x_space)
 Returns an x-scaled vector in the x_L or x_U space.
 
SmartPtr< Vectorapply_vector_scaling_d_LU_NonConst (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
 Returns an d-scaled vector in the d_L or d_U space.
 
SmartPtr< const Vectorapply_vector_scaling_d_LU (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
 Returns an d-scaled vector in the d_L or d_U space.
 
SmartPtr< Vectorunapply_vector_scaling_d_LU_NonConst (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
 Returns an d-unscaled vector in the d_L or d_U space.
 
SmartPtr< const Vectorunapply_vector_scaling_d_LU (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
 Returns an d-unscaled vector in the d_L or d_U space.
 
virtual SmartPtr< Vectorapply_grad_obj_scaling_NonConst (const SmartPtr< const Vector > &v)
 Methods for scaling the gradient of the objective - wraps the virtual methods above.
 
virtual SmartPtr< const Vectorapply_grad_obj_scaling (const SmartPtr< const Vector > &v)
 Returns a grad_f scaled version (d_f * D_x^{-1}) of the given vector.
 
virtual SmartPtr< Vectorunapply_grad_obj_scaling_NonConst (const SmartPtr< const Vector > &v)
 Returns a grad_f unscaled version (d_f * D_x^{-1}) of the given vector.
 
virtual SmartPtr< const Vectorunapply_grad_obj_scaling (const SmartPtr< const Vector > &v)
 Returns a grad_f unscaled version (d_f * D_x^{-1}) of the given vector.
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 

Protected Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 Initialization method that has to be overloaded by for each derived class.
 
virtual void DetermineScalingParametersImpl (const SmartPtr< const VectorSpace > x_space, const SmartPtr< const VectorSpace > c_space, const SmartPtr< const VectorSpace > d_space, const SmartPtr< const MatrixSpace > jac_c_space, const SmartPtr< const MatrixSpace > jac_d_space, const SmartPtr< const SymMatrixSpace > h_space, const Matrix &Px_L, const Vector &x_L, const Matrix &Px_U, const Vector &x_U, Number &df, SmartPtr< Vector > &dx, SmartPtr< Vector > &dc, SmartPtr< Vector > &dd)=0
 This is the method that has to be overloaded by a particular scaling method that somehow computes the scaling vectors dx, dc, and dd.
 
- Protected Member Functions inherited from Ipopt::NLPScalingObject
const JournalistJnlst () const
 Accessor method for the journalist.
 

Private Member Functions

Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 StandardScalingBase (const StandardScalingBase &)
 Copy Constructor.
 
void operator= (const StandardScalingBase &)
 Default Assignment Operator.
 

Private Attributes

Number df_
 Scaling parameters - we only need to keep copies of the objective scaling and the x scaling - the others we can get from the scaled matrix spaces.
 
SmartPtr< Vectordx_
 x scaling
 
SmartPtr< ScaledMatrixSpacescaled_jac_c_space_
 Scaled Matrix Spaces.
 
SmartPtr< ScaledMatrixSpacescaled_jac_d_space_
 Scaled Jacobian of d space.
 
SmartPtr< SymScaledMatrixSpacescaled_h_space_
 Scaled Hessian of Lagrangian spacea.
 
Algorithmic parameters
Number obj_scaling_factor_
 Additional scaling value for the objective function.
 

Detailed Description

This is a base class for many standard scaling techniques.

The overloaded classes only need to provide the scaling parameters.

Definition at line 315 of file IpNLPScaling.hpp.

Constructor & Destructor Documentation

◆ StandardScalingBase() [1/2]

Ipopt::StandardScalingBase::StandardScalingBase ( )

◆ ~StandardScalingBase()

virtual Ipopt::StandardScalingBase::~StandardScalingBase ( )
virtual

Destructor.

◆ StandardScalingBase() [2/2]

Ipopt::StandardScalingBase::StandardScalingBase ( const StandardScalingBase )
private

Copy Constructor.

Member Function Documentation

◆ apply_obj_scaling()

virtual Number Ipopt::StandardScalingBase::apply_obj_scaling ( const Number f)
virtual

Methods to map scaled and unscaled matrices.

Implements Ipopt::NLPScalingObject.

◆ unapply_obj_scaling()

virtual Number Ipopt::StandardScalingBase::unapply_obj_scaling ( const Number f)
virtual

Returns an obj-unscaled version of the given scalar.

Implements Ipopt::NLPScalingObject.

◆ apply_vector_scaling_x_NonConst()

virtual SmartPtr< Vector > Ipopt::StandardScalingBase::apply_vector_scaling_x_NonConst ( const SmartPtr< const Vector > &  v)
virtual

Returns an x-scaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ apply_vector_scaling_x()

virtual SmartPtr< const Vector > Ipopt::StandardScalingBase::apply_vector_scaling_x ( const SmartPtr< const Vector > &  v)
virtual

Returns an x-scaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ unapply_vector_scaling_x_NonConst()

virtual SmartPtr< Vector > Ipopt::StandardScalingBase::unapply_vector_scaling_x_NonConst ( const SmartPtr< const Vector > &  v)
virtual

Returns an x-unscaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ unapply_vector_scaling_x()

virtual SmartPtr< const Vector > Ipopt::StandardScalingBase::unapply_vector_scaling_x ( const SmartPtr< const Vector > &  v)
virtual

Returns an x-unscaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ apply_vector_scaling_c()

virtual SmartPtr< const Vector > Ipopt::StandardScalingBase::apply_vector_scaling_c ( const SmartPtr< const Vector > &  v)
virtual

Returns an c-scaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ unapply_vector_scaling_c()

virtual SmartPtr< const Vector > Ipopt::StandardScalingBase::unapply_vector_scaling_c ( const SmartPtr< const Vector > &  v)
virtual

Returns an c-unscaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ apply_vector_scaling_c_NonConst()

virtual SmartPtr< Vector > Ipopt::StandardScalingBase::apply_vector_scaling_c_NonConst ( const SmartPtr< const Vector > &  v)
virtual

Returns an c-scaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ unapply_vector_scaling_c_NonConst()

virtual SmartPtr< Vector > Ipopt::StandardScalingBase::unapply_vector_scaling_c_NonConst ( const SmartPtr< const Vector > &  v)
virtual

Returns an c-unscaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ apply_vector_scaling_d()

virtual SmartPtr< const Vector > Ipopt::StandardScalingBase::apply_vector_scaling_d ( const SmartPtr< const Vector > &  v)
virtual

Returns an d-scaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ unapply_vector_scaling_d()

virtual SmartPtr< const Vector > Ipopt::StandardScalingBase::unapply_vector_scaling_d ( const SmartPtr< const Vector > &  v)
virtual

Returns an d-unscaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ apply_vector_scaling_d_NonConst()

virtual SmartPtr< Vector > Ipopt::StandardScalingBase::apply_vector_scaling_d_NonConst ( const SmartPtr< const Vector > &  v)
virtual

Returns an d-scaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ unapply_vector_scaling_d_NonConst()

virtual SmartPtr< Vector > Ipopt::StandardScalingBase::unapply_vector_scaling_d_NonConst ( const SmartPtr< const Vector > &  v)
virtual

Returns an d-unscaled version of the given vector.

Implements Ipopt::NLPScalingObject.

◆ apply_jac_c_scaling()

virtual SmartPtr< const Matrix > Ipopt::StandardScalingBase::apply_jac_c_scaling ( SmartPtr< const Matrix matrix)
virtual

Returns a scaled version of the Jacobian for c.

If the overloaded method does not make a new matrix, make sure to set the matrix ptr passed in to NULL.

Implements Ipopt::NLPScalingObject.

◆ apply_jac_d_scaling()

virtual SmartPtr< const Matrix > Ipopt::StandardScalingBase::apply_jac_d_scaling ( SmartPtr< const Matrix matrix)
virtual

Returns a scaled version of the Jacobian for d.

If the overloaded method does not create a new matrix, make sure to set the matrix ptr passed in to NULL.

Implements Ipopt::NLPScalingObject.

◆ apply_hessian_scaling()

virtual SmartPtr< const SymMatrix > Ipopt::StandardScalingBase::apply_hessian_scaling ( SmartPtr< const SymMatrix matrix)
virtual

Returns a scaled version of the Hessian of the Lagrangian.

If the overloaded method does not create a new matrix, make sure to set the matrix ptr passed in to NULL.

Implements Ipopt::NLPScalingObject.

◆ have_x_scaling()

virtual bool Ipopt::StandardScalingBase::have_x_scaling ( )
virtual

Returns true if the primal x variables are scaled.

Implements Ipopt::NLPScalingObject.

◆ have_c_scaling()

virtual bool Ipopt::StandardScalingBase::have_c_scaling ( )
virtual

Returns true if the equality constraints are scaled.

Implements Ipopt::NLPScalingObject.

◆ have_d_scaling()

virtual bool Ipopt::StandardScalingBase::have_d_scaling ( )
virtual

Returns true if the inequality constraints are scaled.

Implements Ipopt::NLPScalingObject.

◆ DetermineScaling()

virtual void Ipopt::StandardScalingBase::DetermineScaling ( const SmartPtr< const VectorSpace x_space,
const SmartPtr< const VectorSpace c_space,
const SmartPtr< const VectorSpace d_space,
const SmartPtr< const MatrixSpace jac_c_space,
const SmartPtr< const MatrixSpace jac_d_space,
const SmartPtr< const SymMatrixSpace h_space,
SmartPtr< const MatrixSpace > &  new_jac_c_space,
SmartPtr< const MatrixSpace > &  new_jac_d_space,
SmartPtr< const SymMatrixSpace > &  new_h_space,
const Matrix Px_L,
const Vector x_L,
const Matrix Px_U,
const Vector x_U 
)
virtual

This method is called by the IpoptNLP's at a convenient time to compute and/or read scaling factors.

Implements Ipopt::NLPScalingObject.

◆ RegisterOptions()

static void Ipopt::StandardScalingBase::RegisterOptions ( SmartPtr< RegisteredOptions roptions)
static

◆ InitializeImpl()

virtual bool Ipopt::StandardScalingBase::InitializeImpl ( const OptionsList options,
const std::string &  prefix 
)
protectedvirtual

Initialization method that has to be overloaded by for each derived class.

Implements Ipopt::NLPScalingObject.

Reimplemented in Ipopt::EquilibrationScaling, and Ipopt::GradientScaling.

◆ DetermineScalingParametersImpl()

virtual void Ipopt::StandardScalingBase::DetermineScalingParametersImpl ( const SmartPtr< const VectorSpace x_space,
const SmartPtr< const VectorSpace c_space,
const SmartPtr< const VectorSpace d_space,
const SmartPtr< const MatrixSpace jac_c_space,
const SmartPtr< const MatrixSpace jac_d_space,
const SmartPtr< const SymMatrixSpace h_space,
const Matrix Px_L,
const Vector x_L,
const Matrix Px_U,
const Vector x_U,
Number df,
SmartPtr< Vector > &  dx,
SmartPtr< Vector > &  dc,
SmartPtr< Vector > &  dd 
)
protectedpure virtual

This is the method that has to be overloaded by a particular scaling method that somehow computes the scaling vectors dx, dc, and dd.

The pointers to those vectors can be NULL, in which case no scaling for that item will be done later.

Implemented in Ipopt::EquilibrationScaling, Ipopt::GradientScaling, Ipopt::NoNLPScalingObject, and Ipopt::UserScaling.

◆ operator=()

void Ipopt::StandardScalingBase::operator= ( const StandardScalingBase )
private

Default Assignment Operator.

Member Data Documentation

◆ df_

Number Ipopt::StandardScalingBase::df_
private

Scaling parameters - we only need to keep copies of the objective scaling and the x scaling - the others we can get from the scaled matrix spaces.

objective scaling parameter

Definition at line 499 of file IpNLPScaling.hpp.

◆ dx_

SmartPtr<Vector> Ipopt::StandardScalingBase::dx_
private

x scaling

Definition at line 502 of file IpNLPScaling.hpp.

◆ scaled_jac_c_space_

SmartPtr<ScaledMatrixSpace> Ipopt::StandardScalingBase::scaled_jac_c_space_
private

Scaled Matrix Spaces.

Scaled Jacobian of c space

Definition at line 508 of file IpNLPScaling.hpp.

◆ scaled_jac_d_space_

SmartPtr<ScaledMatrixSpace> Ipopt::StandardScalingBase::scaled_jac_d_space_
private

Scaled Jacobian of d space.

Definition at line 511 of file IpNLPScaling.hpp.

◆ scaled_h_space_

SmartPtr<SymScaledMatrixSpace> Ipopt::StandardScalingBase::scaled_h_space_
private

Scaled Hessian of Lagrangian spacea.

Definition at line 514 of file IpNLPScaling.hpp.

◆ obj_scaling_factor_

Number Ipopt::StandardScalingBase::obj_scaling_factor_
private

Additional scaling value for the objective function.

Definition at line 520 of file IpNLPScaling.hpp.


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