MOOCHO  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members
NLPInterfacePack::NLPWBCounterExample Class Reference

NLP subclass for the Waechter and Biegler Counter Example. More...

#include <NLPInterfacePack_NLPWBCounterExample.hpp>

Inheritance diagram for NLPInterfacePack::NLPWBCounterExample:
Inheritance graph
[legend]

Constructors / initializers

 NLPWBCounterExample (value_type xinit[3], value_type a=0.0, value_type b=1.0, bool nlp_selects_basis=true, bool linear_obj=true)
 Constructor. More...
 

Overridden public members from NLP

void initialize (bool test_setup)
 
bool is_initialized () const
 
value_type max_var_bounds_viol () const
 

Overridden from NLPVarReductPerm

bool nlp_selects_basis () const
 

Overridden protected methods from NLPSerialPreprocess

bool imp_nlp_has_changed () const
 
size_type imp_n_orig () const
 
size_type imp_m_orig () const
 
size_type imp_mI_orig () const
 
const DVectorSlice imp_xinit_orig () const
 
bool imp_has_var_bounds () const
 
const DVectorSlice imp_xl_orig () const
 
const DVectorSlice imp_xu_orig () const
 
const DVectorSlice imp_hl_orig () const
 
const DVectorSlice imp_hu_orig () const
 
void imp_calc_f_orig (const DVectorSlice &x_full, bool newx, const ZeroOrderInfoSerial &zero_order_info) const
 
void imp_calc_c_orig (const DVectorSlice &x_full, bool newx, const ZeroOrderInfoSerial &zero_order_info) const
 
void imp_calc_h_orig (const DVectorSlice &x_full, bool newx, const ZeroOrderInfoSerial &zero_order_info) const
 
void imp_calc_Gf_orig (const DVectorSlice &x_full, bool newx, const ObjGradInfoSerial &obj_grad_info) const
 
bool imp_get_next_basis (IVector *var_perm_full, IVector *equ_perm_full, size_type *rank_full, size_type *rank)
 
void imp_report_orig_final_solution (const DVectorSlice &x_orig, const DVectorSlice *lambda_orig, const DVectorSlice *lambdaI_orig, const DVectorSlice *nu_orig, bool is_optimal)
 

Overridden protected methods from NLPSerialPreprocessExplJac

size_type imp_Gc_nz_orig () const
 
size_type imp_Gh_nz_orig () const
 
void imp_calc_Gc_orig (const DVectorSlice &x_full, bool newx, const FirstOrderExplInfo &first_order_expl_info) const
 
void imp_calc_Gh_orig (const DVectorSlice &x_full, bool newx, const FirstOrderExplInfo &first_order_expl_info) const
 

Detailed Description

NLP subclass for the Waechter and Biegler Counter Example.

The Waechter & Biegler counter example NLP is defined as:

   min    f(x)
   s.t.
          c(1) = x(1)^2 - x(2) + a = 0
          c(2) = x(1)   - x(3) - b = 0

          x(2),x(3) >= 0

   where:
        b >= 0

and where a and b are constants. In the counter example, the form of the objective function f(x) is not important, but we have to specify one here in order to have MOOCHO solve the problem. So we will specify the objective function as

       / x(1)       : if linear_obj == true
f(x) = |
       \ 0.5*x(1)^2 : if linear_obj == false

where the client can specify linear_obj (in the constructor).

Note that an excellent basis selection is for x(2) and x(3) to be in the basis since this gives the basis matrix of C = -I.

Examples:
NLPWBCounterExampleMain.cpp.

Definition at line 81 of file NLPInterfacePack_NLPWBCounterExample.hpp.

Constructor & Destructor Documentation

NLPInterfacePack::NLPWBCounterExample::NLPWBCounterExample ( value_type  xinit[3],
value_type  a = 0.0,
value_type  b = 1.0,
bool  nlp_selects_basis = true,
bool  linear_obj = true 
)

Constructor.

Parameters
a[in] The constant in constriant c(1)
b[in] The constant in constriant c(2)
xinit[in] Array (size 3) of initial guess for x
nlp_selects_basis[in] If true, then this NLP will select the basis variables as x(2) and x(3) (which gives C = -I).
linear_obj[in] If true, the the objective is set to f(x) = x(1), else it is set to f(x) = 0.5*x(1)^2

Definition at line 53 of file NLPInterfacePack_NLPWBCounterExample.cpp.

Member Function Documentation

void NLPInterfacePack::NLPWBCounterExample::initialize ( bool  test_setup)
virtual
bool NLPInterfacePack::NLPWBCounterExample::is_initialized ( ) const
virtual
value_type NLPInterfacePack::NLPWBCounterExample::max_var_bounds_viol ( ) const
virtual

Implements NLPInterfacePack::NLP.

Definition at line 88 of file NLPInterfacePack_NLPWBCounterExample.cpp.

bool NLPInterfacePack::NLPWBCounterExample::nlp_selects_basis ( ) const
virtual
bool NLPInterfacePack::NLPWBCounterExample::imp_nlp_has_changed ( ) const
protectedvirtual
size_type NLPInterfacePack::NLPWBCounterExample::imp_n_orig ( ) const
protectedvirtual
size_type NLPInterfacePack::NLPWBCounterExample::imp_m_orig ( ) const
protectedvirtual
size_type NLPInterfacePack::NLPWBCounterExample::imp_mI_orig ( ) const
protectedvirtual
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_xinit_orig ( ) const
protectedvirtual
bool NLPInterfacePack::NLPWBCounterExample::imp_has_var_bounds ( ) const
protectedvirtual
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_xl_orig ( ) const
protectedvirtual
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_xu_orig ( ) const
protectedvirtual
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_hl_orig ( ) const
protectedvirtual
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_hu_orig ( ) const
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_calc_f_orig ( const DVectorSlice &  x_full,
bool  newx,
const ZeroOrderInfoSerial zero_order_info 
) const
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_calc_c_orig ( const DVectorSlice &  x_full,
bool  newx,
const ZeroOrderInfoSerial zero_order_info 
) const
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_calc_h_orig ( const DVectorSlice &  x_full,
bool  newx,
const ZeroOrderInfoSerial zero_order_info 
) const
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_calc_Gf_orig ( const DVectorSlice &  x_full,
bool  newx,
const ObjGradInfoSerial obj_grad_info 
) const
protectedvirtual
bool NLPInterfacePack::NLPWBCounterExample::imp_get_next_basis ( IVector *  var_perm_full,
IVector *  equ_perm_full,
size_type rank_full,
size_type rank 
)
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_report_orig_final_solution ( const DVectorSlice &  x_orig,
const DVectorSlice *  lambda_orig,
const DVectorSlice *  lambdaI_orig,
const DVectorSlice *  nu_orig,
bool  is_optimal 
)
protectedvirtual
size_type NLPInterfacePack::NLPWBCounterExample::imp_Gc_nz_orig ( ) const
protectedvirtual
size_type NLPInterfacePack::NLPWBCounterExample::imp_Gh_nz_orig ( ) const
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_calc_Gc_orig ( const DVectorSlice &  x_full,
bool  newx,
const FirstOrderExplInfo first_order_expl_info 
) const
protectedvirtual
void NLPInterfacePack::NLPWBCounterExample::imp_calc_Gh_orig ( const DVectorSlice &  x_full,
bool  newx,
const FirstOrderExplInfo first_order_expl_info 
) const
protectedvirtual

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