MOOCHO Version of the Day
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]

List of all members.

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.

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) const
 

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 68 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 40 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 75 of file NLPInterfacePack_NLPWBCounterExample.cpp.

bool NLPInterfacePack::NLPWBCounterExample::nlp_selects_basis ( ) const [virtual]
bool NLPInterfacePack::NLPWBCounterExample::imp_nlp_has_changed ( ) const [protected, virtual]
size_type NLPInterfacePack::NLPWBCounterExample::imp_n_orig ( ) const [protected, virtual]
size_type NLPInterfacePack::NLPWBCounterExample::imp_m_orig ( ) const [protected, virtual]
size_type NLPInterfacePack::NLPWBCounterExample::imp_mI_orig ( ) const [protected, virtual]
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_xinit_orig ( ) const [protected, virtual]
bool NLPInterfacePack::NLPWBCounterExample::imp_has_var_bounds ( ) const [protected, virtual]
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_xl_orig ( ) const [protected, virtual]
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_xu_orig ( ) const [protected, virtual]
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_hl_orig ( ) const [protected, virtual]
const DVectorSlice NLPInterfacePack::NLPWBCounterExample::imp_hu_orig ( ) const [protected, virtual]
void NLPInterfacePack::NLPWBCounterExample::imp_calc_f_orig ( const DVectorSlice &  x_full,
bool  newx,
const ZeroOrderInfoSerial zero_order_info 
) const [protected, virtual]
void NLPInterfacePack::NLPWBCounterExample::imp_calc_c_orig ( const DVectorSlice &  x_full,
bool  newx,
const ZeroOrderInfoSerial zero_order_info 
) const [protected, virtual]
void NLPInterfacePack::NLPWBCounterExample::imp_calc_h_orig ( const DVectorSlice &  x_full,
bool  newx,
const ZeroOrderInfoSerial zero_order_info 
) const [protected, virtual]
void NLPInterfacePack::NLPWBCounterExample::imp_calc_Gf_orig ( const DVectorSlice &  x_full,
bool  newx,
const ObjGradInfoSerial obj_grad_info 
) const [protected, virtual]
bool NLPInterfacePack::NLPWBCounterExample::imp_get_next_basis ( IVector var_perm_full,
IVector equ_perm_full,
size_type rank_full,
size_type rank 
) [protected, virtual]
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 
) const [protected]

Definition at line 191 of file NLPInterfacePack_NLPWBCounterExample.cpp.

size_type NLPInterfacePack::NLPWBCounterExample::imp_Gc_nz_orig ( ) const [protected, virtual]
size_type NLPInterfacePack::NLPWBCounterExample::imp_Gh_nz_orig ( ) const [protected, virtual]
void NLPInterfacePack::NLPWBCounterExample::imp_calc_Gc_orig ( const DVectorSlice &  x_full,
bool  newx,
const FirstOrderExplInfo first_order_expl_info 
) const [protected, virtual]
void NLPInterfacePack::NLPWBCounterExample::imp_calc_Gh_orig ( const DVectorSlice &  x_full,
bool  newx,
const FirstOrderExplInfo first_order_expl_info 
) const [protected, virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends