13#ifndef CouenneFPpool_hpp
14#define CouenneFPpool_hpp
25 class CouenneFeasPump;
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
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,...