Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Sepa::HeuristicInnerApproximation Class Reference

#include <SepaHeuristicInnerApproximation.hpp>

Inheritance diagram for Sepa::HeuristicInnerApproximation:
Inheritance graph
[legend]
Collaboration diagram for Sepa::HeuristicInnerApproximation:
Collaboration graph
[legend]

Public Member Functions

 HeuristicInnerApproximation (Bonmin::BonminSetup *setup)
 Constructor with setup. More...
 
 HeuristicInnerApproximation (const HeuristicInnerApproximation &copy)
 Copy constructor. More...
 
 ~HeuristicInnerApproximation ()
 Destructor. More...
 
HeuristicInnerApproximationoperator= (const HeuristicInnerApproximation &rhs)
 Assignment operator. More...
 
virtual CbcHeuristic * clone () const
 Clone. More...
 
void Initialize (Bonmin::BonminSetup *setup)
 Initialize method. More...
 
virtual void resetModel (CbcModel *model)
 Resets stuff if model changes. More...
 
virtual int solution (double &solutionValue, double *betterSolution)
 Performs heuristic. More...
 

Static Public Member Functions

static void registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
 Register the options common to all local search based heuristics. More...
 

Protected Attributes

Bonmin::BonminSetupsetup_
 Setup to use for local searches (will make copies). More...
 

Private Member Functions

void extractInnerApproximation (Bonmin::OsiTMINLPInterface &nlp, OsiSolverInterface &si, const double *x, bool getObj)
 
bool getMyInnerApproximation (Bonmin::OsiTMINLPInterface &si, OsiCuts &cs, int ind, const double *x, const double *x2)
 Get an inner-approximation constraint obtained by drawing a chord linking the two given points x and x2. More...
 

Private Attributes

int howOften_
 How often to do (code can change) More...
 
Bonmin::SubMipSolvermip_
 A subsolver for MIP. More...
 
int nbAp_
 Number of Approximation points. More...
 
double time_limit_
 Time limit for mip. More...
 

Detailed Description

Definition at line 23 of file SepaHeuristicInnerApproximation.hpp.

Constructor & Destructor Documentation

Sepa::HeuristicInnerApproximation::HeuristicInnerApproximation ( Bonmin::BonminSetup setup)

Constructor with setup.

Definition at line 39 of file SepaHeuristicInnerApproximation.cpp.

Sepa::HeuristicInnerApproximation::HeuristicInnerApproximation ( const HeuristicInnerApproximation copy)

Copy constructor.

Definition at line 45 of file SepaHeuristicInnerApproximation.cpp.

Sepa::HeuristicInnerApproximation::~HeuristicInnerApproximation ( )

Destructor.

Definition at line 102 of file SepaHeuristicInnerApproximation.cpp.

Member Function Documentation

HeuristicInnerApproximation & Sepa::HeuristicInnerApproximation::operator= ( const HeuristicInnerApproximation rhs)

Assignment operator.

Definition at line 57 of file SepaHeuristicInnerApproximation.cpp.

virtual CbcHeuristic* Sepa::HeuristicInnerApproximation::clone ( ) const
inlinevirtual

Clone.

Definition at line 40 of file SepaHeuristicInnerApproximation.hpp.

void Sepa::HeuristicInnerApproximation::Initialize ( Bonmin::BonminSetup setup)

Initialize method.

Definition at line 92 of file SepaHeuristicInnerApproximation.cpp.

virtual void Sepa::HeuristicInnerApproximation::resetModel ( CbcModel *  model)
inlinevirtual

Resets stuff if model changes.

Definition at line 48 of file SepaHeuristicInnerApproximation.hpp.

int Sepa::HeuristicInnerApproximation::solution ( double &  solutionValue,
double *  betterSolution 
)
virtual

Performs heuristic.

Returns a feasible solution to the MINLP The heuristic constructs a MIP based approximating all univariate functions appearing in nonlinear constraints The linear approximation is obtained by adding inner chords linking pairs of points until covering the range of each variable.

Definition at line 110 of file SepaHeuristicInnerApproximation.cpp.

void Sepa::HeuristicInnerApproximation::registerOptions ( Ipopt::SmartPtr< Bonmin::RegisteredOptions roptions)
static

Register the options common to all local search based heuristics.

Definition at line 70 of file SepaHeuristicInnerApproximation.cpp.

void Sepa::HeuristicInnerApproximation::extractInnerApproximation ( Bonmin::OsiTMINLPInterface nlp,
OsiSolverInterface &  si,
const double *  x,
bool  getObj 
)
private

Definition at line 322 of file SepaHeuristicInnerApproximation.cpp.

bool Sepa::HeuristicInnerApproximation::getMyInnerApproximation ( Bonmin::OsiTMINLPInterface si,
OsiCuts &  cs,
int  ind,
const double *  x,
const double *  x2 
)
private

Get an inner-approximation constraint obtained by drawing a chord linking the two given points x and x2.

This only applies to nonlinear constraints featuring univariate functions (f(x) <= y).

Definition at line 249 of file SepaHeuristicInnerApproximation.cpp.

Member Data Documentation

Bonmin::BonminSetup* Sepa::HeuristicInnerApproximation::setup_
protected

Setup to use for local searches (will make copies).

Definition at line 61 of file SepaHeuristicInnerApproximation.hpp.

int Sepa::HeuristicInnerApproximation::howOften_
private

How often to do (code can change)

Definition at line 65 of file SepaHeuristicInnerApproximation.hpp.

Bonmin::SubMipSolver* Sepa::HeuristicInnerApproximation::mip_
private

A subsolver for MIP.

Definition at line 68 of file SepaHeuristicInnerApproximation.hpp.

int Sepa::HeuristicInnerApproximation::nbAp_
private

Number of Approximation points.

Definition at line 71 of file SepaHeuristicInnerApproximation.hpp.

double Sepa::HeuristicInnerApproximation::time_limit_
private

Time limit for mip.

Definition at line 74 of file SepaHeuristicInnerApproximation.hpp.


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