Minotaur 0.4.1
Docs for developers
Public Member Functions | List of all members
Minotaur::NodeStack Class Reference

#include <NodeStack.h>

Inheritance diagram for Minotaur::NodeStack:
Inheritance graph
[legend]
Collaboration diagram for Minotaur::NodeStack:
Collaboration graph
[legend]

Public Member Functions

 NodeStack ()
 Constructor.
 
virtual ~NodeStack ()
 Destroy.
 
virtual bool isEmpty () const
 Return true if there are no active nodes in the heap, otherwise return false. More...
 
virtual double getBestLB () const
 Find the minimum lower bound of all the active nodes in the stack. This function is expensive and must be avoided for large trees. More...
 
virtual UInt getDeepestLevel () const
 The maximum depth is the depth of the topmost node in the stack. More...
 
virtual void pop ()
 Remove the best node from the heap. More...
 
virtual void write (std::ostream &out) const
 Write in order the node ID and the depth of each active node. More...
 
virtual void push (NodePtr n)
 Add a node to the set of active nodes. More...
 
virtual NodePtr top () const
 Get access to the best node in this heap. More...
 
virtual size_t getSize () const
 Get the number of active nodes in the heap. More...
 
NodeStackIter nodesBegin ()
 Get iterator to the first node in the heap.
 
NodeStackIter nodesEnd ()
 Get iterator to the last node in the heap.
 
- Public Member Functions inherited from Minotaur::ActiveNodeStore
 ActiveNodeStore ()
 Default Constructor.
 
virtual ~ActiveNodeStore ()
 Destroy.
 
virtual double getBestLB () const =0
 Find the minimum lower bound of all the active nodes. More...
 
virtual UInt getDeepestLevel () const =0
 Find the maximum depth of all active nodes. More...
 
virtual size_t getSize () const =0
 Get the number of active nodes. More...
 
virtual bool isEmpty () const =0
 Check if there are any active nodes left. More...
 
virtual void pop ()=0
 Remove the best node from the store. More...
 
virtual void push (NodePtr n)=0
 Add a node to the set of active nodes. More...
 
virtual NodePtr top () const =0
 Access to the best candidate for evaluating next. More...
 
virtual void write (std::ostream &out) const =0
 Display the active nodes. More...
 

Detailed Description

When the active nodes of the branch-and-bound tree are explored in a last-in-first-out (LIFO) order, we store them in a stack. This is essentially a depth first search.

Member Function Documentation

◆ getBestLB()

double NodeStack::getBestLB ( ) const
virtual

Find the minimum lower bound of all the active nodes in the stack. This function is expensive and must be avoided for large trees.

Implements Minotaur::ActiveNodeStore.

◆ getDeepestLevel()

UInt NodeStack::getDeepestLevel ( ) const
virtual

The maximum depth is the depth of the topmost node in the stack.

Implements Minotaur::ActiveNodeStore.

◆ getSize()

virtual size_t Minotaur::NodeStack::getSize ( ) const
inlinevirtual

Get the number of active nodes in the heap.

Implements Minotaur::ActiveNodeStore.

◆ isEmpty()

bool NodeStack::isEmpty ( ) const
virtual

Return true if there are no active nodes in the heap, otherwise return false.

Implements Minotaur::ActiveNodeStore.

◆ pop()

void NodeStack::pop ( )
virtual

Remove the best node from the heap.

Implements Minotaur::ActiveNodeStore.

◆ push()

void NodeStack::push ( NodePtr  n)
virtual

Add a node to the set of active nodes.

Implements Minotaur::ActiveNodeStore.

◆ top()

virtual NodePtr Minotaur::NodeStack::top ( ) const
inlinevirtual

Get access to the best node in this heap.

Implements Minotaur::ActiveNodeStore.

◆ write()

void NodeStack::write ( std::ostream &  out) const
virtual

Write in order the node ID and the depth of each active node.

Implements Minotaur::ActiveNodeStore.


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

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025