13#ifndef CouenneFPpool_hpp
14#define CouenneFPpool_hpp
65 const int n ()
const {
return n_;}
68 const double *
x ()
const {
return x_;}
96 std::set <CouenneFPsolution, compareSol>
set_;
114 std::set <CouenneFPsolution, compareSol> &
Set ()
void findClosestAndReplace(double *&sol, const double *nSol, int nvars)
finds, in pool, solution x closest to sol; removes it from the pool and overwrites it to sol
CouenneProblem * problem_
Problem pointer.
CouenneFPpool(CouenneProblem *p, enum what_to_compare c)
simple constructor (empty pool)
CouenneProblem * Problem()
return the problem pointer
std::set< CouenneFPsolution, compareSol > & Set()
return the main object in this class
CouenneFPpool(const CouenneFPpool &src)
copy constructor
CouenneFPpool & operator=(const CouenneFPpool &src)
assignment
std::set< CouenneFPsolution, compareSol > set_
Pool.
Class containing a solution with infeasibility evaluation.
int nNLinf_
number of NL infeasibilities
CouNumber objVal_
objective function value
CouenneFPsolution & operator=(const CouenneFPsolution &src)
assignment
CouNumber maxIinf_
maximum integer infeasibility
bool copied_
This is a temporary copy, not really a solution holder.
int n_
number of variables (for independence from CouenneProblem)
const double * x() const
returns vector
~CouenneFPsolution()
destructor
CouenneProblem * problem_
holds pointer to problem to check integrality in comparison of integer variables
bool compare(const CouenneFPsolution &other, enum what_to_compare comparedTerm) const
basic comparison procedure – what to compare depends on user's choice
const int n() const
returns size
CouenneFPsolution(const CouenneFPsolution &src)
copy constructor
int nIinf_
number of integer infeasibilities
CouenneFPsolution(CouenneProblem *p, CouNumber *x, bool copied=false)
CouenneProblem-aware constructor.
CouNumber maxNLinf_
maximum NL infeasibility
An implementation of the Feasibility pump that uses linearization and Ipopt to find the two sequences...
Class for MINLP problems with symbolic information.
class for comparing solutions (used in tabu list)
bool operator()(const CouenneFPsolution &one, const CouenneFPsolution &two) const
general include file for different compilers
double CouNumber
main number type in Couenne
bool operator<(const CouenneScalar &first, const CouenneScalar &second)
static enum Couenne::what_to_compare comparedTerm_
what_to_compare
what term to compare: the sum of infeasibilities, the sum of numbers of infeasible terms,...