Bonmin 1.8.9
Loading...
Searching...
No Matches
BonAuxInfos.hpp
Go to the documentation of this file.
1// (C) Copyright International Business Machines Corporation 2007
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors :
6// Pierre Bonami, International Business Machines Corporation
7//
8// Date : 04/23/2007
9
10#ifndef BonAuxInfos_H
11#define BonAuxInfos_H
12#include <cstdlib>
13#include <vector>
14#include "OsiAuxInfo.hpp"
15#include "CoinSmartPtr.hpp"
16#include "BonTypes.hpp"
17
18
19namespace Bonmin {
20
21
23class AuxInfo : public OsiBabSolver {
24public:
26 AuxInfo(int type);
27
29 AuxInfo(const OsiBabSolver &other);
30
32 AuxInfo(const AuxInfo &other);
33
35 virtual ~AuxInfo();
36
38 virtual OsiAuxInfo * clone() const;
39
42 infeasibleNode_ = false;}
43
47
50 return infeasibleNode_;}
51
53 const double * nlpSolution(){
54
56 return nlpSolution_;
57 else
58 return NULL;
59 }
60
62 double nlpObjValue ();
63
65 void setNlpSolution(const double * sol, int numcols, double objValue);
66
68 void setHasNlpSolution(bool b){
69 hasNlpSolution_ = b;}
71 const std::vector<double>& bestSolution2() const
72 {
73 return (*bestSolution2_)();
74 }
77 double bestObj2() const
78 {
79 return (*bestObj2_)();
80 }
82 void setBestObj2(double o)
83 {
84 (*bestObj2_)() = o;
85 }
86 void setBestSolution2(int n, double * d)
87 {
88 (*bestSolution2_)().clear();
89 (*bestSolution2_)().insert((*bestSolution2_)().end(),d, d+n);
90 }
91protected:
95 double objValue_;
97 double * nlpSolution_;
106 };
107}/* End namespace.*/
108
109#endif
110
Bonmin class for passing info between components of branch-and-cuts.
const std::vector< double > & bestSolution2() const
get the best solution computed with alternative objective function.
void setNlpSolution(const double *sol, int numcols, double objValue)
Pass a solution found by an nlp solver.
Coin::SmartPtr< SimpleReferenced< double > > bestObj2_
Alternate solution objective value.
double bestObj2() const
return objective value of the best solution computed with alternative objective function.
virtual ~AuxInfo()
Destructor.
void setHasNlpSolution(bool b)
Say if has an nlp solution.
void setInfeasibleNode()
Declare the node to be infeasible.
void setFeasibleNode()
Declare the node to be feasible.
AuxInfo(int type)
Default constructor.
double * nlpSolution_
nlp solution found by heuristic if any.
double objValue_
value of the objective function of this nlp solution
virtual OsiAuxInfo * clone() const
Virtual copy constructor.
bool infeasibleNode_
Say if current node was found infeasible during cut generation.
void setBestObj2(double o)
Set an alternate objective value.
void setBestSolution2(int n, double *d)
AuxInfo(const AuxInfo &other)
Copy constructor.
Coin::SmartPtr< SimpleReferenced< std::vector< double > > > bestSolution2_
Stores the solution with alternate objective.
AuxInfo(const OsiBabSolver &other)
Constructor from OsiBabSolver.
double nlpObjValue()
Get objective value of nlp solution found, or +infinity if none exists.
const double * nlpSolution()
Get solution found by nlp solver (or NULL if none found).
bool hasNlpSolution_
say if has a solution.
bool infeasibleNode()
Say if current node is found feasible by cut generators.
int numcols_
numcols_ gives the size of nlpSolution_.
(C) Copyright International Business Machines Corporation 2007