MatBSolver.hxx

Go to the documentation of this file.
00001 
00002 
00003 #ifndef CONICBUNDLE_MATBSOLVER_HXX
00004 #define CONICBUNDLE_MATBSOLVER_HXX
00005 
00014 #include "MatCBSolver.hxx"
00015 
00016 //------------------------------------------------------------
00017 
00018 
00019 namespace ConicBundle {
00020 
00024 
00025 
00026 
00031   class MatrixBSolver
00032   {
00033   private:              
00034   public:    
00035     
00037     virtual ~MatrixBSolver(){}
00038     
00039     //------------------------------------------------------------
00042        
00046     virtual void clear()=0;
00047 
00050     virtual void set_defaults()=0;
00051 
00093     virtual int init_problem(int dim, 
00094                      const CH_Matrix_Classes::Matrix* lbounds=0,
00095                      const CH_Matrix_Classes::Matrix* ubounds=0,                     
00096                      const CH_Matrix_Classes::Matrix* costs=0)=0;
00097     
00098 
00112     virtual int
00113     add_function
00114     ( FunctionObject& function )=0;
00115     
00127     virtual int set_lower_bound(int i, double lb)=0;
00128 
00140     virtual int set_upper_bound(int i, double ub)=0; 
00141 
00142 
00180     virtual int append_variables(int n_append,                   
00181                          const CH_Matrix_Classes::Matrix* lbounds=0,
00182                          const CH_Matrix_Classes::Matrix* ubounds=0,
00183                          const CH_Matrix_Classes::Matrix* costs=0)=0;
00184 
00216     virtual int delete_variables(const CH_Matrix_Classes::Indexmatrix& del_indices,CH_Matrix_Classes::Indexmatrix& map_to_old)=0;
00217 
00245     virtual int reassign_variables(const CH_Matrix_Classes::Indexmatrix& assign_new_from_old)=0;
00246 
00248 
00249     //------------------------------------------------------------
00252     
00300     virtual int 
00301     do_descent_step(int maxsteps=0)=0;
00302     
00303     
00337     virtual int
00338     termination_code() 
00339       const=0; 
00340     
00348     virtual std::ostream&
00349     print_termination_code(std::ostream& out)=0; 
00350     
00356     virtual double 
00357     get_objval()
00358       const=0;
00359     
00370     virtual int 
00371     get_center
00372     ( CH_Matrix_Classes::Matrix& center )
00373       const=0;
00374     
00375     
00378     virtual double 
00379     get_sgnorm()
00380       const=0; 
00381 
00389     virtual int 
00390     get_subgradient
00391     ( CH_Matrix_Classes::Matrix& subgradient )
00392       const=0;
00393 
00397     virtual double 
00398     get_cutval()
00399       const=0;
00400     
00409     virtual double 
00410     get_candidate_value()
00411       const=0;
00412     
00423     virtual int 
00424     get_candidate
00425     ( CH_Matrix_Classes::Matrix& candidate )
00426       const=0;
00427     
00428     
00430     
00431     //------------------------------------------------------------
00434 
00448     virtual int 
00449     set_term_relprec
00450     ( const double term_relprec )=0;
00451     
00460     virtual int
00461     set_new_center_point
00462     ( const CH_Matrix_Classes::Matrix& center_point )=0;
00463 
00464     
00468     virtual  int 
00469     get_function_status
00470     ( const FunctionObject& function )
00471       const=0;
00472 
00480     virtual int 
00481     get_approximate_slacks(CH_Matrix_Classes::Matrix &)
00482       const=0;
00483     
00497     virtual int
00498     get_approximate_primal
00499     ( const FunctionObject& function,
00500       PrimalData&              primal )
00501       const=0; 
00502     
00516     virtual int
00517     get_center_primal
00518     ( const FunctionObject& function,
00519       PrimalData&              primal )
00520       const=0; 
00521 
00522 
00533     virtual int
00534     get_candidate_primal
00535     ( const FunctionObject& function,
00536       PrimalData&              primal )
00537       const=0; 
00538 
00539 
00565     virtual int 
00566     set_max_bundlesize
00567     (  const FunctionObject& function, int max_bundlesize )=0;
00568 
00586     virtual int 
00587     set_max_new_subgradients
00588     (  const FunctionObject& function, int max_new_subgradients )=0;
00589 
00606     virtual int 
00607     set_bundle_parameters
00608     (  const FunctionObject& function,
00609        const BundleParameters& params )=0;
00610 
00627     virtual int 
00628     get_bundle_parameters
00629     ( const FunctionObject& function, BundleParameters& params )
00630       const=0;
00631 
00649     virtual int 
00650     get_bundle_values
00651     ( const FunctionObject& function, BundleParameters& params )
00652       const=0;
00653 
00669     virtual int reinit_function_model
00670     ( const FunctionObject& function )=0;
00671     
00686     virtual int clear_aggregates
00687     ( const FunctionObject& function )=0;
00688 
00709     virtual int call_primal_extender
00710     (const FunctionObject& function,
00711      PrimalExtender& primal_extender)=0;
00712 
00713     
00717     virtual double 
00718     get_last_weight()
00719       const=0; 
00720 
00741     virtual int 
00742     set_next_weight
00743     ( const double weight )=0;
00744     
00759     virtual int 
00760     set_min_weight
00761     ( const double min_weight )=0; 
00762 
00776     virtual int 
00777     set_max_weight
00778     ( const double max_weight )=0;
00779     
00796     virtual int 
00797     adjust_multiplier
00798     ( void )=0;
00799     
00800 
00807     virtual int
00808     set_scaling
00809     ( bool do_scaling )=0;
00810 
00826     virtual int
00827     set_scaling
00828     ( const CH_Matrix_Classes::Matrix& scale )=0;
00829 
00854     virtual void
00855     set_active_bounds_fixing
00856     ( bool allow_fixing )=0;
00857 
00865     virtual void 
00866     clear_fail_counts
00867     (void)=0;
00868     
00882     virtual void 
00883     set_eval_limit
00884     (CH_Matrix_Classes::Integer eval_limit)=0;
00885 
00899     virtual void 
00900     set_inner_update_limit
00901     (CH_Matrix_Classes::Integer update_limit)=0;
00902     
00904     
00905     //------------------------------------------------------------
00911     virtual int get_dim() const=0;
00912 
00915     virtual int get_n_functions() const=0;
00916 
00919     virtual int get_n_oracle_calls() const=0;
00920 
00923     virtual int get_n_descent_steps() const=0;
00924 
00927     virtual int get_n_inner_iterations() const=0;
00928 
00931     virtual int get_n_inner_updates() const=0;
00932 
00935     virtual const CH_Matrix_Classes::Matrix& get_lbounds() const=0;
00936 
00939     virtual const CH_Matrix_Classes::Matrix& get_ubounds() const=0;
00940     
00949     virtual const CH_Matrix_Classes::Indexmatrix& get_active_bounds_indicator() const=0;
00950 
00952 
00953     //------------------------------------------------------------
00956 
01014     virtual void 
01015     set_out
01016     (std::ostream* out=0,int print_level=1)=0;
01017 
01019     virtual std::ostream& print_line_summary(std::ostream& out) const=0;
01020 
01022     
01023   };
01024 
01026 }
01027 
01028 #endif
01029 
01030 
01031 

Generated on Tue May 3 16:52:53 2011 for ConicBundle by  doxygen 1.5.6