#include <BonDiver.hpp>
Public Member Functions | |
CbcProbedDiver () | |
Default constructor. | |
CbcProbedDiver (const CbcProbedDiver &rhs) | |
Copy constructor. | |
CbcProbedDiver & | operator= (const CbcProbedDiver &rhs) |
Assignment operator. | |
virtual | ~CbcProbedDiver () |
Destructor. | |
virtual CbcTree * | clone () const |
copy constructor. | |
virtual void | cleanTree (CbcModel *model, double cutoff, double &bestPossibleObjective) |
Prune the tree using an objective function cutoff if nextOnBranch_ exists we push it on the heap and call CbcTree function. | |
virtual double | getBestPossibleObjective () |
Get best possible objective function in the tree. | |
virtual void | endSearch () |
Don't know what this is yet? | |
void | initialize (BabSetupBase &b) |
Initialize the method (get options). | |
Heap access and maintenance methods. | |
virtual CbcNode * | top () const |
Return top node (next node to process.*/. | |
virtual void | push (CbcNode *x) |
Add node to the heap. | |
virtual void | pop () |
Remove the top node of the heap. | |
virtual CbcNode * | bestNode (double cutoff) |
Remove the best node from the heap and return it. | |
vector methods | |
virtual bool | empty () |
Test if empty. | |
virtual int | size () |
Give size of the tree. | |
Private Attributes | |
bool | treeCleaning_ |
Say if we are cleaning the tree (then only call CbcTree functions). | |
CbcNode * | nextOnBranch_ |
Next node on the branch. | |
CbcNode * | candidateChild_ |
Candidate child explored. | |
bool | stop_diving_on_cutoff_ |
Flag indicating if we want to stop diving based on the guessed objective value and the cutoff value. |
Principle is that branch-and-bound follows current branch of the tree by exploring the two childs at each level and continuing the dive on the best one of the two. Untill it hits the bottom at which point it goes to the best candidate (according to CbcCompare) on the heap.
Definition at line 108 of file BonDiver.hpp.
Bonmin::CbcProbedDiver::CbcProbedDiver | ( | ) |
Bonmin::CbcProbedDiver::CbcProbedDiver | ( | const CbcProbedDiver & | rhs | ) |
Bonmin::CbcProbedDiver::~CbcProbedDiver | ( | ) | [virtual] |
CbcProbedDiver & Bonmin::CbcProbedDiver::operator= | ( | const CbcProbedDiver & | rhs | ) |
Assignment operator.
Definition at line 213 of file BonDiver.cpp.
References candidateChild_, nextOnBranch_, stop_diving_on_cutoff_, and treeCleaning_.
CbcTree * Bonmin::CbcProbedDiver::clone | ( | ) | const [virtual] |
CbcNode * Bonmin::CbcProbedDiver::top | ( | ) | const [virtual] |
Return top node (next node to process.*/.
Definition at line 239 of file BonDiver.cpp.
References candidateChild_, nextOnBranch_, and treeCleaning_.
void Bonmin::CbcProbedDiver::push | ( | CbcNode * | x | ) | [virtual] |
Add node to the heap.
Definition at line 255 of file BonDiver.cpp.
References candidateChild_, nextOnBranch_, and treeCleaning_.
void Bonmin::CbcProbedDiver::pop | ( | ) | [virtual] |
Remove the top node of the heap.
Definition at line 318 of file BonDiver.cpp.
References candidateChild_, nextOnBranch_, and treeCleaning_.
CbcNode * Bonmin::CbcProbedDiver::bestNode | ( | double | cutoff | ) | [virtual] |
Remove the best node from the heap and return it.
Definition at line 334 of file BonDiver.cpp.
References candidateChild_, nextOnBranch_, stop_diving_on_cutoff_, and treeCleaning_.
bool Bonmin::CbcProbedDiver::empty | ( | ) | [virtual] |
Test if empty.
Definition at line 399 of file BonDiver.cpp.
References candidateChild_, and nextOnBranch_.
virtual int Bonmin::CbcProbedDiver::size | ( | ) | [inline, virtual] |
Give size of the tree.
Definition at line 144 of file BonDiver.hpp.
References candidateChild_, and nextOnBranch_.
void Bonmin::CbcProbedDiver::cleanTree | ( | CbcModel * | model, | |
double | cutoff, | |||
double & | bestPossibleObjective | |||
) | [virtual] |
Prune the tree using an objective function cutoff if nextOnBranch_ exists we push it on the heap and call CbcTree function.
This routine removes all nodes with objective worst than the specified cutoff value. It also sets bestPossibleObjective to best of all on tree before deleting.
Definition at line 408 of file BonDiver.cpp.
References candidateChild_, nextOnBranch_, and treeCleaning_.
double Bonmin::CbcProbedDiver::getBestPossibleObjective | ( | ) | [virtual] |
Get best possible objective function in the tree.
Definition at line 423 of file BonDiver.cpp.
References candidateChild_, and nextOnBranch_.
virtual void Bonmin::CbcProbedDiver::endSearch | ( | ) | [inline, virtual] |
void Bonmin::CbcProbedDiver::initialize | ( | BabSetupBase & | b | ) |
Initialize the method (get options).
Definition at line 440 of file BonDiver.cpp.
References Bonmin::BabSetupBase::options(), Bonmin::BabSetupBase::prefix(), and stop_diving_on_cutoff_.
bool Bonmin::CbcProbedDiver::treeCleaning_ [private] |
Say if we are cleaning the tree (then only call CbcTree functions).
Definition at line 174 of file BonDiver.hpp.
Referenced by bestNode(), cleanTree(), operator=(), pop(), push(), and top().
CbcNode* Bonmin::CbcProbedDiver::nextOnBranch_ [private] |
Next node on the branch.
Definition at line 176 of file BonDiver.hpp.
Referenced by bestNode(), cleanTree(), empty(), endSearch(), getBestPossibleObjective(), operator=(), pop(), push(), size(), and top().
CbcNode* Bonmin::CbcProbedDiver::candidateChild_ [private] |
Candidate child explored.
Definition at line 178 of file BonDiver.hpp.
Referenced by bestNode(), cleanTree(), empty(), getBestPossibleObjective(), operator=(), pop(), push(), size(), and top().
bool Bonmin::CbcProbedDiver::stop_diving_on_cutoff_ [private] |
Flag indicating if we want to stop diving based on the guessed objective value and the cutoff value.
Definition at line 181 of file BonDiver.hpp.
Referenced by bestNode(), initialize(), and operator=().